@@ -64,7 +64,7 @@
Ghostfolio
  • About
  • -
  • +
  • Blog
  • @@ -96,8 +96,8 @@ href="https://status.ghostfol.io" target="_blank" title="Ghostfolio Status" - >Status + >Status
@@ -110,8 +110,8 @@ href="https://github.com/ghostfolio/ghostfolio" target="_blank" title="Find Ghostfolio on GitHub" - >GitHub + >GitHub
  • Slack + >Slack
  • X (formerly Twitter) + >X (formerly Twitter)
  •  
  • diff --git a/apps/client/src/app/app.component.scss b/apps/client/src/app/app.component.scss index 2cc6d9a17..21d33e3c9 100644 --- a/apps/client/src/app/app.component.scss +++ b/apps/client/src/app/app.component.scss @@ -2,7 +2,7 @@ :host { display: block; - min-height: 100vh; + min-height: 100svh; &.has-info-message { header { @@ -30,7 +30,7 @@ } main { - min-height: calc(100vh - 2 * var(--mat-toolbar-standard-height)); + min-height: calc(100svh - 2 * var(--mat-toolbar-standard-height)); } } @@ -44,7 +44,7 @@ } main { - min-height: calc(100vh - var(--mat-toolbar-standard-height)); + min-height: calc(100svh - var(--mat-toolbar-standard-height)); } } diff --git a/apps/client/src/app/app.component.ts b/apps/client/src/app/app.component.ts index 1cf4e4b4d..64b25ed79 100644 --- a/apps/client/src/app/app.component.ts +++ b/apps/client/src/app/app.component.ts @@ -1,3 +1,7 @@ +import { InfoItem, User } from '@ghostfolio/common/interfaces'; +import { hasPermission, permissions } from '@ghostfolio/common/permissions'; +import { ColorScheme } from '@ghostfolio/common/types'; + import { DOCUMENT } from '@angular/common'; import { ChangeDetectionStrategy, @@ -10,9 +14,6 @@ import { } from '@angular/core'; import { Title } from '@angular/platform-browser'; import { NavigationEnd, PRIMARY_OUTLET, Router } from '@angular/router'; -import { InfoItem, User } from '@ghostfolio/common/interfaces'; -import { hasPermission, permissions } from '@ghostfolio/common/permissions'; -import { ColorScheme } from '@ghostfolio/common/types'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; import { filter, takeUntil } from 'rxjs/operators'; @@ -37,7 +38,6 @@ export class AppComponent implements OnDestroy, OnInit { public currentYear = new Date().getFullYear(); public deviceType: string; public hasInfoMessage: boolean; - public hasPermissionForBlog: boolean; public hasPermissionForStatistics: boolean; public hasPermissionForSubscription: boolean; public hasPermissionToAccessFearAndGreedIndex: boolean; @@ -80,11 +80,6 @@ export class AppComponent implements OnDestroy, OnInit { this.deviceType = this.deviceService.getDeviceInfo().deviceType; this.info = this.dataService.fetchInfo(); - this.hasPermissionForBlog = hasPermission( - this.info?.globalPermissions, - permissions.enableBlog - ); - this.hasPermissionForSubscription = hasPermission( this.info?.globalPermissions, permissions.enableSubscription @@ -110,6 +105,7 @@ export class AppComponent implements OnDestroy, OnInit { this.hasTabs = (this.currentRoute === this.routerLinkAbout[0].slice(1) || + this.currentRoute === this.routerLinkFaq[0].slice(1) || this.currentRoute === 'account' || this.currentRoute === 'admin' || this.currentRoute === 'home' || @@ -119,7 +115,6 @@ export class AppComponent implements OnDestroy, OnInit { this.showFooter = (this.currentRoute === 'blog' || - this.currentRoute === this.routerLinkFaq[0].slice(1) || this.currentRoute === this.routerLinkFeatures[0].slice(1) || this.currentRoute === this.routerLinkMarkets[0].slice(1) || this.currentRoute === 'open' || diff --git a/apps/client/src/app/app.module.ts b/apps/client/src/app/app.module.ts index 608ba0100..f8b52faa9 100644 --- a/apps/client/src/app/app.module.ts +++ b/apps/client/src/app/app.module.ts @@ -1,3 +1,5 @@ +import { GfLogoModule } from '@ghostfolio/ui/logo'; + import { Platform } from '@angular/cdk/platform'; import { HttpClientModule } from '@angular/common/http'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; @@ -14,7 +16,6 @@ import { MatTooltipModule } from '@angular/material/tooltip'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; import { ServiceWorkerModule } from '@angular/service-worker'; -import { GfLogoModule } from '@ghostfolio/ui/logo'; import { MarkdownModule } from 'ngx-markdown'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { NgxStripeModule, STRIPE_PUBLISHABLE_KEY } from 'ngx-stripe'; diff --git a/apps/client/src/app/components/access-table/access-table.component.html b/apps/client/src/app/components/access-table/access-table.component.html index e9138717d..8112ca4ad 100644 --- a/apps/client/src/app/components/access-table/access-table.component.html +++ b/apps/client/src/app/components/access-table/access-table.component.html @@ -14,26 +14,31 @@ - Type + Permission - - - Restricted View - +
    + @if (element.permissions.includes('READ')) { + + View + } @else if (element.permissions.includes('READ_RESTRICTED')) { + + Restricted view + } +
    Details - - + @@ -47,7 +52,7 @@ [matMenuTriggerFor]="transactionMenu" (click)="$event.stopPropagation()" > - + @@ -19,7 +19,7 @@ >
    - +
    + /> {{ element.name }} + /> {{ element.Platform?.name }} @@ -131,7 +131,7 @@ [isCurrency]="true" [locale]="locale" [value]="element.balance" - > + /> + />
    @@ -166,7 +166,7 @@ [isCurrency]="true" [locale]="locale" [value]="element.value" - > + /> + /> @@ -201,7 +201,7 @@ [isCurrency]="true" [locale]="locale" [value]="element.valueInBaseCurrency" - > + /> + /> @@ -231,7 +231,7 @@ title="Note" (click)="onOpenComment(element.comment); $event.stopPropagation()" > - + - + @@ -265,7 +265,7 @@ (click)="onDeleteAccount(element.id)" > - + Delete @@ -277,14 +277,16 @@ @@ -296,4 +298,4 @@ height: '1.5rem', width: '100%' }" -> +/> diff --git a/apps/client/src/app/components/accounts-table/accounts-table.component.ts b/apps/client/src/app/components/accounts-table/accounts-table.component.ts index 81333ef2d..d7c948adf 100644 --- a/apps/client/src/app/components/accounts-table/accounts-table.component.ts +++ b/apps/client/src/app/components/accounts-table/accounts-table.component.ts @@ -26,8 +26,14 @@ export class AccountsTableComponent implements OnChanges, OnDestroy, OnInit { @Input() accounts: AccountModel[]; @Input() baseCurrency: string; @Input() deviceType: string; + @Input() hasPermissionToOpenDetails = true; @Input() locale: string; @Input() showActions: boolean; + @Input() showBalance = true; + @Input() showFooter = true; + @Input() showTransactions = true; + @Input() showValue = true; + @Input() showValueInBaseCurrency = true; @Input() totalBalanceInBaseCurrency: number; @Input() totalValueInBaseCurrency: number; @Input() transactionCount: number; @@ -51,17 +57,27 @@ export class AccountsTableComponent implements OnChanges, OnDestroy, OnInit { public ngOnInit() {} public ngOnChanges() { - this.displayedColumns = [ - 'status', - 'account', - 'platform', - 'transactions', - 'balance', - 'value', - 'currency', - 'valueInBaseCurrency', - 'comment' - ]; + this.displayedColumns = ['status', 'account', 'platform']; + + if (this.showTransactions) { + this.displayedColumns.push('transactions'); + } + + if (this.showBalance) { + this.displayedColumns.push('balance'); + } + + if (this.showValue) { + this.displayedColumns.push('value'); + } + + this.displayedColumns.push('currency'); + + if (this.showValueInBaseCurrency) { + this.displayedColumns.push('valueInBaseCurrency'); + } + + this.displayedColumns.push('comment'); if (this.showActions) { this.displayedColumns.push('actions'); @@ -89,9 +105,11 @@ export class AccountsTableComponent implements OnChanges, OnDestroy, OnInit { } public onOpenAccountDetailDialog(accountId: string) { - this.router.navigate([], { - queryParams: { accountId, accountDetailDialog: true } - }); + if (this.hasPermissionToOpenDetails) { + this.router.navigate([], { + queryParams: { accountId, accountDetailDialog: true } + }); + } } public onOpenComment(aComment: string) { diff --git a/apps/client/src/app/components/accounts-table/accounts-table.module.ts b/apps/client/src/app/components/accounts-table/accounts-table.module.ts index 7dad41dbf..259e839a4 100644 --- a/apps/client/src/app/components/accounts-table/accounts-table.module.ts +++ b/apps/client/src/app/components/accounts-table/accounts-table.module.ts @@ -1,3 +1,6 @@ +import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -5,8 +8,6 @@ import { MatMenuModule } from '@angular/material/menu'; import { MatSortModule } from '@angular/material/sort'; import { MatTableModule } from '@angular/material/table'; import { RouterModule } from '@angular/router'; -import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { AccountsTableComponent } from './accounts-table.component'; 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 9c5e8e62a..5eff103df 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,3 +1,9 @@ +import { AdminService } from '@ghostfolio/client/services/admin.service'; +import { UserService } from '@ghostfolio/client/services/user/user.service'; +import { QUEUE_JOB_STATUS_LIST } from '@ghostfolio/common/config'; +import { getDateWithTimeFormatString } from '@ghostfolio/common/helper'; +import { AdminJobs, User } from '@ghostfolio/common/interfaces'; + import { ChangeDetectionStrategy, ChangeDetectorRef, @@ -7,11 +13,6 @@ import { } from '@angular/core'; import { FormBuilder, FormGroup } from '@angular/forms'; import { MatTableDataSource } from '@angular/material/table'; -import { AdminService } from '@ghostfolio/client/services/admin.service'; -import { UserService } from '@ghostfolio/client/services/user/user.service'; -import { QUEUE_JOB_STATUS_LIST } from '@ghostfolio/common/config'; -import { getDateWithTimeFormatString } from '@ghostfolio/common/helper'; -import { AdminJobs, User } from '@ghostfolio/common/interfaces'; import { JobStatus } from 'bull'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; diff --git a/apps/client/src/app/components/admin-jobs/admin-jobs.html b/apps/client/src/app/components/admin-jobs/admin-jobs.html index 81e758ba6..12b31dfc8 100644 --- a/apps/client/src/app/components/admin-jobs/admin-jobs.html +++ b/apps/client/src/app/components/admin-jobs/admin-jobs.html @@ -4,7 +4,7 @@
    - + Status - + + /> + /> - - + /> + + @@ -128,7 +119,7 @@ [matMenuTriggerFor]="jobsActionsMenu" (click)="$event.stopPropagation()" > - + diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts index 6728843ad..7bdcdcb31 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.component.ts @@ -1,3 +1,11 @@ +import { AdminService } from '@ghostfolio/client/services/admin.service'; +import { UserService } from '@ghostfolio/client/services/user/user.service'; +import { DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config'; +import { getDateFormatString } from '@ghostfolio/common/helper'; +import { Filter, UniqueAsset, User } from '@ghostfolio/common/interfaces'; +import { AdminMarketDataItem } from '@ghostfolio/common/interfaces/admin-market-data.interface'; +import { translate } from '@ghostfolio/ui/i18n'; + import { AfterViewInit, ChangeDetectionStrategy, @@ -12,13 +20,6 @@ import { MatPaginator, PageEvent } from '@angular/material/paginator'; import { MatSort, Sort, SortDirection } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { ActivatedRoute, Router } from '@angular/router'; -import { AdminService } from '@ghostfolio/client/services/admin.service'; -import { UserService } from '@ghostfolio/client/services/user/user.service'; -import { DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config'; -import { getDateFormatString } from '@ghostfolio/common/helper'; -import { Filter, UniqueAsset, User } from '@ghostfolio/common/interfaces'; -import { AdminMarketDataItem } from '@ghostfolio/common/interfaces/admin-market-data.interface'; -import { translate } from '@ghostfolio/ui/i18n'; import { AssetSubClass, DataSource } from '@prisma/client'; import { isUUID } from 'class-validator'; import { DeviceDetectorService } from 'ngx-device-detector'; diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.html b/apps/client/src/app/components/admin-market-data/admin-market-data.html index 99572cb4e..b2fa9a275 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.html +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -6,7 +6,7 @@ [isLoading]="isLoading" [placeholder]="placeholder" (valueChanged)="filters$.next($event)" - > + />
    @@ -125,7 +125,7 @@ *ngIf="element.comment" class="d-block" name="document-text-outline" - > + /> @@ -137,7 +137,7 @@ [matMenuTriggerFor]="assetProfilesActionsMenu" (click)="$event.stopPropagation()" > - + @@ -176,7 +176,7 @@ (click)="onDeleteProfileData({dataSource: element.dataSource, symbol: element.symbol})" > - + Delete @@ -203,7 +203,7 @@ [pageSize]="pageSize" [showFirstLastButtons]="true" (page)="onChangePage($event)" - > + /> + />
    @@ -225,7 +225,7 @@ [queryParams]="{ createAssetProfileDialog: true }" [routerLink]="[]" > - + diff --git a/apps/client/src/app/components/admin-market-data/admin-market-data.module.ts b/apps/client/src/app/components/admin-market-data/admin-market-data.module.ts index bcac613a6..7522a2fc9 100644 --- a/apps/client/src/app/components/admin-market-data/admin-market-data.module.ts +++ b/apps/client/src/app/components/admin-market-data/admin-market-data.module.ts @@ -1,3 +1,6 @@ +import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; +import { GfActivitiesFilterModule } from '@ghostfolio/ui/activities-filter/activities-filter.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -6,8 +9,6 @@ import { MatPaginatorModule } from '@angular/material/paginator'; import { MatSortModule } from '@angular/material/sort'; import { MatTableModule } from '@angular/material/table'; import { RouterModule } from '@angular/router'; -import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; -import { GfActivitiesFilterModule } from '@ghostfolio/ui/activities-filter/activities-filter.module'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { AdminMarketDataComponent } from './admin-market-data.component'; 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 03dc717d5..c0128f363 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,3 +1,14 @@ +import { UpdateAssetProfileDto } from '@ghostfolio/api/app/admin/update-asset-profile.dto'; +import { AdminService } from '@ghostfolio/client/services/admin.service'; +import { DataService } from '@ghostfolio/client/services/data.service'; +import { DATE_FORMAT, parseDate } from '@ghostfolio/common/helper'; +import { + AdminMarketDataDetails, + Currency, + UniqueAsset +} from '@ghostfolio/common/interfaces'; +import { translate } from '@ghostfolio/ui/i18n'; + import { ChangeDetectionStrategy, ChangeDetectorRef, @@ -9,15 +20,6 @@ import { import { FormBuilder, FormControl, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { MatSnackBar } from '@angular/material/snack-bar'; -import { UpdateAssetProfileDto } from '@ghostfolio/api/app/admin/update-asset-profile.dto'; -import { AdminService } from '@ghostfolio/client/services/admin.service'; -import { DataService } from '@ghostfolio/client/services/data.service'; -import { DATE_FORMAT, parseDate } from '@ghostfolio/common/helper'; -import { - AdminMarketDataDetails, - UniqueAsset -} from '@ghostfolio/common/interfaces'; -import { translate } from '@ghostfolio/ui/i18n'; import { AssetClass, AssetSubClass, @@ -51,11 +53,14 @@ export class AssetProfileDialog implements OnDestroy, OnInit { assetClass: new FormControl(undefined), assetSubClass: new FormControl(undefined), comment: '', + countries: '', + currency: '', historicalData: this.formBuilder.group({ csvString: '' }), name: ['', Validators.required], scraperConfiguration: '', + sectors: '', symbolMapping: '' }); public assetProfileSubClass: string; @@ -63,6 +68,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit { public countries: { [code: string]: { name: string; value: number }; }; + public currencies: Currency[] = []; public isBenchmark = false; public marketDataDetails: MarketData[] = []; public sectors: { @@ -86,7 +92,13 @@ export class AssetProfileDialog implements OnDestroy, OnInit { ) {} public ngOnInit(): void { - this.benchmarks = this.dataService.fetchInfo().benchmarks; + const { benchmarks, currencies } = this.dataService.fetchInfo(); + + this.benchmarks = benchmarks; + this.currencies = currencies.map((currency) => ({ + label: currency, + value: currency + })); this.initialize(); } @@ -110,20 +122,20 @@ export class AssetProfileDialog implements OnDestroy, OnInit { this.marketDataDetails = marketData; this.sectors = {}; - if (assetProfile?.countries?.length > 0) { - for (const country of assetProfile.countries) { - this.countries[country.code] = { - name: country.name, - value: country.weight + if (this.assetProfile?.countries?.length > 0) { + for (const { code, name, weight } of this.assetProfile.countries) { + this.countries[code] = { + name, + value: weight }; } } - if (assetProfile?.sectors?.length > 0) { - for (const sector of assetProfile.sectors) { - this.sectors[sector.name] = { - name: sector.name, - value: sector.weight + if (this.assetProfile?.sectors?.length > 0) { + for (const { name, weight } of this.assetProfile.sectors) { + this.sectors[name] = { + name, + value: weight }; } } @@ -132,6 +144,12 @@ export class AssetProfileDialog implements OnDestroy, OnInit { assetClass: this.assetProfile.assetClass ?? null, assetSubClass: this.assetProfile.assetSubClass ?? null, comment: this.assetProfile?.comment ?? '', + countries: JSON.stringify( + this.assetProfile?.countries?.map(({ code, weight }) => { + return { code, weight }; + }) ?? [] + ), + currency: this.assetProfile?.currency, historicalData: { csvString: AssetProfileDialog.HISTORICAL_DATA_TEMPLATE }, @@ -139,6 +157,7 @@ export class AssetProfileDialog implements OnDestroy, OnInit { scraperConfiguration: JSON.stringify( this.assetProfile?.scraperConfiguration ?? {} ), + sectors: JSON.stringify(this.assetProfile?.sectors ?? []), symbolMapping: JSON.stringify(this.assetProfile?.symbolMapping ?? {}) }); @@ -229,15 +248,25 @@ export class AssetProfileDialog implements OnDestroy, OnInit { } public onSubmit() { + let countries = []; let scraperConfiguration = {}; + let sectors = []; let symbolMapping = {}; + try { + countries = JSON.parse(this.assetProfileForm.controls['countries'].value); + } catch {} + try { scraperConfiguration = JSON.parse( this.assetProfileForm.controls['scraperConfiguration'].value ); } catch {} + try { + sectors = JSON.parse(this.assetProfileForm.controls['sectors'].value); + } catch {} + try { symbolMapping = JSON.parse( this.assetProfileForm.controls['symbolMapping'].value @@ -245,12 +274,17 @@ export class AssetProfileDialog implements OnDestroy, OnInit { } catch {} const assetProfileData: UpdateAssetProfileDto = { + countries, + scraperConfiguration, + sectors, + symbolMapping, assetClass: this.assetProfileForm.controls['assetClass'].value, assetSubClass: this.assetProfileForm.controls['assetSubClass'].value, comment: this.assetProfileForm.controls['comment'].value ?? null, - name: this.assetProfileForm.controls['name'].value, - scraperConfiguration, - symbolMapping + currency: (( + (this.assetProfileForm.controls['currency'].value) + ))?.value, + name: this.assetProfileForm.controls['name'].value }; this.adminService @@ -264,6 +298,34 @@ export class AssetProfileDialog implements OnDestroy, OnInit { }); } + public onTestMarketData() { + this.adminService + .testMarketData({ + dataSource: this.data.dataSource, + scraperConfiguration: + this.assetProfileForm.controls['scraperConfiguration'].value, + symbol: this.data.symbol + }) + .pipe( + catchError(({ error }) => { + alert(`Error: ${error?.message}`); + return EMPTY; + }), + takeUntil(this.unsubscribeSubject) + ) + .subscribe(({ price }) => { + alert( + $localize`The current market price is` + + ' ' + + price + + ' ' + + (( + (this.assetProfileForm.controls['currency'].value) + ))?.value + ); + }); + } + public onUnsetBenchmark({ dataSource, symbol }: UniqueAsset) { this.dataService .deleteBenchmark({ dataSource, symbol }) diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html index 72d673776..171b8065d 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html @@ -15,7 +15,7 @@ [matMenuTriggerFor]="assetProfileActionsMenu" (click)="$event.stopPropagation()" > - + + +
    + +
    + + Sectors + + +
    +
    + + Countries diff --git a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.module.ts b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.module.ts index 0f9fdaaca..372608279 100644 --- a/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.module.ts +++ b/apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.module.ts @@ -1,3 +1,8 @@ +import { GfAdminMarketDataDetailModule } from '@ghostfolio/client/components/admin-market-data-detail/admin-market-data-detail.module'; +import { GfCurrencySelectorModule } from '@ghostfolio/ui/currency-selector/currency-selector.module'; +import { GfPortfolioProportionChartModule } from '@ghostfolio/ui/portfolio-proportion-chart/portfolio-proportion-chart.module'; +import { GfValueModule } from '@ghostfolio/ui/value'; + import { TextFieldModule } from '@angular/cdk/text-field'; import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; @@ -9,9 +14,6 @@ import { MatInputModule } from '@angular/material/input'; import { MatMenuModule } from '@angular/material/menu'; import { MatSelectModule } from '@angular/material/select'; import { MatSnackBarModule } from '@angular/material/snack-bar'; -import { GfAdminMarketDataDetailModule } from '@ghostfolio/client/components/admin-market-data-detail/admin-market-data-detail.module'; -import { GfPortfolioProportionChartModule } from '@ghostfolio/ui/portfolio-proportion-chart/portfolio-proportion-chart.module'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { AssetProfileDialog } from './asset-profile-dialog.component'; @@ -21,6 +23,7 @@ import { AssetProfileDialog } from './asset-profile-dialog.component'; CommonModule, FormsModule, GfAdminMarketDataDetailModule, + GfCurrencySelectorModule, GfPortfolioProportionChartModule, GfValueModule, MatButtonModule, diff --git a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts index eea8898c1..d5415524b 100644 --- a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts +++ b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.component.ts @@ -1,3 +1,5 @@ +import { AdminService } from '@ghostfolio/client/services/admin.service'; + import { ChangeDetectionStrategy, Component, @@ -13,7 +15,6 @@ import { Validators } from '@angular/forms'; import { MatDialogRef } from '@angular/material/dialog'; -import { AdminService } from '@ghostfolio/client/services/admin.service'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html index e7ed9352a..0f4901c31 100644 --- a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html +++ b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -12,7 +12,7 @@ [value]="mode" (change)="onRadioChange($event.value)" > - + diff --git a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.module.ts b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.module.ts index 2d50200c4..888abfa56 100644 --- a/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.module.ts +++ b/apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.module.ts @@ -1,3 +1,5 @@ +import { GfSymbolAutocompleteModule } from '@ghostfolio/ui/symbol-autocomplete'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; @@ -6,7 +8,6 @@ import { MatDialogModule } from '@angular/material/dialog'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { MatRadioModule } from '@angular/material/radio'; -import { GfSymbolAutocompleteModule } from '@ghostfolio/ui/symbol-autocomplete'; import { CreateAssetProfileDialog } from './create-asset-profile-dialog.component'; 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 4b3e1f125..b9c1f3a5f 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,5 +1,3 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { MatSlideToggleChange } from '@angular/material/slide-toggle'; import { AdminService } from '@ghostfolio/client/services/admin.service'; import { CacheService } from '@ghostfolio/client/services/cache.service'; import { DataService } from '@ghostfolio/client/services/data.service'; @@ -7,6 +5,7 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { PROPERTY_COUPONS, PROPERTY_CURRENCIES, + PROPERTY_IS_DATA_GATHERING_ENABLED, PROPERTY_IS_READ_ONLY_MODE, PROPERTY_IS_USER_SIGNUP_ENABLED, PROPERTY_SYSTEM_MESSAGE, @@ -19,6 +18,9 @@ import { User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatSlideToggleChange } from '@angular/material/slide-toggle'; import { differenceInSeconds, formatDistanceToNowStrict, @@ -43,6 +45,7 @@ export class AdminOverviewComponent implements OnDestroy, OnInit { public hasPermissionForSystemMessage: boolean; public hasPermissionToToggleReadOnlyMode: boolean; public info: InfoItem; + public isDataGatheringEnabled: boolean; public permissions = permissions; public systemMessage: SystemMessage; public transactionCount: number; @@ -168,6 +171,13 @@ export class AdminOverviewComponent implements OnDestroy, OnInit { } } + public onEnableDataGatheringChange(aEvent: MatSlideToggleChange) { + this.putAdminSetting({ + key: PROPERTY_IS_DATA_GATHERING_ENABLED, + value: aEvent.checked ? undefined : false + }); + } + public onFlushCache() { const confirmation = confirm( $localize`Do you really want to flush the cache?` @@ -233,6 +243,10 @@ export class AdminOverviewComponent implements OnDestroy, OnInit { this.coupons = (settings[PROPERTY_COUPONS] as Coupon[]) ?? []; this.customCurrencies = settings[PROPERTY_CURRENCIES] as string[]; this.exchangeRates = exchangeRates; + this.isDataGatheringEnabled = + settings[PROPERTY_IS_DATA_GATHERING_ENABLED] === false + ? false + : true; this.systemMessage = settings[ PROPERTY_SYSTEM_MESSAGE ] as SystemMessage; diff --git a/apps/client/src/app/components/admin-overview/admin-overview.html b/apps/client/src/app/components/admin-overview/admin-overview.html index c0ce87c88..e7af876e4 100644 --- a/apps/client/src/app/components/admin-overview/admin-overview.html +++ b/apps/client/src/app/components/admin-overview/admin-overview.html @@ -16,7 +16,7 @@ [locale]="user?.settings?.locale" [precision]="0" [value]="userCount" - > + />
    @@ -26,7 +26,7 @@ [locale]="user?.settings?.locale" [precision]="0" [value]="transactionCount" - > + />
    {{ transactionCount / userCount | number : '1.2-2' }} per User @@ -39,10 +39,7 @@ @@ -52,7 +49,7 @@ [locale]="user?.settings?.locale" [precision]="4" [value]="exchangeRate.value" - > + /> @@ -82,18 +82,18 @@ [matMenuTriggerFor]="platformMenu" (click)="$event.stopPropagation()" > - + 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 ffc5810b3..6a2a3de3c 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,3 +1,9 @@ +import { CreatePlatformDto } from '@ghostfolio/api/app/platform/create-platform.dto'; +import { UpdatePlatformDto } from '@ghostfolio/api/app/platform/update-platform.dto'; +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 { ChangeDetectionStrategy, ChangeDetectorRef, @@ -10,11 +16,6 @@ import { MatDialog } from '@angular/material/dialog'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { ActivatedRoute, Router } from '@angular/router'; -import { CreatePlatformDto } from '@ghostfolio/api/app/platform/create-platform.dto'; -import { UpdatePlatformDto } from '@ghostfolio/api/app/platform/update-platform.dto'; -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 { Platform } from '@prisma/client'; import { get } from 'lodash'; import { DeviceDetectorService } from 'ngx-device-detector'; diff --git a/apps/client/src/app/components/admin-platform/admin-platform.module.ts b/apps/client/src/app/components/admin-platform/admin-platform.module.ts index cec98c5ac..fe7b5985b 100644 --- a/apps/client/src/app/components/admin-platform/admin-platform.module.ts +++ b/apps/client/src/app/components/admin-platform/admin-platform.module.ts @@ -1,3 +1,5 @@ +import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -5,7 +7,6 @@ import { MatMenuModule } from '@angular/material/menu'; import { MatSortModule } from '@angular/material/sort'; import { MatTableModule } from '@angular/material/table'; import { RouterModule } from '@angular/router'; -import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; import { AdminPlatformComponent } from './admin-platform.component'; import { GfCreateOrUpdatePlatformDialogModule } from './create-or-update-platform-dialog/create-or-update-platform-dialog.module'; diff --git a/apps/client/src/app/components/admin-settings/admin-settings.module.ts b/apps/client/src/app/components/admin-settings/admin-settings.module.ts index e778c113d..d7fe79f26 100644 --- a/apps/client/src/app/components/admin-settings/admin-settings.module.ts +++ b/apps/client/src/app/components/admin-settings/admin-settings.module.ts @@ -1,8 +1,9 @@ +import { GfAdminPlatformModule } from '@ghostfolio/client/components/admin-platform/admin-platform.module'; +import { GfAdminTagModule } from '@ghostfolio/client/components/admin-tag/admin-tag.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; -import { GfAdminPlatformModule } from '@ghostfolio/client/components/admin-platform/admin-platform.module'; -import { GfAdminTagModule } from '@ghostfolio/client/components/admin-tag/admin-tag.module'; import { AdminSettingsComponent } from './admin-settings.component'; diff --git a/apps/client/src/app/components/admin-tag/admin-tag.component.html b/apps/client/src/app/components/admin-tag/admin-tag.component.html index 905c2190c..311b26519 100644 --- a/apps/client/src/app/components/admin-tag/admin-tag.component.html +++ b/apps/client/src/app/components/admin-tag/admin-tag.component.html @@ -62,18 +62,18 @@ [matMenuTriggerFor]="tagMenu" (click)="$event.stopPropagation()" > - + 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 e0dce2477..a8bb7720a 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,3 +1,9 @@ +import { CreateTagDto } from '@ghostfolio/api/app/tag/create-tag.dto'; +import { UpdateTagDto } from '@ghostfolio/api/app/tag/update-tag.dto'; +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 { ChangeDetectionStrategy, ChangeDetectorRef, @@ -10,11 +16,6 @@ import { MatDialog } from '@angular/material/dialog'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { ActivatedRoute, Router } from '@angular/router'; -import { CreateTagDto } from '@ghostfolio/api/app/tag/create-tag.dto'; -import { UpdateTagDto } from '@ghostfolio/api/app/tag/update-tag.dto'; -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 { Tag } from '@prisma/client'; import { get } from 'lodash'; import { DeviceDetectorService } from 'ngx-device-detector'; 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 7cccfe2f7..9d38ad541 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,5 +1,3 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { MatTableDataSource } from '@angular/material/table'; import { AdminService } from '@ghostfolio/client/services/admin.service'; import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; @@ -7,6 +5,9 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { getDateFormatString, getEmojiFlag } from '@ghostfolio/common/helper'; import { AdminData, InfoItem, User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatTableDataSource } from '@angular/material/table'; import { differenceInSeconds, formatDistanceToNowStrict, diff --git a/apps/client/src/app/components/admin-users/admin-users.html b/apps/client/src/app/components/admin-users/admin-users.html index e6efb4ebf..e82ac7e02 100644 --- a/apps/client/src/app/components/admin-users/admin-users.html +++ b/apps/client/src/app/components/admin-users/admin-users.html @@ -46,7 +46,7 @@ class="ml-1" [enableLink]="false" [title]="'Expires ' + formatDistanceToNow(element.subscription.expiresAt) + ' (' + (element.subscription.expiresAt | date: defaultDateFormat) + ')'" - > + /> @@ -107,7 +107,7 @@ class="d-inline-block justify-content-end" [locale]="user?.settings?.locale" [value]="element.accountCount" - > + /> @@ -128,7 +128,7 @@ class="d-inline-block justify-content-end" [locale]="user?.settings?.locale" [value]="element.transactionCount" - > + /> @@ -153,7 +153,7 @@ [locale]="user?.settings?.locale" [precision]="0" [value]="element.engagement" - > + /> @@ -195,7 +195,7 @@ [matMenuTriggerFor]="userMenu" (click)="$event.stopPropagation()" > - + @@ -214,7 +214,7 @@ (click)="onDeleteUser(element.id)" > - + Delete User diff --git a/apps/client/src/app/components/admin-users/admin-users.module.ts b/apps/client/src/app/components/admin-users/admin-users.module.ts index 689b39787..0e232a4ed 100644 --- a/apps/client/src/app/components/admin-users/admin-users.module.ts +++ b/apps/client/src/app/components/admin-users/admin-users.module.ts @@ -1,10 +1,11 @@ +import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatMenuModule } from '@angular/material/menu'; import { MatTableModule } from '@angular/material/table'; -import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { AdminUsersComponent } from './admin-users.component'; diff --git a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html index 0db0f92fd..c34fcf274 100644 --- a/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html +++ b/apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html @@ -7,7 +7,7 @@ + />
    @@ -23,7 +23,7 @@ [value]="benchmark" (selectionChange)="onChangeBenchmark($event.value)" > - + Manage Benchmarks +
    + + Manage Benchmarks +
    +
    @@ -47,7 +50,7 @@ height: '100%', width: '100%' }" - > + /> - + diff --git a/apps/client/src/app/components/dialog-header/dialog-header.component.html b/apps/client/src/app/components/dialog-header/dialog-header.component.html index c39c2ca7b..7ad9e1db6 100644 --- a/apps/client/src/app/components/dialog-header/dialog-header.component.html +++ b/apps/client/src/app/components/dialog-header/dialog-header.component.html @@ -9,5 +9,5 @@ mat-button (click)="onClickCloseButton()" > - + diff --git a/apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.html b/apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.html index 6bc52fa11..de6781b7e 100644 --- a/apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.html +++ b/apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.html @@ -19,5 +19,5 @@ [theme]="{ height: '100%' }" - > + /> diff --git a/apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.ts b/apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.ts index d9a61036d..d562e7ba2 100644 --- a/apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.ts +++ b/apps/client/src/app/components/fear-and-greed-index/fear-and-greed-index.component.ts @@ -1,3 +1,6 @@ +import { resolveFearAndGreedIndex } from '@ghostfolio/common/helper'; +import { translate } from '@ghostfolio/ui/i18n'; + import { ChangeDetectionStrategy, Component, @@ -5,8 +8,6 @@ import { OnChanges, OnInit } from '@angular/core'; -import { resolveFearAndGreedIndex } from '@ghostfolio/common/helper'; -import { translate } from '@ghostfolio/ui/i18n'; @Component({ selector: 'gf-fear-and-greed-index', diff --git a/apps/client/src/app/components/header/header.component.html b/apps/client/src/app/components/header/header.component.html index 4d606f591..37305a397 100644 --- a/apps/client/src/app/components/header/header.component.html +++ b/apps/client/src/app/components/header/header.component.html @@ -6,11 +6,12 @@ mat-button [ngClass]="{ 'w-100': hasTabs }" [routerLink]="['/']" + (click)="onLogoClick()" > - + - +
    • - +
    • @@ -150,14 +154,43 @@ class="d-none d-sm-block" name="person-circle-outline" size="large" - > + /> + /> + + Upgrade Plan + Renew Plan + +
      + @@ -187,7 +220,7 @@ ? 'radio-button-on-outline' : 'radio-button-off-outline' " - > + /> {{ accessItem.alias }} User @@ -288,10 +321,10 @@ class="px-2" [label]="pageTitle" [showLabel]="currentRoute !== 'register'" - > + /> - +
      • { + this.userService.remove(); + + this.userService + .get() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(); + }); + } + + public onFiltersChanged(filters: Filter[]) { + const userSetting: UpdateUserSettingDto = {}; + + for (const filter of filters) { + let filtersType: string; + + if (filter.type === 'ACCOUNT') { + filtersType = 'accounts'; + } else if (filter.type === 'ASSET_CLASS') { + filtersType = 'assetClasses'; + } else if (filter.type === 'TAG') { + filtersType = 'tags'; + } + + userSetting[`filters.${filtersType}`] = filter.id ? [filter.id] : null; + } + + this.dataService + .putUserSetting(userSetting) + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(() => { + this.userService.remove(); + + this.userService + .get() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(); + }); + } + + public onLogoClick() { + if (this.currentRoute === 'home' || this.currentRoute === 'zen') { + this.layoutService.getShouldReloadSubject().next(); + } + } + public onMenuClosed() { this.isMenuOpen = false; } diff --git a/apps/client/src/app/components/header/header.module.ts b/apps/client/src/app/components/header/header.module.ts index 9ddf95de5..8ec816625 100644 --- a/apps/client/src/app/components/header/header.module.ts +++ b/apps/client/src/app/components/header/header.module.ts @@ -1,12 +1,14 @@ +import { LoginWithAccessTokenDialogModule } from '@ghostfolio/client/components/login-with-access-token-dialog/login-with-access-token-dialog.module'; +import { GfAssistantModule } from '@ghostfolio/ui/assistant'; +import { GfLogoModule } from '@ghostfolio/ui/logo'; +import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatMenuModule } from '@angular/material/menu'; import { MatToolbarModule } from '@angular/material/toolbar'; import { RouterModule } from '@angular/router'; -import { LoginWithAccessTokenDialogModule } from '@ghostfolio/client/components/login-with-access-token-dialog/login-with-access-token-dialog.module'; -import { GfAssistantModule } from '@ghostfolio/ui/assistant'; -import { GfLogoModule } from '@ghostfolio/ui/logo'; import { HeaderComponent } from './header.component'; @@ -17,6 +19,7 @@ import { HeaderComponent } from './header.component'; CommonModule, GfAssistantModule, GfLogoModule, + GfPremiumIndicatorModule, LoginWithAccessTokenDialogModule, MatButtonModule, MatMenuModule, diff --git a/apps/client/src/app/components/home-holdings/home-holdings.component.ts b/apps/client/src/app/components/home-holdings/home-holdings.component.ts index bae022133..aeb531379 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.component.ts +++ b/apps/client/src/app/components/home-holdings/home-holdings.component.ts @@ -1,6 +1,3 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { ActivatedRoute, Router } from '@angular/router'; import { PositionDetailDialog } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.component'; import { ToggleComponent } from '@ghostfolio/client/components/toggle/toggle.component'; import { DataService } from '@ghostfolio/client/services/data.service'; @@ -9,6 +6,10 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { Position, User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { DateRange } from '@ghostfolio/common/types'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { ActivatedRoute, Router } from '@angular/router'; import { DataSource } from '@prisma/client'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; diff --git a/apps/client/src/app/components/home-holdings/home-holdings.html b/apps/client/src/app/components/home-holdings/home-holdings.html index 79828f6b7..72328eac2 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.html +++ b/apps/client/src/app/components/home-holdings/home-holdings.html @@ -1,12 +1,4 @@
        -
        - -
        @@ -18,7 +10,7 @@ [locale]="user?.settings?.locale" [positions]="positions" [range]="user?.settings?.dateRange" - > + />
        diff --git a/apps/client/src/app/components/home-holdings/home-holdings.module.ts b/apps/client/src/app/components/home-holdings/home-holdings.module.ts index 56fe96805..b6fa70e8f 100644 --- a/apps/client/src/app/components/home-holdings/home-holdings.module.ts +++ b/apps/client/src/app/components/home-holdings/home-holdings.module.ts @@ -1,11 +1,12 @@ +import { GfPositionDetailDialogModule } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.module'; +import { GfPositionsModule } from '@ghostfolio/client/components/positions/positions.module'; +import { GfToggleModule } from '@ghostfolio/client/components/toggle/toggle.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; import { RouterModule } from '@angular/router'; -import { GfPositionDetailDialogModule } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.module'; -import { GfPositionsModule } from '@ghostfolio/client/components/positions/positions.module'; -import { GfToggleModule } from '@ghostfolio/client/components/toggle/toggle.module'; import { HomeHoldingsComponent } from './home-holdings.component'; diff --git a/apps/client/src/app/components/home-market/home-market.component.ts b/apps/client/src/app/components/home-market/home-market.component.ts index e45a4d647..481b913fb 100644 --- a/apps/client/src/app/components/home-market/home-market.component.ts +++ b/apps/client/src/app/components/home-market/home-market.component.ts @@ -1,4 +1,3 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { ghostfolioFearAndGreedIndexSymbol } from '@ghostfolio/common/config'; @@ -10,6 +9,8 @@ import { User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; diff --git a/apps/client/src/app/components/home-market/home-market.html b/apps/client/src/app/components/home-market/home-market.html index 46c8f1d59..333c612f7 100644 --- a/apps/client/src/app/components/home-market/home-market.html +++ b/apps/client/src/app/components/home-market/home-market.html @@ -18,11 +18,11 @@ [yMaxLabel]="greedLabel" [yMin]="0" [yMinLabel]="fearLabel" - > + /> + />
        @@ -32,7 +32,7 @@ [benchmarks]="benchmarks" [locale]="user?.settings?.locale" [user]="user" - > + /> + />
        diff --git a/apps/client/src/app/components/home-market/home-market.module.ts b/apps/client/src/app/components/home-market/home-market.module.ts index 5b266056d..b8d2f8c79 100644 --- a/apps/client/src/app/components/home-market/home-market.module.ts +++ b/apps/client/src/app/components/home-market/home-market.module.ts @@ -1,8 +1,9 @@ -import { CommonModule } from '@angular/common'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { GfFearAndGreedIndexModule } from '@ghostfolio/client/components/fear-and-greed-index/fear-and-greed-index.module'; import { GfBenchmarkModule } from '@ghostfolio/ui/benchmark/benchmark.module'; import { GfLineChartModule } from '@ghostfolio/ui/line-chart/line-chart.module'; + +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { HomeMarketComponent } from './home-market.component'; diff --git a/apps/client/src/app/components/home-overview/home-overview.component.ts b/apps/client/src/app/components/home-overview/home-overview.component.ts index 74bdec311..75fd21eeb 100644 --- a/apps/client/src/app/components/home-overview/home-overview.component.ts +++ b/apps/client/src/app/components/home-overview/home-overview.component.ts @@ -1,5 +1,5 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { ToggleComponent } from '@ghostfolio/client/components/toggle/toggle.component'; +import { LayoutService } from '@ghostfolio/client/core/layout.service'; import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; @@ -11,6 +11,8 @@ import { } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { DateRange } from '@ghostfolio/common/types'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; @@ -43,6 +45,7 @@ export class HomeOverviewComponent implements OnDestroy, OnInit { private dataService: DataService, private deviceService: DeviceDetectorService, private impersonationStorageService: ImpersonationStorageService, + private layoutService: LayoutService, private userService: UserService ) { this.userService.stateChanged @@ -73,8 +76,13 @@ export class HomeOverviewComponent implements OnDestroy, OnInit { this.changeDetectorRef.markForCheck(); }); + this.layoutService.shouldReloadContent$ + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(() => { + this.update(); + }); + this.showDetails = - !this.hasImpersonationId && !this.user.settings.isRestrictedView && this.user.settings.viewMode !== 'ZEN'; diff --git a/apps/client/src/app/components/home-overview/home-overview.html b/apps/client/src/app/components/home-overview/home-overview.html index 4cec06b89..503cc5899 100644 --- a/apps/client/src/app/components/home-overview/home-overview.html +++ b/apps/client/src/app/components/home-overview/home-overview.html @@ -1,10 +1,8 @@
        -
        + @if(hasPermissionToCreateOrder && historicalDataItems?.length === 0) { +

        Welcome to Ghostfolio

        Ready to take control of your personal finances?

        @@ -60,51 +58,43 @@
        - -
        -
        -
        - -
        -
        -
        -
        -
        - +
        +
        + -
        - -
        + [ngClass]="{ 'pr-3': deviceType === 'mobile' }" + [showGradient]="true" + [showLoader]="false" + [showXAxis]="false" + [showYAxis]="false" + />
        - +
        +
        +
        + +
        +
        + }
        diff --git a/apps/client/src/app/components/home-overview/home-overview.module.ts b/apps/client/src/app/components/home-overview/home-overview.module.ts index e838775f2..4f5041627 100644 --- a/apps/client/src/app/components/home-overview/home-overview.module.ts +++ b/apps/client/src/app/components/home-overview/home-overview.module.ts @@ -1,11 +1,11 @@ +import { GfPortfolioPerformanceModule } from '@ghostfolio/client/components/portfolio-performance/portfolio-performance.module'; +import { GfLineChartModule } from '@ghostfolio/ui/line-chart/line-chart.module'; +import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { RouterModule } from '@angular/router'; -import { GfPortfolioPerformanceModule } from '@ghostfolio/client/components/portfolio-performance/portfolio-performance.module'; -import { GfToggleModule } from '@ghostfolio/client/components/toggle/toggle.module'; -import { GfLineChartModule } from '@ghostfolio/ui/line-chart/line-chart.module'; -import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; import { HomeOverviewComponent } from './home-overview.component'; @@ -16,7 +16,6 @@ import { HomeOverviewComponent } from './home-overview.component'; GfLineChartModule, GfNoTransactionsInfoModule, GfPortfolioPerformanceModule, - GfToggleModule, MatButtonModule, RouterModule ], diff --git a/apps/client/src/app/components/home-summary/home-summary.component.ts b/apps/client/src/app/components/home-summary/home-summary.component.ts index be015d84e..b67b67ce5 100644 --- a/apps/client/src/app/components/home-summary/home-summary.component.ts +++ b/apps/client/src/app/components/home-summary/home-summary.component.ts @@ -1,10 +1,3 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { - MatSnackBar, - MatSnackBarRef, - TextOnlySnackBar -} from '@angular/material/snack-bar'; -import { Router } from '@angular/router'; 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'; @@ -14,6 +7,14 @@ import { User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { + MatSnackBar, + MatSnackBarRef, + TextOnlySnackBar +} from '@angular/material/snack-bar'; +import { Router } from '@angular/router'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; diff --git a/apps/client/src/app/components/home-summary/home-summary.html b/apps/client/src/app/components/home-summary/home-summary.html index b75fe5aab..d01022e89 100644 --- a/apps/client/src/app/components/home-summary/home-summary.html +++ b/apps/client/src/app/components/home-summary/home-summary.html @@ -12,7 +12,7 @@ [locale]="user?.settings?.locale" [summary]="summary" (emergencyFundChanged)="onChangeEmergencyFund($event)" - > + />
        diff --git a/apps/client/src/app/components/home-summary/home-summary.module.ts b/apps/client/src/app/components/home-summary/home-summary.module.ts index 348009dc7..75cea9962 100644 --- a/apps/client/src/app/components/home-summary/home-summary.module.ts +++ b/apps/client/src/app/components/home-summary/home-summary.module.ts @@ -1,8 +1,9 @@ +import { GfPortfolioSummaryModule } from '@ghostfolio/client/components/portfolio-summary/portfolio-summary.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatCardModule } from '@angular/material/card'; import { RouterModule } from '@angular/router'; -import { GfPortfolioSummaryModule } from '@ghostfolio/client/components/portfolio-summary/portfolio-summary.module'; import { HomeSummaryComponent } from './home-summary.component'; diff --git a/apps/client/src/app/components/investment-chart/investment-chart.component.html b/apps/client/src/app/components/investment-chart/investment-chart.component.html index 7598096ca..697ba5007 100644 --- a/apps/client/src/app/components/investment-chart/investment-chart.component.html +++ b/apps/client/src/app/components/investment-chart/investment-chart.component.html @@ -5,7 +5,7 @@ height: '100%', width: '100%' }" -> +/> = { + const chartData: ChartData<'bar' | 'line'> = { labels: this.historicalDataItems.map(({ date }) => { return parseDate(date); }), @@ -194,17 +202,23 @@ export class InvestmentChartComponent implements OnChanges, OnDestroy { }; if (this.chartCanvas) { + let scaleXMin: string; + + if (this.daysInMarket) { + const minDate = min([ + parseDate(first(this.investments)?.date), + subDays(new Date().setHours(0, 0, 0, 0), this.daysInMarket) + ]); + + scaleXMin = isValid(minDate) ? minDate.toISOString() : undefined; + } + if (this.chart) { this.chart.data = chartData; this.chart.options.plugins.tooltip = ( this.getTooltipPluginConfiguration() ); - this.chart.options.scales.x.min = this.daysInMarket - ? subDays( - new Date().setHours(0, 0, 0, 0), - this.daysInMarket - ).toISOString() - : undefined; + this.chart.options.scales.x.min = scaleXMin; if ( this.savingsRate && @@ -287,9 +301,7 @@ export class InvestmentChartComponent implements OnChanges, OnDestroy { grid: { display: false }, - min: this.daysInMarket - ? subDays(new Date(), this.daysInMarket).toISOString() - : undefined, + min: scaleXMin, suggestedMax: new Date().toISOString(), type: 'time', time: { diff --git a/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts b/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts index 9f9fdbabd..2574cec39 100644 --- a/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts +++ b/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.component.ts @@ -1,7 +1,3 @@ -import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; -import { MatCheckboxChange } from '@angular/material/checkbox'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { Router } from '@angular/router'; import { InternetIdentityService } from '@ghostfolio/client/services/internet-identity.service'; import { KEY_STAY_SIGNED_IN, @@ -9,6 +5,11 @@ import { } from '@ghostfolio/client/services/settings-storage.service'; import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service'; +import { ChangeDetectionStrategy, Component, Inject } from '@angular/core'; +import { MatCheckboxChange } from '@angular/material/checkbox'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; +import { Router } from '@angular/router'; + @Component({ selector: 'gf-login-with-access-token-dialog', changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html b/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html index 080ad4428..84c8c11ad 100644 --- a/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html +++ b/apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2,7 +2,7 @@ mat-dialog-title [title]="data.title" (closeButtonClicked)="onClose()" -> +/>
        @@ -23,7 +23,7 @@ > + /> diff --git a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html index 34fb95dae..fdc231579 100644 --- a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html +++ b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html @@ -1,18 +1,14 @@
        -
        - +
        + @if (errors?.length > 0 && !isLoading) { + + }
        + />
        -
        +
        {{ unit }}
        @@ -45,7 +41,7 @@ [isCurrency]="true" [locale]="locale" [value]="isLoading ? undefined : performance?.currentNetPerformance" - > + />
        + />
        diff --git a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.scss b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.scss index 398a2981a..6f703255f 100644 --- a/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.scss +++ b/apps/client/src/app/components/portfolio-performance/portfolio-performance.component.scss @@ -1,8 +1,18 @@ :host { display: block; - .status { + .currency-container, + .status-container { + flex: 1; + min-width: 2.5rem; + } + + .status-container { font-size: 1.33rem; + + ion-icon { + pointer-events: all; + } } .value-container { 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 29ccf3b71..2705ca1f1 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,3 +1,12 @@ +import { + getNumberFormatDecimal, + getNumberFormatGroup +} from '@ghostfolio/common/helper'; +import { + PortfolioPerformance, + ResponseError +} from '@ghostfolio/common/interfaces'; + import { ChangeDetectionStrategy, Component, @@ -7,14 +16,6 @@ import { OnInit, ViewChild } from '@angular/core'; -import { - getNumberFormatDecimal, - getNumberFormatGroup -} from '@ghostfolio/common/helper'; -import { - PortfolioPerformance, - ResponseError -} from '@ghostfolio/common/interfaces'; import { CountUp } from 'countup.js'; import { isNumber } from 'lodash'; @@ -58,7 +59,7 @@ export class PortfolioPerformanceComponent implements OnChanges, OnInit { duration: 1, separator: getNumberFormatGroup(this.locale) }).start(); - } else if (this.performance?.currentValue === null) { + } else if (this.showDetails === false) { new CountUp( 'value', this.performance?.currentNetPerformancePercent * 100, @@ -69,12 +70,14 @@ export class PortfolioPerformanceComponent implements OnChanges, OnInit { separator: getNumberFormatGroup(this.locale) } ).start(); + } else { + this.value.nativeElement.innerHTML = '*****'; } } } public onShowErrors() { - const errorMessageParts = ['Data Provider Errors for']; + const errorMessageParts = [$localize`Market data is delayed for`]; for (const error of this.errors) { errorMessageParts.push(`${error.symbol} (${error.dataSource})`); diff --git a/apps/client/src/app/components/portfolio-performance/portfolio-performance.module.ts b/apps/client/src/app/components/portfolio-performance/portfolio-performance.module.ts index 5d46daf07..b72f64b15 100644 --- a/apps/client/src/app/components/portfolio-performance/portfolio-performance.module.ts +++ b/apps/client/src/app/components/portfolio-performance/portfolio-performance.module.ts @@ -1,6 +1,7 @@ +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { PortfolioPerformanceComponent } from './portfolio-performance.component'; diff --git a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html index aaf9bfb73..6adaca943 100644 --- a/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html +++ b/apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html @@ -2,7 +2,7 @@
        Time in Market
        - +
        - {{ summary?.ordersCount }} {summary?.ordersCount, plural, =1 {transaction} - other {transactions}} + {{ summary?.ordersCount }} + {summary?.ordersCount, plural, =1 {transaction} other {transactions}}
        @@ -26,7 +26,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.totalBuy" - > + />
        @@ -38,7 +38,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.totalSell" - > + />
        @@ -53,7 +53,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.committedFunds" - > + />
        @@ -65,11 +65,18 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.currentGrossPerformance" - > + />
        -
        Gross Performance
        +
        + Gross Performance + (TWR) +
        + />
        @@ -93,7 +100,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.fees" - > + />
        @@ -108,11 +115,18 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.currentNetPerformance" - > + />
        -
        Net Performance
        +
        + Net Performance + (TWR) +
        + />
        @@ -137,7 +151,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.currentValue" - > + />
        @@ -149,7 +163,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.items" - > + />
        @@ -163,14 +177,14 @@ *ngIf="hasPermissionToUpdateUserSettings && !isLoading" class="mr-1 text-muted" name="ellipsis-horizontal-circle-outline" - > + /> + />
        @@ -183,7 +197,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.emergencyFund?.cash" - > + />
        @@ -196,7 +210,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.emergencyFund?.assets" - > + />
        @@ -208,7 +222,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.cash" - > + />
        @@ -220,7 +234,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.excludedAccountsAndActivities" - > + />
        @@ -240,7 +254,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.liabilities" - > + />
        @@ -255,7 +269,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.netWorth" - > + />
        @@ -270,7 +284,7 @@ [isPercent]="true" [locale]="locale" [value]="isLoading ? undefined : summary?.annualizedPerformancePercent" - > + />
        @@ -285,7 +299,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.interest" - > + />
        @@ -297,7 +311,7 @@ [locale]="locale" [unit]="baseCurrency" [value]="isLoading ? undefined : summary?.dividend" - > + />
        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 337fc5211..dd91892b2 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,3 +1,6 @@ +import { getDateFnsLocale } from '@ghostfolio/common/helper'; +import { PortfolioSummary } from '@ghostfolio/common/interfaces'; + import { ChangeDetectionStrategy, Component, @@ -7,8 +10,6 @@ import { OnInit, Output } from '@angular/core'; -import { getDateFnsLocale } from '@ghostfolio/common/helper'; -import { PortfolioSummary } from '@ghostfolio/common/interfaces'; import { formatDistanceToNow } from 'date-fns'; @Component({ diff --git a/apps/client/src/app/components/portfolio-summary/portfolio-summary.module.ts b/apps/client/src/app/components/portfolio-summary/portfolio-summary.module.ts index 1724aa8c5..be9f6fef8 100644 --- a/apps/client/src/app/components/portfolio-summary/portfolio-summary.module.ts +++ b/apps/client/src/app/components/portfolio-summary/portfolio-summary.module.ts @@ -1,6 +1,7 @@ +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { PortfolioSummaryComponent } from './portfolio-summary.component'; diff --git a/apps/client/src/app/components/position/position-detail-dialog/interfaces/interfaces.ts b/apps/client/src/app/components/position/position-detail-dialog/interfaces/interfaces.ts index 0a7db166e..bbededf57 100644 --- a/apps/client/src/app/components/position/position-detail-dialog/interfaces/interfaces.ts +++ b/apps/client/src/app/components/position/position-detail-dialog/interfaces/interfaces.ts @@ -1,4 +1,5 @@ import { ColorScheme } from '@ghostfolio/common/types'; + import { DataSource } from '@prisma/client'; export interface PositionDetailDialogParams { diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts index 053d1d305..557d15b0a 100644 --- a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts +++ b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.component.ts @@ -1,14 +1,3 @@ -import { - ChangeDetectionStrategy, - ChangeDetectorRef, - Component, - Inject, - OnDestroy, - OnInit -} from '@angular/core'; -import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { Sort, SortDirection } from '@angular/material/sort'; -import { MatTableDataSource } from '@angular/material/table'; import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { DATE_FORMAT, downloadAsFile } from '@ghostfolio/common/helper'; @@ -20,7 +9,19 @@ import { } from '@ghostfolio/common/interfaces'; import { OrderWithAccount } from '@ghostfolio/common/types'; import { translate } from '@ghostfolio/ui/i18n'; -import { Tag } from '@prisma/client'; + +import { + ChangeDetectionStrategy, + ChangeDetectorRef, + Component, + Inject, + OnDestroy, + OnInit +} from '@angular/core'; +import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; +import { SortDirection } from '@angular/material/sort'; +import { MatTableDataSource } from '@angular/material/table'; +import { Account, Tag } from '@prisma/client'; import { format, isSameMonth, isToday, parseISO } from 'date-fns'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; @@ -35,6 +36,7 @@ import { PositionDetailDialogParams } from './interfaces/interfaces'; styleUrls: ['./position-detail-dialog.component.scss'] }) export class PositionDetailDialog implements OnDestroy, OnInit { + public accounts: Account[]; public activities: OrderWithAccount[]; public assetClass: string; public assetSubClass: string; @@ -91,6 +93,7 @@ export class PositionDetailDialog implements OnDestroy, OnInit { .pipe(takeUntil(this.unsubscribeSubject)) .subscribe( ({ + accounts, averagePrice, dataProviderInfo, dividendInBaseCurrency, @@ -112,6 +115,7 @@ export class PositionDetailDialog implements OnDestroy, OnInit { transactionCount, value }) => { + this.accounts = accounts; this.activities = orders; this.averagePrice = averagePrice; this.benchmarkDataItems = []; @@ -268,20 +272,12 @@ export class PositionDetailDialog implements OnDestroy, OnInit { } public onExport() { - let activityIds = []; - - if (this.user?.settings?.isExperimentalFeatures === true) { - activityIds = this.dataSource.data.map(({ id }) => { - return id; - }); - } else { - activityIds = this.activities.map(({ id }) => { - return id; - }); - } + let activityIds = this.dataSource.data.map(({ id }) => { + return id; + }); this.dataService - .fetchExport(activityIds) + .fetchExport({ activityIds }) .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((data) => { downloadAsFile({ diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html index f7b9b8a80..07179b801 100644 --- a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html +++ b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -4,7 +4,7 @@ [deviceType]="data.deviceType" [title]="SymbolProfile?.name ?? SymbolProfile?.symbol" (closeButtonClicked)="onClose()" -> +/>
        @@ -16,7 +16,7 @@ [locale]="data.locale" [unit]="data.baseCurrency" [value]="value" - > + />
        @@ -33,7 +33,7 @@ [showXAxis]="true" [showYAxis]="true" [symbol]="data.symbol" - > + />
        @@ -186,57 +186,52 @@ - -
        - Sector -
        -
        + Sector - Country -
        -
        - -
        -
        Sectors
        - -
        -
        -
        Countries
        - -
        -
        +
        +
        + Country +
        + } @else { +
        +
        Sectors
        + +
        +
        +
        Countries
        + +
        + }

        @@ -246,16 +241,23 @@
        -
        -
        -
        Activities
        - + + + +
        Activities
        +
        +
        - + + + + +
        Accounts
        +
        +
        -
        -
        + [locale]="user?.settings?.locale" + [showBalance]="false" + [showFooter]="false" + [showTransactions]="false" + [showValue]="false" + [showValueInBaseCurrency]="false" + /> + +
        @@ -314,4 +320,4 @@ mat-dialog-actions [deviceType]="data.deviceType" (closeButtonClicked)="onClose()" -> +/> diff --git a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.module.ts b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.module.ts index 46ae87f66..675f8187b 100644 --- a/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.module.ts +++ b/apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.module.ts @@ -1,16 +1,18 @@ -import { CommonModule } from '@angular/common'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatChipsModule } from '@angular/material/chips'; -import { MatDialogModule } from '@angular/material/dialog'; +import { GfAccountsTableModule } from '@ghostfolio/client/components/accounts-table/accounts-table.module'; import { GfDialogFooterModule } from '@ghostfolio/client/components/dialog-footer/dialog-footer.module'; import { GfDialogHeaderModule } from '@ghostfolio/client/components/dialog-header/dialog-header.module'; -import { GfActivitiesTableLazyModule } from '@ghostfolio/ui/activities-table-lazy/activities-table-lazy.module'; import { GfActivitiesTableModule } from '@ghostfolio/ui/activities-table/activities-table.module'; import { GfDataProviderCreditsModule } from '@ghostfolio/ui/data-provider-credits/data-provider-credits.module'; import { GfLineChartModule } from '@ghostfolio/ui/line-chart/line-chart.module'; import { GfPortfolioProportionChartModule } from '@ghostfolio/ui/portfolio-proportion-chart/portfolio-proportion-chart.module'; import { GfValueModule } from '@ghostfolio/ui/value'; + +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatChipsModule } from '@angular/material/chips'; +import { MatDialogModule } from '@angular/material/dialog'; +import { MatTabsModule } from '@angular/material/tabs'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { PositionDetailDialog } from './position-detail-dialog.component'; @@ -19,8 +21,8 @@ import { PositionDetailDialog } from './position-detail-dialog.component'; declarations: [PositionDetailDialog], imports: [ CommonModule, + GfAccountsTableModule, GfActivitiesTableModule, - GfActivitiesTableLazyModule, GfDataProviderCreditsModule, GfDialogFooterModule, GfDialogHeaderModule, @@ -30,6 +32,7 @@ import { PositionDetailDialog } from './position-detail-dialog.component'; MatButtonModule, MatChipsModule, MatDialogModule, + MatTabsModule, NgxSkeletonLoaderModule ], schemas: [CUSTOM_ELEMENTS_SCHEMA] diff --git a/apps/client/src/app/components/position/position.component.html b/apps/client/src/app/components/position/position.component.html index 979975176..007ccc70f 100644 --- a/apps/client/src/app/components/position/position.component.html +++ b/apps/client/src/app/components/position/position.component.html @@ -18,7 +18,7 @@ [marketState]="position?.marketState" [range]="range" [value]="position?.netPerformancePercentage" - > + />
        + /> + />
        {{ position?.name }}
        @@ -50,13 +50,13 @@ [locale]="locale" [unit]="baseCurrency" [value]="position?.netPerformance" - > + /> + />
        @@ -65,7 +65,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + />
        diff --git a/apps/client/src/app/components/position/position.component.ts b/apps/client/src/app/components/position/position.component.ts index f871b0dad..3feac5d8e 100644 --- a/apps/client/src/app/components/position/position.component.ts +++ b/apps/client/src/app/components/position/position.component.ts @@ -1,3 +1,6 @@ +import { UNKNOWN_KEY } from '@ghostfolio/common/config'; +import { Position } from '@ghostfolio/common/interfaces'; + import { ChangeDetectionStrategy, Component, @@ -5,8 +8,6 @@ import { OnDestroy, OnInit } from '@angular/core'; -import { UNKNOWN_KEY } from '@ghostfolio/common/config'; -import { Position } from '@ghostfolio/common/interfaces'; import { Subject } from 'rxjs'; @Component({ diff --git a/apps/client/src/app/components/position/position.module.ts b/apps/client/src/app/components/position/position.module.ts index f72481296..0b225cd04 100644 --- a/apps/client/src/app/components/position/position.module.ts +++ b/apps/client/src/app/components/position/position.module.ts @@ -1,10 +1,11 @@ +import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; +import { GfTrendIndicatorModule } from '@ghostfolio/ui/trend-indicator'; +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatDialogModule } from '@angular/material/dialog'; import { RouterModule } from '@angular/router'; -import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; -import { GfTrendIndicatorModule } from '@ghostfolio/ui/trend-indicator'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { GfPositionDetailDialogModule } from './position-detail-dialog/position-detail-dialog.module'; diff --git a/apps/client/src/app/components/positions/positions.component.html b/apps/client/src/app/components/positions/positions.component.html index 1a6f44270..606c59211 100644 --- a/apps/client/src/app/components/positions/positions.component.html +++ b/apps/client/src/app/components/positions/positions.component.html @@ -2,7 +2,7 @@
        - + @@ -13,7 +13,7 @@ [locale]="locale" [position]="position" [range]="range" - > + /> + />
        - +
        diff --git a/apps/client/src/app/components/positions/positions.component.ts b/apps/client/src/app/components/positions/positions.component.ts index b3d6bd3ca..8b84d7e8b 100644 --- a/apps/client/src/app/components/positions/positions.component.ts +++ b/apps/client/src/app/components/positions/positions.component.ts @@ -1,3 +1,5 @@ +import { Position } from '@ghostfolio/common/interfaces'; + import { ChangeDetectionStrategy, Component, @@ -5,7 +7,6 @@ import { OnChanges, OnInit } from '@angular/core'; -import { Position } from '@ghostfolio/common/interfaces'; @Component({ selector: 'gf-positions', diff --git a/apps/client/src/app/components/positions/positions.module.ts b/apps/client/src/app/components/positions/positions.module.ts index 400b2ea6c..e9d1cb838 100644 --- a/apps/client/src/app/components/positions/positions.module.ts +++ b/apps/client/src/app/components/positions/positions.module.ts @@ -1,7 +1,8 @@ +import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; -import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; import { GfPositionModule } from '../position/position.module'; import { PositionsComponent } from './positions.component'; diff --git a/apps/client/src/app/components/rule/rule.component.html b/apps/client/src/app/components/rule/rule.component.html index b4c9179d5..f237ed890 100644 --- a/apps/client/src/app/components/rule/rule.component.html +++ b/apps/client/src/app/components/rule/rule.component.html @@ -8,18 +8,15 @@ height: '2rem', width: '2rem' }" - > + />
        - - + +
        + /> + />
        {{ rule?.name }}
        diff --git a/apps/client/src/app/components/rule/rule.component.ts b/apps/client/src/app/components/rule/rule.component.ts index 0e61caef2..61514939f 100644 --- a/apps/client/src/app/components/rule/rule.component.ts +++ b/apps/client/src/app/components/rule/rule.component.ts @@ -1,10 +1,11 @@ +import { PortfolioReportRule } from '@ghostfolio/common/interfaces'; + import { ChangeDetectionStrategy, Component, Input, OnInit } from '@angular/core'; -import { PortfolioReportRule } from '@ghostfolio/common/interfaces'; @Component({ selector: 'gf-rule', diff --git a/apps/client/src/app/components/rules/rules.component.html b/apps/client/src/app/components/rules/rules.component.html index f859a4224..b3840a79b 100644 --- a/apps/client/src/app/components/rules/rules.component.html +++ b/apps/client/src/app/components/rules/rules.component.html @@ -7,15 +7,13 @@ class="my-2 text-center" > - + + - + - +
        diff --git a/apps/client/src/app/components/rules/rules.component.ts b/apps/client/src/app/components/rules/rules.component.ts index e1f15d23f..9017700c2 100644 --- a/apps/client/src/app/components/rules/rules.component.ts +++ b/apps/client/src/app/components/rules/rules.component.ts @@ -1,6 +1,7 @@ -import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { PortfolioReportRule } from '@ghostfolio/common/interfaces'; +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + @Component({ selector: 'gf-rules', changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/apps/client/src/app/components/rules/rules.module.ts b/apps/client/src/app/components/rules/rules.module.ts index ebf4eaeaf..48cd02388 100644 --- a/apps/client/src/app/components/rules/rules.module.ts +++ b/apps/client/src/app/components/rules/rules.module.ts @@ -1,9 +1,10 @@ +import { GfRuleModule } from '@ghostfolio/client/components/rule/rule.module'; +import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; -import { GfRuleModule } from '@ghostfolio/client/components/rule/rule.module'; -import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; import { GfPositionModule } from '../position/position.module'; import { RulesComponent } from './rules.component'; diff --git a/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html b/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html index dea00bb18..102da79f6 100644 --- a/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html +++ b/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html @@ -7,10 +7,7 @@
        Ghostfolio Premium - +
        Are you an ambitious investor who needs the full picture? @@ -21,27 +18,27 @@

        • - + Portfolio Summary
        • - + Portfolio Allocations
        • - + Performance Benchmarks
        • - + FIRE Calculator
        • - + Professional Data Provider
        • - + and more Features...
        @@ -60,6 +57,6 @@ (click)="closeDialog()" > Upgrade Plan - +
        diff --git a/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.module.ts b/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.module.ts index d7a7cfcf2..b67d2783c 100644 --- a/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.module.ts +++ b/apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.module.ts @@ -1,9 +1,10 @@ +import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatDialogModule } from '@angular/material/dialog'; import { RouterModule } from '@angular/router'; -import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; import { SubscriptionInterstitialDialog } from './subscription-interstitial-dialog.component'; diff --git a/apps/client/src/app/components/toggle/toggle.component.html b/apps/client/src/app/components/toggle/toggle.component.html index fd923fdf5..88713760a 100644 --- a/apps/client/src/app/components/toggle/toggle.component.html +++ b/apps/client/src/app/components/toggle/toggle.component.html @@ -1,6 +1,6 @@ >(); - public option = new FormControl(undefined); + public optionFormControl = new FormControl(undefined); public constructor() {} public ngOnInit() {} public ngOnChanges() { - this.option.setValue(this.defaultValue); + this.optionFormControl.setValue(this.defaultValue); } public onValueChange() { - this.change.emit({ value: this.option.value }); + this.change.emit({ value: this.optionFormControl.value }); } } 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 2aa38f4d7..896e0370f 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,13 +1,17 @@ +import { CreateAccessDto } from '@ghostfolio/api/app/access/create-access.dto'; +import { DataService } from '@ghostfolio/client/services/data.service'; + import { ChangeDetectionStrategy, + ChangeDetectorRef, Component, Inject, OnDestroy } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { CreateAccessDto } from '@ghostfolio/api/app/access/create-access.dto'; -import { Subject } from 'rxjs'; +import { StatusCodes } from 'http-status-codes'; +import { EMPTY, Subject, catchError, takeUntil } from 'rxjs'; import { CreateOrUpdateAccessDialogParams } from './interfaces/interfaces'; @@ -24,15 +28,36 @@ export class CreateOrUpdateAccessDialog implements OnDestroy { private unsubscribeSubject = new Subject(); public constructor( + private changeDetectorRef: ChangeDetectorRef, @Inject(MAT_DIALOG_DATA) public data: CreateOrUpdateAccessDialogParams, public dialogRef: MatDialogRef, + private dataService: DataService, private formBuilder: FormBuilder ) {} ngOnInit() { this.accessForm = this.formBuilder.group({ alias: [this.data.access.alias], - type: [this.data.access.type, Validators.required] + permissions: [this.data.access.permissions[0], Validators.required], + type: [this.data.access.type, Validators.required], + userId: [this.data.access.grantee, Validators.required] + }); + + this.accessForm.get('type').valueChanges.subscribe((accessType) => { + const permissionsControl = this.accessForm.get('permissions'); + const userIdControl = this.accessForm.get('userId'); + + if (accessType === 'PRIVATE') { + permissionsControl.setValidators(Validators.required); + userIdControl.setValidators(Validators.required); + } else { + userIdControl.clearValidators(); + } + + permissionsControl.updateValueAndValidity(); + userIdControl.updateValueAndValidity(); + + this.changeDetectorRef.markForCheck(); }); } @@ -43,10 +68,25 @@ export class CreateOrUpdateAccessDialog implements OnDestroy { public onSubmit() { const access: CreateAccessDto = { alias: this.accessForm.controls['alias'].value, - type: this.accessForm.controls['type'].value + granteeUserId: this.accessForm.controls['userId'].value, + permissions: [this.accessForm.controls['permissions'].value] }; - this.dialogRef.close({ access }); + this.dataService + .postAccess(access) + .pipe( + catchError((error) => { + if (error.status === StatusCodes.BAD_REQUEST) { + alert($localize`Oops! Could not grant access.`); + } + + return EMPTY; + }), + takeUntil(this.unsubscribeSubject) + ) + .subscribe(() => { + this.dialogRef.close({ access }); + }); } public ngOnDestroy() { diff --git a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html index c2afc51fb..863ac5e16 100644 --- a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html +++ b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -21,10 +21,38 @@ Type + Private Public
        + + @if (accessForm.controls['type'].value === 'PRIVATE') { +
        + + Permission + + Restricted view + @if(data?.user?.settings?.isExperimentalFeatures) { + View + } + + +
        +
        + + + Ghostfolio User ID + + + +
        + }
        diff --git a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/interfaces/interfaces.ts b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/interfaces/interfaces.ts index b7850fb38..f3b2f4964 100644 --- a/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/interfaces/interfaces.ts +++ b/apps/client/src/app/components/user-account-access/create-or-update-access-dialog/interfaces/interfaces.ts @@ -1,5 +1,6 @@ -import { Access } from '@ghostfolio/common/interfaces'; +import { Access, User } from '@ghostfolio/common/interfaces'; export interface CreateOrUpdateAccessDialogParams { access: Access; + user: User; } 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 1bd1d85d6..5426a77e7 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,3 +1,8 @@ +import { DataService } from '@ghostfolio/client/services/data.service'; +import { UserService } from '@ghostfolio/client/services/user/user.service'; +import { Access, User } from '@ghostfolio/common/interfaces'; +import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + import { ChangeDetectionStrategy, ChangeDetectorRef, @@ -7,11 +12,6 @@ import { } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { ActivatedRoute, Router } from '@angular/router'; -import { CreateAccessDto } from '@ghostfolio/api/app/access/create-access.dto'; -import { DataService } from '@ghostfolio/client/services/data.service'; -import { UserService } from '@ghostfolio/client/services/user/user.service'; -import { Access, User } from '@ghostfolio/common/interfaces'; -import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; @@ -105,32 +105,22 @@ export class UserAccountAccessComponent implements OnDestroy, OnInit { data: { access: { alias: '', - type: 'PUBLIC' - } + permissions: ['READ_RESTRICTED'], + type: 'PRIVATE' + }, + user: this.user }, height: this.deviceType === 'mobile' ? '97.5vh' : '80vh', width: this.deviceType === 'mobile' ? '100vw' : '50rem' }); - dialogRef - .afterClosed() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((data: any) => { - const access: CreateAccessDto = data?.access; - - if (access) { - this.dataService - .postAccess({ alias: access.alias }) - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe({ - next: () => { - this.update(); - } - }); - } + dialogRef.afterClosed().subscribe((access) => { + if (access) { + this.update(); + } - this.router.navigate(['.'], { relativeTo: this.route }); - }); + this.router.navigate(['.'], { relativeTo: this.route }); + }); } private update() { diff --git a/apps/client/src/app/components/user-account-access/user-account-access.html b/apps/client/src/app/components/user-account-access/user-account-access.html index 392337a83..89aadd524 100644 --- a/apps/client/src/app/components/user-account-access/user-account-access.html +++ b/apps/client/src/app/components/user-account-access/user-account-access.html @@ -6,13 +6,13 @@ + /> + />
        diff --git a/apps/client/src/app/components/user-account-access/user-account-access.module.ts b/apps/client/src/app/components/user-account-access/user-account-access.module.ts index fb3346ae0..c8d1cc578 100644 --- a/apps/client/src/app/components/user-account-access/user-account-access.module.ts +++ b/apps/client/src/app/components/user-account-access/user-account-access.module.ts @@ -1,10 +1,11 @@ +import { GfPortfolioAccessTableModule } from '@ghostfolio/client/components/access-table/access-table.module'; +import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; + import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatDialogModule } from '@angular/material/dialog'; import { RouterModule } from '@angular/router'; -import { GfPortfolioAccessTableModule } from '@ghostfolio/client/components/access-table/access-table.module'; -import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; import { GfCreateOrUpdateAccessDialogModule } from './create-or-update-access-dialog/create-or-update-access-dialog.module'; import { UserAccountAccessComponent } from './user-account-access.component'; 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 13d7495a9..bc9212b15 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,3 +1,9 @@ +import { DataService } from '@ghostfolio/client/services/data.service'; +import { UserService } from '@ghostfolio/client/services/user/user.service'; +import { getDateFormatString } from '@ghostfolio/common/helper'; +import { User } from '@ghostfolio/common/interfaces'; +import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + import { ChangeDetectionStrategy, ChangeDetectorRef, @@ -10,11 +16,6 @@ import { MatSnackBarRef, TextOnlySnackBar } from '@angular/material/snack-bar'; -import { DataService } from '@ghostfolio/client/services/data.service'; -import { UserService } from '@ghostfolio/client/services/user/user.service'; -import { getDateFormatString } from '@ghostfolio/common/helper'; -import { User } from '@ghostfolio/common/interfaces'; -import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { StripeService } from 'ngx-stripe'; import { EMPTY, Subject } from 'rxjs'; import { catchError, switchMap, takeUntil } from 'rxjs/operators'; diff --git a/apps/client/src/app/components/user-account-membership/user-account-membership.html b/apps/client/src/app/components/user-account-membership/user-account-membership.html index f2ead8c9e..eb832c6ee 100644 --- a/apps/client/src/app/components/user-account-membership/user-account-membership.html +++ b/apps/client/src/app/components/user-account-membership/user-account-membership.html @@ -5,7 +5,7 @@ + />
        @@ -43,8 +45,8 @@ + /> + + />
        @@ -46,6 +46,18 @@
        @@ -55,7 +67,7 @@ [value]="language" (selectionChange)="onChangeUserSetting('language', $event.value)" > - + Deutsch English - + {{ locale }} @@ -150,7 +162,7 @@ [checked]="user.settings.viewMode === 'ZEN'" [disabled]="!hasPermissionToUpdateViewMode" (change)="onViewModeChange($event)" - > + />
        @@ -165,7 +177,7 @@ [checked]="isWebAuthnEnabled === true" [disabled]="!hasPermissionToUpdateUserSettings" (change)="onSignInWithFingerprintChange($event)" - > + />
        + />
        -
        User ID
        +
        + Ghostfolio User ID +
        {{ user?.id }}
        diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.module.ts b/apps/client/src/app/components/user-account-settings/user-account-settings.module.ts index 7a40cf641..50d092a1e 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.module.ts +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.module.ts @@ -1,3 +1,5 @@ +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; @@ -7,7 +9,6 @@ import { MatFormFieldModule } from '@angular/material/form-field'; import { MatSelectModule } from '@angular/material/select'; import { MatSlideToggleModule } from '@angular/material/slide-toggle'; import { RouterModule } from '@angular/router'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { UserAccountSettingsComponent } from './user-account-settings.component'; diff --git a/apps/client/src/app/components/user-account-settings/user-account-settings.scss b/apps/client/src/app/components/user-account-settings/user-account-settings.scss index 1bcd1c65a..22555407a 100644 --- a/apps/client/src/app/components/user-account-settings/user-account-settings.scss +++ b/apps/client/src/app/components/user-account-settings/user-account-settings.scss @@ -2,6 +2,15 @@ color: rgb(var(--dark-primary-text)); display: block; + a { + color: rgba(var(--palette-primary-500), 1); + font-weight: 500; + + &:hover { + color: rgba(var(--palette-primary-300), 1); + } + } + .hint-text { font-size: 90%; line-height: 1.2; diff --git a/apps/client/src/app/components/world-map-chart/world-map-chart.component.html b/apps/client/src/app/components/world-map-chart/world-map-chart.component.html index 22abdeef6..8cd8f0a60 100644 --- a/apps/client/src/app/components/world-map-chart/world-map-chart.component.html +++ b/apps/client/src/app/components/world-map-chart/world-map-chart.component.html @@ -5,6 +5,6 @@ [theme]="{ width: '100%' }" -> +/>
        diff --git a/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts b/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts index 62774edf2..32375d7d2 100644 --- a/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts +++ b/apps/client/src/app/components/world-map-chart/world-map-chart.component.ts @@ -1,3 +1,5 @@ +import { getNumberFormatGroup } from '@ghostfolio/common/helper'; + import { ChangeDetectionStrategy, ChangeDetectorRef, @@ -7,7 +9,6 @@ import { OnDestroy, OnInit } from '@angular/core'; -import { getNumberFormatGroup } from '@ghostfolio/common/helper'; import svgMap from 'svgmap'; @Component({ diff --git a/apps/client/src/app/core/auth.guard.ts b/apps/client/src/app/core/auth.guard.ts index addd5c5e6..52d1e14ab 100644 --- a/apps/client/src/app/core/auth.guard.ts +++ b/apps/client/src/app/core/auth.guard.ts @@ -1,13 +1,14 @@ +import { paths } from '@ghostfolio/client/app-routing.module'; +import { DataService } from '@ghostfolio/client/services/data.service'; +import { SettingsStorageService } from '@ghostfolio/client/services/settings-storage.service'; +import { UserService } from '@ghostfolio/client/services/user/user.service'; + import { Injectable } from '@angular/core'; import { ActivatedRouteSnapshot, Router, RouterStateSnapshot } from '@angular/router'; -import { paths } from '@ghostfolio/client/app-routing.module'; -import { DataService } from '@ghostfolio/client/services/data.service'; -import { SettingsStorageService } from '@ghostfolio/client/services/settings-storage.service'; -import { UserService } from '@ghostfolio/client/services/user/user.service'; import { EMPTY } from 'rxjs'; import { catchError } from 'rxjs/operators'; diff --git a/apps/client/src/app/core/auth.interceptor.ts b/apps/client/src/app/core/auth.interceptor.ts index 22e2cce76..b0dbdf641 100644 --- a/apps/client/src/app/core/auth.interceptor.ts +++ b/apps/client/src/app/core/auth.interceptor.ts @@ -1,10 +1,3 @@ -import { HTTP_INTERCEPTORS, HttpEvent } from '@angular/common/http'; -import { - HttpHandler, - HttpInterceptor, - HttpRequest -} from '@angular/common/http'; -import { Injectable } from '@angular/core'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service'; import { @@ -12,6 +5,14 @@ import { HEADER_KEY_TIMEZONE, HEADER_KEY_TOKEN } from '@ghostfolio/common/config'; + +import { HTTP_INTERCEPTORS, HttpEvent } from '@angular/common/http'; +import { + HttpHandler, + HttpInterceptor, + HttpRequest +} from '@angular/common/http'; +import { Injectable } from '@angular/core'; import { Observable } from 'rxjs'; @Injectable() diff --git a/apps/client/src/app/core/http-response.interceptor.ts b/apps/client/src/app/core/http-response.interceptor.ts index 3beb2ad1d..193359848 100644 --- a/apps/client/src/app/core/http-response.interceptor.ts +++ b/apps/client/src/app/core/http-response.interceptor.ts @@ -1,3 +1,9 @@ +import { DataService } from '@ghostfolio/client/services/data.service'; +import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service'; +import { WebAuthnService } from '@ghostfolio/client/services/web-authn.service'; +import { InfoItem } from '@ghostfolio/common/interfaces'; +import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + import { HTTP_INTERCEPTORS, HttpErrorResponse, @@ -13,11 +19,6 @@ import { TextOnlySnackBar } from '@angular/material/snack-bar'; import { Router } from '@angular/router'; -import { DataService } from '@ghostfolio/client/services/data.service'; -import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service'; -import { WebAuthnService } from '@ghostfolio/client/services/web-authn.service'; -import { InfoItem } from '@ghostfolio/common/interfaces'; -import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { StatusCodes } from 'http-status-codes'; import { Observable, throwError } from 'rxjs'; import { catchError, tap } from 'rxjs/operators'; diff --git a/apps/client/src/app/core/layout.service.ts b/apps/client/src/app/core/layout.service.ts new file mode 100644 index 000000000..3ba7af91e --- /dev/null +++ b/apps/client/src/app/core/layout.service.ts @@ -0,0 +1,19 @@ +import { Injectable } from '@angular/core'; +import { Observable, Subject } from 'rxjs'; + +@Injectable({ + providedIn: 'root' +}) +export class LayoutService { + public shouldReloadContent$: Observable; + + private shouldReloadSubject = new Subject(); + + public constructor() { + this.shouldReloadContent$ = this.shouldReloadSubject.asObservable(); + } + + public getShouldReloadSubject() { + return this.shouldReloadSubject; + } +} diff --git a/apps/client/src/app/pages/about/about-page-routing.module.ts b/apps/client/src/app/pages/about/about-page-routing.module.ts index ac586e069..ac02124ae 100644 --- a/apps/client/src/app/pages/about/about-page-routing.module.ts +++ b/apps/client/src/app/pages/about/about-page-routing.module.ts @@ -1,9 +1,8 @@ -import * as path from 'path'; +import { paths } from '@ghostfolio/client/app-routing.module'; +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { paths } from '@ghostfolio/client/app-routing.module'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { AboutPageComponent } from './about-page.component'; diff --git a/apps/client/src/app/pages/about/about-page.component.ts b/apps/client/src/app/pages/about/about-page.component.ts index 807dd8066..b16dc4e06 100644 --- a/apps/client/src/app/pages/about/about-page.component.ts +++ b/apps/client/src/app/pages/about/about-page.component.ts @@ -1,8 +1,9 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; diff --git a/apps/client/src/app/pages/about/about-page.html b/apps/client/src/app/pages/about/about-page.html index d3fbca534..839e8114f 100644 --- a/apps/client/src/app/pages/about/about-page.html +++ b/apps/client/src/app/pages/about/about-page.html @@ -12,7 +12,7 @@ + />
        {{ tab.label }}
        diff --git a/apps/client/src/app/pages/about/about-page.module.ts b/apps/client/src/app/pages/about/about-page.module.ts index bd2a1bc80..161faaee7 100644 --- a/apps/client/src/app/pages/about/about-page.module.ts +++ b/apps/client/src/app/pages/about/about-page.module.ts @@ -8,7 +8,7 @@ import { AboutPageComponent } from './about-page.component'; @NgModule({ declarations: [AboutPageComponent], - imports: [CommonModule, MatTabsModule, AboutPageRoutingModule, RouterModule], + imports: [AboutPageRoutingModule, CommonModule, MatTabsModule, RouterModule], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class AboutPageModule {} diff --git a/apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts b/apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts index 873765f0e..2aaef8282 100644 --- a/apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts +++ b/apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { ChangelogPageComponent } from './changelog-page.component'; diff --git a/apps/client/src/app/pages/about/license/license-page-routing.module.ts b/apps/client/src/app/pages/about/license/license-page-routing.module.ts index 751d06540..928eeb0f0 100644 --- a/apps/client/src/app/pages/about/license/license-page-routing.module.ts +++ b/apps/client/src/app/pages/about/license/license-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { LicensePageComponent } from './license-page.component'; diff --git a/apps/client/src/app/pages/about/oss-friends/oss-friends-page-routing.module.ts b/apps/client/src/app/pages/about/oss-friends/oss-friends-page-routing.module.ts index 34aa528a5..08040419d 100644 --- a/apps/client/src/app/pages/about/oss-friends/oss-friends-page-routing.module.ts +++ b/apps/client/src/app/pages/about/oss-friends/oss-friends-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { OpenSourceSoftwareFriendsPageComponent } from './oss-friends-page.component'; diff --git a/apps/client/src/app/pages/about/oss-friends/oss-friends-page.html b/apps/client/src/app/pages/about/oss-friends/oss-friends-page.html index fab653145..f230679a7 100644 --- a/apps/client/src/app/pages/about/oss-friends/oss-friends-page.html +++ b/apps/client/src/app/pages/about/oss-friends/oss-friends-page.html @@ -10,10 +10,8 @@ >
        -
        + @for (ossFriend of ossFriends; track ossFriend) { + + }
        diff --git a/apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts b/apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts index 7713f3971..989dddc9d 100644 --- a/apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts +++ b/apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { AboutOverviewPageComponent } from './about-overview-page.component'; diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.component.ts b/apps/client/src/app/pages/about/overview/about-overview-page.component.ts index 4c15f73b0..c07db433a 100644 --- a/apps/client/src/app/pages/about/overview/about-overview-page.component.ts +++ b/apps/client/src/app/pages/about/overview/about-overview-page.component.ts @@ -1,8 +1,9 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; 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 { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; @@ -12,7 +13,6 @@ import { takeUntil } from 'rxjs/operators'; templateUrl: './about-overview-page.html' }) export class AboutOverviewPageComponent implements OnDestroy, OnInit { - public hasPermissionForBlog: boolean; public hasPermissionForStatistics: boolean; public hasPermissionForSubscription: boolean; public isLoggedIn: boolean; @@ -29,11 +29,6 @@ export class AboutOverviewPageComponent implements OnDestroy, OnInit { ) { const { globalPermissions } = this.dataService.fetchInfo(); - this.hasPermissionForBlog = hasPermission( - globalPermissions, - permissions.enableBlog - ); - this.hasPermissionForStatistics = hasPermission( globalPermissions, permissions.enableStatistics diff --git a/apps/client/src/app/pages/about/overview/about-overview-page.html b/apps/client/src/app/pages/about/overview/about-overview-page.html index fac002a3f..5b03acda5 100644 --- a/apps/client/src/app/pages/about/overview/about-overview-page.html +++ b/apps/client/src/app/pages/about/overview/about-overview-page.html @@ -86,7 +86,7 @@ mat-icon-button title="Send an e-mail" > - + - + - +

        -
        + -
        + @if (hasPermissionForSubscription) { + + }
        diff --git a/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts b/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts index 8eaa96329..eb8dca803 100644 --- a/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts +++ b/apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { PrivacyPolicyPageComponent } from './privacy-policy-page.component'; diff --git a/apps/client/src/app/pages/accounts/accounts-page-routing.module.ts b/apps/client/src/app/pages/accounts/accounts-page-routing.module.ts index 705c4449c..59c708006 100644 --- a/apps/client/src/app/pages/accounts/accounts-page-routing.module.ts +++ b/apps/client/src/app/pages/accounts/accounts-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { AccountsPageComponent } from './accounts-page.component'; 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 93d3ee181..64888e105 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,3 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { ActivatedRoute, Router } from '@angular/router'; import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto'; import { TransferBalanceDto } from '@ghostfolio/api/app/account/transfer-balance.dto'; import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto'; @@ -11,6 +8,10 @@ import { ImpersonationStorageService } from '@ghostfolio/client/services/imperso import { UserService } from '@ghostfolio/client/services/user/user.service'; import { User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { ActivatedRoute, Router } from '@angular/router'; import { Account as AccountModel } from '@prisma/client'; import { DeviceDetectorService } from 'ngx-device-detector'; import { EMPTY, Subject, Subscription } from 'rxjs'; diff --git a/apps/client/src/app/pages/accounts/accounts-page.html b/apps/client/src/app/pages/accounts/accounts-page.html index c67323b1a..d8bd01881 100644 --- a/apps/client/src/app/pages/accounts/accounts-page.html +++ b/apps/client/src/app/pages/accounts/accounts-page.html @@ -15,7 +15,7 @@ (accountDeleted)="onDeleteAccount($event)" (accountToUpdate)="onUpdateAccount($event)" (transferBalance)="onTransferBalance()" - > + />
        @@ -31,7 +31,7 @@ [queryParams]="{ createDialog: true }" [routerLink]="[]" > - + diff --git a/apps/client/src/app/pages/accounts/accounts-page.module.ts b/apps/client/src/app/pages/accounts/accounts-page.module.ts index 7de50983c..118aff532 100644 --- a/apps/client/src/app/pages/accounts/accounts-page.module.ts +++ b/apps/client/src/app/pages/accounts/accounts-page.module.ts @@ -1,9 +1,10 @@ +import { GfAccountDetailDialogModule } from '@ghostfolio/client/components/account-detail-dialog/account-detail-dialog.module'; +import { GfAccountsTableModule } from '@ghostfolio/client/components/accounts-table/accounts-table.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { RouterModule } from '@angular/router'; -import { GfAccountDetailDialogModule } from '@ghostfolio/client/components/account-detail-dialog/account-detail-dialog.module'; -import { GfAccountsTableModule } from '@ghostfolio/client/components/accounts-table/accounts-table.module'; import { AccountsPageRoutingModule } from './accounts-page-routing.module'; import { AccountsPageComponent } from './accounts-page.component'; diff --git a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts index 9e153d173..c97bbf113 100644 --- a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts +++ b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.component.ts @@ -1,3 +1,8 @@ +import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto'; +import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto'; +import { DataService } from '@ghostfolio/client/services/data.service'; +import { Currency } from '@ghostfolio/common/interfaces'; + import { ChangeDetectionStrategy, Component, @@ -12,10 +17,6 @@ import { Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto'; -import { UpdateAccountDto } from '@ghostfolio/api/app/account/update-account.dto'; -import { DataService } from '@ghostfolio/client/services/data.service'; -import { Currency } from '@ghostfolio/common/interfaces/currency.interface'; import { Platform } from '@prisma/client'; import { Observable, Subject } from 'rxjs'; import { map, startWith } from 'rxjs/operators'; diff --git a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html index 35074ec97..8a5081b34 100644 --- a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html +++ b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html @@ -4,8 +4,11 @@ (keyup.enter)="accountForm.valid && onSubmit()" (ngSubmit)="onSubmit()" > -

        Update account

        -

        Add account

        + @if (data.account.id) { +

        Update account

        + } @else { +

        Add account

        + }
        @@ -52,19 +55,19 @@ (keydown.enter)="$event.stopPropagation()" /> - + @for (platformEntry of filteredPlatforms | async; track platformEntry) + { + + /> {{ platformEntry.name }} + }
        @@ -85,12 +88,14 @@ >Exclude from Analysis
        -
        + @if (data.account.id) { +
        Account ID
        + }
        diff --git a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts index 2ccf56751..44d3b6847 100644 --- a/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts +++ b/apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.module.ts @@ -1,3 +1,6 @@ +import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; +import { GfCurrencySelectorModule } from '@ghostfolio/ui/currency-selector/currency-selector.module'; + import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; @@ -7,8 +10,6 @@ import { MatCheckboxModule } from '@angular/material/checkbox'; import { MatDialogModule } from '@angular/material/dialog'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; -import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; -import { GfCurrencySelectorModule } from '@ghostfolio/ui/currency-selector/currency-selector.module'; import { CreateOrUpdateAccountDialog } from './create-or-update-account-dialog.component'; diff --git a/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts b/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts index 8fc4e1379..60acd52b3 100644 --- a/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts +++ b/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.component.ts @@ -1,3 +1,5 @@ +import { TransferBalanceDto } from '@ghostfolio/api/app/account/transfer-balance.dto'; + import { ChangeDetectionStrategy, Component, @@ -12,7 +14,6 @@ import { Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { TransferBalanceDto } from '@ghostfolio/api/app/account/transfer-balance.dto'; import { Account } from '@prisma/client'; import { Subject } from 'rxjs'; diff --git a/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html b/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html index b18ba9984..d2e9a03c2 100644 --- a/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html +++ b/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html @@ -17,8 +17,7 @@ class="mr-1" [tooltip]="account.Platform?.name" [url]="account.Platform?.url" - >{{ account.name }} + />{{ account.name }}
        @@ -35,8 +34,7 @@ class="mr-1" [tooltip]="account.Platform?.name" [url]="account.Platform?.url" - >{{ account.name }} + />{{ account.name }} diff --git a/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.module.ts b/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.module.ts index ad559e28c..e0f1f574d 100644 --- a/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.module.ts +++ b/apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.module.ts @@ -1,3 +1,5 @@ +import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; + import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; @@ -6,7 +8,6 @@ import { MatDialogModule } from '@angular/material/dialog'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { MatSelectModule } from '@angular/material/select'; -import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; import { TransferBalanceDialog } from './transfer-balance-dialog.component'; diff --git a/apps/client/src/app/pages/admin/admin-page-routing.module.ts b/apps/client/src/app/pages/admin/admin-page-routing.module.ts index 23aa2f7d4..a6a69641c 100644 --- a/apps/client/src/app/pages/admin/admin-page-routing.module.ts +++ b/apps/client/src/app/pages/admin/admin-page-routing.module.ts @@ -1,5 +1,3 @@ -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; import { AdminJobsComponent } from '@ghostfolio/client/components/admin-jobs/admin-jobs.component'; import { AdminMarketDataComponent } from '@ghostfolio/client/components/admin-market-data/admin-market-data.component'; import { AdminOverviewComponent } from '@ghostfolio/client/components/admin-overview/admin-overview.component'; @@ -7,6 +5,9 @@ import { AdminSettingsComponent } from '@ghostfolio/client/components/admin-sett import { AdminUsersComponent } from '@ghostfolio/client/components/admin-users/admin-users.component'; import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + import { AdminPageComponent } from './admin-page.component'; const routes: Routes = [ @@ -18,7 +19,11 @@ const routes: Routes = [ component: AdminOverviewComponent, title: $localize`Admin Control` }, - { path: 'jobs', component: AdminJobsComponent, title: $localize`Jobs` }, + { + path: 'jobs', + component: AdminJobsComponent, + title: $localize`Job Queue` + }, { path: 'market-data', component: AdminMarketDataComponent, diff --git a/apps/client/src/app/pages/admin/admin-page.component.ts b/apps/client/src/app/pages/admin/admin-page.component.ts index 86be60725..8a1a9fdcc 100644 --- a/apps/client/src/app/pages/admin/admin-page.component.ts +++ b/apps/client/src/app/pages/admin/admin-page.component.ts @@ -1,5 +1,6 @@ -import { Component, OnDestroy, OnInit } from '@angular/core'; import { TabConfiguration } from '@ghostfolio/common/interfaces'; + +import { Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; @@ -38,7 +39,7 @@ export class AdminPageComponent implements OnDestroy, OnInit { }, { iconName: 'flash-outline', - label: $localize`Jobs`, + label: $localize`Job Queue`, path: ['/admin', 'jobs'] }, { diff --git a/apps/client/src/app/pages/admin/admin-page.html b/apps/client/src/app/pages/admin/admin-page.html index d3fbca534..839e8114f 100644 --- a/apps/client/src/app/pages/admin/admin-page.html +++ b/apps/client/src/app/pages/admin/admin-page.html @@ -12,7 +12,7 @@
        + />
        {{ tab.label }}
        diff --git a/apps/client/src/app/pages/admin/admin-page.module.ts b/apps/client/src/app/pages/admin/admin-page.module.ts index a54b143d4..2b986aa6c 100644 --- a/apps/client/src/app/pages/admin/admin-page.module.ts +++ b/apps/client/src/app/pages/admin/admin-page.module.ts @@ -1,6 +1,3 @@ -import { CommonModule } from '@angular/common'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatTabsModule } from '@angular/material/tabs'; import { GfAdminJobsModule } from '@ghostfolio/client/components/admin-jobs/admin-jobs.module'; import { GfAdminMarketDataModule } from '@ghostfolio/client/components/admin-market-data/admin-market-data.module'; import { GfAdminOverviewModule } from '@ghostfolio/client/components/admin-overview/admin-overview.module'; @@ -8,6 +5,10 @@ import { GfAdminSettingsModule } from '@ghostfolio/client/components/admin-setti import { GfAdminUsersModule } from '@ghostfolio/client/components/admin-users/admin-users.module'; import { CacheService } from '@ghostfolio/client/services/cache.service'; +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatTabsModule } from '@angular/material/tabs'; + import { AdminPageRoutingModule } from './admin-page-routing.module'; import { AdminPageComponent } from './admin-page.component'; diff --git a/apps/client/src/app/pages/auth/auth-page.component.ts b/apps/client/src/app/pages/auth/auth-page.component.ts index 1dc494773..2c70ea020 100644 --- a/apps/client/src/app/pages/auth/auth-page.component.ts +++ b/apps/client/src/app/pages/auth/auth-page.component.ts @@ -1,10 +1,11 @@ -import { Component, OnDestroy, OnInit } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; import { KEY_STAY_SIGNED_IN, SettingsStorageService } from '@ghostfolio/client/services/settings-storage.service'; import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service'; + +import { Component, OnDestroy, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; diff --git a/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts b/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts index bfb42f55c..ab117d0a3 100644 --- a/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts +++ b/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts @@ -1,7 +1,8 @@ +import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; + import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { RouterModule } from '@angular/router'; -import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; @Component({ host: { class: 'page' }, diff --git a/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html b/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html index 093d62f05..c121fd95f 100644 --- a/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html +++ b/apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.html @@ -20,8 +20,8 @@ + /> + annual plan for ambitious investors who need the full picture of their financial assets.

        diff --git a/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts b/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts index be354c55a..9f23f30ff 100644 --- a/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts +++ b/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts @@ -1,7 +1,8 @@ +import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; + import { Component } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { RouterModule } from '@angular/router'; -import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; @Component({ host: { class: 'page' }, diff --git a/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.html b/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.html index 352e0b5ce..e60aeda92 100644 --- a/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.html +++ b/apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.html @@ -21,8 +21,8 @@ + /> + annual plan with our exclusive Black Week deal. Elevate your financial strategy with the power of Ghostfolio designed to give you the full picture of your assets. diff --git a/apps/client/src/app/pages/blog/blog-page-routing.module.ts b/apps/client/src/app/pages/blog/blog-page-routing.module.ts index 487f53f02..47bf7cafc 100644 --- a/apps/client/src/app/pages/blog/blog-page-routing.module.ts +++ b/apps/client/src/app/pages/blog/blog-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { BlogPageComponent } from './blog-page.component'; diff --git a/apps/client/src/app/pages/blog/blog-page.component.ts b/apps/client/src/app/pages/blog/blog-page.component.ts index db5454fbf..531f94886 100644 --- a/apps/client/src/app/pages/blog/blog-page.component.ts +++ b/apps/client/src/app/pages/blog/blog-page.component.ts @@ -1,6 +1,7 @@ -import { Component, OnDestroy } from '@angular/core'; import { DataService } from '@ghostfolio/client/services/data.service'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { Component, OnDestroy } from '@angular/core'; import { Subject } from 'rxjs'; @Component({ diff --git a/apps/client/src/app/pages/blog/blog-page.html b/apps/client/src/app/pages/blog/blog-page.html index 70bf771e3..afde112d5 100644 --- a/apps/client/src/app/pages/blog/blog-page.html +++ b/apps/client/src/app/pages/blog/blog-page.html @@ -8,11 +8,8 @@ finance - + @if (hasPermissionForSubscription) { +
        @@ -29,13 +26,14 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + />
        + }
        @@ -55,7 +53,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + />
        @@ -79,7 +77,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - >
        + /> @@ -105,7 +103,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> @@ -131,7 +129,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> @@ -158,7 +156,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> @@ -184,7 +182,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> @@ -210,7 +208,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> @@ -236,7 +234,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> @@ -262,7 +260,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> @@ -288,18 +286,15 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> - + @if (hasPermissionForSubscription) { +
        @@ -316,13 +311,14 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + />
        + }
        @@ -340,7 +336,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + />
        @@ -364,7 +360,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> @@ -390,7 +386,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> @@ -416,7 +412,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> @@ -442,7 +438,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> @@ -466,7 +462,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> @@ -490,7 +486,7 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + /> diff --git a/apps/client/src/app/pages/demo/demo-page-routing.module.ts b/apps/client/src/app/pages/demo/demo-page-routing.module.ts index 8d817447e..e0b86fb4d 100644 --- a/apps/client/src/app/pages/demo/demo-page-routing.module.ts +++ b/apps/client/src/app/pages/demo/demo-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { DemoPageComponent } from './demo-page.component'; 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 c62ece50a..6515fd898 100644 --- a/apps/client/src/app/pages/demo/demo-page.component.ts +++ b/apps/client/src/app/pages/demo/demo-page.component.ts @@ -1,8 +1,9 @@ -import { Component, OnDestroy } from '@angular/core'; -import { Router } from '@angular/router'; import { DataService } from '@ghostfolio/client/services/data.service'; import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service'; import { InfoItem } from '@ghostfolio/common/interfaces'; + +import { Component, OnDestroy } from '@angular/core'; +import { Router } from '@angular/router'; import { Subject } from 'rxjs'; @Component({ diff --git a/apps/client/src/app/pages/faq/faq-page-routing.module.ts b/apps/client/src/app/pages/faq/faq-page-routing.module.ts index 11a3a9127..17c087834 100644 --- a/apps/client/src/app/pages/faq/faq-page-routing.module.ts +++ b/apps/client/src/app/pages/faq/faq-page-routing.module.ts @@ -1,12 +1,34 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { FaqPageComponent } from './faq-page.component'; const routes: Routes = [ { canActivate: [AuthGuard], + children: [ + { + path: '', + loadChildren: () => + import('./overview/faq-overview-page.module').then( + (m) => m.FaqOverviewPageModule + ) + }, + { + path: 'saas', + loadChildren: () => + import('./saas/saas-page.module').then((m) => m.SaasPageModule) + }, + { + path: 'self-hosting', + loadChildren: () => + import('./self-hosting/self-hosting-page.module').then( + (m) => m.SelfHostingPageModule + ) + } + ], component: FaqPageComponent, path: '', title: $localize`Frequently Asked Questions (FAQ)` diff --git a/apps/client/src/app/pages/faq/faq-page.component.ts b/apps/client/src/app/pages/faq/faq-page.component.ts index 0dc4007e3..0bbe1c904 100644 --- a/apps/client/src/app/pages/faq/faq-page.component.ts +++ b/apps/client/src/app/pages/faq/faq-page.component.ts @@ -1,38 +1,57 @@ -import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core'; -import { UserService } from '@ghostfolio/client/services/user/user.service'; -import { User } from '@ghostfolio/common/interfaces'; -import { Subject, takeUntil } from 'rxjs'; +import { DataService } from '@ghostfolio/client/services/data.service'; +import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; +import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { Component, OnDestroy, OnInit } from '@angular/core'; +import { DeviceDetectorService } from 'ngx-device-detector'; +import { Subject } from 'rxjs'; @Component({ - host: { class: 'page' }, + host: { class: 'page has-tabs' }, selector: 'gf-faq-page', styleUrls: ['./faq-page.scss'], templateUrl: './faq-page.html' }) -export class FaqPageComponent implements OnDestroy { - public routerLinkFeatures = ['/' + $localize`features`]; - public routerLinkMarkets = ['/' + $localize`markets`]; - public routerLinkPricing = ['/' + $localize`pricing`]; - public routerLinkRegister = ['/' + $localize`register`]; - public user: User; +export class FaqPageComponent implements OnDestroy, OnInit { + public deviceType: string; + public hasPermissionForSubscription: boolean; + public tabs: TabConfiguration[] = []; private unsubscribeSubject = new Subject(); public constructor( - private changeDetectorRef: ChangeDetectorRef, - private userService: UserService - ) {} + private dataService: DataService, + private deviceService: DeviceDetectorService + ) { + const { globalPermissions } = this.dataService.fetchInfo(); + + this.hasPermissionForSubscription = hasPermission( + globalPermissions, + permissions.enableSubscription + ); + + this.tabs = [ + { + iconName: 'reader-outline', + label: $localize`General`, + path: ['/' + $localize`faq`] + }, + { + iconName: 'cloudy-outline', + label: $localize`Cloud` + ' (SaaS)', + path: ['/' + $localize`faq`, 'saas'], + showCondition: this.hasPermissionForSubscription + }, + { + iconName: 'server-outline', + label: $localize`Self-Hosting`, + path: ['/' + $localize`faq`, $localize`self-hosting`] + } + ]; + } public ngOnInit() { - this.userService.stateChanged - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((state) => { - if (state?.user) { - this.user = state.user; - - this.changeDetectorRef.markForCheck(); - } - }); + this.deviceType = this.deviceService.getDeviceInfo().deviceType; } public ngOnDestroy() { diff --git a/apps/client/src/app/pages/faq/faq-page.html b/apps/client/src/app/pages/faq/faq-page.html index 93af2c75e..839e8114f 100644 --- a/apps/client/src/app/pages/faq/faq-page.html +++ b/apps/client/src/app/pages/faq/faq-page.html @@ -1,283 +1,29 @@ -
        -
        -
        -

        - Frequently Asked Questions (FAQ) -

        -

        - Find quick answers to commonly asked questions about Ghostfolio in our - Frequently Asked Questions (FAQ) section. Discover what Ghostfolio is, - explore its features, and learn about our privacy practices. Get all the - information you need in one place. -

        - - - What is Ghostfolio? - - - Ghostfolio is a lightweight, open source wealth management application - for individuals to keep track of their net worth. The software - empowers you to make solid, data-driven investment decisions. - - - - - What assets can I track with Ghostfolio? - - - With Ghostfolio, you can keep track of various assets like stocks, - ETFs, bonds, cryptocurrencies and commodities. - - - - - What else is included in Ghostfolio? - - Please find a feature overview to manage your wealth - here. - - - - - How do I start? - - You can sign up via the “Get Started” button at the top of the page. You have multiple options to join - Ghostfolio: Create an account with a security token, using - Internet Identity - or Google Sign. We will guide you to set up your portfolio. - - - - - Will you spam me with emails once I sign up? - - No, we do not even collect your email address, so you will not receive - any spam emails from us. - - - - - Can I use Ghostfolio anonymously? - - Yes, the authentication systems (via security token or - Internet Identity) enable you to sign in securely and anonymously to Ghostfolio. There - is no need for an e-mail address, phone number, or a username. - - - - - How can Ghostfolio be free? - This project is driven by the efforts of contributors from around the - world. The - source code is - fully available as open source software (OSS). Thanks to our generous - Ghostfolio Premium users and - sponsors we have - the ability to run a free, limited plan for novice - investors. - - - - Is it really free? - Yes, it is! Our - pricing page details - everything you get for free. - - - - Do you monetize or sell my financial data? - No, we value your privacy. We do not sell or share your financial - data with any third parties. - - - - What is your business model? - By offering - Ghostfolio Premium, a - subscription plan with a managed hosting service and enhanced - features, we fund our business while providing added value to our - users. - - - - What is Ghostfolio Premium? - Ghostfolio Premium is a fully - managed Ghostfolio cloud offering for ambitious investors. Revenue is - used to cover the costs of the hosting infrastructure and to fund - ongoing development. It is the Open Source code base with some extras - like the markets overview and - a professional data provider. - - - - Can I start with a trial version? - Yes, you can try - Ghostfolio Premium by signing - up for Ghostfolio and applying for a trial (see “My Ghostfolio”). It - is easy, free and there is no commitment. You can stop using it at any - time. - - - - How can I get a student discount for Ghostfolio - Premium? - - Request your student discount - here with - your university e-mail address. - - - - Which devices are supported? - - Ghostfolio works in every modern web browser on smartphones, tablets - and desktop computers. For Android users, there is a dedicated - Ghostfolio app available in the - Google Play Store. - - - - I cannot find my broker in the list of platforms. What can I - do? - - - Please send an e-mail with the web address of your broker to - hi@ghostfol.io and we are - happy to add it. - - - - - Ghostfolio sounds cool, how can I get involved? - - Any support for Ghostfolio is welcome. Be it with a - Ghostfolio Premium - subscription to finance the hosting infrastructure, a positive rating - in the - Google Play Store, a star on - GitHub, - feedback, bug reports, feature requests and of course contributions! - You can reach us via Ghostfolio - Slack - community, - @ghostfolio_, - hi@ghostfol.io - or - GitHub. - - - - Got any other questions? - - Please join the Ghostfolio - Slack community, post to - @ghostfolio_, send an e-mail to - hi@ghostfol.io - or start a discussion at - GitHub. - -
        -
        -
        + + + + + diff --git a/apps/client/src/app/pages/faq/faq-page.module.ts b/apps/client/src/app/pages/faq/faq-page.module.ts index b411437eb..026fe9e71 100644 --- a/apps/client/src/app/pages/faq/faq-page.module.ts +++ b/apps/client/src/app/pages/faq/faq-page.module.ts @@ -1,13 +1,14 @@ import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatCardModule } from '@angular/material/card'; +import { MatTabsModule } from '@angular/material/tabs'; +import { RouterModule } from '@angular/router'; import { FaqPageRoutingModule } from './faq-page-routing.module'; import { FaqPageComponent } from './faq-page.component'; @NgModule({ declarations: [FaqPageComponent], - imports: [CommonModule, FaqPageRoutingModule, MatCardModule], + imports: [CommonModule, FaqPageRoutingModule, MatTabsModule, RouterModule], schemas: [CUSTOM_ELEMENTS_SCHEMA] }) export class FaqPageModule {} diff --git a/apps/client/src/app/pages/faq/faq-page.scss b/apps/client/src/app/pages/faq/faq-page.scss index 75bda52c9..e87d9a05b 100644 --- a/apps/client/src/app/pages/faq/faq-page.scss +++ b/apps/client/src/app/pages/faq/faq-page.scss @@ -1,12 +1,7 @@ :host { - display: block; - - a { - color: rgba(var(--palette-primary-500), 1); - font-weight: 500; + color: rgb(var(--dark-primary-text)); +} - &:hover { - color: rgba(var(--palette-primary-300), 1); - } - } +:host-context(.is-dark-theme) { + color: rgb(var(--light-primary-text)); } diff --git a/apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts b/apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts new file mode 100644 index 000000000..78a466e70 --- /dev/null +++ b/apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts @@ -0,0 +1,21 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { FaqOverviewPageComponent } from './faq-overview-page.component'; + +const routes: Routes = [ + { + canActivate: [AuthGuard], + component: FaqOverviewPageComponent, + path: '', + title: $localize`Frequently Asked Questions (FAQ)` + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class FaqOverviewPageRoutingModule {} diff --git a/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts b/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts new file mode 100644 index 000000000..f9abb8824 --- /dev/null +++ b/apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts @@ -0,0 +1,40 @@ +import { UserService } from '@ghostfolio/client/services/user/user.service'; +import { User } from '@ghostfolio/common/interfaces'; + +import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core'; +import { Subject, takeUntil } from 'rxjs'; + +@Component({ + host: { class: 'page' }, + selector: 'gf-faq-overview-page', + styleUrls: ['./faq-overview-page.scss'], + templateUrl: './faq-overview-page.html' +}) +export class FaqOverviewPageComponent implements OnDestroy { + public routerLinkFeatures = ['/' + $localize`features`]; + public user: User; + + private unsubscribeSubject = new Subject(); + + public constructor( + private changeDetectorRef: ChangeDetectorRef, + private userService: UserService + ) {} + + public ngOnInit() { + this.userService.stateChanged + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe((state) => { + if (state?.user) { + this.user = state.user; + + this.changeDetectorRef.markForCheck(); + } + }); + } + + public ngOnDestroy() { + this.unsubscribeSubject.next(); + this.unsubscribeSubject.complete(); + } +} diff --git a/apps/client/src/app/pages/faq/overview/faq-overview-page.html b/apps/client/src/app/pages/faq/overview/faq-overview-page.html new file mode 100644 index 000000000..97c2067d0 --- /dev/null +++ b/apps/client/src/app/pages/faq/overview/faq-overview-page.html @@ -0,0 +1,172 @@ +
        +
        +
        +

        + Frequently Asked Questions (FAQ) +

        +

        + Find quick answers to commonly asked questions about Ghostfolio in our + Frequently Asked Questions (FAQ) section. Discover what Ghostfolio is, + explore its features, and learn about our privacy practices. Get all the + information you need in one place. +

        + + + What is Ghostfolio? + + + Ghostfolio is a lightweight, open source wealth management application + for individuals to keep track of their net worth. The software + empowers you to make solid, data-driven investment decisions. + + + + + What assets can I track with Ghostfolio? + + + With Ghostfolio, you can keep track of various assets like stocks, + ETFs, bonds, cryptocurrencies and commodities. + + + + + What else is included in Ghostfolio? + + Please find a feature overview to manage your wealth + here. + + + + + Can I use Ghostfolio anonymously? + + Yes, the authentication system via security token enables you to sign + in securely and anonymously to Ghostfolio. There is no need for an + e-mail address, phone number, or a username. + + + + + How can Ghostfolio be free? + This project is driven by the efforts of contributors from around the + world. The + source code is + fully available as open source software (OSS). Thanks to our generous + Ghostfolio Premium users + and sponsors we + have the ability to run a free, limited plan for novice + investors. + + + + Do you monetize or sell my financial data? + No, we value your privacy. We do not sell or share your financial + data with any third parties. + + + + What is your business model? + By offering + Ghostfolio Premium, a + subscription plan with a managed hosting service and enhanced + features, we fund our business while providing added value to our + users. + + + + Ghostfolio sounds cool, how can I get involved? + + Any support for Ghostfolio is welcome. Be it with a + Ghostfolio Premium + subscription to finance the hosting infrastructure, a positive rating + in the + Google Play Store, a star on + GitHub, + feedback, bug reports, feature requests and of course contributions! + You can reach us via Ghostfolio + Slack + community, + @ghostfolio_, + hi@ghostfol.io + or + GitHub. + + + + Got any other questions? + + Please join the Ghostfolio + Slack community, post to + @ghostfolio_, send an e-mail to + hi@ghostfol.io + or start a discussion at + GitHub. + +
        +
        +
        diff --git a/apps/client/src/app/pages/faq/overview/faq-overview-page.module.ts b/apps/client/src/app/pages/faq/overview/faq-overview-page.module.ts new file mode 100644 index 000000000..1f26d623a --- /dev/null +++ b/apps/client/src/app/pages/faq/overview/faq-overview-page.module.ts @@ -0,0 +1,13 @@ +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatCardModule } from '@angular/material/card'; + +import { FaqOverviewPageRoutingModule } from './faq-overview-page-routing.module'; +import { FaqOverviewPageComponent } from './faq-overview-page.component'; + +@NgModule({ + declarations: [FaqOverviewPageComponent], + imports: [CommonModule, FaqOverviewPageRoutingModule, MatCardModule], + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) +export class FaqOverviewPageModule {} diff --git a/apps/client/src/app/pages/faq/overview/faq-overview-page.scss b/apps/client/src/app/pages/faq/overview/faq-overview-page.scss new file mode 100644 index 000000000..75bda52c9 --- /dev/null +++ b/apps/client/src/app/pages/faq/overview/faq-overview-page.scss @@ -0,0 +1,12 @@ +:host { + display: block; + + a { + color: rgba(var(--palette-primary-500), 1); + font-weight: 500; + + &:hover { + color: rgba(var(--palette-primary-300), 1); + } + } +} diff --git a/apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts b/apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts new file mode 100644 index 000000000..4c4c3d62c --- /dev/null +++ b/apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts @@ -0,0 +1,21 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { SaasPageComponent } from './saas-page.component'; + +const routes: Routes = [ + { + canActivate: [AuthGuard], + component: SaasPageComponent, + path: '', + title: $localize`Cloud` + ' (SaaS) – ' + $localize`FAQ` + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class SaasPageRoutingModule {} diff --git a/apps/client/src/app/pages/faq/saas/saas-page.component.ts b/apps/client/src/app/pages/faq/saas/saas-page.component.ts new file mode 100644 index 000000000..b06a7dbd1 --- /dev/null +++ b/apps/client/src/app/pages/faq/saas/saas-page.component.ts @@ -0,0 +1,42 @@ +import { UserService } from '@ghostfolio/client/services/user/user.service'; +import { User } from '@ghostfolio/common/interfaces'; + +import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core'; +import { Subject, takeUntil } from 'rxjs'; + +@Component({ + host: { class: 'page' }, + selector: 'gf-saas-page', + styleUrls: ['./saas-page.scss'], + templateUrl: './saas-page.html' +}) +export class SaasPageComponent implements OnDestroy { + public routerLinkMarkets = ['/' + $localize`markets`]; + public routerLinkPricing = ['/' + $localize`pricing`]; + public routerLinkRegister = ['/' + $localize`register`]; + public user: User; + + private unsubscribeSubject = new Subject(); + + public constructor( + private changeDetectorRef: ChangeDetectorRef, + private userService: UserService + ) {} + + public ngOnInit() { + this.userService.stateChanged + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe((state) => { + if (state?.user) { + this.user = state.user; + + this.changeDetectorRef.markForCheck(); + } + }); + } + + public ngOnDestroy() { + this.unsubscribeSubject.next(); + this.unsubscribeSubject.complete(); + } +} diff --git a/apps/client/src/app/pages/faq/saas/saas-page.html b/apps/client/src/app/pages/faq/saas/saas-page.html new file mode 100644 index 000000000..f834e1f6f --- /dev/null +++ b/apps/client/src/app/pages/faq/saas/saas-page.html @@ -0,0 +1,162 @@ +
        +
        +
        +

        + Frequently Asked Questions (FAQ) +

        +

        + Find quick answers to commonly asked questions about the fully managed + Ghostfolio cloud offering in our Frequently Asked Questions (FAQ) + section. +

        + + + How do I start? + + + You can sign up via the “Get Started” button at the top of the page. You have multiple options to join + Ghostfolio: Create an account with a security token or + Google Sign. We will guide you to set up your portfolio. + + + + + Will you spam me with emails once I sign up? + + No, we do not even collect your email address, so you will not receive + any spam emails from us. + + + + + Is it really free? + Yes, it is! Our + pricing page details + everything you get for free. + + + + What is Ghostfolio Premium? + Ghostfolio Premium is a fully + managed Ghostfolio cloud offering for ambitious investors. Revenue is + used to cover the costs of the hosting infrastructure and to fund + ongoing development. It is the Open Source code base with some extras + like the markets overview and + a professional data provider. + + + + Can I start with a trial version? + Yes, you can try + Ghostfolio Premium by signing + up for Ghostfolio and applying for a trial (see “My Ghostfolio”). It + is easy, free and there is no commitment. You can stop using it at any + time. + + + + How can I get a student discount for Ghostfolio + Premium? + + Request your student discount + here with + your university e-mail address. + + + + Does the Ghostfolio Premium subscription renew + automatically? + + No, Ghostfolio Premium does + not include auto-renewal. Upon expiration, you can choose whether to + start a new subscription. + + + + I cannot find my broker in the list of platforms. What can I + do? + + + Please send an e-mail with the web address of your broker to + hi@ghostfol.io and we are + happy to add it. + + + + + Which devices are supported? + + Ghostfolio works in every modern web browser on smartphones, tablets + and desktop computers. For Android users of the managed cloud + offering, there is a dedicated Ghostfolio app available in the + Google Play Store. + + + + Got any other questions? + + Please join the Ghostfolio + Slack community, post to + @ghostfolio_, send an e-mail to + hi@ghostfol.io + or start a discussion at + GitHub. + +
        +
        +
        diff --git a/apps/client/src/app/pages/faq/saas/saas-page.module.ts b/apps/client/src/app/pages/faq/saas/saas-page.module.ts new file mode 100644 index 000000000..4ddcf9d24 --- /dev/null +++ b/apps/client/src/app/pages/faq/saas/saas-page.module.ts @@ -0,0 +1,13 @@ +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatCardModule } from '@angular/material/card'; + +import { SaasPageRoutingModule } from './saas-page-routing.module'; +import { SaasPageComponent } from './saas-page.component'; + +@NgModule({ + declarations: [SaasPageComponent], + imports: [CommonModule, MatCardModule, SaasPageRoutingModule], + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) +export class SaasPageModule {} diff --git a/apps/client/src/app/pages/faq/saas/saas-page.scss b/apps/client/src/app/pages/faq/saas/saas-page.scss new file mode 100644 index 000000000..75bda52c9 --- /dev/null +++ b/apps/client/src/app/pages/faq/saas/saas-page.scss @@ -0,0 +1,12 @@ +:host { + display: block; + + a { + color: rgba(var(--palette-primary-500), 1); + font-weight: 500; + + &:hover { + color: rgba(var(--palette-primary-300), 1); + } + } +} diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts new file mode 100644 index 000000000..3879f7dbb --- /dev/null +++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts @@ -0,0 +1,21 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + +import { SelfHostingPageComponent } from './self-hosting-page.component'; + +const routes: Routes = [ + { + canActivate: [AuthGuard], + component: SelfHostingPageComponent, + path: '', + title: $localize`Self-Hosting` + ' – ' + $localize`FAQ` + } +]; + +@NgModule({ + imports: [RouterModule.forChild(routes)], + exports: [RouterModule] +}) +export class SelfHostingPageRoutingModule {} diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts new file mode 100644 index 000000000..b454020e1 --- /dev/null +++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.component.ts @@ -0,0 +1,21 @@ +import { Component, OnDestroy } from '@angular/core'; +import { Subject } from 'rxjs'; + +@Component({ + host: { class: 'page' }, + selector: 'gf-self-hosting-page', + styleUrls: ['./self-hosting-page.scss'], + templateUrl: './self-hosting-page.html' +}) +export class SelfHostingPageComponent implements OnDestroy { + private unsubscribeSubject = new Subject(); + + public constructor() {} + + public ngOnInit() {} + + public ngOnDestroy() { + this.unsubscribeSubject.next(); + this.unsubscribeSubject.complete(); + } +} diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html new file mode 100644 index 000000000..28a4d9b27 --- /dev/null +++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html @@ -0,0 +1,56 @@ +
        +
        +
        +

        + Frequently Asked Questions (FAQ) +

        +

        + Find quick answers to commonly asked questions about self-hosting + Ghostfolio in our Frequently Asked Questions (FAQ) section. +

        + + + How do I start? + + + If you prefer to run Ghostfolio on your own infrastructure, please + find the source code and further instructions on + GitHub. + + + + + Which devices are supported? + + Ghostfolio works in every modern web browser on smartphones, tablets + and desktop computers. + + + + Got any other questions? + + Please join the Ghostfolio + Slack community, post to + @ghostfolio_ + or start a discussion at + GitHub. + +
        +
        +
        diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.module.ts b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.module.ts new file mode 100644 index 000000000..65f9969a3 --- /dev/null +++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.module.ts @@ -0,0 +1,13 @@ +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatCardModule } from '@angular/material/card'; + +import { SelfHostingPageRoutingModule } from './self-hosting-page-routing.module'; +import { SelfHostingPageComponent } from './self-hosting-page.component'; + +@NgModule({ + declarations: [SelfHostingPageComponent], + imports: [CommonModule, MatCardModule, SelfHostingPageRoutingModule], + schemas: [CUSTOM_ELEMENTS_SCHEMA] +}) +export class SelfHostingPageModule {} diff --git a/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.scss b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.scss new file mode 100644 index 000000000..75bda52c9 --- /dev/null +++ b/apps/client/src/app/pages/faq/self-hosting/self-hosting-page.scss @@ -0,0 +1,12 @@ +:host { + display: block; + + a { + color: rgba(var(--palette-primary-500), 1); + font-weight: 500; + + &:hover { + color: rgba(var(--palette-primary-300), 1); + } + } +} diff --git a/apps/client/src/app/pages/features/features-page-routing.module.ts b/apps/client/src/app/pages/features/features-page-routing.module.ts index 1723fd4e7..d6691acbd 100644 --- a/apps/client/src/app/pages/features/features-page-routing.module.ts +++ b/apps/client/src/app/pages/features/features-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { FeaturesPageComponent } from './features-page.component'; diff --git a/apps/client/src/app/pages/features/features-page.component.ts b/apps/client/src/app/pages/features/features-page.component.ts index 3ec35c91d..822a54b7b 100644 --- a/apps/client/src/app/pages/features/features-page.component.ts +++ b/apps/client/src/app/pages/features/features-page.component.ts @@ -1,8 +1,9 @@ -import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core'; import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { InfoItem, User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { ChangeDetectorRef, Component, OnDestroy } from '@angular/core'; import { Subject, takeUntil } from 'rxjs'; @Component({ diff --git a/apps/client/src/app/pages/features/features-page.html b/apps/client/src/app/pages/features/features-page.html index 5ea587c9b..8eed72289 100644 --- a/apps/client/src/app/pages/features/features-page.html +++ b/apps/client/src/app/pages/features/features-page.html @@ -139,10 +139,9 @@

        Portfolio Calculations - + @if (hasPermissionForSubscription) { + + }

        Check the rate of return of your portfolio for @@ -159,10 +158,9 @@

        Portfolio Allocations - + @if (hasPermissionForSubscription) { + + }

        Check the allocations of your portfolio by account, asset @@ -198,16 +196,14 @@

        -
        + @if (hasPermissionForSubscription) { + - diff --git a/apps/client/src/app/pages/features/features-page.module.ts b/apps/client/src/app/pages/features/features-page.module.ts index 9c90ccc00..ede263d94 100644 --- a/apps/client/src/app/pages/features/features-page.module.ts +++ b/apps/client/src/app/pages/features/features-page.module.ts @@ -1,8 +1,9 @@ +import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; -import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; import { FeaturesPageRoutingModule } from './features-page-routing.module'; import { FeaturesPageComponent } from './features-page.component'; diff --git a/apps/client/src/app/pages/home/home-page-routing.module.ts b/apps/client/src/app/pages/home/home-page-routing.module.ts index 347bfc567..bccfc2f57 100644 --- a/apps/client/src/app/pages/home/home-page-routing.module.ts +++ b/apps/client/src/app/pages/home/home-page-routing.module.ts @@ -1,11 +1,12 @@ -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; import { HomeHoldingsComponent } from '@ghostfolio/client/components/home-holdings/home-holdings.component'; import { HomeMarketComponent } from '@ghostfolio/client/components/home-market/home-market.component'; import { HomeOverviewComponent } from '@ghostfolio/client/components/home-overview/home-overview.component'; import { HomeSummaryComponent } from '@ghostfolio/client/components/home-summary/home-summary.component'; import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + import { HomePageComponent } from './home-page.component'; const routes: Routes = [ diff --git a/apps/client/src/app/pages/home/home-page.component.ts b/apps/client/src/app/pages/home/home-page.component.ts index fea8e9ac3..3a6a0cb26 100644 --- a/apps/client/src/app/pages/home/home-page.component.ts +++ b/apps/client/src/app/pages/home/home-page.component.ts @@ -1,6 +1,7 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; diff --git a/apps/client/src/app/pages/home/home-page.html b/apps/client/src/app/pages/home/home-page.html index d3fbca534..839e8114f 100644 --- a/apps/client/src/app/pages/home/home-page.html +++ b/apps/client/src/app/pages/home/home-page.html @@ -12,7 +12,7 @@ + />
        {{ tab.label }}
        diff --git a/apps/client/src/app/pages/home/home-page.module.ts b/apps/client/src/app/pages/home/home-page.module.ts index 3493a2855..045cfa8c0 100644 --- a/apps/client/src/app/pages/home/home-page.module.ts +++ b/apps/client/src/app/pages/home/home-page.module.ts @@ -1,12 +1,13 @@ -import { CommonModule } from '@angular/common'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatTabsModule } from '@angular/material/tabs'; -import { RouterModule } from '@angular/router'; import { GfHomeHoldingsModule } from '@ghostfolio/client/components/home-holdings/home-holdings.module'; import { GfHomeMarketModule } from '@ghostfolio/client/components/home-market/home-market.module'; import { GfHomeOverviewModule } from '@ghostfolio/client/components/home-overview/home-overview.module'; import { GfHomeSummaryModule } from '@ghostfolio/client/components/home-summary/home-summary.module'; +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatTabsModule } from '@angular/material/tabs'; +import { RouterModule } from '@angular/router'; + import { HomePageRoutingModule } from './home-page-routing.module'; import { HomePageComponent } from './home-page.component'; diff --git a/apps/client/src/app/pages/i18n/i18n-page-routing.module.ts b/apps/client/src/app/pages/i18n/i18n-page-routing.module.ts index 9965121ca..d268ddba0 100644 --- a/apps/client/src/app/pages/i18n/i18n-page-routing.module.ts +++ b/apps/client/src/app/pages/i18n/i18n-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { I18nPageComponent } from './i18n-page.component'; diff --git a/apps/client/src/app/pages/landing/landing-page-routing.module.ts b/apps/client/src/app/pages/landing/landing-page-routing.module.ts index 48eb070d3..0a8ac146d 100644 --- a/apps/client/src/app/pages/landing/landing-page-routing.module.ts +++ b/apps/client/src/app/pages/landing/landing-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { LandingPageComponent } from './landing-page.component'; diff --git a/apps/client/src/app/pages/landing/landing-page.component.ts b/apps/client/src/app/pages/landing/landing-page.component.ts index fddd0bb6d..ca8c0b420 100644 --- a/apps/client/src/app/pages/landing/landing-page.component.ts +++ b/apps/client/src/app/pages/landing/landing-page.component.ts @@ -1,7 +1,8 @@ -import { Component, OnDestroy, OnInit } from '@angular/core'; import { DataService } from '@ghostfolio/client/services/data.service'; import { Statistics } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { Component, OnDestroy, OnInit } from '@angular/core'; import { format } from 'date-fns'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; diff --git a/apps/client/src/app/pages/landing/landing-page.html b/apps/client/src/app/pages/landing/landing-page.html index d3ec85f5f..b54e19633 100644 --- a/apps/client/src/app/pages/landing/landing-page.html +++ b/apps/client/src/app/pages/landing/landing-page.html @@ -328,11 +328,7 @@
        - +
        {{ testimonial.quote }}
        @@ -361,10 +357,7 @@
        - +
        @@ -450,7 +443,7 @@
        - +
        Wealth Management Software
        diff --git a/apps/client/src/app/pages/landing/landing-page.module.ts b/apps/client/src/app/pages/landing/landing-page.module.ts index 4357f52fc..ef1d3d0ac 100644 --- a/apps/client/src/app/pages/landing/landing-page.module.ts +++ b/apps/client/src/app/pages/landing/landing-page.module.ts @@ -1,12 +1,13 @@ +import { GfWorldMapChartModule } from '@ghostfolio/client/components/world-map-chart/world-map-chart.module'; +import { GfCarouselModule } from '@ghostfolio/ui/carousel'; +import { GfLogoModule } from '@ghostfolio/ui/logo'; +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; import { RouterModule } from '@angular/router'; -import { GfWorldMapChartModule } from '@ghostfolio/client/components/world-map-chart/world-map-chart.module'; -import { GfCarouselModule } from '@ghostfolio/ui/carousel'; -import { GfLogoModule } from '@ghostfolio/ui/logo'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { LandingPageRoutingModule } from './landing-page-routing.module'; import { LandingPageComponent } from './landing-page.component'; diff --git a/apps/client/src/app/pages/markets/markets-page-routing.module.ts b/apps/client/src/app/pages/markets/markets-page-routing.module.ts index ba6b6bb82..6501d58b9 100644 --- a/apps/client/src/app/pages/markets/markets-page-routing.module.ts +++ b/apps/client/src/app/pages/markets/markets-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { MarketsPageComponent } from './markets-page.component'; diff --git a/apps/client/src/app/pages/markets/markets-page.html b/apps/client/src/app/pages/markets/markets-page.html index b52b89cf9..16457b8cd 100644 --- a/apps/client/src/app/pages/markets/markets-page.html +++ b/apps/client/src/app/pages/markets/markets-page.html @@ -1,7 +1,7 @@
        - +
        diff --git a/apps/client/src/app/pages/markets/markets-page.module.ts b/apps/client/src/app/pages/markets/markets-page.module.ts index e61c7ccfe..cabb078bc 100644 --- a/apps/client/src/app/pages/markets/markets-page.module.ts +++ b/apps/client/src/app/pages/markets/markets-page.module.ts @@ -1,6 +1,7 @@ +import { GfHomeMarketModule } from '@ghostfolio/client/components/home-market/home-market.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { GfHomeMarketModule } from '@ghostfolio/client/components/home-market/home-market.module'; import { MarketsPageRoutingModule } from './markets-page-routing.module'; import { MarketsPageComponent } from './markets-page.component'; diff --git a/apps/client/src/app/pages/open/open-page-routing.module.ts b/apps/client/src/app/pages/open/open-page-routing.module.ts index 4dadc912e..b9db4ab10 100644 --- a/apps/client/src/app/pages/open/open-page-routing.module.ts +++ b/apps/client/src/app/pages/open/open-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { OpenPageComponent } from './open-page.component'; diff --git a/apps/client/src/app/pages/open/open-page.component.ts b/apps/client/src/app/pages/open/open-page.component.ts index cf438a816..c7faaa4e2 100644 --- a/apps/client/src/app/pages/open/open-page.component.ts +++ b/apps/client/src/app/pages/open/open-page.component.ts @@ -1,7 +1,8 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DataService } from '@ghostfolio/client/services/data.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { Statistics, User } from '@ghostfolio/common/interfaces'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { Subject, takeUntil } from 'rxjs'; @Component({ diff --git a/apps/client/src/app/pages/open/open-page.module.ts b/apps/client/src/app/pages/open/open-page.module.ts index 6a9c988d6..ba8a94831 100644 --- a/apps/client/src/app/pages/open/open-page.module.ts +++ b/apps/client/src/app/pages/open/open-page.module.ts @@ -1,7 +1,8 @@ +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatCardModule } from '@angular/material/card'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { OpenPageRoutingModule } from './open-page-routing.module'; import { OpenPageComponent } from './open-page.component'; diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts b/apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts index b1a3e1e4c..00962d563 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { ActivitiesPageComponent } from './activities-page.component'; diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts index 5d3468319..2859b98ea 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.component.ts @@ -1,9 +1,3 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { PageEvent } from '@angular/material/paginator'; -import { Sort, SortDirection } from '@angular/material/sort'; -import { MatTableDataSource } from '@angular/material/table'; -import { ActivatedRoute, Router } from '@angular/router'; import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto'; @@ -17,6 +11,13 @@ import { DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config'; import { downloadAsFile } from '@ghostfolio/common/helper'; import { User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { PageEvent } from '@angular/material/paginator'; +import { Sort, SortDirection } from '@angular/material/sort'; +import { MatTableDataSource } from '@angular/material/table'; +import { ActivatedRoute, Router } from '@angular/router'; import { DataSource, Order as OrderModel } from '@prisma/client'; import { format, parseISO } from 'date-fns'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -111,6 +112,8 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { if (state?.user) { this.updateUser(state.user); + this.fetchActivities(); + this.changeDetectorRef.markForCheck(); } }); @@ -119,42 +122,25 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { } public fetchActivities() { - if (this.user?.settings?.isExperimentalFeatures === true) { - this.dataService - .fetchActivities({ - skip: this.pageIndex * this.pageSize, - sortColumn: this.sortColumn, - sortDirection: this.sortDirection, - take: this.pageSize - }) - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ activities, count }) => { - this.dataSource = new MatTableDataSource(activities); - this.totalItems = count; - - if (this.hasPermissionToCreateActivity && this.totalItems <= 0) { - this.router.navigate([], { queryParams: { createDialog: true } }); - } + this.dataService + .fetchActivities({ + filters: this.userService.getFilters(), + skip: this.pageIndex * this.pageSize, + sortColumn: this.sortColumn, + sortDirection: this.sortDirection, + take: this.pageSize + }) + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe(({ activities, count }) => { + this.dataSource = new MatTableDataSource(activities); + this.totalItems = count; - this.changeDetectorRef.markForCheck(); - }); - } else { - this.dataService - .fetchActivities({}) - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ activities }) => { - this.activities = activities; - - if ( - this.hasPermissionToCreateActivity && - this.activities?.length <= 0 - ) { - this.router.navigate([], { queryParams: { createDialog: true } }); - } + if (this.hasPermissionToCreateActivity && this.totalItems <= 0) { + this.router.navigate([], { queryParams: { createDialog: true } }); + } - this.changeDetectorRef.markForCheck(); - }); - } + this.changeDetectorRef.markForCheck(); + }); } public onChangePage(page: PageEvent) { @@ -196,8 +182,14 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { } public onExport(activityIds?: string[]) { + let fetchExportParams: any = { activityIds }; + + if (!activityIds) { + fetchExportParams = { filters: this.userService.getFilters() }; + } + this.dataService - .fetchExport(activityIds) + .fetchExport(fetchExportParams) .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((data) => { for (const activity of data.activities) { @@ -217,7 +209,7 @@ export class ActivitiesPageComponent implements OnDestroy, OnInit { public onExportDrafts(activityIds?: string[]) { this.dataService - .fetchExport(activityIds) + .fetchExport({ activityIds }) .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((data) => { downloadAsFile({ diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.html b/apps/client/src/app/pages/portfolio/activities/activities-page.html index 5ab9999d3..2e41b1a92 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.html +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -2,8 +2,7 @@

        Activities

        - - + />
        -
        + @if (!hasImpersonationId && hasPermissionToCreateActivity && + !user.settings.isRestrictedView) { + + }
        diff --git a/apps/client/src/app/pages/portfolio/activities/activities-page.module.ts b/apps/client/src/app/pages/portfolio/activities/activities-page.module.ts index 7f6d708df..c7c14b623 100644 --- a/apps/client/src/app/pages/portfolio/activities/activities-page.module.ts +++ b/apps/client/src/app/pages/portfolio/activities/activities-page.module.ts @@ -1,11 +1,11 @@ +import { ImportActivitiesService } from '@ghostfolio/client/services/import-activities.service'; +import { GfActivitiesTableModule } from '@ghostfolio/ui/activities-table/activities-table.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatSnackBarModule } from '@angular/material/snack-bar'; import { RouterModule } from '@angular/router'; -import { ImportActivitiesService } from '@ghostfolio/client/services/import-activities.service'; -import { GfActivitiesTableLazyModule } from '@ghostfolio/ui/activities-table-lazy/activities-table-lazy.module'; -import { GfActivitiesTableModule } from '@ghostfolio/ui/activities-table/activities-table.module'; import { ActivitiesPageRoutingModule } from './activities-page-routing.module'; import { ActivitiesPageComponent } from './activities-page.component'; @@ -18,7 +18,6 @@ import { GfImportActivitiesDialogModule } from './import-activities-dialog/impor ActivitiesPageRoutingModule, CommonModule, GfActivitiesTableModule, - GfActivitiesTableLazyModule, GfCreateOrUpdateActivityDialogModule, GfImportActivitiesDialogModule, MatButtonModule, diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts index 0a67ce60e..b0a57688b 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.component.ts @@ -1,3 +1,9 @@ +import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; +import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto'; +import { DataService } from '@ghostfolio/client/services/data.service'; +import { getDateFormatString } from '@ghostfolio/common/helper'; +import { translate } from '@ghostfolio/ui/i18n'; + import { COMMA, ENTER } from '@angular/cdk/keycodes'; import { ChangeDetectionStrategy, @@ -12,11 +18,6 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete'; import { DateAdapter, MAT_DATE_LOCALE } from '@angular/material/core'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; -import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; -import { UpdateOrderDto } from '@ghostfolio/api/app/order/update-order.dto'; -import { DataService } from '@ghostfolio/client/services/data.service'; -import { getDateFormatString } from '@ghostfolio/common/helper'; -import { translate } from '@ghostfolio/ui/i18n'; import { AssetClass, AssetSubClass, Tag, Type } from '@prisma/client'; import { isUUID } from 'class-validator'; import { EMPTY, Observable, Subject, lastValueFrom, of } from 'rxjs'; diff --git a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html index 5d5133881..57336fd36 100644 --- a/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html +++ b/apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -71,7 +71,7 @@ + /> {{ account.name }} + />{{ account.name }}
        @@ -140,9 +139,9 @@ class="text-muted" matDatepickerToggleIcon name="calendar-clear-outline" - > + /> - +
        - +
        @@ -290,7 +289,7 @@ Asset Class - + Asset Sub Class - + {{ tag.name }} - + + />
        -
        - - - + + {{ holding.name }} +
        + {{ holding.symbol | gfSymbol }} · {{ holding.currency + }} +
        +
        + +
        -

        - - The following file formats are supported: - CSV - or - JSON - -

        - + + } @else { +
        + +

        + + The following file formats are supported: + CSV + or + JSON + +

        +
        + } @@ -118,96 +114,77 @@ >
        - - - -
        - - -
        -
        - - - - - -
        -
        - -
        -
        {{ message }}
        + @if(errorMessages?.length === 0) { + +
        + + +
        + } @else { + + + + +
        +
        +
        - - -
        {{ details[i] | json }}
        - - -
        - - -
        - +
        {{ message }}
        +
        +
        +
        +
        {{ details[i] | json }}
        +
        +
        +
        + + +
        + }
        @@ -217,4 +194,4 @@ mat-dialog-actions [deviceType]="data.deviceType" (closeButtonClicked)="onCancel()" -> +/> diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.module.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.module.ts index 6865a8f0d..95573b1d6 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.module.ts +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.module.ts @@ -1,3 +1,9 @@ +import { GfDialogFooterModule } from '@ghostfolio/client/components/dialog-footer/dialog-footer.module'; +import { GfDialogHeaderModule } from '@ghostfolio/client/components/dialog-header/dialog-header.module'; +import { GfFileDropModule } from '@ghostfolio/client/directives/file-drop/file-drop.module'; +import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; +import { GfActivitiesTableModule } from '@ghostfolio/ui/activities-table/activities-table.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; @@ -8,12 +14,6 @@ import { MatFormFieldModule } from '@angular/material/form-field'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; import { MatSelectModule } from '@angular/material/select'; import { MatStepperModule } from '@angular/material/stepper'; -import { GfDialogFooterModule } from '@ghostfolio/client/components/dialog-footer/dialog-footer.module'; -import { GfDialogHeaderModule } from '@ghostfolio/client/components/dialog-header/dialog-header.module'; -import { GfFileDropModule } from '@ghostfolio/client/directives/file-drop/file-drop.module'; -import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; -import { GfActivitiesTableModule } from '@ghostfolio/ui/activities-table/activities-table.module'; -import { GfActivitiesTableLazyModule } from '@ghostfolio/ui/activities-table-lazy/activities-table-lazy.module'; import { ImportActivitiesDialog } from './import-activities-dialog.component'; @@ -23,7 +23,6 @@ import { ImportActivitiesDialog } from './import-activities-dialog.component'; CommonModule, FormsModule, GfActivitiesTableModule, - GfActivitiesTableLazyModule, GfDialogFooterModule, GfDialogHeaderModule, GfFileDropModule, diff --git a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/interfaces/interfaces.ts b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/interfaces/interfaces.ts index 755a50baf..a2131db88 100644 --- a/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/interfaces/interfaces.ts +++ b/apps/client/src/app/pages/portfolio/activities/import-activities-dialog/interfaces/interfaces.ts @@ -1,4 +1,5 @@ import { User } from '@ghostfolio/common/interfaces'; + import { Type } from '@prisma/client'; export interface ImportActivitiesDialogParams { diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts b/apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts index e5dfd6a2a..bb5833442 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { AllocationsPageComponent } from './allocations-page.component'; diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts index 40bb38b8a..330ae4227 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts @@ -1,6 +1,3 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { ActivatedRoute, Router } from '@angular/router'; import { AccountDetailDialog } from '@ghostfolio/client/components/account-detail-dialog/account-detail-dialog.component'; import { AccountDetailDialogParams } from '@ghostfolio/client/components/account-detail-dialog/interfaces/interfaces'; import { PositionDetailDialogParams } from '@ghostfolio/client/components/position/position-detail-dialog/interfaces/interfaces'; @@ -11,7 +8,6 @@ import { UserService } from '@ghostfolio/client/services/user/user.service'; import { UNKNOWN_KEY } from '@ghostfolio/common/config'; import { prettifySymbol } from '@ghostfolio/common/helper'; import { - Filter, PortfolioDetails, PortfolioPosition, UniqueAsset, @@ -20,11 +16,15 @@ import { import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { Market, MarketAdvanced } from '@ghostfolio/common/types'; import { translate } from '@ghostfolio/ui/i18n'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { ActivatedRoute, Router } from '@angular/router'; import { Account, AssetClass, DataSource, Platform } from '@prisma/client'; import { isNumber } from 'lodash'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; -import { distinctUntilChanged, switchMap, takeUntil } from 'rxjs/operators'; +import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-allocations-page', @@ -38,8 +38,6 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { value: number; }; }; - public activeFilters: Filter[] = []; - public allFilters: Filter[]; public continents: { [code: string]: { name: string; value: number }; }; @@ -47,7 +45,6 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { [code: string]: { name: string; value: number }; }; public deviceType: string; - public filters$ = new Subject(); public hasImpersonationId: boolean; public isLoading = false; public markets: { @@ -60,7 +57,6 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { value: number; }; }; - public placeholder = ''; public platforms: { [id: string]: Pick & { id: string; @@ -135,81 +131,35 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { this.hasImpersonationId = !!impersonationId; }); - this.filters$ - .pipe( - distinctUntilChanged(), - switchMap((filters) => { - this.isLoading = true; - this.activeFilters = filters; - this.placeholder = - this.activeFilters.length <= 0 - ? $localize`Filter by account or tag...` - : ''; - - this.initialize(); - - return this.dataService.fetchPortfolioDetails({ - filters: this.activeFilters - }); - }), - takeUntil(this.unsubscribeSubject) - ) - .subscribe((portfolioDetails) => { - this.initialize(); - - this.portfolioDetails = portfolioDetails; - - this.initializeAnalysisData(); - - this.isLoading = false; - - this.changeDetectorRef.markForCheck(); - }); - this.userService.stateChanged .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((state) => { if (state?.user) { this.user = state.user; - const accountFilters: Filter[] = this.user.accounts.map( - ({ id, name }) => { - return { - id, - label: name, - type: 'ACCOUNT' - }; - } - ); - - const assetClassFilters: Filter[] = []; - for (const assetClass of Object.keys(AssetClass)) { - assetClassFilters.push({ - id: assetClass, - label: translate(assetClass), - type: 'ASSET_CLASS' - }); - } - - const tagFilters: Filter[] = this.user.tags.map(({ id, name }) => { - return { - id, - label: translate(name), - type: 'TAG' - }; - }); - - this.allFilters = [ - ...accountFilters, - ...assetClassFilters, - ...tagFilters - ]; - this.worldMapChartFormat = this.hasImpersonationId || this.user.settings.isRestrictedView ? `{0}%` : `{0} ${this.user?.settings?.baseCurrency}`; + this.isLoading = true; + + this.initialize(); + + this.fetchPortfolioDetails() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe((portfolioDetails) => { + this.initialize(); + + this.portfolioDetails = portfolioDetails; + + this.initializeAllocationsData(); + + this.isLoading = false; + + this.changeDetectorRef.markForCheck(); + }); + this.changeDetectorRef.markForCheck(); } }); @@ -217,7 +167,49 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { this.initialize(); } - public initialize() { + public onAccountChartClicked({ symbol }: UniqueAsset) { + if (symbol && symbol !== UNKNOWN_KEY) { + this.router.navigate([], { + queryParams: { accountId: symbol, accountDetailDialog: true } + }); + } + } + + public onSymbolChartClicked({ dataSource, symbol }: UniqueAsset) { + if (dataSource && symbol) { + this.router.navigate([], { + queryParams: { dataSource, symbol, positionDetailDialog: true } + }); + } + } + + public ngOnDestroy() { + this.unsubscribeSubject.next(); + this.unsubscribeSubject.complete(); + } + + private extractEtfProvider({ + assetSubClass, + name + }: { + assetSubClass: PortfolioPosition['assetSubClass']; + name: string; + }) { + if (assetSubClass === 'ETF') { + const [firstWord] = name.split(' '); + return firstWord; + } + + return UNKNOWN_KEY; + } + + private fetchPortfolioDetails() { + return this.dataService.fetchPortfolioDetails({ + filters: this.userService.getFilters() + }); + } + + private initialize() { this.accounts = {}; this.continents = { [UNKNOWN_KEY]: { @@ -310,7 +302,7 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { }; } - public initializeAnalysisData() { + private initializeAllocationsData() { for (const [ id, { name, valueInBaseCurrency, valueInPercentage } @@ -344,9 +336,9 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { this.positions[symbol] = { value, assetClass: position.assetClass, - assetClassLabel: translate(position.assetClass), + assetClassLabel: position.assetClassLabel, assetSubClass: position.assetSubClass, - assetSubClassLabel: translate(position.assetSubClass), + assetSubClassLabel: position.assetSubClassLabel, currency: position.currency, etfProvider: this.extractEtfProvider({ assetSubClass: position.assetSubClass, @@ -540,27 +532,6 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { this.markets[UNKNOWN_KEY].value / marketsTotal; } - public onAccountChartClicked({ symbol }: UniqueAsset) { - if (symbol && symbol !== UNKNOWN_KEY) { - this.router.navigate([], { - queryParams: { accountId: symbol, accountDetailDialog: true } - }); - } - } - - public onSymbolChartClicked({ dataSource, symbol }: UniqueAsset) { - if (dataSource && symbol) { - this.router.navigate([], { - queryParams: { dataSource, symbol, positionDetailDialog: true } - }); - } - } - - public ngOnDestroy() { - this.unsubscribeSubject.next(); - this.unsubscribeSubject.complete(); - } - private openAccountDetailDialog(aAccountId: string) { const dialogRef = this.dialog.open(AccountDetailDialog, { autoFocus: false, @@ -621,19 +592,4 @@ export class AllocationsPageComponent implements OnDestroy, OnInit { }); }); } - - private extractEtfProvider({ - assetSubClass, - name - }: { - assetSubClass: PortfolioPosition['assetSubClass']; - name: string; - }) { - if (assetSubClass === 'ETF') { - const [firstWord] = name.split(' '); - return firstWord; - } - - return UNKNOWN_KEY; - } } diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.html b/apps/client/src/app/pages/portfolio/allocations/allocations-page.html index e082ca2b5..baa19882d 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.html +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.html @@ -2,12 +2,6 @@

        Allocations

        -
        @@ -22,14 +16,14 @@ size="medium" [isPercent]="true" [value]="isLoading ? undefined : portfolioDetails?.filteredValueInPercentage" - > + /> + />
        @@ -50,7 +44,7 @@ [keys]="['id']" [locale]="user?.settings?.locale" [positions]="platforms" - > + />
        @@ -62,8 +56,8 @@ + /> + + />
        @@ -85,8 +79,8 @@ > + /> + + />
        @@ -104,8 +98,8 @@ - By Holding + By Holding + + /> @@ -131,8 +125,8 @@ > + /> + + /> @@ -155,8 +149,8 @@ > + /> + + /> @@ -178,8 +172,8 @@ > + /> + + /> @@ -202,8 +196,8 @@ > + /> +
        @@ -212,7 +206,7 @@ [format]="worldMapChartFormat" [isInPercent]="hasImpersonationId || user.settings.isRestrictedView" [locale]="user?.settings?.locale" - > + />
        @@ -275,7 +269,7 @@ [locale]="user?.settings?.locale" [positions]="accounts" (proportionChartClicked)="onAccountChartClicked($event)" - > + />
        @@ -287,8 +281,8 @@ > + /> + + />
        @@ -310,8 +304,8 @@ > + /> + + /> diff --git a/apps/client/src/app/pages/portfolio/allocations/allocations-page.module.ts b/apps/client/src/app/pages/portfolio/allocations/allocations-page.module.ts index 44ac94a6f..b0a027cb5 100644 --- a/apps/client/src/app/pages/portfolio/allocations/allocations-page.module.ts +++ b/apps/client/src/app/pages/portfolio/allocations/allocations-page.module.ts @@ -1,13 +1,13 @@ +import { GfWorldMapChartModule } from '@ghostfolio/client/components/world-map-chart/world-map-chart.module'; +import { GfPortfolioProportionChartModule } from '@ghostfolio/ui/portfolio-proportion-chart/portfolio-proportion-chart.module'; +import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatCardModule } from '@angular/material/card'; import { MatDialogModule } from '@angular/material/dialog'; import { MatProgressBarModule } from '@angular/material/progress-bar'; -import { GfWorldMapChartModule } from '@ghostfolio/client/components/world-map-chart/world-map-chart.module'; -import { GfActivitiesFilterModule } from '@ghostfolio/ui/activities-filter/activities-filter.module'; -import { GfPortfolioProportionChartModule } from '@ghostfolio/ui/portfolio-proportion-chart/portfolio-proportion-chart.module'; -import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { AllocationsPageRoutingModule } from './allocations-page-routing.module'; import { AllocationsPageComponent } from './allocations-page.component'; @@ -17,7 +17,6 @@ import { AllocationsPageComponent } from './allocations-page.component'; imports: [ AllocationsPageRoutingModule, CommonModule, - GfActivitiesFilterModule, GfPortfolioProportionChartModule, GfPremiumIndicatorModule, GfWorldMapChartModule, diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts b/apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts index b9b8fd712..fce4bf221 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { AnalysisPageComponent } from './analysis-page.component'; diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts index 51dcee24c..d2f8487ad 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts @@ -1,6 +1,3 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { ActivatedRoute, Router } from '@angular/router'; import { PositionDetailDialogParams } from '@ghostfolio/client/components/position/position-detail-dialog/interfaces/interfaces'; import { PositionDetailDialog } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.component'; import { ToggleComponent } from '@ghostfolio/client/components/toggle/toggle.component'; @@ -8,22 +5,26 @@ import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { - Filter, HistoricalDataItem, PortfolioInvestments, + PortfolioPerformance, Position, User } from '@ghostfolio/common/interfaces'; import { InvestmentItem } from '@ghostfolio/common/interfaces/investment-item.interface'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; -import { DateRange, GroupBy, ToggleOption } from '@ghostfolio/common/types'; +import { GroupBy, ToggleOption } from '@ghostfolio/common/types'; import { translate } from '@ghostfolio/ui/i18n'; -import { AssetClass, DataSource, SymbolProfile } from '@prisma/client'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { ActivatedRoute, Router } from '@angular/router'; +import { DataSource, SymbolProfile } from '@prisma/client'; import { differenceInDays } from 'date-fns'; import { isNumber, sortBy } from 'lodash'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; -import { distinctUntilChanged, map, takeUntil } from 'rxjs/operators'; +import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-analysis-page', @@ -31,8 +32,6 @@ import { distinctUntilChanged, map, takeUntil } from 'rxjs/operators'; templateUrl: './analysis-page.html' }) export class AnalysisPageComponent implements OnDestroy, OnInit { - public activeFilters: Filter[] = []; - public allFilters: Filter[]; public benchmarkDataItems: HistoricalDataItem[] = []; public benchmarks: Partial[]; public bottom3: Position[]; @@ -41,23 +40,24 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { public deviceType: string; public dividendsByGroup: InvestmentItem[]; public dividendTimelineDataLabel = $localize`Dividend`; - public filters$ = new Subject(); public firstOrderDate: Date; public hasImpersonationId: boolean; public investments: InvestmentItem[]; - public investmentTimelineDataLabel = $localize`Deposit`; + public investmentTimelineDataLabel = $localize`Investment`; public investmentsByGroup: InvestmentItem[]; public isLoadingBenchmarkComparator: boolean; + public isLoadingDividendTimelineChart: boolean; public isLoadingInvestmentChart: boolean; + public isLoadingInvestmentTimelineChart: boolean; public mode: GroupBy = 'month'; public modeOptions: ToggleOption[] = [ { label: $localize`Monthly`, value: 'month' }, { label: $localize`Yearly`, value: 'year' } ]; + public performance: PortfolioPerformance; public performanceDataItems: HistoricalDataItem[]; public performanceDataItemsInPercentage: HistoricalDataItem[]; - public placeholder = ''; - public portfolioEvolutionDataLabel = $localize`Deposit`; + public portfolioEvolutionDataLabel = $localize`Investment`; public streaks: PortfolioInvestments['streaks']; public top3: Position[]; public unitCurrentStreak: string; @@ -116,61 +116,12 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { this.hasImpersonationId = !!impersonationId; }); - this.filters$ - .pipe( - distinctUntilChanged(), - map((filters) => { - this.activeFilters = filters; - this.placeholder = - this.activeFilters.length <= 0 - ? $localize`Filter by account or tag...` - : ''; - - this.update(); - }), - takeUntil(this.unsubscribeSubject) - ) - .subscribe(() => {}); - this.userService.stateChanged .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((state) => { if (state?.user) { this.user = state.user; - const accountFilters: Filter[] = this.user.accounts.map( - ({ id, name }) => { - return { - id, - label: name, - type: 'ACCOUNT' - }; - } - ); - - const assetClassFilters: Filter[] = []; - for (const assetClass of Object.keys(AssetClass)) { - assetClassFilters.push({ - id: assetClass, - label: translate(assetClass), - type: 'ASSET_CLASS' - }); - } - - const tagFilters: Filter[] = this.user.tags.map(({ id, name }) => { - return { - id, - label: translate(name), - type: 'TAG' - }; - }); - - this.allFilters = [ - ...accountFilters, - ...assetClassFilters, - ...tagFilters - ]; - this.update(); } }); @@ -194,24 +145,6 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { }); } - public onChangeDateRange(dateRange: DateRange) { - this.dataService - .putUserSetting({ dateRange }) - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(() => { - this.userService.remove(); - - this.userService - .get() - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((user) => { - this.user = user; - - this.changeDetectorRef.markForCheck(); - }); - }); - } - public onChangeGroupBy(aMode: GroupBy) { this.mode = aMode; this.fetchDividendsAndInvestments(); @@ -223,9 +156,12 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { } private fetchDividendsAndInvestments() { + this.isLoadingDividendTimelineChart = true; + this.isLoadingInvestmentTimelineChart = true; + this.dataService .fetchDividends({ - filters: this.activeFilters, + filters: this.userService.getFilters(), groupBy: this.mode, range: this.user?.settings?.dateRange }) @@ -233,12 +169,14 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { .subscribe(({ dividends }) => { this.dividendsByGroup = dividends; + this.isLoadingDividendTimelineChart = false; + this.changeDetectorRef.markForCheck(); }); this.dataService .fetchInvestments({ - filters: this.activeFilters, + filters: this.userService.getFilters(), groupBy: this.mode, range: this.user?.settings?.dateRange }) @@ -252,16 +190,18 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { ? translate('YEAR') : translate('YEARS') : this.streaks?.currentStreak === 1 - ? translate('MONTH') - : translate('MONTHS'); + ? translate('MONTH') + : translate('MONTHS'); this.unitLongestStreak = this.mode === 'year' ? this.streaks?.longestStreak === 1 ? translate('YEAR') : translate('YEARS') : this.streaks?.longestStreak === 1 - ? translate('MONTH') - : translate('MONTHS'); + ? translate('MONTH') + : translate('MONTHS'); + + this.isLoadingInvestmentTimelineChart = false; this.changeDetectorRef.markForCheck(); }); @@ -313,15 +253,16 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { this.dataService .fetchPortfolioPerformance({ - filters: this.activeFilters, + filters: this.userService.getFilters(), range: this.user?.settings?.dateRange }) .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe(({ chart, firstOrderDate }) => { + .subscribe(({ chart, firstOrderDate, performance }) => { this.firstOrderDate = firstOrderDate ?? new Date(); this.daysInMarket = differenceInDays(new Date(), firstOrderDate); this.investments = []; + this.performance = performance; this.performanceDataItems = []; this.performanceDataItemsInPercentage = []; @@ -358,13 +299,15 @@ export class AnalysisPageComponent implements OnDestroy, OnInit { this.dataService .fetchPositions({ - filters: this.activeFilters, + filters: this.userService.getFilters(), range: this.user?.settings?.dateRange }) .pipe(takeUntil(this.unsubscribeSubject)) .subscribe(({ positions }) => { const positionsSorted = sortBy( - positions, + positions.filter(({ netPerformancePercentage }) => { + return isNumber(netPerformancePercentage); + }), 'netPerformancePercentage' ).reverse(); diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html index f875907bb..44bb970ef 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.html +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.html @@ -1,19 +1,5 @@

        Analysis

        -
        - -
        -
        + />
        + @if (user?.settings?.isExperimentalFeatures) { +
        +
        + + +
        +
        + Absolute Asset Performance +
        +
        + +
        +
        +
        +
        + Asset Performance +
        +
        + +
        +
        +
        +
        + Absolute Currency Performance +
        +
        + +
        +
        +
        +
        + Currency Performance +
        +
        + +
        +
        +

        +
        +
        + Absolute Net Performance +
        +
        + +
        +
        +
        +
        + Net Performance +
        +
        + +
        +
        +
        +
        +
        +
        + } +
        @@ -41,31 +129,31 @@ > - +
          +
        1. + +
          {{ position.name }}
          +
          + +
          +
          +
        2. +
        + />
        @@ -87,31 +175,31 @@ > - +
          +
        1. + +
          {{ position.name }}
          +
          + +
          +
          +
        2. +
        + />
        @@ -137,7 +225,7 @@ + />
        @@ -152,7 +240,7 @@ [isLoading]="isLoadingInvestmentChart" [locale]="user?.settings?.locale" [range]="user?.settings?.dateRange" - > + />
        @@ -167,7 +255,7 @@ + /> + />
        @@ -206,10 +294,11 @@ [daysInMarket]="daysInMarket" [groupBy]="mode" [isInPercent]="hasImpersonationId || user.settings.isRestrictedView" + [isLoading]="isLoadingInvestmentTimelineChart" [locale]="user?.settings?.locale" [range]="user?.settings?.dateRange" [savingsRate]="savingsRate" - > + />
        @@ -224,7 +313,7 @@ + /> + />
        + />
        diff --git a/apps/client/src/app/pages/portfolio/analysis/analysis-page.module.ts b/apps/client/src/app/pages/portfolio/analysis/analysis-page.module.ts index a9dc26b4e..52e45c330 100644 --- a/apps/client/src/app/pages/portfolio/analysis/analysis-page.module.ts +++ b/apps/client/src/app/pages/portfolio/analysis/analysis-page.module.ts @@ -1,12 +1,13 @@ -import { CommonModule } from '@angular/common'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatCardModule } from '@angular/material/card'; import { GfBenchmarkComparatorModule } from '@ghostfolio/client/components/benchmark-comparator/benchmark-comparator.module'; import { GfInvestmentChartModule } from '@ghostfolio/client/components/investment-chart/investment-chart.module'; import { GfToggleModule } from '@ghostfolio/client/components/toggle/toggle.module'; import { GfActivitiesFilterModule } from '@ghostfolio/ui/activities-filter/activities-filter.module'; import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; import { GfValueModule } from '@ghostfolio/ui/value'; + +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatCardModule } from '@angular/material/card'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { AnalysisPageRoutingModule } from './analysis-page-routing.module'; diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts b/apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts index 7ca0c8d20..885dc5509 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts +++ b/apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { FirePageComponent } from './fire-page.component'; diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts index 909ca774a..36bc385f6 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.component.ts @@ -1,9 +1,10 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { PortfolioReportRule, User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import Big from 'big.js'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; @@ -47,11 +48,9 @@ export class FirePageComponent implements OnDestroy, OnInit { .fetchPortfolioDetails() .pipe(takeUntil(this.unsubscribeSubject)) .subscribe(({ summary }) => { - if (summary.cash === null || summary.currentValue === null) { - return; - } - - this.fireWealth = new Big(summary.fireWealth); + this.fireWealth = summary.fireWealth + ? new Big(summary.fireWealth) + : new Big(10000); this.withdrawalRatePerYear = this.fireWealth.mul(4).div(100); this.withdrawalRatePerMonth = this.withdrawalRatePerYear.div(12); @@ -93,10 +92,13 @@ export class FirePageComponent implements OnDestroy, OnInit { permissions.createOrder ); - this.hasPermissionToUpdateUserSettings = hasPermission( - this.user.permissions, - permissions.updateUserSettings - ); + this.hasPermissionToUpdateUserSettings = + this.user.subscription?.type === 'Basic' + ? false + : hasPermission( + this.user.permissions, + permissions.updateUserSettings + ); this.changeDetectorRef.markForCheck(); } diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page.html b/apps/client/src/app/pages/portfolio/fire/fire-page.html index 2e8522570..82f32d683 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.html +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.html @@ -8,7 +8,7 @@ > + /> + /> @@ -35,7 +39,7 @@ > + />
        + /> + />
        -
        +
        If you retire today, you would be able to withdraw + /> per year or @@ -74,7 +82,7 @@ [locale]="user?.settings?.locale" [unit]="user?.settings?.baseCurrency" [value]="withdrawalRatePerMonth?.toNumber()" - > + /> per month, based on your total assets of + /> + and a withdrawal rate of 4%.
        @@ -112,12 +120,12 @@ > + /> + />

        @@ -125,12 +133,12 @@ > + />

        + />

        @@ -138,12 +146,12 @@ > + />

        + />

        @@ -151,12 +159,12 @@ > + />

        + />
        diff --git a/apps/client/src/app/pages/portfolio/fire/fire-page.module.ts b/apps/client/src/app/pages/portfolio/fire/fire-page.module.ts index 7518a69d5..90b6f204f 100644 --- a/apps/client/src/app/pages/portfolio/fire/fire-page.module.ts +++ b/apps/client/src/app/pages/portfolio/fire/fire-page.module.ts @@ -1,9 +1,10 @@ -import { CommonModule } from '@angular/common'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { GfRulesModule } from '@ghostfolio/client/components/rules/rules.module'; import { GfFireCalculatorModule } from '@ghostfolio/ui/fire-calculator'; import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; import { GfValueModule } from '@ghostfolio/ui/value'; + +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { FirePageRoutingModule } from './fire-page-routing.module'; diff --git a/apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts b/apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts index 76adcd35d..94b49a9d0 100644 --- a/apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts +++ b/apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { HoldingsPageComponent } from './holdings-page.component'; diff --git a/apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts b/apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts index d65f20165..6c4a058b7 100644 --- a/apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts +++ b/apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts @@ -1,23 +1,22 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { ActivatedRoute, Router } from '@angular/router'; import { PositionDetailDialogParams } from '@ghostfolio/client/components/position/position-detail-dialog/interfaces/interfaces'; import { PositionDetailDialog } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.component'; import { DataService } from '@ghostfolio/client/services/data.service'; import { ImpersonationStorageService } from '@ghostfolio/client/services/impersonation-storage.service'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { - Filter, PortfolioDetails, PortfolioPosition, User } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; -import { translate } from '@ghostfolio/ui/i18n'; -import { AssetClass, DataSource } from '@prisma/client'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { ActivatedRoute, Router } from '@angular/router'; +import { DataSource } from '@prisma/client'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; -import { distinctUntilChanged, switchMap, takeUntil } from 'rxjs/operators'; +import { takeUntil } from 'rxjs/operators'; @Component({ selector: 'gf-holdings-page', @@ -25,16 +24,12 @@ import { distinctUntilChanged, switchMap, takeUntil } from 'rxjs/operators'; templateUrl: './holdings-page.html' }) export class HoldingsPageComponent implements OnDestroy, OnInit { - public activeFilters: Filter[] = []; - public allFilters: Filter[]; public deviceType: string; - public filters$ = new Subject(); public hasImpersonationId: boolean; public hasPermissionToCreateOrder: boolean; + public holdings: PortfolioPosition[]; public isLoading = false; - public placeholder = ''; public portfolioDetails: PortfolioDetails; - public positionsArray: PortfolioPosition[]; public user: User; private unsubscribeSubject = new Subject(); @@ -75,33 +70,6 @@ export class HoldingsPageComponent implements OnDestroy, OnInit { this.hasImpersonationId = !!impersonationId; }); - this.filters$ - .pipe( - distinctUntilChanged(), - switchMap((filters) => { - this.isLoading = true; - this.activeFilters = filters; - this.placeholder = - this.activeFilters.length <= 0 - ? $localize`Filter by account or tag...` - : ''; - - return this.dataService.fetchPortfolioDetails({ - filters: this.activeFilters - }); - }), - takeUntil(this.unsubscribeSubject) - ) - .subscribe((portfolioDetails) => { - this.portfolioDetails = portfolioDetails; - - this.initializeAnalysisData(); - - this.isLoading = false; - - this.changeDetectorRef.markForCheck(); - }); - this.userService.stateChanged .pipe(takeUntil(this.unsubscribeSubject)) .subscribe((state) => { @@ -113,67 +81,44 @@ export class HoldingsPageComponent implements OnDestroy, OnInit { permissions.createOrder ); - const accountFilters: Filter[] = this.user.accounts.map( - ({ id, name }) => { - return { - id, - label: name, - type: 'ACCOUNT' - }; - } - ); + this.holdings = undefined; - const assetClassFilters: Filter[] = []; - for (const assetClass of Object.keys(AssetClass)) { - assetClassFilters.push({ - id: assetClass, - label: translate(assetClass), - type: 'ASSET_CLASS' - }); - } - - const tagFilters: Filter[] = this.user.tags.map(({ id, name }) => { - return { - id, - label: translate(name), - type: 'TAG' - }; - }); + this.fetchPortfolioDetails() + .pipe(takeUntil(this.unsubscribeSubject)) + .subscribe((portfolioDetails) => { + this.portfolioDetails = portfolioDetails; + + this.initialize(); - this.allFilters = [ - ...accountFilters, - ...assetClassFilters, - ...tagFilters - ]; + this.changeDetectorRef.markForCheck(); + }); this.changeDetectorRef.markForCheck(); } }); } - public initialize() { - this.positionsArray = []; + public ngOnDestroy() { + this.unsubscribeSubject.next(); + this.unsubscribeSubject.complete(); + } + + private fetchPortfolioDetails() { + return this.dataService.fetchPortfolioDetails({ + filters: this.userService.getFilters() + }); } - public initializeAnalysisData() { - this.initialize(); + private initialize() { + this.holdings = []; - for (const [symbol, position] of Object.entries( + for (const [symbol, holding] of Object.entries( this.portfolioDetails.holdings )) { - this.positionsArray.push({ - ...position, - assetClassLabel: translate(position.assetClass), - assetSubClassLabel: translate(position.assetSubClass) - }); + this.holdings.push(holding); } } - public ngOnDestroy() { - this.unsubscribeSubject.next(); - this.unsubscribeSubject.complete(); - } - private openPositionDialog({ dataSource, symbol diff --git a/apps/client/src/app/pages/portfolio/holdings/holdings-page.html b/apps/client/src/app/pages/portfolio/holdings/holdings-page.html index 98b5dad87..4aadf4a0b 100644 --- a/apps/client/src/app/pages/portfolio/holdings/holdings-page.html +++ b/apps/client/src/app/pages/portfolio/holdings/holdings-page.html @@ -2,12 +2,6 @@

        Holdings

        -
        @@ -16,13 +10,11 @@ [baseCurrency]="user?.settings?.baseCurrency" [deviceType]="deviceType" [hasPermissionToCreateActivity]="hasPermissionToCreateOrder" + [holdings]="holdings" [locale]="user?.settings?.locale" - [positions]="positionsArray" - > -
        + /> + @if (hasPermissionToCreateOrder && holdings?.length > 0) { + + }
        diff --git a/apps/client/src/app/pages/portfolio/holdings/holdings-page.module.ts b/apps/client/src/app/pages/portfolio/holdings/holdings-page.module.ts index e2a3265d5..b0ea47e50 100644 --- a/apps/client/src/app/pages/portfolio/holdings/holdings-page.module.ts +++ b/apps/client/src/app/pages/portfolio/holdings/holdings-page.module.ts @@ -1,8 +1,8 @@ +import { GfHoldingsTableModule } from '@ghostfolio/ui/holdings-table/holdings-table.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; -import { GfActivitiesFilterModule } from '@ghostfolio/ui/activities-filter/activities-filter.module'; -import { GfHoldingsTableModule } from '@ghostfolio/ui/holdings-table/holdings-table.module'; import { HoldingsPageRoutingModule } from './holdings-page-routing.module'; import { HoldingsPageComponent } from './holdings-page.component'; @@ -11,7 +11,6 @@ import { HoldingsPageComponent } from './holdings-page.component'; declarations: [HoldingsPageComponent], imports: [ CommonModule, - GfActivitiesFilterModule, GfHoldingsTableModule, HoldingsPageRoutingModule, MatButtonModule diff --git a/apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts b/apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts index 6ca831e9c..d4f93b567 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts +++ b/apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { PortfolioPageComponent } from './portfolio-page.component'; diff --git a/apps/client/src/app/pages/portfolio/portfolio-page.component.ts b/apps/client/src/app/pages/portfolio/portfolio-page.component.ts index 8666ca1e4..bbd70c1c9 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page.component.ts +++ b/apps/client/src/app/pages/portfolio/portfolio-page.component.ts @@ -1,6 +1,7 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; diff --git a/apps/client/src/app/pages/portfolio/portfolio-page.html b/apps/client/src/app/pages/portfolio/portfolio-page.html index d3fbca534..839e8114f 100644 --- a/apps/client/src/app/pages/portfolio/portfolio-page.html +++ b/apps/client/src/app/pages/portfolio/portfolio-page.html @@ -12,7 +12,7 @@ + />
        {{ tab.label }}
        diff --git a/apps/client/src/app/pages/pricing/pricing-page-routing.module.ts b/apps/client/src/app/pages/pricing/pricing-page-routing.module.ts index 0e4af3df3..5ba675184 100644 --- a/apps/client/src/app/pages/pricing/pricing-page-routing.module.ts +++ b/apps/client/src/app/pages/pricing/pricing-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { PricingPageComponent } from './pricing-page.component'; 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 f7776f871..280f7bf74 100644 --- a/apps/client/src/app/pages/pricing/pricing-page.component.ts +++ b/apps/client/src/app/pages/pricing/pricing-page.component.ts @@ -1,9 +1,10 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; 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 { translate } from '@ghostfolio/ui/i18n'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { StripeService } from 'ngx-stripe'; import { Subject } from 'rxjs'; import { catchError, switchMap, takeUntil } from 'rxjs/operators'; diff --git a/apps/client/src/app/pages/pricing/pricing-page.html b/apps/client/src/app/pages/pricing/pricing-page.html index ab0114694..926ff24af 100644 --- a/apps/client/src/app/pages/pricing/pricing-page.html +++ b/apps/client/src/app/pages/pricing/pricing-page.html @@ -10,9 +10,9 @@ infrastructure and to fund ongoing development.

        - If you plan to open an account at DEGIRO, frankly, - Interactive Brokers, Swissquote, VIAC, or - Zak, please + If you plan to open an account at DEGIRO, finpension, + frankly, Interactive Brokers, Swissquote, + VIAC, or Zak, please contact us @@ -39,82 +39,52 @@

        • - + Unlimited Transactions
        • - + Unlimited Accounts
        • - + Portfolio Performance
        • - + Portfolio Summary
        • - + Portfolio Allocations
        • - + Performance Benchmarks
        • - + FIRE Calculator
        • - + Data Import and Export - +
        • - + and more Features...
        • - + Community Support
        @@ -144,7 +114,7 @@

        Basic

        - +

        @@ -152,38 +122,26 @@

        • - + Unlimited Transactions
        • - + Unlimited Accounts
        • - + Portfolio Performance
        • - + Data Import and Export - +
        @@ -213,13 +171,10 @@

        Premium - +

        - +

        @@ -228,89 +183,56 @@

        • - + Unlimited Transactions
        • - + Unlimited Accounts
        • - + Portfolio Performance
        • - + Portfolio Summary
        • - + Portfolio Allocations
        • - + Performance Benchmarks
        • - + FIRE Calculator
        • - + Data Import and Export - +
        • - + Professional Data Provider
        • - + and more Features...
        • - + Email and Chat Support
        @@ -343,7 +265,7 @@ >Upgrade Plan Renew Plan diff --git a/apps/client/src/app/pages/pricing/pricing-page.module.ts b/apps/client/src/app/pages/pricing/pricing-page.module.ts index fe408dca9..19bc99ce2 100644 --- a/apps/client/src/app/pages/pricing/pricing-page.module.ts +++ b/apps/client/src/app/pages/pricing/pricing-page.module.ts @@ -1,10 +1,11 @@ +import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatCardModule } from '@angular/material/card'; import { MatTooltipModule } from '@angular/material/tooltip'; import { RouterModule } from '@angular/router'; -import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; import { PricingPageRoutingModule } from './pricing-page-routing.module'; import { PricingPageComponent } from './pricing-page.component'; diff --git a/apps/client/src/app/pages/public/public-page-routing.module.ts b/apps/client/src/app/pages/public/public-page-routing.module.ts index d4c22c112..91fd95348 100644 --- a/apps/client/src/app/pages/public/public-page-routing.module.ts +++ b/apps/client/src/app/pages/public/public-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { PublicPageComponent } from './public-page.component'; diff --git a/apps/client/src/app/pages/public/public-page.component.ts b/apps/client/src/app/pages/public/public-page.component.ts index 2238be28b..4e593b959 100644 --- a/apps/client/src/app/pages/public/public-page.component.ts +++ b/apps/client/src/app/pages/public/public-page.component.ts @@ -1,5 +1,3 @@ -import { ChangeDetectorRef, Component, OnInit } from '@angular/core'; -import { ActivatedRoute, Router } from '@angular/router'; import { DataService } from '@ghostfolio/client/services/data.service'; import { UNKNOWN_KEY } from '@ghostfolio/common/config'; import { prettifySymbol } from '@ghostfolio/common/helper'; @@ -8,6 +6,9 @@ import { PortfolioPublicDetails } from '@ghostfolio/common/interfaces'; import { Market } from '@ghostfolio/common/types'; + +import { ChangeDetectorRef, Component, OnInit } from '@angular/core'; +import { ActivatedRoute, Router } from '@angular/router'; import { StatusCodes } from 'http-status-codes'; import { isNumber } from 'lodash'; import { DeviceDetectorService } from 'ngx-device-detector'; @@ -28,6 +29,7 @@ export class PublicPageComponent implements OnInit { [code: string]: { name: string; value: number }; }; public deviceType: string; + public holdings: PortfolioPublicDetails['holdings'][string][]; public markets: { [key in Market]: { name: string; value: number }; }; @@ -37,7 +39,6 @@ export class PublicPageComponent implements OnInit { value: number; }; }; - public positionsArray: PortfolioPublicDetails['holdings'][string][]; public sectors: { [name: string]: { name: string; value: number }; }; @@ -99,6 +100,7 @@ export class PublicPageComponent implements OnInit { value: 0 } }; + this.holdings = []; this.markets = { [UNKNOWN_KEY]: { name: UNKNOWN_KEY, @@ -118,7 +120,6 @@ export class PublicPageComponent implements OnInit { } }; this.positions = {}; - this.positionsArray = []; this.sectors = { [UNKNOWN_KEY]: { name: UNKNOWN_KEY, @@ -136,14 +137,13 @@ export class PublicPageComponent implements OnInit { for (const [symbol, position] of Object.entries( this.portfolioPublicDetails.holdings )) { - const value = position.allocationInPercentage; + this.holdings.push(position); this.positions[symbol] = { - value, currency: position.currency, - name: position.name + name: position.name, + value: position.allocationInPercentage }; - this.positionsArray.push(position); if (position.countries.length > 0) { this.markets.developedMarkets.value += diff --git a/apps/client/src/app/pages/public/public-page.html b/apps/client/src/app/pages/public/public-page.html index d7f73e197..71cb2ec2d 100644 --- a/apps/client/src/app/pages/public/public-page.html +++ b/apps/client/src/app/pages/public/public-page.html @@ -20,7 +20,7 @@ [keys]="['symbol']" [positions]="symbols" [showLabels]="deviceType !== 'mobile'" - > + />
        @@ -35,7 +35,7 @@ [keys]="['currency']" [maxItems]="10" [positions]="positions" - > + /> @@ -50,7 +50,7 @@ [keys]="['name']" [maxItems]="10" [positions]="sectors" - > + /> @@ -64,7 +64,7 @@ [isInPercent]="true" [keys]="['name']" [positions]="continents" - > + /> @@ -81,7 +81,7 @@ format="{0}%" [countries]="countries" [isInPercent]="true" - > + />
        @@ -133,9 +133,9 @@ + />
        diff --git a/apps/client/src/app/pages/public/public-page.module.ts b/apps/client/src/app/pages/public/public-page.module.ts index 0b3724794..2a595f7fe 100644 --- a/apps/client/src/app/pages/public/public-page.module.ts +++ b/apps/client/src/app/pages/public/public-page.module.ts @@ -1,12 +1,13 @@ -import { CommonModule } from '@angular/common'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatCardModule } from '@angular/material/card'; import { GfWorldMapChartModule } from '@ghostfolio/client/components/world-map-chart/world-map-chart.module'; import { GfHoldingsTableModule } from '@ghostfolio/ui/holdings-table/holdings-table.module'; import { GfPortfolioProportionChartModule } from '@ghostfolio/ui/portfolio-proportion-chart/portfolio-proportion-chart.module'; import { GfValueModule } from '@ghostfolio/ui/value'; +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { MatCardModule } from '@angular/material/card'; + import { PublicPageRoutingModule } from './public-page-routing.module'; import { PublicPageComponent } from './public-page.component'; diff --git a/apps/client/src/app/pages/register/register-page-routing.module.ts b/apps/client/src/app/pages/register/register-page-routing.module.ts index 71401852d..80ab69b62 100644 --- a/apps/client/src/app/pages/register/register-page-routing.module.ts +++ b/apps/client/src/app/pages/register/register-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { RegisterPageComponent } from './register-page.component'; diff --git a/apps/client/src/app/pages/register/register-page.component.ts b/apps/client/src/app/pages/register/register-page.component.ts index 6a68c8ac0..646ebebe7 100644 --- a/apps/client/src/app/pages/register/register-page.component.ts +++ b/apps/client/src/app/pages/register/register-page.component.ts @@ -1,11 +1,12 @@ -import { Component, OnDestroy, OnInit } from '@angular/core'; -import { MatDialog } from '@angular/material/dialog'; -import { Router } from '@angular/router'; import { DataService } from '@ghostfolio/client/services/data.service'; import { InternetIdentityService } from '@ghostfolio/client/services/internet-identity.service'; import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service'; import { InfoItem, LineChartItem } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { Component, OnDestroy, OnInit } from '@angular/core'; +import { MatDialog } from '@angular/material/dialog'; +import { Router } from '@angular/router'; import { Role } from '@prisma/client'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; diff --git a/apps/client/src/app/pages/register/register-page.html b/apps/client/src/app/pages/register/register-page.html index 0d13a7f75..27aa5527e 100644 --- a/apps/client/src/app/pages/register/register-page.html +++ b/apps/client/src/app/pages/register/register-page.html @@ -9,7 +9,7 @@
        - +

        Wealth Management Software

        diff --git a/apps/client/src/app/pages/register/register-page.module.ts b/apps/client/src/app/pages/register/register-page.module.ts index fd7d72fb8..f0bcfd1a8 100644 --- a/apps/client/src/app/pages/register/register-page.module.ts +++ b/apps/client/src/app/pages/register/register-page.module.ts @@ -1,8 +1,9 @@ +import { GfLogoModule } from '@ghostfolio/ui/logo'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { RouterModule } from '@angular/router'; -import { GfLogoModule } from '@ghostfolio/ui/logo'; import { RegisterPageRoutingModule } from './register-page-routing.module'; import { RegisterPageComponent } from './register-page.component'; diff --git a/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html b/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html index f4ba55405..2b7610cf8 100644 --- a/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html +++ b/apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html @@ -22,8 +22,9 @@ [cdkCopyToClipboard]="data.accessToken" (click)="enableAgreeButton()" > - Copy to clipboard + Copy to clipboard @@ -42,6 +43,6 @@ [mat-dialog-close]="data" > Agree and continue - + diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts index 1daf63e11..548ffc1fa 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { PersonalFinanceToolsPageComponent } from './personal-finance-tools-page.component'; import { products } from './products'; diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html index 51584e451..38a91a246 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html +++ b/apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html @@ -18,11 +18,8 @@ with Ghostfolio.

        - + @for (product of products; track product) { +
        @@ -41,13 +38,14 @@ class="chevron text-muted" name="chevron-forward-outline" size="small" - > + />
        + } diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products.ts index 5d808ab60..6214a33a9 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/products.ts @@ -1,5 +1,6 @@ import { Product } from '@ghostfolio/common/interfaces'; +import { AllInvestViewPageComponent } from './products/allinvestview-page.component'; import { AllvueSystemsPageComponent } from './products/allvue-systems-page.component'; import { AltooPageComponent } from './products/altoo-page.component'; import { BasilFinancePageComponent } from './products/basil-finance-page.component'; @@ -14,6 +15,7 @@ import { DivvyDiaryPageComponent } from './products/divvydiary-page.component'; import { EightFiguresPageComponent } from './products/eightfigures-page.component'; import { EmpowerPageComponent } from './products/empower-page.component'; import { ExirioPageComponent } from './products/exirio-page.component'; +import { FinaPageComponent } from './products/fina-page.component'; import { FinaryPageComponent } from './products/finary-page.component'; import { FinWisePageComponent } from './products/finwise-page.component'; import { FolisharePageComponent } from './products/folishare-page.component'; @@ -43,6 +45,7 @@ import { SumioPageComponent } from './products/sumio-page.component'; import { TillerPageComponent } from './products/tiller-page.component'; import { UtlunaPageComponent } from './products/utluna-page.component'; import { VyzerPageComponent } from './products/vyzer-page.component'; +import { WealthfolioPageComponent } from './products/wealthfolio-page.component'; import { WealthicaPageComponent } from './products/wealthica-page.component'; import { WhalPageComponent } from './products/whal-page.component'; import { YeekateePageComponent } from './products/yeekatee-page.component'; @@ -71,6 +74,15 @@ export const products: Product[] = [ slogan: 'Open Source Wealth Management', useAnonymously: true }, + { + component: AllInvestViewPageComponent, + founded: 2023, + hasSelfHostingAbility: false, + key: 'allinvestview', + languages: ['English'], + name: 'AllInvestView', + slogan: 'All your Investments in One View' + }, { component: AllvueSystemsPageComponent, founded: 2019, @@ -209,6 +221,18 @@ export const products: Product[] = [ pricingPerYear: '$100', slogan: 'All your wealth, in one place.' }, + { + component: FinaPageComponent, + founded: 2023, + hasFreePlan: true, + hasSelfHostingAbility: false, + key: 'fina', + languages: ['English'], + name: 'Fina', + origin: $localize`United States`, + pricingPerYear: '$115', + slogan: 'Flexible Financial Management' + }, { component: FinaryPageComponent, founded: 2020, @@ -518,6 +542,14 @@ export const products: Product[] = [ pricingPerYear: '$348', slogan: 'Virtual Family Office for Smart Wealth Management' }, + { + component: WealthfolioPageComponent, + hasSelfHostingAbility: true, + key: 'wealthfolio', + languages: ['English'], + name: 'Wealthfolio', + slogan: 'Desktop Investment Tracker' + }, { component: WealthicaPageComponent, founded: 2015, diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts new file mode 100644 index 000000000..d946883f2 --- /dev/null +++ b/apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts @@ -0,0 +1,32 @@ +import { CommonModule } from '@angular/common'; +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { RouterModule } from '@angular/router'; + +import { products } from '../products'; +import { BaseProductPageComponent } from './base-page.component'; + +@Component({ + host: { class: 'page' }, + imports: [CommonModule, MatButtonModule, RouterModule], + selector: 'gf-allinvestview-systems-page', + standalone: true, + styleUrls: ['../product-page-template.scss'], + templateUrl: '../product-page-template.html' +}) +export class AllInvestViewPageComponent extends BaseProductPageComponent { + public product1 = products.find(({ key }) => { + return key === 'ghostfolio'; + }); + + public product2 = products.find(({ key }) => { + return key === 'allinvestview'; + }); + + public routerLinkAbout = ['/' + $localize`about`]; + public routerLinkFeatures = ['/' + $localize`features`]; + public routerLinkResourcesPersonalFinanceTools = [ + '/' + $localize`resources`, + 'personal-finance-tools' + ]; +} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/base-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/base-page.component.ts index 23a5835b7..840a40e3e 100644 --- a/apps/client/src/app/pages/resources/personal-finance-tools/products/base-page.component.ts +++ b/apps/client/src/app/pages/resources/personal-finance-tools/products/base-page.component.ts @@ -1,6 +1,7 @@ -import { Component, OnInit } from '@angular/core'; import { DataService } from '@ghostfolio/client/services/data.service'; +import { Component, OnInit } from '@angular/core'; + @Component({ selector: 'gf-base-product-page', template: '' diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts new file mode 100644 index 000000000..328d9896e --- /dev/null +++ b/apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts @@ -0,0 +1,32 @@ +import { CommonModule } from '@angular/common'; +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { RouterModule } from '@angular/router'; + +import { products } from '../products'; +import { BaseProductPageComponent } from './base-page.component'; + +@Component({ + host: { class: 'page' }, + imports: [CommonModule, MatButtonModule, RouterModule], + selector: 'gf-fina-page', + standalone: true, + styleUrls: ['../product-page-template.scss'], + templateUrl: '../product-page-template.html' +}) +export class FinaPageComponent extends BaseProductPageComponent { + public product1 = products.find(({ key }) => { + return key === 'ghostfolio'; + }); + + public product2 = products.find(({ key }) => { + return key === 'fina'; + }); + + public routerLinkAbout = ['/' + $localize`about`]; + public routerLinkFeatures = ['/' + $localize`features`]; + public routerLinkResourcesPersonalFinanceTools = [ + '/' + $localize`resources`, + 'personal-finance-tools' + ]; +} diff --git a/apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts b/apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts new file mode 100644 index 000000000..d888e2f93 --- /dev/null +++ b/apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts @@ -0,0 +1,32 @@ +import { CommonModule } from '@angular/common'; +import { Component } from '@angular/core'; +import { MatButtonModule } from '@angular/material/button'; +import { RouterModule } from '@angular/router'; + +import { products } from '../products'; +import { BaseProductPageComponent } from './base-page.component'; + +@Component({ + host: { class: 'page' }, + imports: [CommonModule, MatButtonModule, RouterModule], + selector: 'gf-wealthfolio-page', + standalone: true, + styleUrls: ['../product-page-template.scss'], + templateUrl: '../product-page-template.html' +}) +export class WealthfolioPageComponent extends BaseProductPageComponent { + public product1 = products.find(({ key }) => { + return key === 'ghostfolio'; + }); + + public product2 = products.find(({ key }) => { + return key === 'wealthfolio'; + }); + + public routerLinkAbout = ['/' + $localize`about`]; + public routerLinkFeatures = ['/' + $localize`features`]; + public routerLinkResourcesPersonalFinanceTools = [ + '/' + $localize`resources`, + 'personal-finance-tools' + ]; +} diff --git a/apps/client/src/app/pages/resources/resources-page-routing.module.ts b/apps/client/src/app/pages/resources/resources-page-routing.module.ts index 7b00fcaae..be2eaa24e 100644 --- a/apps/client/src/app/pages/resources/resources-page-routing.module.ts +++ b/apps/client/src/app/pages/resources/resources-page-routing.module.ts @@ -1,6 +1,7 @@ +import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; import { ResourcesPageComponent } from './resources-page.component'; diff --git a/apps/client/src/app/pages/resources/resources-page.component.ts b/apps/client/src/app/pages/resources/resources-page.component.ts index d5a276238..5c9e690b9 100644 --- a/apps/client/src/app/pages/resources/resources-page.component.ts +++ b/apps/client/src/app/pages/resources/resources-page.component.ts @@ -1,7 +1,8 @@ -import { Component, OnInit } from '@angular/core'; import { DataService } from '@ghostfolio/client/services/data.service'; import { InfoItem } from '@ghostfolio/common/interfaces'; import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + +import { Component, OnInit } from '@angular/core'; import { Subject } from 'rxjs'; @Component({ diff --git a/apps/client/src/app/pages/resources/resources-page.html b/apps/client/src/app/pages/resources/resources-page.html index f9f183960..494021534 100644 --- a/apps/client/src/app/pages/resources/resources-page.html +++ b/apps/client/src/app/pages/resources/resources-page.html @@ -170,7 +170,8 @@ -
        + @if (hasPermissionForSubscription) { +

        Personal Finance Tools

        @@ -185,6 +186,7 @@
        + }

        Stagflation

        diff --git a/apps/client/src/app/pages/user-account/user-account-page-routing.module.ts b/apps/client/src/app/pages/user-account/user-account-page-routing.module.ts index 568095009..ae8002d7f 100644 --- a/apps/client/src/app/pages/user-account/user-account-page-routing.module.ts +++ b/apps/client/src/app/pages/user-account/user-account-page-routing.module.ts @@ -1,10 +1,11 @@ -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; import { UserAccountAccessComponent } from '@ghostfolio/client/components/user-account-access/user-account-access.component'; import { UserAccountMembershipComponent } from '@ghostfolio/client/components/user-account-membership/user-account-membership.component'; import { UserAccountSettingsComponent } from '@ghostfolio/client/components/user-account-settings/user-account-settings.component'; import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + import { UserAccountPageComponent } from './user-account-page.component'; const routes: Routes = [ diff --git a/apps/client/src/app/pages/user-account/user-account-page.component.ts b/apps/client/src/app/pages/user-account/user-account-page.component.ts index 80c4a8f72..f8d68baa6 100644 --- a/apps/client/src/app/pages/user-account/user-account-page.component.ts +++ b/apps/client/src/app/pages/user-account/user-account-page.component.ts @@ -1,6 +1,7 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject, takeUntil } from 'rxjs'; diff --git a/apps/client/src/app/pages/user-account/user-account-page.html b/apps/client/src/app/pages/user-account/user-account-page.html index d3fbca534..839e8114f 100644 --- a/apps/client/src/app/pages/user-account/user-account-page.html +++ b/apps/client/src/app/pages/user-account/user-account-page.html @@ -12,7 +12,7 @@ + />
        {{ tab.label }}
        diff --git a/apps/client/src/app/pages/user-account/user-account-page.module.ts b/apps/client/src/app/pages/user-account/user-account-page.module.ts index 5ec767170..395480c0b 100644 --- a/apps/client/src/app/pages/user-account/user-account-page.module.ts +++ b/apps/client/src/app/pages/user-account/user-account-page.module.ts @@ -1,10 +1,11 @@ -import { CommonModule } from '@angular/common'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatTabsModule } from '@angular/material/tabs'; import { GfUserAccountAccessModule } from '@ghostfolio/client/components/user-account-access/user-account-access.module'; import { GfUserAccountMembershipModule } from '@ghostfolio/client/components/user-account-membership/user-account-membership.module'; import { GfUserAccountSettingsModule } from '@ghostfolio/client/components/user-account-settings/user-account-settings.module'; +import { CommonModule } from '@angular/common'; +import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; +import { MatTabsModule } from '@angular/material/tabs'; + import { UserAccountPageRoutingModule } from './user-account-page-routing.module'; import { UserAccountPageComponent } from './user-account-page.component'; diff --git a/apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts b/apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts index bf2118b92..e1bd38bba 100644 --- a/apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts +++ b/apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts @@ -1,6 +1,7 @@ +import { WebauthnPageComponent } from '@ghostfolio/client/pages/webauthn/webauthn-page.component'; + import { NgModule } from '@angular/core'; import { RouterModule, Routes } from '@angular/router'; -import { WebauthnPageComponent } from '@ghostfolio/client/pages/webauthn/webauthn-page.component'; const routes: Routes = [ { component: WebauthnPageComponent, path: '', title: $localize`Sign in` } diff --git a/apps/client/src/app/pages/webauthn/webauthn-page.component.ts b/apps/client/src/app/pages/webauthn/webauthn-page.component.ts index de3b29d61..4f259cd08 100644 --- a/apps/client/src/app/pages/webauthn/webauthn-page.component.ts +++ b/apps/client/src/app/pages/webauthn/webauthn-page.component.ts @@ -1,7 +1,8 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; -import { Router } from '@angular/router'; import { TokenStorageService } from '@ghostfolio/client/services/token-storage.service'; import { WebAuthnService } from '@ghostfolio/client/services/web-authn.service'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; +import { Router } from '@angular/router'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; diff --git a/apps/client/src/app/pages/webauthn/webauthn-page.html b/apps/client/src/app/pages/webauthn/webauthn-page.html index a81a9c6fc..02e1b48d0 100644 --- a/apps/client/src/app/pages/webauthn/webauthn-page.html +++ b/apps/client/src/app/pages/webauthn/webauthn-page.html @@ -4,14 +4,15 @@
        - +
        -
        - + @if (!hasError) { +
        +
        + } @else {

        @@ -30,6 +31,7 @@ Go back to Home Page

        + }
        diff --git a/apps/client/src/app/pages/webauthn/webauthn-page.module.ts b/apps/client/src/app/pages/webauthn/webauthn-page.module.ts index 7cd0ed7f8..0ef7d12ce 100644 --- a/apps/client/src/app/pages/webauthn/webauthn-page.module.ts +++ b/apps/client/src/app/pages/webauthn/webauthn-page.module.ts @@ -1,9 +1,10 @@ +import { WebauthnPageComponent } from '@ghostfolio/client/pages/webauthn/webauthn-page.component'; +import { GfLogoModule } from '@ghostfolio/ui/logo'; + import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; -import { WebauthnPageComponent } from '@ghostfolio/client/pages/webauthn/webauthn-page.component'; -import { GfLogoModule } from '@ghostfolio/ui/logo'; import { WebauthnPageRoutingModule } from './webauthn-page-routing.module'; diff --git a/apps/client/src/app/pages/zen/zen-page-routing.module.ts b/apps/client/src/app/pages/zen/zen-page-routing.module.ts index 26b468aef..96eedadde 100644 --- a/apps/client/src/app/pages/zen/zen-page-routing.module.ts +++ b/apps/client/src/app/pages/zen/zen-page-routing.module.ts @@ -1,9 +1,10 @@ -import { NgModule } from '@angular/core'; -import { RouterModule, Routes } from '@angular/router'; import { HomeHoldingsComponent } from '@ghostfolio/client/components/home-holdings/home-holdings.component'; import { HomeOverviewComponent } from '@ghostfolio/client/components/home-overview/home-overview.component'; import { AuthGuard } from '@ghostfolio/client/core/auth.guard'; +import { NgModule } from '@angular/core'; +import { RouterModule, Routes } from '@angular/router'; + import { ZenPageComponent } from './zen-page.component'; const routes: Routes = [ diff --git a/apps/client/src/app/pages/zen/zen-page.component.ts b/apps/client/src/app/pages/zen/zen-page.component.ts index b0906ea6c..511e2656d 100644 --- a/apps/client/src/app/pages/zen/zen-page.component.ts +++ b/apps/client/src/app/pages/zen/zen-page.component.ts @@ -1,6 +1,7 @@ -import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { UserService } from '@ghostfolio/client/services/user/user.service'; import { TabConfiguration, User } from '@ghostfolio/common/interfaces'; + +import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; diff --git a/apps/client/src/app/pages/zen/zen-page.html b/apps/client/src/app/pages/zen/zen-page.html index d3fbca534..839e8114f 100644 --- a/apps/client/src/app/pages/zen/zen-page.html +++ b/apps/client/src/app/pages/zen/zen-page.html @@ -12,7 +12,7 @@ + />
        {{ tab.label }}
        diff --git a/apps/client/src/app/pages/zen/zen-page.module.ts b/apps/client/src/app/pages/zen/zen-page.module.ts index 49eb2f9f6..ebee36eeb 100644 --- a/apps/client/src/app/pages/zen/zen-page.module.ts +++ b/apps/client/src/app/pages/zen/zen-page.module.ts @@ -1,9 +1,10 @@ +import { GfHomeHoldingsModule } from '@ghostfolio/client/components/home-holdings/home-holdings.module'; +import { GfHomeOverviewModule } from '@ghostfolio/client/components/home-overview/home-overview.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatTabsModule } from '@angular/material/tabs'; import { RouterModule } from '@angular/router'; -import { GfHomeHoldingsModule } from '@ghostfolio/client/components/home-holdings/home-holdings.module'; -import { GfHomeOverviewModule } from '@ghostfolio/client/components/home-overview/home-overview.module'; import { ZenPageRoutingModule } from './zen-page-routing.module'; import { ZenPageComponent } from './zen-page.component'; diff --git a/apps/client/src/app/pipes/symbol/symbol.pipe.ts b/apps/client/src/app/pipes/symbol/symbol.pipe.ts index 525829afb..3a709b2bc 100644 --- a/apps/client/src/app/pipes/symbol/symbol.pipe.ts +++ b/apps/client/src/app/pipes/symbol/symbol.pipe.ts @@ -1,6 +1,7 @@ -import { Pipe, PipeTransform } from '@angular/core'; import { prettifySymbol } from '@ghostfolio/common/helper'; +import { Pipe, PipeTransform } from '@angular/core'; + @Pipe({ name: 'gfSymbol' }) export class SymbolPipe implements PipeTransform { public constructor() {} diff --git a/apps/client/src/app/services/admin.service.ts b/apps/client/src/app/services/admin.service.ts index 2854a2379..7d204c607 100644 --- a/apps/client/src/app/services/admin.service.ts +++ b/apps/client/src/app/services/admin.service.ts @@ -1,6 +1,3 @@ -import { HttpClient, HttpParams } from '@angular/common/http'; -import { Injectable } from '@angular/core'; -import { SortDirection } from '@angular/material/sort'; import { UpdateAssetProfileDto } from '@ghostfolio/api/app/admin/update-asset-profile.dto'; import { UpdateBulkMarketDataDto } from '@ghostfolio/api/app/admin/update-bulk-market-data.dto'; import { CreatePlatformDto } from '@ghostfolio/api/app/platform/create-platform.dto'; @@ -18,6 +15,10 @@ import { Filter, UniqueAsset } from '@ghostfolio/common/interfaces'; + +import { HttpClient, HttpParams } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { SortDirection } from '@angular/material/sort'; import { DataSource, MarketData, Platform, Tag } from '@prisma/client'; import { JobStatus } from 'bull'; import { format, parseISO } from 'date-fns'; @@ -206,9 +207,12 @@ export class AdminService { assetClass, assetSubClass, comment, + countries, + currency, dataSource, name, scraperConfiguration, + sectors, symbol, symbolMapping }: UniqueAsset & UpdateAssetProfileDto) { @@ -218,8 +222,11 @@ export class AdminService { assetClass, assetSubClass, comment, + countries, + currency, name, scraperConfiguration, + sectors, symbolMapping } ); @@ -257,4 +264,17 @@ export class AdminService { public putTag(aTag: UpdateTagDto) { return this.http.put(`/api/v1/tag/${aTag.id}`, aTag); } + + public testMarketData({ + dataSource, + scraperConfiguration, + symbol + }: UniqueAsset & UpdateAssetProfileDto['scraperConfiguration']) { + return this.http.post( + `/api/v1/admin/market-data/${dataSource}/${symbol}/test`, + { + scraperConfiguration + } + ); + } } diff --git a/apps/client/src/app/services/data.service.ts b/apps/client/src/app/services/data.service.ts index 73dceeb77..d36aca152 100644 --- a/apps/client/src/app/services/data.service.ts +++ b/apps/client/src/app/services/data.service.ts @@ -1,6 +1,3 @@ -import { HttpClient, HttpParams } from '@angular/common/http'; -import { Injectable } from '@angular/core'; -import { SortDirection } from '@angular/material/sort'; import { CreateAccessDto } from '@ghostfolio/api/app/access/create-access.dto'; import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto'; import { TransferBalanceDto } from '@ghostfolio/api/app/account/transfer-balance.dto'; @@ -39,6 +36,11 @@ import { } from '@ghostfolio/common/interfaces'; import { filterGlobalPermissions } from '@ghostfolio/common/permissions'; import { AccountWithValue, DateRange, GroupBy } from '@ghostfolio/common/types'; +import { translate } from '@ghostfolio/ui/i18n'; + +import { HttpClient, HttpParams } from '@angular/common/http'; +import { Injectable } from '@angular/core'; +import { SortDirection } from '@angular/material/sort'; import { DataSource, Order as OrderModel } from '@prisma/client'; import { format, parseISO } from 'date-fns'; import { cloneDeep, groupBy, isNumber } from 'lodash'; @@ -278,8 +280,14 @@ export class DataService { return this.http.get('/api/v1/benchmark'); } - public fetchExport(activityIds?: string[]) { - let params = new HttpParams(); + public fetchExport({ + activityIds, + filters + }: { + activityIds?: string[]; + filters?: Filter[]; + } = {}) { + let params = this.buildFiltersAsQueryParams({ filters }); if (activityIds) { params = params.append('activityIds', activityIds.join(',')); @@ -399,6 +407,14 @@ export class DataService { if (response.holdings) { for (const symbol of Object.keys(response.holdings)) { + response.holdings[symbol].assetClassLabel = translate( + response.holdings[symbol].assetClass + ); + + response.holdings[symbol].assetSubClassLabel = translate( + response.holdings[symbol].assetSubClass + ); + response.holdings[symbol].dateOfFirstActivity = response.holdings[ symbol ].dateOfFirstActivity diff --git a/apps/client/src/app/services/ics/ics.service.ts b/apps/client/src/app/services/ics/ics.service.ts index 1163fa786..c426902e7 100644 --- a/apps/client/src/app/services/ics/ics.service.ts +++ b/apps/client/src/app/services/ics/ics.service.ts @@ -1,6 +1,7 @@ -import { Injectable } from '@angular/core'; import { capitalize } from '@ghostfolio/common/helper'; import { Export } from '@ghostfolio/common/interfaces'; + +import { Injectable } from '@angular/core'; import { Type } from '@prisma/client'; import { format, parseISO } from 'date-fns'; diff --git a/apps/client/src/app/services/import-activities.service.ts b/apps/client/src/app/services/import-activities.service.ts index af7e8e6c9..5375c32aa 100644 --- a/apps/client/src/app/services/import-activities.service.ts +++ b/apps/client/src/app/services/import-activities.service.ts @@ -1,9 +1,10 @@ -import { HttpClient } from '@angular/common/http'; -import { Injectable } from '@angular/core'; import { CreateAccountDto } from '@ghostfolio/api/app/account/create-account.dto'; import { CreateOrderDto } from '@ghostfolio/api/app/order/create-order.dto'; import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; import { parseDate as parseDateHelper } from '@ghostfolio/common/helper'; + +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; import { Account, DataSource, Type } from '@prisma/client'; import { isFinite } from 'lodash'; import { parse as csvToJson } from 'papaparse'; diff --git a/apps/client/src/app/services/internet-identity.service.ts b/apps/client/src/app/services/internet-identity.service.ts index 833b5d80e..30ae13679 100644 --- a/apps/client/src/app/services/internet-identity.service.ts +++ b/apps/client/src/app/services/internet-identity.service.ts @@ -1,7 +1,8 @@ +import { OAuthResponse } from '@ghostfolio/common/interfaces'; + import { HttpClient } from '@angular/common/http'; import { Injectable, OnDestroy } from '@angular/core'; import { AuthClient } from '@dfinity/auth-client'; -import { OAuthResponse } from '@ghostfolio/common/interfaces'; import { EMPTY, Subject } from 'rxjs'; import { catchError, takeUntil } from 'rxjs/operators'; diff --git a/apps/client/src/app/services/token-storage.service.ts b/apps/client/src/app/services/token-storage.service.ts index b6af7350f..c87ac8e7b 100644 --- a/apps/client/src/app/services/token-storage.service.ts +++ b/apps/client/src/app/services/token-storage.service.ts @@ -1,6 +1,7 @@ -import { Injectable } from '@angular/core'; import { WebAuthnService } from '@ghostfolio/client/services/web-authn.service'; +import { Injectable } from '@angular/core'; + import { KEY_TOKEN } from './settings-storage.service'; import { UserService } from './user/user.service'; diff --git a/apps/client/src/app/services/user/user.service.ts b/apps/client/src/app/services/user/user.service.ts index d041776dd..d8cb63d0b 100644 --- a/apps/client/src/app/services/user/user.service.ts +++ b/apps/client/src/app/services/user/user.service.ts @@ -1,11 +1,12 @@ +import { SubscriptionInterstitialDialogParams } from '@ghostfolio/client/components/subscription-interstitial-dialog/interfaces/interfaces'; +import { SubscriptionInterstitialDialog } from '@ghostfolio/client/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component'; +import { Filter, User } from '@ghostfolio/common/interfaces'; +import { hasPermission, permissions } from '@ghostfolio/common/permissions'; + import { HttpClient } from '@angular/common/http'; import { Injectable } from '@angular/core'; import { MatDialog } from '@angular/material/dialog'; import { ObservableStore } from '@codewithdan/observable-store'; -import { SubscriptionInterstitialDialogParams } from '@ghostfolio/client/components/subscription-interstitial-dialog/interfaces/interfaces'; -import { SubscriptionInterstitialDialog } from '@ghostfolio/client/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component'; -import { User } from '@ghostfolio/common/interfaces'; -import { hasPermission, permissions } from '@ghostfolio/common/permissions'; import { parseISO } from 'date-fns'; import { DeviceDetectorService } from 'ngx-device-detector'; import { Observable, Subject, of } from 'rxjs'; @@ -46,6 +47,34 @@ export class UserService extends ObservableStore { } } + public getFilters() { + const filters: Filter[] = []; + const user = this.getState().user; + + if (user.settings['filters.accounts']) { + filters.push({ + id: user.settings['filters.accounts'][0], + type: 'ACCOUNT' + }); + } + + if (user.settings['filters.assetClasses']) { + filters.push({ + id: user.settings['filters.assetClasses'][0], + type: 'ASSET_CLASS' + }); + } + + if (user.settings['filters.tags']) { + filters.push({ + id: user.settings['filters.tags'][0], + type: 'TAG' + }); + } + + return filters; + } + public remove() { this.setState({ user: null }, UserStoreActions.RemoveUser); } diff --git a/apps/client/src/app/services/web-authn.service.ts b/apps/client/src/app/services/web-authn.service.ts index 5c7b19838..c5e186362 100644 --- a/apps/client/src/app/services/web-authn.service.ts +++ b/apps/client/src/app/services/web-authn.service.ts @@ -1,11 +1,12 @@ -import { HttpClient } from '@angular/common/http'; -import { Injectable } from '@angular/core'; import { AuthDeviceDto } from '@ghostfolio/api/app/auth-device/auth-device.dto'; import { PublicKeyCredentialCreationOptionsJSON, PublicKeyCredentialRequestOptionsJSON } from '@ghostfolio/api/app/auth/interfaces/simplewebauthn'; import { SettingsStorageService } from '@ghostfolio/client/services/settings-storage.service'; + +import { HttpClient } from '@angular/common/http'; +import { Injectable } from '@angular/core'; import { startAuthentication, startRegistration diff --git a/apps/client/src/assets/oss-friends.json b/apps/client/src/assets/oss-friends.json index d22f4c030..13d8fb3f1 100644 --- a/apps/client/src/assets/oss-friends.json +++ b/apps/client/src/assets/oss-friends.json @@ -1,6 +1,16 @@ { - "createdAt": "2023-11-30T00:00:00.000Z", + "createdAt": "2024-01-29T00:00:00.000Z", "data": [ + { + "name": "Aptabase", + "description": "Analytics for Apps, open source, simple and privacy-friendly. SDKs for Swift, React Native, Electron, Flutter and many others.", + "href": "https://aptabase.com" + }, + { + "name": "Argos", + "description": "Argos provides the developer tools to debug tests and detect visual regressions..", + "href": "https://argos-ci.com" + }, { "name": "BoxyHQ", "description": "BoxyHQ’s suite of APIs for security and privacy helps engineering teams build and ship compliant cloud applications faster.", @@ -71,11 +81,26 @@ "description": "HTMX is a dependency-free JavaScript library that allows you to access AJAX, CSS Transitions, WebSockets, and Server Sent Events directly in HTML.", "href": "https://htmx.org" }, + { + "name": "Inbox Zero", + "description": "Inbox Zero makes it easy to clean up your inbox and reach inbox zero fast. It provides bulk newsletter unsubscribe, cold email blocking, email analytics, and AI automations.", + "href": "https://getinboxzero.com" + }, { "name": "Infisical", "description": "Open source, end-to-end encrypted platform that lets you securely manage secrets and configs across your team, devices, and infrastructure.", "href": "https://infisical.com" }, + { + "name": "Langfuse", + "description": "Open source LLM engineering platform. Debug, analyze and iterate together.", + "href": "https://langfuse.com" + }, + { + "name": "Lost Pixel", + "description": "Open source visual regression testing alternative to Percy & Chromatic", + "href": "https://lost-pixel.com" + }, { "name": "Mockoon", "description": "Mockoon is the easiest and quickest way to design and run mock REST APIs.", diff --git a/apps/client/src/index.html b/apps/client/src/index.html index 47f2c3d1a..7447a2c78 100644 --- a/apps/client/src/index.html +++ b/apps/client/src/index.html @@ -48,7 +48,7 @@ - + diff --git a/apps/client/src/locales/messages.de.xlf b/apps/client/src/locales/messages.de.xlf index 3f6f209de..b769680a2 100644 --- a/apps/client/src/locales/messages.de.xlf +++ b/apps/client/src/locales/messages.de.xlf @@ -22,7 +22,7 @@ Das Ausfallrisiko beim Börsenhandel kann erheblich sein. Es ist nicht ratsam, Geld zu investieren, welches du kurzfristig benötigst. apps/client/src/app/app.component.html - 182 + 179 @@ -36,10 +36,6 @@ Type Typ - - apps/client/src/app/components/access-table/access-table.component.html - 17 - apps/client/src/app/components/admin-jobs/admin-jobs.html 28 @@ -54,7 +50,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 164 + 159 @@ -62,7 +58,7 @@ Details apps/client/src/app/components/access-table/access-table.component.html - 27 + 32 @@ -70,7 +66,7 @@ Widerrufen apps/client/src/app/components/access-table/access-table.component.html - 54 + 59 @@ -78,7 +74,7 @@ Möchtest du diese Zugangsberechtigung wirklich widerrufen? apps/client/src/app/components/access-table/access-table.component.ts - 49 + 50 @@ -90,7 +86,7 @@ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 73 + 87 apps/client/src/app/components/accounts-table/accounts-table.component.html @@ -110,7 +106,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 253 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -130,7 +126,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 182 + 180 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -150,15 +146,15 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 12 + 15 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 114 + 113 libs/ui/src/lib/activities-table/activities-table.component.html - 179 + 136 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -172,10 +168,6 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html 50 - - libs/ui/src/lib/activities-table/activities-table.component.html - 159 - Value @@ -190,7 +182,11 @@ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 47 + 45 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 167 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -198,11 +194,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 169 + 170 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 171 + 223 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -216,21 +212,17 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 226 - - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 227 - libs/ui/src/lib/account-balances/account-balances.component.html 20 libs/ui/src/lib/activities-table/activities-table.component.html - 321 + 255 libs/ui/src/lib/activities-table/activities-table.component.html - 356 + 291 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -250,7 +242,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 80 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -262,7 +254,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 507 + 428 @@ -278,11 +270,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 99 + 90 apps/client/src/app/components/admin-overview/admin-overview.html - 201 + 197 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -294,11 +286,11 @@ libs/ui/src/lib/account-balances/account-balances.component.html - 50 + 51 libs/ui/src/lib/activities-table/activities-table.component.html - 529 + 450 @@ -306,7 +298,7 @@ Möchtest du dieses Konto wirklich löschen? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 83 + 99 @@ -314,7 +306,7 @@ Jobs löschen apps/client/src/app/components/admin-jobs/admin-jobs.html - 135 + 126 @@ -350,7 +342,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 130 + 129 @@ -406,7 +398,7 @@ Daten anzeigen apps/client/src/app/components/admin-jobs/admin-jobs.html - 150 + 141 @@ -414,7 +406,7 @@ Stacktrace anzeigen apps/client/src/app/components/admin-jobs/admin-jobs.html - 157 + 148 @@ -422,7 +414,7 @@ Job löschen apps/client/src/app/components/admin-jobs/admin-jobs.html - 160 + 151 @@ -442,7 +434,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 136 + 135 libs/ui/src/lib/account-balances/account-balances.component.html @@ -450,7 +442,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 152 + 168 @@ -474,7 +466,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 260 + 301 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -490,23 +482,23 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 30 + 58 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 96 + 101 apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 59 + 57 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 362 + 361 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 37 + 38 @@ -518,7 +510,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 267 + 308 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -534,15 +526,15 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 37 + 65 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 103 + 108 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 368 @@ -590,7 +582,7 @@ Bitte Währung hinzufügen: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 119 + 122 @@ -598,7 +590,7 @@ Möchtest du diesen Gutscheincode wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 133 + 140 @@ -606,7 +598,7 @@ Möchtest du diese Währung wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 146 + 153 @@ -614,7 +606,7 @@ Möchtest du den Cache wirklich leeren? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 169 + 183 @@ -622,7 +614,7 @@ Bitte gebe deine Systemmeldung ein: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 200 + 214 @@ -682,7 +674,7 @@ Währung hinzufügen apps/client/src/app/components/admin-overview/admin-overview.html - 113 + 104 @@ -690,7 +682,7 @@ Systemmeldung apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 143 @@ -698,7 +690,7 @@ Systemmeldung setzen apps/client/src/app/components/admin-overview/admin-overview.html - 164 + 163 @@ -706,7 +698,7 @@ Lese-Modus apps/client/src/app/components/admin-overview/admin-overview.html - 130 + 121 @@ -714,7 +706,7 @@ Gutscheincodes apps/client/src/app/components/admin-overview/admin-overview.html - 172 + 171 @@ -722,7 +714,7 @@ Hinzufügen apps/client/src/app/components/admin-overview/admin-overview.html - 233 + 229 @@ -730,7 +722,7 @@ Verwaltung apps/client/src/app/components/admin-overview/admin-overview.html - 240 + 236 @@ -738,7 +730,7 @@ Cache leeren apps/client/src/app/components/admin-overview/admin-overview.html - 244 + 240 @@ -746,7 +738,7 @@ Möchtest du diesen Benutzer wirklich löschen? apps/client/src/app/components/admin-users/admin-users.component.ts - 112 + 113 @@ -754,7 +746,7 @@ Benutzer apps/client/src/app/components/header/header.component.html - 192 + 225 @@ -794,11 +786,11 @@ Übersicht apps/client/src/app/components/header/header.component.html - 27 + 28 apps/client/src/app/components/header/header.component.html - 206 + 239 @@ -806,11 +798,11 @@ Portfolio apps/client/src/app/components/header/header.component.html - 40 + 41 apps/client/src/app/components/header/header.component.html - 216 + 249 @@ -826,27 +818,35 @@ apps/client/src/app/components/header/header.component.html - 53 + 54 apps/client/src/app/components/header/header.component.html - 224 + 257 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 276 apps/client/src/app/pages/accounts/accounts-page.html 4 + + libs/ui/src/lib/assistant/assistant.html + 107 + Admin Control Administration apps/client/src/app/components/header/header.component.html - 66 + 67 apps/client/src/app/components/header/header.component.html - 240 + 273 @@ -858,11 +858,11 @@ apps/client/src/app/components/header/header.component.html - 79 + 80 apps/client/src/app/components/header/header.component.html - 251 + 284 apps/client/src/app/pages/resources/resources-page.html @@ -878,15 +878,27 @@ apps/client/src/app/components/header/header.component.html - 97 + 98 apps/client/src/app/components/header/header.component.html - 263 + 296 apps/client/src/app/components/header/header.component.html - 332 + 365 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -1086,11 +1098,11 @@ apps/client/src/app/components/header/header.component.html - 110 + 111 apps/client/src/app/components/header/header.component.html - 319 + 352 @@ -1098,7 +1110,7 @@ Ich apps/client/src/app/components/header/header.component.html - 173 + 206 @@ -1106,7 +1118,7 @@ Mein Ghostfolio apps/client/src/app/components/header/header.component.html - 231 + 264 @@ -1114,7 +1126,7 @@ Über Ghostfolio apps/client/src/app/components/header/header.component.html - 271 + 304 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -1130,7 +1142,7 @@ apps/client/src/app/components/header/header.component.html - 306 + 339 apps/client/src/app/pages/features/features-page.html @@ -1146,7 +1158,7 @@ apps/client/src/app/components/header/header.component.html - 348 + 381 apps/client/src/app/components/home-market/home-market.html @@ -1162,7 +1174,7 @@ Registrieren apps/client/src/app/pages/features/features-page.html - 299 + 296 apps/client/src/app/pages/public/public-page.html @@ -1174,11 +1186,11 @@ Einloggen apps/client/src/app/components/header/header.component.ts - 169 + 226 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts - 6 + 7 @@ -1186,7 +1198,7 @@ Ups! Falsches Sicherheits-Token. apps/client/src/app/components/header/header.component.ts - 183 + 240 @@ -1194,11 +1206,11 @@ Aktivitäten verwalten apps/client/src/app/components/home-holdings/home-holdings.html - 30 + 22 apps/client/src/app/pages/portfolio/holdings/holdings-page.html - 31 + 23 @@ -1238,11 +1250,11 @@ apps/client/src/app/pages/landing/landing-page.html - 435 + 428 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 98 + 94 apps/client/src/app/pages/register/register-page.html @@ -1250,7 +1262,7 @@ apps/client/src/app/pages/webauthn/webauthn-page.html - 28 + 29 @@ -1282,7 +1294,7 @@ Einloggen apps/client/src/app/components/header/header.component.html - 361 + 394 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1338,10 +1350,10 @@ Brutto Performance apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 72 + 73 - + @@ -1360,7 +1372,7 @@ {VAR_PLURAL, plural, =1 {Transaktion} other {Transaktionen}} apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 13 + 14 @@ -1368,7 +1380,7 @@ Absolute Netto Performance apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 103 + 110 @@ -1376,7 +1388,7 @@ Netto Performance apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 115 + 123 @@ -1384,7 +1396,7 @@ Gesamtanlagevermögen apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 131 + 145 @@ -1392,7 +1404,7 @@ Wertsachen apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 144 + 158 @@ -1400,7 +1412,7 @@ Notfallfonds apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 156 + 170 apps/client/src/app/pages/features/features-page.html @@ -1408,7 +1420,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 119 @@ -1416,7 +1428,7 @@ Kaufkraft apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 203 + 217 @@ -1424,7 +1436,7 @@ Gesamtvermögen apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 250 + 264 @@ -1432,7 +1444,7 @@ Performance pro Jahr apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 262 + 276 @@ -1440,7 +1452,7 @@ Dividenden apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 292 + 306 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1452,11 +1464,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 166 + 165 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 222 + 221 @@ -1464,7 +1476,7 @@ Bitte gib den Betrag deines Notfallfonds ein: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 52 + 53 @@ -1472,11 +1484,15 @@ Sektoren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 158 + 156 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 266 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 216 + 211 apps/client/src/app/pages/public/public-page.html @@ -1488,11 +1504,15 @@ Länder apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 166 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 277 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 228 + 223 @@ -1504,11 +1524,15 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 295 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 320 + 319 + + + libs/ui/src/lib/assistant/assistant.html + 127 @@ -1516,7 +1540,7 @@ Datenfehler melden apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 287 + 312 @@ -1548,7 +1572,7 @@ Alle anzeigen libs/ui/src/lib/holdings-table/holdings-table.component.html - 172 + 171 @@ -1556,7 +1580,11 @@ Heute apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 + + + libs/ui/src/lib/assistant/assistant.component.ts + 99 @@ -1564,7 +1592,11 @@ YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 + + + libs/ui/src/lib/assistant/assistant.component.ts + 109 @@ -1572,7 +1604,11 @@ 1J apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 + + + libs/ui/src/lib/assistant/assistant.component.ts + 112 @@ -1580,7 +1616,11 @@ 5J apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 + + + libs/ui/src/lib/assistant/assistant.component.ts + 114 @@ -1588,7 +1628,11 @@ Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 + + + libs/ui/src/lib/assistant/assistant.component.ts + 117 @@ -1596,11 +1640,11 @@ Diese Funktion erfordert ein Abonnement. apps/client/src/app/components/home-summary/home-summary.component.ts - 112 + 113 apps/client/src/app/core/http-response.interceptor.ts - 67 + 68 @@ -1608,11 +1652,11 @@ Abonnement abschliessen apps/client/src/app/components/home-summary/home-summary.component.ts - 114 + 115 apps/client/src/app/core/http-response.interceptor.ts - 69 + 70 @@ -1620,11 +1664,11 @@ Okay apps/client/src/app/core/http-response.interceptor.ts - 89 + 90 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 139 @@ -1632,15 +1676,15 @@ Über Ghostfolio apps/client/src/app/pages/about/about-page-routing.module.ts - 52 + 51 apps/client/src/app/pages/about/about-page.component.ts - 43 + 44 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts - 12 + 13 @@ -1772,11 +1816,11 @@ Datenschutzbestimmungen apps/client/src/app/pages/about/about-page.component.ts - 61 + 62 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts - 12 + 13 @@ -1784,7 +1828,7 @@ Mein Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 32 + 33 @@ -1792,7 +1836,7 @@ Bitte gebe deinen Gutscheincode ein: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 110 + 111 @@ -1800,7 +1844,7 @@ Gutscheincode konnte nicht eingelöst werden apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 120 + 121 @@ -1808,7 +1852,7 @@ Gutscheincode wurde eingelöst apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 132 + 133 @@ -1816,7 +1860,7 @@ Neu laden apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 133 + 134 @@ -1824,7 +1868,7 @@ Möchtest du diese Anmeldemethode wirklich löschen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 182 + 188 @@ -1836,7 +1880,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 387 + 306 @@ -1847,24 +1891,16 @@ 18 - - Upgrade - Upgrade - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 - - per year pro Jahr apps/client/src/app/components/user-account-membership/user-account-membership.html - 33 + 35 apps/client/src/app/pages/pricing/pricing-page.html - 332 + 254 @@ -1872,7 +1908,7 @@ Premium ausprobieren apps/client/src/app/components/user-account-membership/user-account-membership.html - 42 + 44 @@ -1880,7 +1916,7 @@ Gutschein einlösen apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 57 @@ -1904,7 +1940,7 @@ Lokalität apps/client/src/app/components/user-account-settings/user-account-settings.html - 95 + 107 @@ -1912,7 +1948,7 @@ Datums- und Zahlenformat apps/client/src/app/components/user-account-settings/user-account-settings.html - 97 + 109 @@ -1920,11 +1956,11 @@ Zen Modus apps/client/src/app/components/user-account-settings/user-account-settings.html - 141 + 153 apps/client/src/app/pages/features/features-page.html - 192 + 190 @@ -1932,15 +1968,19 @@ Einloggen mit Fingerabdruck apps/client/src/app/components/user-account-settings/user-account-settings.html - 159 + 171 User ID Benutzer ID + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 45 + apps/client/src/app/components/user-account-settings/user-account-settings.html - 192 + 205 @@ -1964,7 +2004,7 @@ Öffentlich apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 24 + 25 @@ -1972,7 +2012,7 @@ Konten apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 12 + 13 @@ -1980,7 +2020,7 @@ Konto aktualisieren apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 8 @@ -1988,7 +2028,7 @@ Konto hinzufügen apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 8 + 10 @@ -1996,7 +2036,7 @@ Bargeld apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 177 + 191 @@ -2010,17 +2050,21 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 91 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 186 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 22 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 120 + 119 libs/ui/src/lib/activities-table/activities-table.component.html - 209 + 274 @@ -2036,7 +2080,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 31 + 34 @@ -2052,7 +2096,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 45 + 48 @@ -2060,7 +2104,7 @@ Konto ID apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 90 + 94 @@ -2068,7 +2112,7 @@ Administration apps/client/src/app/pages/admin/admin-page-routing.module.ts - 19 + 20 @@ -2076,7 +2120,7 @@ Blog apps/client/src/app/pages/blog/blog-page-routing.module.ts - 12 + 13 @@ -2084,7 +2128,7 @@ Da du bereits eingeloggt bist, kannst du nicht auf die Live Demo zugreifen. apps/client/src/app/pages/demo/demo-page.component.ts - 31 + 32 @@ -2092,7 +2136,11 @@ Häufig gestellte Fragen (FAQ) apps/client/src/app/pages/faq/faq-page-routing.module.ts - 12 + 34 + + + apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts + 13 @@ -2100,7 +2148,7 @@ Features apps/client/src/app/pages/features/features-page-routing.module.ts - 12 + 13 @@ -2108,19 +2156,19 @@ Übersicht apps/client/src/app/pages/admin/admin-page.component.ts - 26 + 27 apps/client/src/app/pages/home/home-page.component.ts - 33 + 34 apps/client/src/app/pages/zen/zen-page-routing.module.ts - 18 + 19 apps/client/src/app/pages/zen/zen-page.component.ts - 33 + 34 @@ -2128,15 +2176,15 @@ Märkte apps/client/src/app/pages/home/home-page-routing.module.ts - 32 + 33 apps/client/src/app/pages/home/home-page.component.ts - 48 + 49 apps/client/src/app/pages/markets/markets-page-routing.module.ts - 12 + 13 @@ -2144,11 +2192,11 @@ Allokationen apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 48 + 49 @@ -2164,7 +2212,7 @@ Nach Konto apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 266 + 260 @@ -2172,7 +2220,7 @@ Nach Währung apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 61 + 55 @@ -2180,7 +2228,7 @@ Nach Anlageklasse apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 84 + 78 @@ -2188,7 +2236,7 @@ Nach Position apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 107 + 101 @@ -2196,7 +2244,7 @@ Nach Sektor apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 130 + 124 @@ -2204,7 +2252,7 @@ Nach Kontinent apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 154 + 148 @@ -2212,7 +2260,7 @@ Nach Land apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 309 + 303 @@ -2220,7 +2268,7 @@ Regionen apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 201 + 195 apps/client/src/app/pages/public/public-page.html @@ -2232,11 +2280,11 @@ Analyse apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 33 + 34 @@ -2252,7 +2300,7 @@ Zeitstrahl der Investitionen apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 166 + 254 @@ -2260,7 +2308,7 @@ Gewinner apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 40 + 128 @@ -2268,7 +2316,7 @@ Verlierer apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 86 + 174 @@ -2276,7 +2324,7 @@ FIRE apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 12 + 13 @@ -2300,7 +2348,7 @@ 4% Regel apps/client/src/app/pages/portfolio/fire/fire-page.html - 34 + 38 @@ -2308,28 +2356,32 @@ Positionen apps/client/src/app/pages/home/home-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/home/home-page.component.ts - 38 + 39 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 38 + 39 apps/client/src/app/pages/zen/zen-page.component.ts - 38 + 39 Holdings Positionen + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 75 + apps/client/src/app/pages/portfolio/holdings/holdings-page.html 4 @@ -2356,7 +2408,7 @@ Aktivität hinzufügen apps/client/src/app/components/home-overview/home-overview.html - 58 + 56 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2380,7 +2432,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 102 + 101 @@ -2392,11 +2444,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 152 libs/ui/src/lib/activities-table/activities-table.component.html - 230 + 184 @@ -2404,15 +2456,15 @@ Stückpreis apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 173 + 172 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 228 + 227 libs/ui/src/lib/activities-table/activities-table.component.html - 259 + 208 @@ -2420,15 +2472,15 @@ Gebühr apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 242 + 241 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 266 libs/ui/src/lib/activities-table/activities-table.component.html - 288 + 232 @@ -2436,15 +2488,15 @@ Kommentar apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 247 + 288 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 73 + 76 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 275 @@ -2460,7 +2512,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 195 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2468,7 +2520,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 291 + 290 @@ -2476,11 +2528,11 @@ Aktivitäten apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 43 + 44 @@ -2488,7 +2540,7 @@ Daten importieren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 113 + 120 @@ -2496,7 +2548,7 @@ Der Import wurde abgeschlossen apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 121 + 128 @@ -2504,7 +2556,7 @@ Preise apps/client/src/app/pages/pricing/pricing-page-routing.module.ts - 12 + 13 @@ -2516,7 +2568,7 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 + 48 @@ -2548,7 +2600,7 @@ Registrierung apps/client/src/app/pages/register/register-page-routing.module.ts - 12 + 13 @@ -2580,7 +2632,7 @@ Ich stimme zu, meinen Security Token an einem sicheren Ort hinterlegt zu haben. Sollte ich diesen verlieren, kann ich mein Konto nicht wiederherstellen. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 31 + 32 @@ -2588,7 +2640,7 @@ Zustimmen und fortfahren apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 44 + 45 @@ -2596,7 +2648,7 @@ Ressourcen apps/client/src/app/pages/resources/resources-page-routing.module.ts - 12 + 13 @@ -2604,7 +2656,7 @@ Ups, die Authentifizierung ist fehlgeschlagen. apps/client/src/app/pages/webauthn/webauthn-page.html - 18 + 19 @@ -2612,7 +2664,7 @@ Nochmals versuchen apps/client/src/app/pages/webauthn/webauthn-page.html - 26 + 27 @@ -2620,7 +2672,7 @@ Zurück zur Startseite apps/client/src/app/pages/webauthn/webauthn-page.html - 30 + 31 @@ -2628,7 +2680,7 @@ Geplant libs/ui/src/lib/activities-table/activities-table.component.html - 189 + 143 @@ -2636,7 +2688,7 @@ Aktivitäten importieren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 40 + 44 @@ -2644,11 +2696,11 @@ Aktivitäten exportieren libs/ui/src/lib/activities-table/activities-table.component.html - 47 + 41 libs/ui/src/lib/activities-table/activities-table.component.html - 476 + 394 @@ -2656,11 +2708,11 @@ Geplante Aktivitäten als ICS exportieren libs/ui/src/lib/activities-table/activities-table.component.html - 59 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 488 + 407 @@ -2668,7 +2720,7 @@ Kopieren libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 434 @@ -2676,7 +2728,7 @@ Geplante Aktivität als ICS exportieren libs/ui/src/lib/activities-table/activities-table.component.html - 523 + 444 @@ -2684,7 +2736,7 @@ Möchtest du diese Aktivität wirklich löschen? libs/ui/src/lib/activities-table/activities-table.component.ts - 227 + 175 @@ -2700,7 +2752,7 @@ Änderung vom Allzeithoch libs/ui/src/lib/benchmark/benchmark.component.html - 79 + 81 @@ -2708,7 +2760,7 @@ vom AZH libs/ui/src/lib/benchmark/benchmark.component.html - 81 + 83 @@ -2740,7 +2792,7 @@ Registrieren apps/client/src/app/components/header/header.component.html - 373 + 406 @@ -2748,7 +2800,7 @@ Diese Funktion ist derzeit nicht verfügbar. apps/client/src/app/core/http-response.interceptor.ts - 59 + 60 @@ -2756,15 +2808,15 @@ Bitte versuche es später noch einmal. apps/client/src/app/core/http-response.interceptor.ts - 61 + 62 apps/client/src/app/core/http-response.interceptor.ts - 88 + 89 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 131 + 138 @@ -2772,11 +2824,11 @@ Ups! Es ist etwas schief gelaufen. apps/client/src/app/core/http-response.interceptor.ts - 86 + 87 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 129 + 136 @@ -2824,7 +2876,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 201 + 208 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2832,7 +2884,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 307 + 306 @@ -2840,11 +2892,11 @@ Sektor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 143 + 142 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 198 + 197 @@ -2852,7 +2904,7 @@ Land apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 152 + 151 apps/client/src/app/components/admin-users/admin-users.html @@ -2860,7 +2912,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 210 + 206 @@ -2868,7 +2920,7 @@ Entwickelte Länder apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 224 + 218 apps/client/src/app/pages/public/public-page.html @@ -2880,7 +2932,7 @@ Schwellenländer apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 233 + 227 apps/client/src/app/pages/public/public-page.html @@ -2892,7 +2944,7 @@ Übrige Länder apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 242 + 236 apps/client/src/app/pages/public/public-page.html @@ -2918,14 +2970,6 @@ Deposit Einlage - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 48 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 60 - libs/ui/src/lib/fire-calculator/fire-calculator.component.ts 331 @@ -2972,7 +3016,7 @@ Angst apps/client/src/app/components/home-market/home-market.component.ts - 24 + 25 libs/ui/src/lib/i18n.ts @@ -2984,7 +3028,7 @@ Gier apps/client/src/app/components/home-market/home-market.component.ts - 25 + 26 libs/ui/src/lib/i18n.ts @@ -2996,39 +3040,15 @@ Filtern nach... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 281 + 282 - - Filter by account or tag... - Filtern nach Konto oder Tag... + + Alias + Alias - apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts - 146 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 126 - - - apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts - 86 - - - - Filter by account, currency, symbol or type... - Filtern nach Konto, Währung, Symbol oder Typ... - - libs/ui/src/lib/activities-table/activities-table.component.ts - 427 - - - - Alias - Alias - - apps/client/src/app/components/access-table/access-table.component.html - 3 + apps/client/src/app/components/access-table/access-table.component.html + 3 apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html @@ -3048,7 +3068,7 @@ Experimentelle Funktionen apps/client/src/app/components/user-account-settings/user-account-settings.html - 176 + 188 @@ -3072,7 +3092,7 @@ Anteil am Gesamtvermögen apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 18 + 12 @@ -3080,7 +3100,7 @@ Von der Analyse ausgenommen apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 215 + 229 @@ -3088,7 +3108,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 31 + 33 @@ -3096,7 +3116,7 @@ Aussehen apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 130 @@ -3104,7 +3124,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.html - 130 + 142 @@ -3112,7 +3132,7 @@ Hell apps/client/src/app/components/user-account-settings/user-account-settings.html - 131 + 143 @@ -3120,7 +3140,7 @@ Dunkel apps/client/src/app/components/user-account-settings/user-account-settings.html - 132 + 144 @@ -3128,7 +3148,7 @@ Gesamtbetrag apps/client/src/app/components/investment-chart/investment-chart.component.ts - 182 + 190 @@ -3136,7 +3156,7 @@ Portfolio Wertentwicklung apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 136 + 224 @@ -3144,7 +3164,7 @@ Sparrate apps/client/src/app/components/investment-chart/investment-chart.component.ts - 248 + 262 @@ -3292,7 +3312,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 384 + 385 @@ -3300,11 +3320,11 @@ Keine Daten verfügbar libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 386 + 387 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 399 + 400 @@ -3360,7 +3380,7 @@ Folgende Dateiformate werden unterstützt: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 91 + 87 @@ -3368,11 +3388,11 @@ Zurück apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 141 + 140 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 178 + 176 @@ -3384,35 +3404,35 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 62 + 74 apps/client/src/app/components/user-account-settings/user-account-settings.html - 66 + 78 apps/client/src/app/components/user-account-settings/user-account-settings.html - 70 + 82 apps/client/src/app/components/user-account-settings/user-account-settings.html - 74 + 86 apps/client/src/app/components/user-account-settings/user-account-settings.html - 78 + 90 apps/client/src/app/components/user-account-settings/user-account-settings.html - 82 + 94 apps/client/src/app/components/user-account-settings/user-account-settings.html - 86 + 98 apps/client/src/app/pages/features/features-page.html - 260 + 256 @@ -3436,7 +3456,7 @@ Symbol Zuordnung apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 225 + 232 @@ -3444,7 +3464,7 @@ Zeitstrahl der Dividenden apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 223 + 312 @@ -3452,7 +3472,7 @@ Dividenden apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 43 + 42 libs/ui/src/lib/i18n.ts @@ -3472,7 +3492,7 @@ Benutzer Registrierung apps/client/src/app/components/admin-overview/admin-overview.html - 119 + 110 @@ -3480,7 +3500,7 @@ Daten validieren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 224 + 233 @@ -3492,23 +3512,11 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 150 + 149 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 186 - - - - Jobs - Jobs - - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 21 - - - apps/client/src/app/pages/admin/admin-page.component.ts - 41 + 184 @@ -3516,11 +3524,11 @@ Marktdaten apps/client/src/app/pages/admin/admin-page-routing.module.ts - 25 + 30 apps/client/src/app/pages/admin/admin-page.component.ts - 36 + 37 @@ -3528,11 +3536,11 @@ Benutzer apps/client/src/app/pages/admin/admin-page-routing.module.ts - 35 + 40 apps/client/src/app/pages/admin/admin-page.component.ts - 46 + 47 @@ -3540,11 +3548,11 @@ Zusammenfassung apps/client/src/app/pages/home/home-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 43 + 44 @@ -3576,7 +3584,7 @@ Dividenden importieren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 79 + 86 @@ -3584,7 +3592,7 @@ Gültig bis libs/ui/src/lib/membership-card/membership-card.component.html - 22 + 23 @@ -3648,7 +3656,7 @@ Unbeschwertes Erlebnis für turbulente Zeiten apps/client/src/app/components/user-account-settings/user-account-settings.html - 142 + 154 @@ -3656,7 +3664,7 @@ Vorschau auf kommende Funktionalität apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 189 @@ -3664,7 +3672,7 @@ Bist du ein ambitionierter Investor, der den kompletten Überblick benötigt? apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 15 + 12 @@ -3672,15 +3680,15 @@ Portfolio Zusammenfassung apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 25 + 22 apps/client/src/app/pages/pricing/pricing-page.html - 67 + 55 apps/client/src/app/pages/pricing/pricing-page.html - 256 + 199 @@ -3688,15 +3696,15 @@ Performance Benchmarks apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 33 + 30 apps/client/src/app/pages/pricing/pricing-page.html - 81 + 63 apps/client/src/app/pages/pricing/pricing-page.html - 270 + 207 @@ -3704,15 +3712,15 @@ FIRE Rechner apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 37 + 34 apps/client/src/app/pages/pricing/pricing-page.html - 88 + 67 apps/client/src/app/pages/pricing/pricing-page.html - 277 + 211 @@ -3720,15 +3728,15 @@ und weitere Features... apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 45 + 42 apps/client/src/app/pages/pricing/pricing-page.html - 110 + 83 apps/client/src/app/pages/pricing/pricing-page.html - 306 + 231 @@ -3736,19 +3744,27 @@ Überspringen apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 55 + 52 Upgrade Plan Abonnement abschliessen + + apps/client/src/app/components/header/header.component.html + 177 + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 62 + 59 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 18 apps/client/src/app/pages/pricing/pricing-page.html - 343 + 265 @@ -3764,15 +3780,15 @@ Unlimitierte Transaktionen apps/client/src/app/pages/pricing/pricing-page.html - 46 + 43 apps/client/src/app/pages/pricing/pricing-page.html - 159 + 126 apps/client/src/app/pages/pricing/pricing-page.html - 235 + 187 @@ -3780,15 +3796,15 @@ Unlimitierte Accounts apps/client/src/app/pages/pricing/pricing-page.html - 53 + 47 apps/client/src/app/pages/pricing/pricing-page.html - 166 + 130 apps/client/src/app/pages/pricing/pricing-page.html - 242 + 191 @@ -3796,15 +3812,15 @@ Portfolio Performance apps/client/src/app/pages/pricing/pricing-page.html - 60 + 51 apps/client/src/app/pages/pricing/pricing-page.html - 173 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 249 + 195 @@ -3812,7 +3828,7 @@ Selbst gehostet, manuelles Update. apps/client/src/app/pages/pricing/pricing-page.html - 122 + 92 @@ -3820,11 +3836,11 @@ Kostenlos apps/client/src/app/pages/pricing/pricing-page.html - 123 + 93 apps/client/src/app/pages/pricing/pricing-page.html - 192 + 150 @@ -3832,7 +3848,7 @@ Für Einsteiger, die gerade mit dem Börsenhandel beginnen. apps/client/src/app/pages/pricing/pricing-page.html - 150 + 120 @@ -3840,11 +3856,11 @@ Vollständig verwaltetes Ghostfolio Cloud-Angebot. apps/client/src/app/pages/pricing/pricing-page.html - 191 + 149 apps/client/src/app/pages/pricing/pricing-page.html - 318 + 240 @@ -3852,7 +3868,7 @@ Für ambitionierte Anleger, die den vollständigen Überblick über ihr Anlagevermögen benötigen. apps/client/src/app/pages/pricing/pricing-page.html - 225 + 180 @@ -3860,7 +3876,7 @@ Einmalige Zahlung, keine automatische Erneuerung. apps/client/src/app/pages/pricing/pricing-page.html - 352 + 274 @@ -3868,7 +3884,7 @@ Jetzt loslegen apps/client/src/app/pages/pricing/pricing-page.html - 363 + 285 @@ -3876,7 +3892,7 @@ Es ist kostenlos. apps/client/src/app/pages/pricing/pricing-page.html - 366 + 288 @@ -3884,7 +3900,7 @@ Gebühren apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 87 + 94 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -3892,7 +3908,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 158 @@ -3900,19 +3916,19 @@ Portfolio Allokationen apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 29 + 26 apps/client/src/app/pages/features/features-page.html - 161 + 160 apps/client/src/app/pages/pricing/pricing-page.html - 74 + 59 apps/client/src/app/pages/pricing/pricing-page.html - 263 + 203 @@ -3928,15 +3944,15 @@ Datenimport und -export apps/client/src/app/pages/pricing/pricing-page.html - 95 + 71 apps/client/src/app/pages/pricing/pricing-page.html - 180 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 215 @@ -3952,7 +3968,7 @@ Community Support apps/client/src/app/pages/pricing/pricing-page.html - 118 + 88 @@ -3960,7 +3976,7 @@ E-Mail und Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 314 + 236 @@ -3992,7 +4008,7 @@ Ups! Der historische Wechselkurs konnte nicht abgerufen werden vom apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 258 + 257 @@ -4016,11 +4032,11 @@ Professioneller Datenanbieter apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 41 + 38 apps/client/src/app/pages/pricing/pricing-page.html - 298 + 226 @@ -4031,20 +4047,20 @@ 4 - - Renew - Erneuern - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 21 - - Renew Plan Abonnement erneuern + + apps/client/src/app/components/header/header.component.html + 185 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 23 + apps/client/src/app/pages/pricing/pricing-page.html - 348 + 270 @@ -4076,7 +4092,7 @@ Möchtest du wirklich alle Aktivitäten löschen? apps/client/src/app/pages/portfolio/activities/activities-page.component.ts - 140 + 169 @@ -4084,7 +4100,7 @@ Nach ETF-Anbieter apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 286 + 280 @@ -4092,7 +4108,7 @@ Alle Aktivitäten löschen libs/ui/src/lib/activities-table/activities-table.component.html - 69 + 65 @@ -4128,7 +4144,7 @@ Möchtest du diese Plattform wirklich löschen? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 78 + 79 @@ -4144,7 +4160,7 @@ Cash-Bestand aktualisieren apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 94 + 93 @@ -4152,7 +4168,7 @@ Nach Plattform apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 42 + 36 @@ -4160,7 +4176,7 @@ Wechsle noch heute zu Ghostfolio Premium und erhalte Zugang zu exklusiven Funktionen, die das Investieren erleichtern: apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 18 + 15 @@ -4168,7 +4184,7 @@ Nutze die Werkzeuge, um deine Finanzen effektiv zu verwalten und deine persönliche Anlagestrategie zu verfeinern. apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 48 + 45 @@ -4184,19 +4200,19 @@ Einstellungen apps/client/src/app/pages/admin/admin-page-routing.module.ts - 30 + 35 apps/client/src/app/pages/admin/admin-page.component.ts - 31 + 32 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 17 + 18 apps/client/src/app/pages/user-account/user-account-page.component.ts - 34 + 35 @@ -4220,7 +4236,7 @@ Benchmarks verwalten apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html - 36 + 38 @@ -4244,7 +4260,7 @@ Dividenden auswählen apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 110 @@ -4252,7 +4268,7 @@ Aktivitäten auswählen apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 117 + 113 @@ -4260,11 +4276,11 @@ Aktivitäten importieren libs/ui/src/lib/activities-table/activities-table.component.html - 16 + 9 libs/ui/src/lib/activities-table/activities-table.component.html - 453 + 369 @@ -4272,11 +4288,11 @@ Dividenden importieren libs/ui/src/lib/activities-table/activities-table.component.html - 35 + 29 libs/ui/src/lib/activities-table/activities-table.component.html - 464 + 381 @@ -4300,7 +4316,7 @@ Aktueller Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 187 + 275 @@ -4308,7 +4324,7 @@ Längster Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 196 + 284 @@ -4343,20 +4359,12 @@ 26 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Wenn du heute in den Ruhestand gehen würdest, könnest du pro Jahr oder pro Monatentnehmen, bezogen auf dein Gesamtanlagevermögen von und einer Entnahmerate von 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 57 - - Liabilities Verbindlichkeiten apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 230 + 244 apps/client/src/app/pages/features/features-page.html @@ -4368,11 +4376,11 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 48 + 49 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts - 12 + 13 @@ -4380,11 +4388,11 @@ Lizenz apps/client/src/app/pages/about/about-page.component.ts - 53 + 54 apps/client/src/app/pages/about/license/license-page-routing.module.ts - 12 + 13 @@ -4456,7 +4464,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 179 + 177 @@ -4464,7 +4472,7 @@ Marktstimmung apps/client/src/app/pages/features/features-page.html - 209 + 205 @@ -4472,7 +4480,7 @@ Statische Analyse apps/client/src/app/pages/features/features-page.html - 227 + 224 @@ -4480,7 +4488,7 @@ Mehrsprachigkeit apps/client/src/app/pages/features/features-page.html - 245 + 241 @@ -4488,7 +4496,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 279 + 275 @@ -4504,7 +4512,7 @@ Scraper Konfiguration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 243 @@ -4520,7 +4528,7 @@ Tools für persönliche Finanzen apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 13 + 14 @@ -4722,6 +4730,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 67 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + Origin @@ -4914,6 +4934,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 72 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + Region @@ -5106,6 +5138,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 77 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + Available in @@ -5298,6 +5342,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 82 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + ✅ Yes @@ -5490,6 +5546,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 104 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 111 @@ -5866,6 +5946,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 @@ -6054,6 +6150,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 150 @@ -6242,6 +6354,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 150 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 157 @@ -6618,6 +6746,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 169 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 176 @@ -6998,6 +7150,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 106 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 129 @@ -7374,6 +7550,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 140 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 152 @@ -7562,6 +7754,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 152 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 159 @@ -7750,6 +7958,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 159 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 171 @@ -8126,6 +8350,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 178 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + ❌ No @@ -8318,6 +8554,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 113 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + Self-Hosting @@ -8510,17 +8758,41 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 118 - - - Use anonymously - Anonyme Nutzung apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + + Use anonymously + Anonyme Nutzung + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -8894,6 +9166,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 164 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + Notes @@ -9086,6 +9370,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 196 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -9278,6 +9574,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 221 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + Personal Finance Tools @@ -9470,6 +9778,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 302 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + Guides @@ -9536,7 +9856,7 @@ ETFs ohne Länder apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 71 + 72 @@ -9544,7 +9864,7 @@ ETFs ohne Sektoren apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 76 + 77 @@ -9552,7 +9872,7 @@ Anlagevermögen apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 190 + 204 @@ -9568,7 +9888,7 @@ Nach Markt apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 177 + 171 @@ -9592,7 +9912,7 @@ Herzlich willkommen bei Ghostfolio apps/client/src/app/components/home-overview/home-overview.html - 9 + 7 @@ -9600,7 +9920,7 @@ Konten einrichten apps/client/src/app/components/home-overview/home-overview.html - 17 + 15 @@ -9608,7 +9928,7 @@ Verschaffe dir einen umfassenden Überblick, indem du deine Bank- und Wertpapierkonten hinzufügst. apps/client/src/app/components/home-overview/home-overview.html - 19 + 17 @@ -9616,7 +9936,7 @@ Aktivitäten erfassen apps/client/src/app/components/home-overview/home-overview.html - 26 + 24 @@ -9624,7 +9944,7 @@ Erfasse deine Investitionsaktivitäten, um dein Portfolio auf dem neuesten Stand zu halten. apps/client/src/app/components/home-overview/home-overview.html - 28 + 26 @@ -9632,7 +9952,7 @@ Portfolio überwachen und analysieren apps/client/src/app/components/home-overview/home-overview.html - 35 + 33 @@ -9640,7 +9960,7 @@ Verfolge die Entwicklung in Echtzeit mit umfassenden Analysen und Einblicken. apps/client/src/app/components/home-overview/home-overview.html - 37 + 35 @@ -9648,7 +9968,7 @@ Keine Daten verfügbar apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 254 + 248 apps/client/src/app/pages/public/public-page.html @@ -9660,7 +9980,7 @@ Bist du bereit, die Kontrolle über deine Finanzen zu übernehmen? apps/client/src/app/components/home-overview/home-overview.html - 10 + 8 @@ -9668,7 +9988,7 @@ Konten einrichten apps/client/src/app/components/home-overview/home-overview.html - 50 + 48 @@ -9676,7 +9996,7 @@ Biometrische Authentifizierung apps/client/src/app/components/user-account-settings/user-account-settings.html - 158 + 170 @@ -9760,7 +10080,7 @@ Daten exportieren apps/client/src/app/components/user-account-settings/user-account-settings.html - 199 + 213 @@ -9768,7 +10088,7 @@ Währungen apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 66 + 67 @@ -9784,7 +10104,7 @@ Besuche apps/client/src/app/pages/about/oss-friends/oss-friends-page.html - 28 + 26 @@ -9799,7 +10119,15 @@ Frequently Asked Questions (FAQ) Häufig gestellte Fragen (FAQ) - apps/client/src/app/pages/faq/faq-page.html + apps/client/src/app/pages/faq/overview/faq-overview-page.html + 4 + + + apps/client/src/app/pages/faq/saas/saas-page.html + 4 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html 4 @@ -9852,7 +10180,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 424 @@ -10044,7 +10372,7 @@ Nutzer aus aller Welt verwenden Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 358 + 354 @@ -10052,7 +10380,7 @@ Wie funktioniert Ghostfolio ? apps/client/src/app/pages/landing/landing-page.html - 373 + 366 @@ -10060,7 +10388,7 @@ Registriere dich anonym* apps/client/src/app/pages/landing/landing-page.html - 382 + 375 @@ -10068,7 +10396,7 @@ * Keine E-Mail-Adresse oder Kreditkarte erforderlich apps/client/src/app/pages/landing/landing-page.html - 384 + 377 @@ -10076,7 +10404,7 @@ Füge historische Transaktionen hinzu apps/client/src/app/pages/landing/landing-page.html - 395 + 388 @@ -10084,7 +10412,7 @@ Erhalte nützliche Erkenntnisse über die Zusammensetzung deines Portfolios apps/client/src/app/pages/landing/landing-page.html - 407 + 400 @@ -10092,7 +10420,7 @@ Bist du bereit? apps/client/src/app/pages/landing/landing-page.html - 419 + 412 @@ -10100,7 +10428,7 @@ Melde dich jetzt an oder probiere die Live Demo aus apps/client/src/app/pages/landing/landing-page.html - 420 + 413 @@ -10112,7 +10440,7 @@ apps/client/src/app/pages/landing/landing-page.html - 436 + 429 @@ -10128,7 +10456,7 @@ Beginne mit nur 3 Schritten apps/client/src/app/pages/landing/landing-page.html - 376 + 369 @@ -10136,15 +10464,27 @@ haeufig-gestellte-fragen apps/client/src/app/app-routing.module.ts - 9 + 10 apps/client/src/app/app.component.ts - 54 + 55 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 37 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 42 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 @@ -10152,27 +10492,27 @@ features apps/client/src/app/app-routing.module.ts - 10 + 11 apps/client/src/app/app.component.ts - 55 + 56 apps/client/src/app/components/header/header.component.ts - 72 + 77 apps/client/src/app/components/header/header.component.ts - 77 + 82 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -10192,19 +10532,23 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts 14 - apps/client/src/app/pages/faq/faq-page.component.ts - 13 + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 14 apps/client/src/app/pages/pricing/pricing-page.component.ts - 34 + 35 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 27 apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts @@ -10262,6 +10606,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 27 @@ -10378,6 +10726,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 27 @@ -10400,51 +10752,51 @@ ueber-uns apps/client/src/app/app-routing.module.ts - 8 + 9 apps/client/src/app/app.component.ts - 47 + 48 apps/client/src/app/app.component.ts - 48 + 49 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/app.component.ts - 51 + 52 apps/client/src/app/components/header/header.component.ts - 71 + 76 apps/client/src/app/components/header/header.component.ts - 76 + 81 apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/about-page.component.ts - 73 + 74 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -10468,12 +10820,16 @@ apps/client/src/app/pages/landing/landing-page.component.ts - 25 + 26 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 22 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 26 @@ -10530,6 +10886,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 26 @@ -10646,6 +11006,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 26 @@ -10668,15 +11032,15 @@ datenschutzbestimmungen apps/client/src/app/app-routing.module.ts - 14 + 15 apps/client/src/app/app.component.ts - 52 + 53 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 @@ -10684,15 +11048,15 @@ lizenz apps/client/src/app/app-routing.module.ts - 11 + 12 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 @@ -10700,19 +11064,19 @@ maerkte apps/client/src/app/app-routing.module.ts - 12 + 13 apps/client/src/app/app.component.ts - 56 + 57 apps/client/src/app/components/header/header.component.ts - 73 + 78 apps/client/src/app/components/header/header.component.ts - 78 + 83 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -10723,7 +11087,7 @@ 16 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 14 @@ -10732,23 +11096,23 @@ preise apps/client/src/app/app-routing.module.ts - 13 + 14 apps/client/src/app/app.component.ts - 57 + 58 apps/client/src/app/components/header/header.component.ts - 74 + 79 apps/client/src/app/components/header/header.component.ts - 79 + 84 apps/client/src/app/components/home-summary/home-summary.component.ts - 124 + 125 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts @@ -10756,11 +11120,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 37 + 38 apps/client/src/app/core/http-response.interceptor.ts - 80 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -10780,7 +11144,7 @@ apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 16 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -10788,10 +11152,14 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 16 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts 15 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 @@ -10804,35 +11172,35 @@ registrierung apps/client/src/app/app-routing.module.ts - 15 + 16 apps/client/src/app/app.component.ts - 58 + 59 apps/client/src/app/components/header/header.component.ts - 80 + 85 apps/client/src/app/core/auth.guard.ts - 53 + 54 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 16 apps/client/src/app/pages/features/features-page.component.ts - 17 + 18 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/pricing/pricing-page.component.ts - 35 + 36 @@ -10840,19 +11208,19 @@ ressourcen apps/client/src/app/app-routing.module.ts - 16 + 17 apps/client/src/app/app.component.ts - 59 + 60 apps/client/src/app/components/header/header.component.ts - 75 + 80 apps/client/src/app/components/header/header.component.ts - 81 + 86 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -10872,12 +11240,16 @@ apps/client/src/app/pages/features/features-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 29 @@ -10934,6 +11306,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 29 @@ -11050,6 +11426,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 29 @@ -11068,7 +11448,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 17 + 18 @@ -11092,7 +11472,7 @@ Open Source Alternative zu apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html - 35 + 32 @@ -11100,7 +11480,7 @@ Open Source Alternative zu apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 25 + 26 @@ -11294,6 +11674,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -11486,6 +11878,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -11678,6 +12082,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -11870,13 +12286,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + open-source-alternative-to open-source-alternative-zu apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts @@ -12074,6 +12502,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 204 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + Ready to take your investments to the next level? @@ -12266,6 +12706,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 217 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + Get Started @@ -12458,25 +12910,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 226 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + Switzerland Schweiz apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 72 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 90 + 102 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 506 + 530 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 548 + 580 @@ -12484,19 +12948,19 @@ Weltweit apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 70 + 73 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 317 + 341 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 438 + 462 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 549 + 581 @@ -12504,83 +12968,87 @@ Vereinigte Staaten von Amerika apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 81 + 93 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 149 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 159 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 189 + 201 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 198 + 210 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 208 + 220 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 218 + 232 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 270 + 242 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 294 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 316 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 328 + 327 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 330 + 352 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 354 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 340 + 364 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 405 + 429 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 415 + 439 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 425 + 449 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 494 + 518 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 517 + 541 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 537 + 569 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 559 + 591 @@ -12588,7 +13056,7 @@ Belgien apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 167 + 179 @@ -12596,31 +13064,31 @@ Deutschland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 128 + 140 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 178 + 190 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 250 + 274 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 260 + 284 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 305 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 315 + 339 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 361 + 385 @@ -12628,7 +13096,7 @@ Österreich apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 238 + 262 @@ -12636,7 +13104,7 @@ Italien apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 372 + 396 @@ -12644,7 +13112,7 @@ Niederlande apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 382 + 406 @@ -12652,7 +13120,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 394 + 418 @@ -12660,7 +13128,7 @@ Neuseeland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 436 + 460 @@ -12668,11 +13136,11 @@ Tschechische Republik apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 447 + 471 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 484 + 508 @@ -12716,7 +13184,7 @@ Wählen Sie eine Datei aus oder ziehen Sie sie hierhin apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 85 + 81 @@ -12748,7 +13216,7 @@ Ups! Der historische Wechselkurs konnte nicht abgerufen werden vom apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 197 @@ -12764,7 +13232,7 @@ Zins apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 280 + 294 @@ -12788,7 +13256,7 @@ Möchtest du diesen Tag wirklich löschen? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 78 + 79 @@ -12812,15 +13280,15 @@ Frankreich apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 109 + 121 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 458 + 482 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 474 + 498 @@ -12828,7 +13296,7 @@ Ghostfolio X-ray nutzt statische Analysen, um potenzielle Probleme und Risiken in deinem Portfolio zu identifizieren. apps/client/src/app/pages/portfolio/fire/fire-page.html - 100 + 108 @@ -12836,7 +13304,7 @@ Währungsklumpenrisiken apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 132 @@ -12844,7 +13312,7 @@ Kontoklumpenrisiken apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 145 @@ -12864,7 +13332,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 219 + 226 @@ -12896,7 +13364,7 @@ Nach apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 29 + 28 @@ -12904,7 +13372,7 @@ Transferieren apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 66 + 64 @@ -12912,7 +13380,7 @@ Finnland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 466 + 490 @@ -12920,11 +13388,11 @@ Mitgliedschaft apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/user-account/user-account-page.component.ts - 39 + 40 @@ -12932,11 +13400,11 @@ Zugang apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/user-account/user-account-page.component.ts - 45 + 46 @@ -12944,7 +13412,7 @@ Finde Position... libs/ui/src/lib/assistant/assistant.component.ts - 89 + 126 @@ -12972,7 +13440,7 @@ Möchtest du dieses Anlageprofil wirklich löschen? apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 184 + 185 @@ -13004,7 +13472,7 @@ Letztes Allzeithoch libs/ui/src/lib/benchmark/benchmark.component.html - 63 + 65 @@ -13206,13 +13674,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 48 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + Canada Kanada apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 529 + 561 @@ -13236,7 +13716,7 @@ Ups, der Cash-Bestand Transfer ist fehlgeschlagen. apps/client/src/app/pages/accounts/accounts-page.component.ts - 305 + 306 @@ -13244,7 +13724,7 @@ Polen apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 119 + 131 @@ -13252,7 +13732,7 @@ Südafrika apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 227 + 251 @@ -13284,7 +13764,7 @@ Ups! Die historischen Daten konnten nicht geparsed werden. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 205 + 224 @@ -13292,7 +13772,7 @@ Möchtest du diese Systemmeldung wirklich löschen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 159 + 166 @@ -13308,7 +13788,7 @@ 200 Tage Trend libs/ui/src/lib/benchmark/benchmark.component.html - 39 + 40 @@ -13316,7 +13796,7 @@ Cash-Bestände apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 88 + 109 @@ -13510,6 +13990,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 190 @@ -13890,6 +14394,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 @@ -14084,7 +14612,335 @@ Möchtest du diesen Cash-Bestand wirklich löschen? libs/ui/src/lib/account-balances/account-balances.component.ts - 56 + 57 + + + + is an invalid currency! + ist eine ungültige Währung! + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 129 + + + + If a translation is missing, kindly support us in extending it here. + Wenn eine Übersetzung fehlt, unterstütze uns bitte dabei, sie hier zu ergänzen. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 53 + + + + The current market price is + Der aktuelle Marktpreis ist + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 318 + + + + Test + Test + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 259 + + + + Date Range + Zeitraum + + libs/ui/src/lib/assistant/assistant.html + 93 + + + + Permission + Rechte + + apps/client/src/app/components/access-table/access-table.component.html + 17 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 33 + + + + Restricted view + Eingeschränkte Ansicht + + apps/client/src/app/components/access-table/access-table.component.html + 25 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 35 + + + + Oops! Could not grant access. + Ups! Der Zugang konnte nicht gewährt werden. + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts + 80 + + + + Private + Privat + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 + + + + Job Queue + Job Warteschlange + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 25 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 42 + + + + Market data is delayed for + Die Marktdaten sind verzögert für + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts + 80 + + + + Investment + Einlage + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 46 + + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 60 + + + + Absolute Asset Performance + Absolute Anlage Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Asset Performance + Anlage Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 42 + + + + Absolute Currency Performance + Absolute Währungsperformance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 57 + + + + Currency Performance + Währungsperformance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 72 + + + + Absolute Net Performance + Absolute Netto Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 88 + + + + Net Performance + Netto Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 103 + + + + Week to date + Seit Wochenbeginn + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + WTD + WTD + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + Month to date + Seit Monatsbeginn + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + MTD + MTD + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + Year to date + Seit Jahresbeginn + + libs/ui/src/lib/assistant/assistant.component.ts + 109 + + + + View + Ansicht + + apps/client/src/app/components/access-table/access-table.component.html + 22 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + + + + Oops! A data provider is experiencing the hiccups. + Ups! Ein Datenprovider-Partner hat gerade ein Problem. + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html + 8 + + + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + Wenn du heute in den Ruhestand gehen würdest, könnest du pro Jahr oder pro Monatentnehmen, bezogen auf dein Gesamtanlagevermögen von und einer Entnahmerate von 4%. + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 65 + + + + Reset Filters + Filter zurücksetzen + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + year + Jahr + + libs/ui/src/lib/assistant/assistant.component.ts + 112 + + + + years + Jahre + + libs/ui/src/lib/assistant/assistant.component.ts + 114 + + + + Asset Classes + Anlageklassen + + libs/ui/src/lib/assistant/assistant.html + 138 + + + + Apply Filters + Filter anwenden + + libs/ui/src/lib/assistant/assistant.html + 165 + + + + Data Gathering + Daten einholen + + apps/client/src/app/components/admin-overview/admin-overview.html + 132 + + + + General + Allgemein + + apps/client/src/app/pages/faq/faq-page.component.ts + 36 + + + + Cloud + Cloud + + apps/client/src/app/pages/faq/faq-page.component.ts + 41 + + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + + Self-Hosting + Self-Hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 47 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + + self-hosting + self-hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 + + + + FAQ + Häufig gestellte Fragen + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 diff --git a/apps/client/src/locales/messages.es.xlf b/apps/client/src/locales/messages.es.xlf index f50cded65..b10430c63 100644 --- a/apps/client/src/locales/messages.es.xlf +++ b/apps/client/src/locales/messages.es.xlf @@ -23,7 +23,7 @@ El riesgo de pérdida en trading puede ser importante. No es aconsejable invertir dinero que puedas necesitar a corto plazo. apps/client/src/app/app.component.html - 182 + 179 @@ -37,10 +37,6 @@ Type Tipo - - apps/client/src/app/components/access-table/access-table.component.html - 17 - apps/client/src/app/components/admin-jobs/admin-jobs.html 28 @@ -55,7 +51,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 164 + 159 @@ -63,7 +59,7 @@ Detalles apps/client/src/app/components/access-table/access-table.component.html - 27 + 32 @@ -71,7 +67,7 @@ Revoca apps/client/src/app/components/access-table/access-table.component.html - 54 + 59 @@ -79,7 +75,7 @@ ¿Quieres revocar el acceso concedido? apps/client/src/app/components/access-table/access-table.component.ts - 49 + 50 @@ -91,7 +87,7 @@ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 73 + 87 apps/client/src/app/components/accounts-table/accounts-table.component.html @@ -111,7 +107,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 253 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -131,7 +127,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 182 + 180 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -151,15 +147,15 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 12 + 15 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 114 + 113 libs/ui/src/lib/activities-table/activities-table.component.html - 179 + 136 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -173,10 +169,6 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html 50 - - libs/ui/src/lib/activities-table/activities-table.component.html - 159 - Value @@ -191,7 +183,11 @@ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 47 + 45 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 167 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -199,11 +195,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 169 + 170 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 171 + 223 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -217,21 +213,17 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 226 - - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 227 - libs/ui/src/lib/account-balances/account-balances.component.html 20 libs/ui/src/lib/activities-table/activities-table.component.html - 321 + 255 libs/ui/src/lib/activities-table/activities-table.component.html - 356 + 291 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -251,7 +243,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 80 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -263,7 +255,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 507 + 428 @@ -279,11 +271,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 99 + 90 apps/client/src/app/components/admin-overview/admin-overview.html - 201 + 197 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -295,11 +287,11 @@ libs/ui/src/lib/account-balances/account-balances.component.html - 50 + 51 libs/ui/src/lib/activities-table/activities-table.component.html - 529 + 450 @@ -307,7 +299,7 @@ ¿Estás seguro de eliminar esta cuenta? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 83 + 99 @@ -315,7 +307,7 @@ Elimina los trabajos apps/client/src/app/components/admin-jobs/admin-jobs.html - 135 + 126 @@ -351,7 +343,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 130 + 129 @@ -407,7 +399,7 @@ Visualiza los datos apps/client/src/app/components/admin-jobs/admin-jobs.html - 150 + 141 @@ -415,7 +407,7 @@ Visualiza Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 157 + 148 @@ -423,7 +415,7 @@ Elimina el trabajo apps/client/src/app/components/admin-jobs/admin-jobs.html - 160 + 151 @@ -443,7 +435,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 136 + 135 libs/ui/src/lib/account-balances/account-balances.component.html @@ -451,7 +443,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 152 + 168 @@ -475,7 +467,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 260 + 301 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -491,23 +483,23 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 30 + 58 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 96 + 101 apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 59 + 57 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 362 + 361 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 37 + 38 @@ -519,7 +511,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 267 + 308 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -535,15 +527,15 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 37 + 65 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 103 + 108 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 368 @@ -591,7 +583,7 @@ Por favor, añade una divisa: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 119 + 122 @@ -599,7 +591,7 @@ ¿Estás seguro de eliminar este cupón? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 133 + 140 @@ -607,7 +599,7 @@ ¿Estás seguro de eliminar esta divisa? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 146 + 153 @@ -615,7 +607,7 @@ ¿Estás seguro de limpiar la caché? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 169 + 183 @@ -623,7 +615,7 @@ Por favor, establece tu mensaje del sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 200 + 214 @@ -683,7 +675,7 @@ Añadir divisa apps/client/src/app/components/admin-overview/admin-overview.html - 113 + 104 @@ -691,7 +683,7 @@ Mensaje del sistema apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 143 @@ -699,7 +691,7 @@ Establecer mensaje apps/client/src/app/components/admin-overview/admin-overview.html - 164 + 163 @@ -707,7 +699,7 @@ Modo de solo lectura apps/client/src/app/components/admin-overview/admin-overview.html - 130 + 121 @@ -715,7 +707,7 @@ Cupones apps/client/src/app/components/admin-overview/admin-overview.html - 172 + 171 @@ -723,7 +715,7 @@ Añadir apps/client/src/app/components/admin-overview/admin-overview.html - 233 + 229 @@ -731,7 +723,7 @@ Tareas domésticas apps/client/src/app/components/admin-overview/admin-overview.html - 240 + 236 @@ -739,7 +731,7 @@ Limpiar caché apps/client/src/app/components/admin-overview/admin-overview.html - 244 + 240 @@ -747,7 +739,7 @@ ¿Estás seguro de eliminar este usuario? apps/client/src/app/components/admin-users/admin-users.component.ts - 112 + 113 @@ -755,7 +747,7 @@ Usuario apps/client/src/app/components/header/header.component.html - 192 + 225 @@ -795,11 +787,11 @@ Visión general apps/client/src/app/components/header/header.component.html - 27 + 28 apps/client/src/app/components/header/header.component.html - 206 + 239 @@ -807,11 +799,11 @@ Cartera apps/client/src/app/components/header/header.component.html - 40 + 41 apps/client/src/app/components/header/header.component.html - 216 + 249 @@ -827,27 +819,35 @@ apps/client/src/app/components/header/header.component.html - 53 + 54 apps/client/src/app/components/header/header.component.html - 224 + 257 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 276 apps/client/src/app/pages/accounts/accounts-page.html 4 + + libs/ui/src/lib/assistant/assistant.html + 107 + Admin Control Control de administrador apps/client/src/app/components/header/header.component.html - 66 + 67 apps/client/src/app/components/header/header.component.html - 240 + 273 @@ -859,11 +859,11 @@ apps/client/src/app/components/header/header.component.html - 79 + 80 apps/client/src/app/components/header/header.component.html - 251 + 284 apps/client/src/app/pages/resources/resources-page.html @@ -879,15 +879,27 @@ apps/client/src/app/components/header/header.component.html - 97 + 98 apps/client/src/app/components/header/header.component.html - 263 + 296 apps/client/src/app/components/header/header.component.html - 332 + 365 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -1087,11 +1099,11 @@ apps/client/src/app/components/header/header.component.html - 110 + 111 apps/client/src/app/components/header/header.component.html - 319 + 352 @@ -1099,7 +1111,7 @@ apps/client/src/app/components/header/header.component.html - 173 + 206 @@ -1107,7 +1119,7 @@ Mi Ghostfolio apps/client/src/app/components/header/header.component.html - 231 + 264 @@ -1115,7 +1127,7 @@ Sobre Ghostfolio apps/client/src/app/components/header/header.component.html - 271 + 304 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -1131,7 +1143,7 @@ apps/client/src/app/components/header/header.component.html - 306 + 339 apps/client/src/app/pages/features/features-page.html @@ -1147,7 +1159,7 @@ apps/client/src/app/components/header/header.component.html - 348 + 381 apps/client/src/app/components/home-market/home-market.html @@ -1163,7 +1175,7 @@ Empezar apps/client/src/app/pages/features/features-page.html - 299 + 296 apps/client/src/app/pages/public/public-page.html @@ -1175,11 +1187,11 @@ Iniciar sesión apps/client/src/app/components/header/header.component.ts - 169 + 226 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts - 6 + 7 @@ -1187,7 +1199,7 @@ Vaya! Token de seguridad incorrecto. apps/client/src/app/components/header/header.component.ts - 183 + 240 @@ -1195,11 +1207,11 @@ Gestión de las operaciones apps/client/src/app/components/home-holdings/home-holdings.html - 30 + 22 apps/client/src/app/pages/portfolio/holdings/holdings-page.html - 31 + 23 @@ -1239,11 +1251,11 @@ apps/client/src/app/pages/landing/landing-page.html - 435 + 428 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 98 + 94 apps/client/src/app/pages/register/register-page.html @@ -1251,7 +1263,7 @@ apps/client/src/app/pages/webauthn/webauthn-page.html - 28 + 29 @@ -1283,7 +1295,7 @@ Iniciar sesión apps/client/src/app/components/header/header.component.html - 361 + 394 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1339,10 +1351,10 @@ Rendimiento bruto apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 72 + 73 - + @@ -1358,7 +1370,7 @@ {VAR_PLURAL, plural, =1 {transacción} other {transacciones}} apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 13 + 14 @@ -1366,7 +1378,7 @@ Rendimiento neto absoluto apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 103 + 110 @@ -1374,7 +1386,7 @@ Rendimiento neto apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 115 + 123 @@ -1382,7 +1394,7 @@ Total de activos apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 131 + 145 @@ -1390,7 +1402,7 @@ Objetos de valor apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 144 + 158 @@ -1398,7 +1410,7 @@ Fondo de emergencia apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 156 + 170 apps/client/src/app/pages/features/features-page.html @@ -1406,7 +1418,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 119 @@ -1414,7 +1426,7 @@ Capacidad de compra apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 203 + 217 @@ -1422,7 +1434,7 @@ Patrimonio neto apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 250 + 264 @@ -1430,7 +1442,7 @@ Rendimiento anualizado apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 262 + 276 @@ -1438,7 +1450,7 @@ Dividendo apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 292 + 306 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1450,11 +1462,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 166 + 165 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 222 + 221 @@ -1462,7 +1474,7 @@ Por favor, ingresa la cantidad de tu fondo de emergencia: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 52 + 53 @@ -1470,11 +1482,15 @@ Sectores apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 158 + 156 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 266 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 216 + 211 apps/client/src/app/pages/public/public-page.html @@ -1486,11 +1502,15 @@ Países apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 166 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 277 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 228 + 223 @@ -1502,11 +1522,15 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 295 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 320 + 319 + + + libs/ui/src/lib/assistant/assistant.html + 127 @@ -1514,7 +1538,7 @@ Reporta un anomalía de los datos apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 287 + 312 @@ -1546,7 +1570,7 @@ Mostrar todos libs/ui/src/lib/holdings-table/holdings-table.component.html - 172 + 171 @@ -1554,7 +1578,11 @@ Hoy apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 + + + libs/ui/src/lib/assistant/assistant.component.ts + 99 @@ -1562,7 +1590,11 @@ Desde principio de año apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 + + + libs/ui/src/lib/assistant/assistant.component.ts + 109 @@ -1570,7 +1602,11 @@ 1 año apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 + + + libs/ui/src/lib/assistant/assistant.component.ts + 112 @@ -1578,7 +1614,11 @@ 5 años apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 + + + libs/ui/src/lib/assistant/assistant.component.ts + 114 @@ -1586,7 +1626,11 @@ Máximo apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 + + + libs/ui/src/lib/assistant/assistant.component.ts + 117 @@ -1594,11 +1638,11 @@ Esta funcionalidad requiere de suscripción. apps/client/src/app/components/home-summary/home-summary.component.ts - 112 + 113 apps/client/src/app/core/http-response.interceptor.ts - 67 + 68 @@ -1606,11 +1650,11 @@ Mejorar plan apps/client/src/app/components/home-summary/home-summary.component.ts - 114 + 115 apps/client/src/app/core/http-response.interceptor.ts - 69 + 70 @@ -1618,11 +1662,11 @@ De acuerdo apps/client/src/app/core/http-response.interceptor.ts - 89 + 90 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 139 @@ -1630,15 +1674,15 @@ Sobre apps/client/src/app/pages/about/about-page-routing.module.ts - 52 + 51 apps/client/src/app/pages/about/about-page.component.ts - 43 + 44 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts - 12 + 13 @@ -1770,11 +1814,11 @@ Política de privacidad apps/client/src/app/pages/about/about-page.component.ts - 61 + 62 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts - 12 + 13 @@ -1782,7 +1826,7 @@ Mi Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 32 + 33 @@ -1790,7 +1834,7 @@ Por favor, ingresa tu código de cupón: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 110 + 111 @@ -1798,7 +1842,7 @@ No se puede canjear este código de cupón apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 120 + 121 @@ -1806,7 +1850,7 @@ El codigo de cupón ha sido canjeado apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 132 + 133 @@ -1814,7 +1858,7 @@ Refrescar apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 133 + 134 @@ -1822,7 +1866,7 @@ ¿Estás seguro de eliminar este método de acceso? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 182 + 188 @@ -1834,7 +1878,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 387 + 306 @@ -1845,24 +1889,16 @@ 18 - - Upgrade - Mejorar - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 - - per year por año apps/client/src/app/components/user-account-membership/user-account-membership.html - 33 + 35 apps/client/src/app/pages/pricing/pricing-page.html - 332 + 254 @@ -1870,7 +1906,7 @@ Prueba Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 42 + 44 @@ -1878,7 +1914,7 @@ Canjea el cupón apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 57 @@ -1902,7 +1938,7 @@ Ubicación apps/client/src/app/components/user-account-settings/user-account-settings.html - 95 + 107 @@ -1910,7 +1946,7 @@ Formato de fecha y número apps/client/src/app/components/user-account-settings/user-account-settings.html - 97 + 109 @@ -1918,11 +1954,11 @@ Modo Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 141 + 153 apps/client/src/app/pages/features/features-page.html - 192 + 190 @@ -1930,15 +1966,19 @@ Accede con huella digital apps/client/src/app/components/user-account-settings/user-account-settings.html - 159 + 171 User ID ID usuario + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 45 + apps/client/src/app/components/user-account-settings/user-account-settings.html - 192 + 205 @@ -1962,7 +2002,7 @@ Público apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 24 + 25 @@ -1970,7 +2010,7 @@ Cuentas apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 12 + 13 @@ -1978,7 +2018,7 @@ Editar cuenta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 8 @@ -1986,7 +2026,7 @@ Añadir cuenta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 8 + 10 @@ -1994,7 +2034,7 @@ Efectivo apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 177 + 191 @@ -2008,17 +2048,21 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 91 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 186 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 22 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 120 + 119 libs/ui/src/lib/activities-table/activities-table.component.html - 209 + 274 @@ -2034,7 +2078,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 31 + 34 @@ -2050,7 +2094,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 45 + 48 @@ -2058,7 +2102,7 @@ ID cuenta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 90 + 94 @@ -2066,7 +2110,7 @@ Control de administrador apps/client/src/app/pages/admin/admin-page-routing.module.ts - 19 + 20 @@ -2074,7 +2118,7 @@ Blog apps/client/src/app/pages/blog/blog-page-routing.module.ts - 12 + 13 @@ -2082,7 +2126,7 @@ Como estás conectado, no puedes acceder a la cuenta de demostración. apps/client/src/app/pages/demo/demo-page.component.ts - 31 + 32 @@ -2090,7 +2134,11 @@ Preguntas más frecuentes (FAQ) apps/client/src/app/pages/faq/faq-page-routing.module.ts - 12 + 34 + + + apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts + 13 @@ -2098,7 +2146,7 @@ Funcionalidades apps/client/src/app/pages/features/features-page-routing.module.ts - 12 + 13 @@ -2106,19 +2154,19 @@ Visión general apps/client/src/app/pages/admin/admin-page.component.ts - 26 + 27 apps/client/src/app/pages/home/home-page.component.ts - 33 + 34 apps/client/src/app/pages/zen/zen-page-routing.module.ts - 18 + 19 apps/client/src/app/pages/zen/zen-page.component.ts - 33 + 34 @@ -2126,15 +2174,15 @@ Mercados apps/client/src/app/pages/home/home-page-routing.module.ts - 32 + 33 apps/client/src/app/pages/home/home-page.component.ts - 48 + 49 apps/client/src/app/pages/markets/markets-page-routing.module.ts - 12 + 13 @@ -2142,11 +2190,11 @@ Distribución apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 48 + 49 @@ -2162,7 +2210,7 @@ Por cuenta apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 266 + 260 @@ -2170,7 +2218,7 @@ Por divisa apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 61 + 55 @@ -2178,7 +2226,7 @@ Por tipo de activo apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 84 + 78 @@ -2186,7 +2234,7 @@ Por participación apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 107 + 101 @@ -2194,7 +2242,7 @@ Por sector apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 130 + 124 @@ -2202,7 +2250,7 @@ Por continente apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 154 + 148 @@ -2210,7 +2258,7 @@ Por país apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 309 + 303 @@ -2218,7 +2266,7 @@ Regiones apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 201 + 195 apps/client/src/app/pages/public/public-page.html @@ -2230,11 +2278,11 @@ Análisis apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 33 + 34 @@ -2250,7 +2298,7 @@ Cronología de la inversión apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 166 + 254 @@ -2258,7 +2306,7 @@ Lo mejor apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 40 + 128 @@ -2266,7 +2314,7 @@ Lo peor apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 86 + 174 @@ -2274,7 +2322,7 @@ FIRE apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 12 + 13 @@ -2298,7 +2346,7 @@ Regla del 4% apps/client/src/app/pages/portfolio/fire/fire-page.html - 34 + 38 @@ -2306,28 +2354,32 @@ Participaciones apps/client/src/app/pages/home/home-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/home/home-page.component.ts - 38 + 39 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 38 + 39 apps/client/src/app/pages/zen/zen-page.component.ts - 38 + 39 Holdings Participaciones + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 75 + apps/client/src/app/pages/portfolio/holdings/holdings-page.html 4 @@ -2354,7 +2406,7 @@ Añadir operación apps/client/src/app/components/home-overview/home-overview.html - 58 + 56 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2378,7 +2430,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 102 + 101 @@ -2390,11 +2442,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 152 libs/ui/src/lib/activities-table/activities-table.component.html - 230 + 184 @@ -2402,15 +2454,15 @@ Precio unitario apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 173 + 172 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 228 + 227 libs/ui/src/lib/activities-table/activities-table.component.html - 259 + 208 @@ -2418,15 +2470,15 @@ Comisión apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 242 + 241 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 266 libs/ui/src/lib/activities-table/activities-table.component.html - 288 + 232 @@ -2434,15 +2486,15 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 247 + 288 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 73 + 76 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 275 @@ -2458,7 +2510,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 195 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2466,7 +2518,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 291 + 290 @@ -2474,11 +2526,11 @@ Operación apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 43 + 44 @@ -2486,7 +2538,7 @@ Importando datos... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 113 + 120 @@ -2494,7 +2546,7 @@ La importación se ha completado apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 121 + 128 @@ -2502,7 +2554,7 @@ Precios apps/client/src/app/pages/pricing/pricing-page-routing.module.ts - 12 + 13 @@ -2514,7 +2566,7 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 + 48 @@ -2546,7 +2598,7 @@ Registro apps/client/src/app/pages/register/register-page-routing.module.ts - 12 + 13 @@ -2578,7 +2630,7 @@ Confirmo haber guardado mi Token de seguridad mostrado arriba en un lugar seguro. Si lo pierdo, no podré recuperar mi cuenta. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 31 + 32 @@ -2586,7 +2638,7 @@ Aceptar y continuar apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 44 + 45 @@ -2594,7 +2646,7 @@ Recursos apps/client/src/app/pages/resources/resources-page-routing.module.ts - 12 + 13 @@ -2602,7 +2654,7 @@ Vaya, la autenticación ha fallado. apps/client/src/app/pages/webauthn/webauthn-page.html - 18 + 19 @@ -2610,7 +2662,7 @@ Prueba otra vez apps/client/src/app/pages/webauthn/webauthn-page.html - 26 + 27 @@ -2618,7 +2670,7 @@ Volver a la página principal apps/client/src/app/pages/webauthn/webauthn-page.html - 30 + 31 @@ -2626,7 +2678,7 @@ Borrador libs/ui/src/lib/activities-table/activities-table.component.html - 189 + 143 @@ -2634,7 +2686,7 @@ Importar operaciones apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 40 + 44 @@ -2642,11 +2694,11 @@ Exportar operaciones libs/ui/src/lib/activities-table/activities-table.component.html - 47 + 41 libs/ui/src/lib/activities-table/activities-table.component.html - 476 + 394 @@ -2654,11 +2706,11 @@ Exportar borrador como ICS libs/ui/src/lib/activities-table/activities-table.component.html - 59 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 488 + 407 @@ -2666,7 +2718,7 @@ Clonar libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 434 @@ -2674,7 +2726,7 @@ Exportar borrador como ICS libs/ui/src/lib/activities-table/activities-table.component.html - 523 + 444 @@ -2682,7 +2734,7 @@ ¿Estás seguro de eliminar esta operación? libs/ui/src/lib/activities-table/activities-table.component.ts - 227 + 175 @@ -2698,7 +2750,7 @@ Variación respecto al máximo histórico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 79 + 81 @@ -2706,7 +2758,7 @@ desde el máximo histórico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 81 + 83 @@ -2738,7 +2790,7 @@ Comenzar apps/client/src/app/components/header/header.component.html - 373 + 406 @@ -2746,7 +2798,7 @@ Esta funcionalidad no está disponible actualmente. apps/client/src/app/core/http-response.interceptor.ts - 59 + 60 @@ -2754,11 +2806,11 @@ Vaya! Algo no funcionó bien. apps/client/src/app/core/http-response.interceptor.ts - 86 + 87 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 129 + 136 @@ -2766,15 +2818,15 @@ Por favor, prueba más tarde. apps/client/src/app/core/http-response.interceptor.ts - 61 + 62 apps/client/src/app/core/http-response.interceptor.ts - 88 + 89 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 131 + 138 @@ -2790,7 +2842,7 @@ Mercados desarrollados apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 224 + 218 apps/client/src/app/pages/public/public-page.html @@ -2810,7 +2862,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 201 + 208 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2818,7 +2870,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 307 + 306 @@ -2842,7 +2894,7 @@ Otros mercados apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 242 + 236 apps/client/src/app/pages/public/public-page.html @@ -2854,7 +2906,7 @@ Mercados emergentes apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 233 + 227 apps/client/src/app/pages/public/public-page.html @@ -2866,11 +2918,11 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 143 + 142 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 198 + 197 @@ -2878,7 +2930,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 152 + 151 apps/client/src/app/components/admin-users/admin-users.html @@ -2886,7 +2938,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 210 + 206 @@ -2928,14 +2980,6 @@ Deposit Depósito - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 48 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 60 - libs/ui/src/lib/fire-calculator/fire-calculator.component.ts 331 @@ -2970,7 +3014,7 @@ Miedo apps/client/src/app/components/home-market/home-market.component.ts - 24 + 25 libs/ui/src/lib/i18n.ts @@ -2982,43 +3026,19 @@ Codicia apps/client/src/app/components/home-market/home-market.component.ts - 25 + 26 libs/ui/src/lib/i18n.ts 66 - - Filter by account or tag... - Filtrar por cuenta o etiqueta... + + Filter by... + Filtrar por... - apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts - 146 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 126 - - - apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts - 86 - - - - Filter by... - Filtrar por... - - apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 281 - - - - Filter by account, currency, symbol or type... - Filtrar por cuenta, divisa, símbolo o tipo... - - libs/ui/src/lib/activities-table/activities-table.component.ts - 427 + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 282 @@ -3046,7 +3066,7 @@ Funcionalidades experimentales apps/client/src/app/components/user-account-settings/user-account-settings.html - 176 + 188 @@ -3070,7 +3090,7 @@ Porcentaje del patrimonio neto apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 18 + 12 @@ -3078,7 +3098,7 @@ Excluido del análisis apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 215 + 229 @@ -3086,7 +3106,7 @@ Automático apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 31 + 33 @@ -3094,7 +3114,7 @@ Apariencia apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 130 @@ -3102,7 +3122,7 @@ Automático apps/client/src/app/components/user-account-settings/user-account-settings.html - 130 + 142 @@ -3110,7 +3130,7 @@ Claro apps/client/src/app/components/user-account-settings/user-account-settings.html - 131 + 143 @@ -3118,7 +3138,7 @@ Oscuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 132 + 144 @@ -3126,7 +3146,7 @@ Importe total apps/client/src/app/components/investment-chart/investment-chart.component.ts - 182 + 190 @@ -3134,7 +3154,7 @@ Evolución cartera apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 136 + 224 @@ -3142,7 +3162,7 @@ Tasa de ahorro apps/client/src/app/components/investment-chart/investment-chart.component.ts - 248 + 262 @@ -3290,7 +3310,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 384 + 385 @@ -3298,11 +3318,11 @@ Sin datos disponibles libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 386 + 387 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 399 + 400 @@ -3358,7 +3378,7 @@ Los siguientes formatos de archivo están soportados: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 91 + 87 @@ -3366,11 +3386,11 @@ Volver apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 141 + 140 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 178 + 176 @@ -3382,35 +3402,35 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 62 + 74 apps/client/src/app/components/user-account-settings/user-account-settings.html - 66 + 78 apps/client/src/app/components/user-account-settings/user-account-settings.html - 70 + 82 apps/client/src/app/components/user-account-settings/user-account-settings.html - 74 + 86 apps/client/src/app/components/user-account-settings/user-account-settings.html - 78 + 90 apps/client/src/app/components/user-account-settings/user-account-settings.html - 82 + 94 apps/client/src/app/components/user-account-settings/user-account-settings.html - 86 + 98 apps/client/src/app/pages/features/features-page.html - 260 + 256 @@ -3434,7 +3454,7 @@ Mapeo de símbolos apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 225 + 232 @@ -3442,7 +3462,7 @@ Dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 43 + 42 libs/ui/src/lib/i18n.ts @@ -3454,7 +3474,7 @@ Dividend Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 223 + 312 @@ -3470,7 +3490,7 @@ User Signup apps/client/src/app/components/admin-overview/admin-overview.html - 119 + 110 @@ -3478,7 +3498,7 @@ Validating data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 224 + 233 @@ -3490,23 +3510,11 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 150 + 149 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 186 - - - - Jobs - Jobs - - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 21 - - - apps/client/src/app/pages/admin/admin-page.component.ts - 41 + 184 @@ -3514,11 +3522,11 @@ Market Data apps/client/src/app/pages/admin/admin-page-routing.module.ts - 25 + 30 apps/client/src/app/pages/admin/admin-page.component.ts - 36 + 37 @@ -3526,11 +3534,11 @@ Users apps/client/src/app/pages/admin/admin-page-routing.module.ts - 35 + 40 apps/client/src/app/pages/admin/admin-page.component.ts - 46 + 47 @@ -3538,11 +3546,11 @@ Summary apps/client/src/app/pages/home/home-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 43 + 44 @@ -3574,7 +3582,7 @@ Import Dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 79 + 86 @@ -3582,7 +3590,7 @@ Valid until libs/ui/src/lib/membership-card/membership-card.component.html - 22 + 23 @@ -3646,7 +3654,7 @@ Distraction-free experience for turbulent times apps/client/src/app/components/user-account-settings/user-account-settings.html - 142 + 154 @@ -3654,7 +3662,7 @@ Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 189 @@ -3662,7 +3670,7 @@ Are you an ambitious investor who needs the full picture? apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 15 + 12 @@ -3670,15 +3678,15 @@ Portfolio Summary apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 25 + 22 apps/client/src/app/pages/pricing/pricing-page.html - 67 + 55 apps/client/src/app/pages/pricing/pricing-page.html - 256 + 199 @@ -3686,15 +3694,15 @@ Performance Benchmarks apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 33 + 30 apps/client/src/app/pages/pricing/pricing-page.html - 81 + 63 apps/client/src/app/pages/pricing/pricing-page.html - 270 + 207 @@ -3702,15 +3710,15 @@ FIRE Calculator apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 37 + 34 apps/client/src/app/pages/pricing/pricing-page.html - 88 + 67 apps/client/src/app/pages/pricing/pricing-page.html - 277 + 211 @@ -3718,15 +3726,15 @@ and more Features... apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 45 + 42 apps/client/src/app/pages/pricing/pricing-page.html - 110 + 83 apps/client/src/app/pages/pricing/pricing-page.html - 306 + 231 @@ -3734,19 +3742,27 @@ Skip apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 55 + 52 Upgrade Plan Upgrade Plan + + apps/client/src/app/components/header/header.component.html + 177 + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 62 + 59 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 18 apps/client/src/app/pages/pricing/pricing-page.html - 343 + 265 @@ -3762,15 +3778,15 @@ Unlimited Transactions apps/client/src/app/pages/pricing/pricing-page.html - 46 + 43 apps/client/src/app/pages/pricing/pricing-page.html - 159 + 126 apps/client/src/app/pages/pricing/pricing-page.html - 235 + 187 @@ -3778,15 +3794,15 @@ Unlimited Accounts apps/client/src/app/pages/pricing/pricing-page.html - 53 + 47 apps/client/src/app/pages/pricing/pricing-page.html - 166 + 130 apps/client/src/app/pages/pricing/pricing-page.html - 242 + 191 @@ -3794,15 +3810,15 @@ Portfolio Performance apps/client/src/app/pages/pricing/pricing-page.html - 60 + 51 apps/client/src/app/pages/pricing/pricing-page.html - 173 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 249 + 195 @@ -3810,7 +3826,7 @@ Self-hosted, update manually. apps/client/src/app/pages/pricing/pricing-page.html - 122 + 92 @@ -3818,11 +3834,11 @@ Free apps/client/src/app/pages/pricing/pricing-page.html - 123 + 93 apps/client/src/app/pages/pricing/pricing-page.html - 192 + 150 @@ -3830,7 +3846,7 @@ For new investors who are just getting started with trading. apps/client/src/app/pages/pricing/pricing-page.html - 150 + 120 @@ -3838,11 +3854,11 @@ Fully managed Ghostfolio cloud offering. apps/client/src/app/pages/pricing/pricing-page.html - 191 + 149 apps/client/src/app/pages/pricing/pricing-page.html - 318 + 240 @@ -3850,7 +3866,7 @@ For ambitious investors who need the full picture of their financial assets. apps/client/src/app/pages/pricing/pricing-page.html - 225 + 180 @@ -3858,7 +3874,7 @@ One-time payment, no auto-renewal. apps/client/src/app/pages/pricing/pricing-page.html - 352 + 274 @@ -3866,7 +3882,7 @@ Get Started apps/client/src/app/pages/pricing/pricing-page.html - 363 + 285 @@ -3874,7 +3890,7 @@ It’s free. apps/client/src/app/pages/pricing/pricing-page.html - 366 + 288 @@ -3882,7 +3898,7 @@ Fees apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 87 + 94 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -3890,7 +3906,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 158 @@ -3898,19 +3914,19 @@ Portfolio Allocations apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 29 + 26 apps/client/src/app/pages/features/features-page.html - 161 + 160 apps/client/src/app/pages/pricing/pricing-page.html - 74 + 59 apps/client/src/app/pages/pricing/pricing-page.html - 263 + 203 @@ -3926,15 +3942,15 @@ Data Import and Export apps/client/src/app/pages/pricing/pricing-page.html - 95 + 71 apps/client/src/app/pages/pricing/pricing-page.html - 180 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 215 @@ -3950,7 +3966,7 @@ Community Support apps/client/src/app/pages/pricing/pricing-page.html - 118 + 88 @@ -3958,7 +3974,7 @@ Email and Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 314 + 236 @@ -3990,7 +4006,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 258 + 257 @@ -4014,11 +4030,11 @@ Professional Data Provider apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 41 + 38 apps/client/src/app/pages/pricing/pricing-page.html - 298 + 226 @@ -4029,20 +4045,20 @@ 4 - - Renew - Renew - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 21 - - Renew Plan Renew Plan + + apps/client/src/app/components/header/header.component.html + 185 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 23 + apps/client/src/app/pages/pricing/pricing-page.html - 348 + 270 @@ -4074,7 +4090,7 @@ Do you really want to delete all your activities? apps/client/src/app/pages/portfolio/activities/activities-page.component.ts - 140 + 169 @@ -4082,7 +4098,7 @@ By ETF Provider apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 286 + 280 @@ -4090,7 +4106,7 @@ Delete all Activities libs/ui/src/lib/activities-table/activities-table.component.html - 69 + 65 @@ -4126,7 +4142,7 @@ Do you really want to delete this platform? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 78 + 79 @@ -4142,7 +4158,7 @@ Update Cash Balance apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 94 + 93 @@ -4150,7 +4166,7 @@ By Platform apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 42 + 36 @@ -4158,7 +4174,7 @@ Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience: apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 18 + 15 @@ -4166,7 +4182,7 @@ Get the tools to effectively manage your finances and refine your personal investment strategy. apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 48 + 45 @@ -4182,19 +4198,19 @@ Settings apps/client/src/app/pages/admin/admin-page-routing.module.ts - 30 + 35 apps/client/src/app/pages/admin/admin-page.component.ts - 31 + 32 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 17 + 18 apps/client/src/app/pages/user-account/user-account-page.component.ts - 34 + 35 @@ -4218,7 +4234,7 @@ Manage Benchmarks apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html - 36 + 38 @@ -4242,7 +4258,7 @@ Select Dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 110 @@ -4250,7 +4266,7 @@ Select Activities apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 117 + 113 @@ -4258,11 +4274,11 @@ Import Activities libs/ui/src/lib/activities-table/activities-table.component.html - 16 + 9 libs/ui/src/lib/activities-table/activities-table.component.html - 453 + 369 @@ -4270,11 +4286,11 @@ Import Dividends libs/ui/src/lib/activities-table/activities-table.component.html - 35 + 29 libs/ui/src/lib/activities-table/activities-table.component.html - 464 + 381 @@ -4298,7 +4314,7 @@ Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 187 + 275 @@ -4306,7 +4322,7 @@ Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 196 + 284 @@ -4341,20 +4357,12 @@ 26 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Si te jubilas hoy, podrías retirar por año o por mes, calculado sobre el total de activos de y una tasa de disposición del 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 57 - - Liabilities Liabilities apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 230 + 244 apps/client/src/app/pages/features/features-page.html @@ -4366,11 +4374,11 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 48 + 49 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts - 12 + 13 @@ -4378,11 +4386,11 @@ License apps/client/src/app/pages/about/about-page.component.ts - 53 + 54 apps/client/src/app/pages/about/license/license-page-routing.module.ts - 12 + 13 @@ -4454,7 +4462,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 179 + 177 @@ -4462,7 +4470,7 @@ Market Mood apps/client/src/app/pages/features/features-page.html - 209 + 205 @@ -4470,7 +4478,7 @@ Static Analysis apps/client/src/app/pages/features/features-page.html - 227 + 224 @@ -4478,7 +4486,7 @@ Multi-Language apps/client/src/app/pages/features/features-page.html - 245 + 241 @@ -4486,7 +4494,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 279 + 275 @@ -4502,7 +4510,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 243 @@ -4518,7 +4526,7 @@ Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 13 + 14 @@ -4720,6 +4728,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 67 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + Origin @@ -4912,6 +4932,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 72 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + Region @@ -5104,6 +5136,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 77 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + Available in @@ -5296,6 +5340,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 82 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + ✅ Yes @@ -5488,6 +5544,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 104 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 111 @@ -5864,6 +5944,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 @@ -6240,6 +6344,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 150 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 157 @@ -6616,6 +6744,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 169 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 176 @@ -6996,6 +7148,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 106 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 129 @@ -7372,6 +7548,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 140 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 152 @@ -7748,6 +7948,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 159 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 171 @@ -8124,6 +8348,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 178 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + ❌ No @@ -8316,6 +8552,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 113 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + Self-Hosting @@ -8508,21 +8756,45 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 118 - - - Use anonymously - Use anonymously apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 + + + + Use anonymously + Use anonymously + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -8892,6 +9164,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 164 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + Notes @@ -9084,6 +9368,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 196 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -9276,6 +9572,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 221 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + Personal Finance Tools @@ -9468,6 +9776,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 302 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + Guides @@ -9534,7 +9854,7 @@ ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 71 + 72 @@ -9542,7 +9862,7 @@ ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 76 + 77 @@ -9550,7 +9870,7 @@ Assets apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 190 + 204 @@ -9566,7 +9886,7 @@ By Market apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 177 + 171 @@ -9590,7 +9910,7 @@ Welcome to Ghostfolio apps/client/src/app/components/home-overview/home-overview.html - 9 + 7 @@ -9598,7 +9918,7 @@ Setup your accounts apps/client/src/app/components/home-overview/home-overview.html - 17 + 15 @@ -9606,7 +9926,7 @@ Get a comprehensive financial overview by adding your bank and brokerage accounts. apps/client/src/app/components/home-overview/home-overview.html - 19 + 17 @@ -9614,7 +9934,7 @@ Capture your activities apps/client/src/app/components/home-overview/home-overview.html - 26 + 24 @@ -9622,7 +9942,7 @@ Record your investment activities to keep your portfolio up to date. apps/client/src/app/components/home-overview/home-overview.html - 28 + 26 @@ -9630,7 +9950,7 @@ Monitor and analyze your portfolio apps/client/src/app/components/home-overview/home-overview.html - 35 + 33 @@ -9638,7 +9958,7 @@ Track your progress in real-time with comprehensive analysis and insights. apps/client/src/app/components/home-overview/home-overview.html - 37 + 35 @@ -9646,7 +9966,7 @@ No data available apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 254 + 248 apps/client/src/app/pages/public/public-page.html @@ -9658,7 +9978,7 @@ Ready to take control of your personal finances? apps/client/src/app/components/home-overview/home-overview.html - 10 + 8 @@ -9666,7 +9986,7 @@ Setup accounts apps/client/src/app/components/home-overview/home-overview.html - 50 + 48 @@ -9674,7 +9994,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 158 + 170 @@ -9758,7 +10078,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 199 + 213 @@ -9766,7 +10086,7 @@ Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 66 + 67 @@ -9782,7 +10102,7 @@ Visit apps/client/src/app/pages/about/oss-friends/oss-friends-page.html - 28 + 26 @@ -9797,7 +10117,15 @@ Frequently Asked Questions (FAQ) Frequently Asked Questions (FAQ) - apps/client/src/app/pages/faq/faq-page.html + apps/client/src/app/pages/faq/overview/faq-overview-page.html + 4 + + + apps/client/src/app/pages/faq/saas/saas-page.html + 4 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html 4 @@ -9850,7 +10178,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 424 @@ -10042,7 +10370,7 @@ Members from around the globe are using Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 358 + 354 @@ -10050,7 +10378,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 373 + 366 @@ -10058,7 +10386,7 @@ Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 382 + 375 @@ -10066,7 +10394,7 @@ * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 384 + 377 @@ -10074,7 +10402,7 @@ Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 395 + 388 @@ -10082,7 +10410,7 @@ Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 407 + 400 @@ -10090,7 +10418,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 419 + 412 @@ -10098,7 +10426,7 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 420 + 413 @@ -10110,7 +10438,7 @@ apps/client/src/app/pages/landing/landing-page.html - 436 + 429 @@ -10126,7 +10454,7 @@ Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 376 + 369 @@ -10134,15 +10462,27 @@ preguntas-mas-frecuentes apps/client/src/app/app-routing.module.ts - 9 + 10 apps/client/src/app/app.component.ts - 54 + 55 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 37 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 42 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 @@ -10150,27 +10490,27 @@ funcionalidades apps/client/src/app/app-routing.module.ts - 10 + 11 apps/client/src/app/app.component.ts - 55 + 56 apps/client/src/app/components/header/header.component.ts - 72 + 77 apps/client/src/app/components/header/header.component.ts - 77 + 82 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -10190,19 +10530,23 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts 14 - apps/client/src/app/pages/faq/faq-page.component.ts - 13 + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 14 apps/client/src/app/pages/pricing/pricing-page.component.ts - 34 + 35 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 27 apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts @@ -10260,6 +10604,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 27 @@ -10376,6 +10724,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 27 @@ -10398,51 +10750,51 @@ sobre apps/client/src/app/app-routing.module.ts - 8 + 9 apps/client/src/app/app.component.ts - 47 + 48 apps/client/src/app/app.component.ts - 48 + 49 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/app.component.ts - 51 + 52 apps/client/src/app/components/header/header.component.ts - 71 + 76 apps/client/src/app/components/header/header.component.ts - 76 + 81 apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/about-page.component.ts - 73 + 74 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -10466,12 +10818,16 @@ apps/client/src/app/pages/landing/landing-page.component.ts - 25 + 26 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 22 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 26 @@ -10528,6 +10884,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 26 @@ -10644,6 +11004,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 26 @@ -10666,15 +11030,15 @@ politica-de-privacidad apps/client/src/app/app-routing.module.ts - 14 + 15 apps/client/src/app/app.component.ts - 52 + 53 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 @@ -10682,15 +11046,15 @@ licencia apps/client/src/app/app-routing.module.ts - 11 + 12 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 @@ -10698,19 +11062,19 @@ mercados apps/client/src/app/app-routing.module.ts - 12 + 13 apps/client/src/app/app.component.ts - 56 + 57 apps/client/src/app/components/header/header.component.ts - 73 + 78 apps/client/src/app/components/header/header.component.ts - 78 + 83 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -10721,7 +11085,7 @@ 16 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 14 @@ -10730,23 +11094,23 @@ precios apps/client/src/app/app-routing.module.ts - 13 + 14 apps/client/src/app/app.component.ts - 57 + 58 apps/client/src/app/components/header/header.component.ts - 74 + 79 apps/client/src/app/components/header/header.component.ts - 79 + 84 apps/client/src/app/components/home-summary/home-summary.component.ts - 124 + 125 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts @@ -10754,11 +11118,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 37 + 38 apps/client/src/app/core/http-response.interceptor.ts - 80 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -10778,7 +11142,7 @@ apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 16 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -10786,10 +11150,14 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 16 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts 15 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 @@ -10802,35 +11170,35 @@ registro apps/client/src/app/app-routing.module.ts - 15 + 16 apps/client/src/app/app.component.ts - 58 + 59 apps/client/src/app/components/header/header.component.ts - 80 + 85 apps/client/src/app/core/auth.guard.ts - 53 + 54 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 16 apps/client/src/app/pages/features/features-page.component.ts - 17 + 18 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/pricing/pricing-page.component.ts - 35 + 36 @@ -10838,19 +11206,19 @@ recursos apps/client/src/app/app-routing.module.ts - 16 + 17 apps/client/src/app/app.component.ts - 59 + 60 apps/client/src/app/components/header/header.component.ts - 75 + 80 apps/client/src/app/components/header/header.component.ts - 81 + 86 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -10870,12 +11238,16 @@ apps/client/src/app/pages/features/features-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 29 @@ -10932,6 +11304,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 29 @@ -11048,6 +11424,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 29 @@ -11066,7 +11446,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 17 + 18 @@ -11090,7 +11470,7 @@ Open Source Alternative to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html - 35 + 32 @@ -11098,7 +11478,7 @@ Open Source Alternative to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 25 + 26 @@ -11292,6 +11672,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -11484,6 +11876,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -11676,6 +12080,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -11868,13 +12284,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + open-source-alternative-to open-source-alternative-to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts @@ -12072,6 +12500,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 204 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + Ready to take your investments to the next level? @@ -12264,6 +12704,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 217 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + Get Started @@ -12456,25 +12908,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 226 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + Switzerland Switzerland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 72 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 90 + 102 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 506 + 530 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 548 + 580 @@ -12482,19 +12946,19 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 70 + 73 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 317 + 341 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 438 + 462 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 549 + 581 @@ -12502,83 +12966,87 @@ United States apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 81 + 93 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 149 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 159 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 189 + 201 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 198 + 210 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 208 + 220 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 218 + 232 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 270 + 242 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 294 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 316 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 327 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 328 + 352 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 330 + 354 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 340 + 364 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 405 + 429 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 415 + 439 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 425 + 449 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 494 + 518 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 517 + 541 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 537 + 569 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 559 + 591 @@ -12586,7 +13054,7 @@ Belgium apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 167 + 179 @@ -12594,31 +13062,31 @@ Germany apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 128 + 140 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 178 + 190 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 250 + 274 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 260 + 284 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 305 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 315 + 339 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 361 + 385 @@ -12626,7 +13094,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 238 + 262 @@ -12634,7 +13102,7 @@ Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 372 + 396 @@ -12642,7 +13110,7 @@ Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 382 + 406 @@ -12650,7 +13118,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 394 + 418 @@ -12658,7 +13126,7 @@ New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 436 + 460 @@ -12666,11 +13134,11 @@ Czech Republic apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 447 + 471 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 484 + 508 @@ -12714,7 +13182,7 @@ Choose or drop a file here apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 85 + 81 @@ -12746,7 +13214,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 197 @@ -12762,7 +13230,7 @@ Interest apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 280 + 294 @@ -12786,7 +13254,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 78 + 79 @@ -12810,15 +13278,15 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 109 + 121 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 458 + 482 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 474 + 498 @@ -12826,7 +13294,7 @@ Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. apps/client/src/app/pages/portfolio/fire/fire-page.html - 100 + 108 @@ -12834,7 +13302,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 132 @@ -12842,7 +13310,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 145 @@ -12862,7 +13330,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 219 + 226 @@ -12894,7 +13362,7 @@ To apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 29 + 28 @@ -12902,7 +13370,7 @@ Transfer apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 66 + 64 @@ -12910,7 +13378,7 @@ Finland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 466 + 490 @@ -12918,11 +13386,11 @@ Membership apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/user-account/user-account-page.component.ts - 39 + 40 @@ -12930,11 +13398,11 @@ Access apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/user-account/user-account-page.component.ts - 45 + 46 @@ -12942,7 +13410,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 89 + 126 @@ -12970,7 +13438,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 184 + 185 @@ -13002,7 +13470,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 63 + 65 @@ -13204,13 +13672,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 48 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + Canada Canada apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 529 + 561 @@ -13234,7 +13714,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 305 + 306 @@ -13242,7 +13722,7 @@ Poland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 119 + 131 @@ -13250,7 +13730,7 @@ South Africa apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 227 + 251 @@ -13282,7 +13762,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 205 + 224 @@ -13290,7 +13770,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 159 + 166 @@ -13306,7 +13786,7 @@ 200-Day Trend libs/ui/src/lib/benchmark/benchmark.component.html - 39 + 40 @@ -13314,7 +13794,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 88 + 109 @@ -13508,6 +13988,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 190 @@ -13888,6 +14392,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 @@ -14082,7 +14610,335 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 56 + 57 + + + + is an invalid currency! + is an invalid currency! + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 129 + + + + If a translation is missing, kindly support us in extending it here. + If a translation is missing, kindly support us in extending it here. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 53 + + + + The current market price is + The current market price is + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 318 + + + + Test + Test + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 259 + + + + Date Range + Date Range + + libs/ui/src/lib/assistant/assistant.html + 93 + + + + Permission + Permission + + apps/client/src/app/components/access-table/access-table.component.html + 17 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 33 + + + + Restricted view + Restricted view + + apps/client/src/app/components/access-table/access-table.component.html + 25 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 35 + + + + Oops! Could not grant access. + Oops! Could not grant access. + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts + 80 + + + + Private + Private + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 + + + + Job Queue + Job Queue + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 25 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 42 + + + + Market data is delayed for + Market data is delayed for + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts + 80 + + + + Investment + Investment + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 46 + + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 60 + + + + Absolute Asset Performance + Absolute Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Asset Performance + Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 42 + + + + Absolute Currency Performance + Absolute Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 57 + + + + Currency Performance + Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 72 + + + + Absolute Net Performance + Absolute Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 88 + + + + Net Performance + Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 103 + + + + Week to date + Week to date + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + WTD + WTD + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + Month to date + Month to date + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + MTD + MTD + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + Year to date + Year to date + + libs/ui/src/lib/assistant/assistant.component.ts + 109 + + + + View + View + + apps/client/src/app/components/access-table/access-table.component.html + 22 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + + + + Oops! A data provider is experiencing the hiccups. + Oops! A data provider is experiencing the hiccups. + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html + 8 + + + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 65 + + + + Reset Filters + Reset Filters + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + year + year + + libs/ui/src/lib/assistant/assistant.component.ts + 112 + + + + years + years + + libs/ui/src/lib/assistant/assistant.component.ts + 114 + + + + Asset Classes + Asset Classes + + libs/ui/src/lib/assistant/assistant.html + 138 + + + + Apply Filters + Apply Filters + + libs/ui/src/lib/assistant/assistant.html + 165 + + + + Data Gathering + Data Gathering + + apps/client/src/app/components/admin-overview/admin-overview.html + 132 + + + + General + General + + apps/client/src/app/pages/faq/faq-page.component.ts + 36 + + + + Cloud + Cloud + + apps/client/src/app/pages/faq/faq-page.component.ts + 41 + + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + + Self-Hosting + Self-Hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 47 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + + self-hosting + self-hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 + + + + FAQ + FAQ + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 diff --git a/apps/client/src/locales/messages.fr.xlf b/apps/client/src/locales/messages.fr.xlf index c107d8b50..d9c944137 100644 --- a/apps/client/src/locales/messages.fr.xlf +++ b/apps/client/src/locales/messages.fr.xlf @@ -6,7 +6,7 @@ Le risque de perte en investissant peut être important. Il est déconseillé d'investir de l'argent dont vous pourriez avoir besoin à court terme. apps/client/src/app/app.component.html - 182 + 179 @@ -32,10 +32,6 @@ Type Type - - apps/client/src/app/components/access-table/access-table.component.html - 17 - apps/client/src/app/components/admin-jobs/admin-jobs.html 28 @@ -50,7 +46,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 164 + 159 @@ -58,7 +54,7 @@ Détails apps/client/src/app/components/access-table/access-table.component.html - 27 + 32 @@ -66,7 +62,7 @@ Révoquer apps/client/src/app/components/access-table/access-table.component.html - 54 + 59 @@ -74,7 +70,7 @@ Voulez-vous vraiment révoquer cet accès ? apps/client/src/app/components/access-table/access-table.component.ts - 49 + 50 @@ -90,7 +86,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 45 + 48 @@ -102,7 +98,7 @@ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 73 + 87 apps/client/src/app/components/accounts-table/accounts-table.component.html @@ -122,7 +118,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 253 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -142,7 +138,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 182 + 180 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -162,15 +158,15 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 12 + 15 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 114 + 113 libs/ui/src/lib/activities-table/activities-table.component.html - 179 + 136 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -184,10 +180,6 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html 50 - - libs/ui/src/lib/activities-table/activities-table.component.html - 159 - Currency @@ -200,17 +192,21 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 91 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 186 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 22 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 120 + 119 libs/ui/src/lib/activities-table/activities-table.component.html - 209 + 274 @@ -226,7 +222,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 31 + 34 @@ -242,7 +238,11 @@ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 47 + 45 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 167 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -250,11 +250,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 169 + 170 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 171 + 223 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -268,21 +268,17 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 226 - - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 227 - libs/ui/src/lib/account-balances/account-balances.component.html 20 libs/ui/src/lib/activities-table/activities-table.component.html - 321 + 255 libs/ui/src/lib/activities-table/activities-table.component.html - 356 + 291 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -302,7 +298,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 80 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -314,7 +310,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 507 + 428 @@ -330,11 +326,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 99 + 90 apps/client/src/app/components/admin-overview/admin-overview.html - 201 + 197 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -346,11 +342,11 @@ libs/ui/src/lib/account-balances/account-balances.component.html - 50 + 51 libs/ui/src/lib/activities-table/activities-table.component.html - 529 + 450 @@ -358,7 +354,7 @@ Voulez-vous vraiment supprimer ce compte ? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 83 + 99 @@ -394,7 +390,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 130 + 129 @@ -434,7 +430,7 @@ Supprimer Tâches apps/client/src/app/components/admin-jobs/admin-jobs.html - 135 + 126 @@ -458,7 +454,7 @@ Voir Données apps/client/src/app/components/admin-jobs/admin-jobs.html - 150 + 141 @@ -466,7 +462,7 @@ Voir la Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 157 + 148 @@ -474,7 +470,7 @@ Supprimer Tâche apps/client/src/app/components/admin-jobs/admin-jobs.html - 160 + 151 @@ -494,7 +490,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 136 + 135 libs/ui/src/lib/account-balances/account-balances.component.html @@ -502,7 +498,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 152 + 168 @@ -526,7 +522,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 260 + 301 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -542,23 +538,23 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 30 + 58 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 96 + 101 apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 59 + 57 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 362 + 361 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 37 + 38 @@ -570,7 +566,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 267 + 308 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -586,15 +582,15 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 37 + 65 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 103 + 108 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 368 @@ -602,7 +598,7 @@ Filtrer par... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 281 + 282 @@ -618,7 +614,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 195 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -626,7 +622,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 291 + 290 @@ -642,7 +638,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 201 + 208 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -650,7 +646,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 307 + 306 @@ -750,11 +746,11 @@ Secteur apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 143 + 142 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 198 + 197 @@ -762,7 +758,7 @@ Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 152 + 151 apps/client/src/app/components/admin-users/admin-users.html @@ -770,7 +766,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 210 + 206 @@ -778,11 +774,15 @@ Secteurs apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 158 + 156 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 266 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 216 + 211 apps/client/src/app/pages/public/public-page.html @@ -794,11 +794,15 @@ Pays apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 166 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 277 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 228 + 223 @@ -806,7 +810,7 @@ Équivalence de Symboles apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 225 + 232 @@ -814,15 +818,15 @@ Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 247 + 288 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 73 + 76 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 275 @@ -830,7 +834,7 @@ Veuillez ajouter une devise : apps/client/src/app/components/admin-overview/admin-overview.component.ts - 119 + 122 @@ -838,7 +842,7 @@ Voulez-vous vraiment supprimer ce code promotionnel ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 133 + 140 @@ -846,7 +850,7 @@ Voulez-vous vraiment supprimer cette devise ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 146 + 153 @@ -854,7 +858,7 @@ Voulez-vous vraiment vider le cache ? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 169 + 183 @@ -862,7 +866,7 @@ Veuillez définir votre message système : apps/client/src/app/components/admin-overview/admin-overview.component.ts - 200 + 214 @@ -902,7 +906,7 @@ Ajouter Devise apps/client/src/app/components/admin-overview/admin-overview.html - 113 + 104 @@ -914,11 +918,15 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 295 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 320 + 319 + + + libs/ui/src/lib/assistant/assistant.html + 127 @@ -926,7 +934,7 @@ Inscription de Nouveaux Utilisateurs apps/client/src/app/components/admin-overview/admin-overview.html - 119 + 110 @@ -934,7 +942,7 @@ Mode Lecture Seule apps/client/src/app/components/admin-overview/admin-overview.html - 130 + 121 @@ -942,7 +950,7 @@ Message Système apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 143 @@ -950,7 +958,7 @@ Définir Message apps/client/src/app/components/admin-overview/admin-overview.html - 164 + 163 @@ -958,7 +966,7 @@ Codes promotionnels apps/client/src/app/components/admin-overview/admin-overview.html - 172 + 171 @@ -966,7 +974,7 @@ Ajouter apps/client/src/app/components/admin-overview/admin-overview.html - 233 + 229 @@ -974,7 +982,7 @@ Maintenance apps/client/src/app/components/admin-overview/admin-overview.html - 240 + 236 @@ -982,7 +990,7 @@ Vider le Cache apps/client/src/app/components/admin-overview/admin-overview.html - 244 + 240 @@ -990,7 +998,7 @@ Voulez-vous vraiment supprimer cet·te utilisateur·rice ? apps/client/src/app/components/admin-users/admin-users.component.ts - 112 + 113 @@ -998,7 +1006,7 @@ Utilisateur apps/client/src/app/components/header/header.component.html - 192 + 225 @@ -1022,16 +1030,24 @@ apps/client/src/app/components/header/header.component.html - 53 + 54 apps/client/src/app/components/header/header.component.html - 224 + 257 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 276 apps/client/src/app/pages/accounts/accounts-page.html 4 + + libs/ui/src/lib/assistant/assistant.html + 107 + Engagement per Day @@ -1082,7 +1098,7 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 + 48 @@ -1106,11 +1122,11 @@ Aperçu apps/client/src/app/components/header/header.component.html - 27 + 28 apps/client/src/app/components/header/header.component.html - 206 + 239 @@ -1118,11 +1134,11 @@ Portefeuille apps/client/src/app/components/header/header.component.html - 40 + 41 apps/client/src/app/components/header/header.component.html - 216 + 249 @@ -1130,11 +1146,11 @@ Contrôle Administrateur apps/client/src/app/components/header/header.component.html - 66 + 67 apps/client/src/app/components/header/header.component.html - 240 + 273 @@ -1146,11 +1162,11 @@ apps/client/src/app/components/header/header.component.html - 79 + 80 apps/client/src/app/components/header/header.component.html - 251 + 284 apps/client/src/app/pages/resources/resources-page.html @@ -1166,15 +1182,27 @@ apps/client/src/app/components/header/header.component.html - 97 + 98 apps/client/src/app/components/header/header.component.html - 263 + 296 apps/client/src/app/components/header/header.component.html - 332 + 365 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -1374,11 +1402,11 @@ apps/client/src/app/components/header/header.component.html - 110 + 111 apps/client/src/app/components/header/header.component.html - 319 + 352 @@ -1386,7 +1414,7 @@ Moi apps/client/src/app/components/header/header.component.html - 173 + 206 @@ -1394,7 +1422,7 @@ Mon Ghostfolio apps/client/src/app/components/header/header.component.html - 231 + 264 @@ -1402,7 +1430,7 @@ À propos de Ghostfolio apps/client/src/app/components/header/header.component.html - 271 + 304 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -1418,7 +1446,7 @@ apps/client/src/app/components/header/header.component.html - 306 + 339 apps/client/src/app/pages/features/features-page.html @@ -1434,7 +1462,7 @@ apps/client/src/app/components/header/header.component.html - 348 + 381 apps/client/src/app/components/home-market/home-market.html @@ -1450,7 +1478,7 @@ Se connecter apps/client/src/app/components/header/header.component.html - 361 + 394 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1462,7 +1490,7 @@ Démarrer apps/client/src/app/components/header/header.component.html - 373 + 406 @@ -1470,11 +1498,11 @@ Se connecter apps/client/src/app/components/header/header.component.ts - 169 + 226 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts - 6 + 7 @@ -1482,7 +1510,7 @@ Oups! Jeton de Sécurité Incorrect. apps/client/src/app/components/header/header.component.ts - 183 + 240 @@ -1490,11 +1518,11 @@ Gérer les Activités apps/client/src/app/components/home-holdings/home-holdings.html - 30 + 22 apps/client/src/app/pages/portfolio/holdings/holdings-page.html - 31 + 23 @@ -1502,7 +1530,7 @@ Peur apps/client/src/app/components/home-market/home-market.component.ts - 24 + 25 libs/ui/src/lib/i18n.ts @@ -1514,7 +1542,7 @@ Avidité apps/client/src/app/components/home-market/home-market.component.ts - 25 + 26 libs/ui/src/lib/i18n.ts @@ -1534,11 +1562,11 @@ Cette fonctionnalité requiert un Abonnement. apps/client/src/app/components/home-summary/home-summary.component.ts - 112 + 113 apps/client/src/app/core/http-response.interceptor.ts - 67 + 68 @@ -1546,11 +1574,11 @@ Mettre à niveau l'Abonnement apps/client/src/app/components/home-summary/home-summary.component.ts - 114 + 115 apps/client/src/app/core/http-response.interceptor.ts - 69 + 70 @@ -1566,7 +1594,7 @@ Montant Total apps/client/src/app/components/investment-chart/investment-chart.component.ts - 182 + 190 @@ -1574,7 +1602,7 @@ Taux d'Épargne apps/client/src/app/components/investment-chart/investment-chart.component.ts - 248 + 262 @@ -1598,11 +1626,11 @@ apps/client/src/app/pages/landing/landing-page.html - 435 + 428 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 98 + 94 apps/client/src/app/pages/register/register-page.html @@ -1610,7 +1638,7 @@ apps/client/src/app/pages/webauthn/webauthn-page.html - 28 + 29 @@ -1686,10 +1714,10 @@ Performance Brute apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 72 + 73 - + @@ -1705,7 +1733,7 @@ {VAR_PLURAL, plural, =1 {transaction} autres {transactions}} apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 13 + 14 @@ -1713,7 +1741,7 @@ Performance Absolue Nette apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 103 + 110 @@ -1721,7 +1749,7 @@ Performance nette apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 115 + 123 @@ -1729,7 +1757,7 @@ Actifs Totaux apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 131 + 145 @@ -1737,7 +1765,7 @@ Biens apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 144 + 158 @@ -1745,7 +1773,7 @@ Fonds d'Urgence apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 156 + 170 apps/client/src/app/pages/features/features-page.html @@ -1753,7 +1781,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 119 @@ -1761,7 +1789,7 @@ Pouvoir d'Achat apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 203 + 217 @@ -1769,7 +1797,7 @@ Exclus de l'Analyse apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 215 + 229 @@ -1777,7 +1805,7 @@ Fortune apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 250 + 264 @@ -1785,7 +1813,7 @@ Performance annualisée apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 262 + 276 @@ -1793,7 +1821,7 @@ Dividende apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 292 + 306 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1805,11 +1833,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 166 + 165 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 222 + 221 @@ -1817,7 +1845,7 @@ Veuillez entrer le montant de votre fonds d'urgence : apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 52 + 53 @@ -1861,11 +1889,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 152 libs/ui/src/lib/activities-table/activities-table.component.html - 230 + 184 @@ -1873,7 +1901,7 @@ Signaler une Erreur de Données apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 287 + 312 @@ -1881,7 +1909,11 @@ Aujourd'hui apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 + + + libs/ui/src/lib/assistant/assistant.component.ts + 99 @@ -1889,7 +1921,11 @@ CDA apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 + + + libs/ui/src/lib/assistant/assistant.component.ts + 109 @@ -1897,7 +1933,11 @@ 1A apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 + + + libs/ui/src/lib/assistant/assistant.component.ts + 112 @@ -1905,7 +1945,11 @@ 5A apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 + + + libs/ui/src/lib/assistant/assistant.component.ts + 114 @@ -1913,7 +1957,11 @@ Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 + + + libs/ui/src/lib/assistant/assistant.component.ts + 117 @@ -1921,7 +1969,7 @@ Cette fonctionnalité est momentanément indisponible. apps/client/src/app/core/http-response.interceptor.ts - 59 + 60 @@ -1929,15 +1977,15 @@ Veuillez réessayer plus tard. apps/client/src/app/core/http-response.interceptor.ts - 61 + 62 apps/client/src/app/core/http-response.interceptor.ts - 88 + 89 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 131 + 138 @@ -1945,11 +1993,11 @@ Oups! Quelque chose s'est mal passé. apps/client/src/app/core/http-response.interceptor.ts - 86 + 87 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 129 + 136 @@ -1957,11 +2005,11 @@ D'accord apps/client/src/app/core/http-response.interceptor.ts - 89 + 90 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 139 @@ -1969,15 +2017,15 @@ À propos apps/client/src/app/pages/about/about-page-routing.module.ts - 52 + 51 apps/client/src/app/pages/about/about-page.component.ts - 43 + 44 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts - 12 + 13 @@ -2009,11 +2057,11 @@ Politique de Vie Privée apps/client/src/app/pages/about/about-page.component.ts - 61 + 62 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts - 12 + 13 @@ -2033,7 +2081,7 @@ Mon Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 32 + 33 @@ -2041,7 +2089,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 31 + 33 @@ -2049,7 +2097,7 @@ Veuillez entrer votre code promotionnel : apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 110 + 111 @@ -2057,7 +2105,7 @@ Le code promotionnel n'a pas pu être appliqué apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 120 + 121 @@ -2065,7 +2113,7 @@ Le code promotionnel a été appliqué apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 132 + 133 @@ -2073,7 +2121,7 @@ Rafraîchir apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 133 + 134 @@ -2081,7 +2129,7 @@ Voulez-vous vraiment supprimer cette méthode de connexion ? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 182 + 188 @@ -2093,7 +2141,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 387 + 306 @@ -2104,24 +2152,16 @@ 18 - - Upgrade - Mettre à niveau - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 - - per year par an apps/client/src/app/components/user-account-membership/user-account-membership.html - 33 + 35 apps/client/src/app/pages/pricing/pricing-page.html - 332 + 254 @@ -2129,7 +2169,7 @@ Essayer Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 42 + 44 @@ -2137,7 +2177,7 @@ Utiliser un Code Promotionnel apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 57 @@ -2173,35 +2213,35 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 62 + 74 apps/client/src/app/components/user-account-settings/user-account-settings.html - 66 + 78 apps/client/src/app/components/user-account-settings/user-account-settings.html - 70 + 82 apps/client/src/app/components/user-account-settings/user-account-settings.html - 74 + 86 apps/client/src/app/components/user-account-settings/user-account-settings.html - 78 + 90 apps/client/src/app/components/user-account-settings/user-account-settings.html - 82 + 94 apps/client/src/app/components/user-account-settings/user-account-settings.html - 86 + 98 apps/client/src/app/pages/features/features-page.html - 260 + 256 @@ -2209,7 +2249,7 @@ Paramètres régionaux apps/client/src/app/components/user-account-settings/user-account-settings.html - 95 + 107 @@ -2217,7 +2257,7 @@ Format de date et d'heure apps/client/src/app/components/user-account-settings/user-account-settings.html - 97 + 109 @@ -2225,7 +2265,7 @@ Apparence apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 130 @@ -2233,7 +2273,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 130 + 142 @@ -2241,7 +2281,7 @@ Clair apps/client/src/app/components/user-account-settings/user-account-settings.html - 131 + 143 @@ -2249,7 +2289,7 @@ Sombre apps/client/src/app/components/user-account-settings/user-account-settings.html - 132 + 144 @@ -2257,11 +2297,11 @@ Mode Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 141 + 153 apps/client/src/app/pages/features/features-page.html - 192 + 190 @@ -2269,7 +2309,7 @@ Se connecter avec empreinte apps/client/src/app/components/user-account-settings/user-account-settings.html - 159 + 171 @@ -2277,15 +2317,19 @@ Fonctionnalités expérimentales apps/client/src/app/components/user-account-settings/user-account-settings.html - 176 + 188 User ID ID d'utilisateur + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 45 + apps/client/src/app/components/user-account-settings/user-account-settings.html - 192 + 205 @@ -2309,7 +2353,7 @@ Public apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 24 + 25 @@ -2317,7 +2361,7 @@ Comptes apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 12 + 13 @@ -2325,7 +2369,7 @@ Mettre à jour compte apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 8 @@ -2333,7 +2377,7 @@ Ajouter compte apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 8 + 10 @@ -2341,7 +2385,7 @@ Cash apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 177 + 191 @@ -2349,19 +2393,7 @@ ID du compte apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 90 - - - - Jobs - Tâches - - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 21 - - - apps/client/src/app/pages/admin/admin-page.component.ts - 41 + 94 @@ -2369,11 +2401,11 @@ Données de Marché apps/client/src/app/pages/admin/admin-page-routing.module.ts - 25 + 30 apps/client/src/app/pages/admin/admin-page.component.ts - 36 + 37 @@ -2381,7 +2413,7 @@ Contrôle Admin apps/client/src/app/pages/admin/admin-page-routing.module.ts - 19 + 20 @@ -2389,11 +2421,11 @@ Utilisateurs apps/client/src/app/pages/admin/admin-page-routing.module.ts - 35 + 40 apps/client/src/app/pages/admin/admin-page.component.ts - 46 + 47 @@ -2401,7 +2433,7 @@ Blog apps/client/src/app/pages/blog/blog-page-routing.module.ts - 12 + 13 @@ -2497,7 +2529,7 @@ Puisque vous êtes déjà connecté·e, vous ne pouvez pas accéder au compte de démonstration. apps/client/src/app/pages/demo/demo-page.component.ts - 31 + 32 @@ -2505,7 +2537,11 @@ Questions Fréquentes (FAQ) apps/client/src/app/pages/faq/faq-page-routing.module.ts - 12 + 34 + + + apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts + 13 @@ -2513,7 +2549,7 @@ Fonctionnalités apps/client/src/app/pages/features/features-page-routing.module.ts - 12 + 13 @@ -2521,23 +2557,23 @@ Positions apps/client/src/app/pages/home/home-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/home/home-page.component.ts - 38 + 39 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 38 + 39 apps/client/src/app/pages/zen/zen-page.component.ts - 38 + 39 @@ -2545,11 +2581,11 @@ Résumé apps/client/src/app/pages/home/home-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 43 + 44 @@ -2557,15 +2593,15 @@ Marchés apps/client/src/app/pages/home/home-page-routing.module.ts - 32 + 33 apps/client/src/app/pages/home/home-page.component.ts - 48 + 49 apps/client/src/app/pages/markets/markets-page-routing.module.ts - 12 + 13 @@ -2573,11 +2609,11 @@ Activités apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 43 + 44 @@ -2593,7 +2629,7 @@ Ajouter Activité apps/client/src/app/components/home-overview/home-overview.html - 58 + 56 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2617,7 +2653,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 102 + 101 @@ -2625,15 +2661,15 @@ Prix Unitaire apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 173 + 172 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 228 + 227 libs/ui/src/lib/activities-table/activities-table.component.html - 259 + 208 @@ -2641,15 +2677,15 @@ Frais apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 242 + 241 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 266 libs/ui/src/lib/activities-table/activities-table.component.html - 288 + 232 @@ -2657,7 +2693,7 @@ Import des données... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 113 + 120 @@ -2665,7 +2701,7 @@ L'import est terminé apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 121 + 128 @@ -2673,7 +2709,7 @@ Validation des données... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 224 + 233 @@ -2681,7 +2717,7 @@ Les formats de fichier suivants sont supportés : apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 91 + 87 @@ -2689,11 +2725,11 @@ Retour apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 141 + 140 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 178 + 176 @@ -2705,11 +2741,11 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 150 + 149 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 186 + 184 @@ -2717,27 +2753,11 @@ Répartitions apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 48 - - - - Filter by account or tag... - Filtrer par compte ou étiquette... - - apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts - 146 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 126 - - - apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts - 86 + 49 @@ -2753,7 +2773,7 @@ Proportion de votre Fortune apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 18 + 12 @@ -2761,7 +2781,7 @@ Par Compte apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 266 + 260 @@ -2769,7 +2789,7 @@ Par Devise apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 61 + 55 @@ -2777,7 +2797,7 @@ Par Classe d'Actifs apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 84 + 78 @@ -2785,7 +2805,7 @@ Par Position apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 107 + 101 @@ -2793,7 +2813,7 @@ Par Secteur apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 130 + 124 @@ -2801,7 +2821,7 @@ Par Continent apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 154 + 148 @@ -2809,7 +2829,7 @@ Par Pays apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 309 + 303 @@ -2817,7 +2837,7 @@ Régions apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 201 + 195 apps/client/src/app/pages/public/public-page.html @@ -2829,7 +2849,7 @@ Marchés Développés apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 224 + 218 apps/client/src/app/pages/public/public-page.html @@ -2841,7 +2861,7 @@ Marchés Émergents apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 233 + 227 apps/client/src/app/pages/public/public-page.html @@ -2853,7 +2873,7 @@ Autres marchés apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 242 + 236 apps/client/src/app/pages/public/public-page.html @@ -2865,11 +2885,11 @@ Analyse apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 33 + 34 @@ -2877,7 +2897,7 @@ Dividende apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 43 + 42 libs/ui/src/lib/i18n.ts @@ -2887,14 +2907,6 @@ Deposit Dépôt - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 48 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 60 - libs/ui/src/lib/fire-calculator/fire-calculator.component.ts 331 @@ -2921,7 +2933,7 @@ Haut apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 40 + 128 @@ -2929,7 +2941,7 @@ Bas apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 86 + 174 @@ -2937,7 +2949,7 @@ Évolution du Portefeuille apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 136 + 224 @@ -2945,7 +2957,7 @@ Historique des Investissements apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 166 + 254 @@ -2953,7 +2965,7 @@ Historique des Dividendes apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 223 + 312 @@ -2961,7 +2973,7 @@ FIRE apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 12 + 13 @@ -2985,12 +2997,16 @@ Règle des 4% apps/client/src/app/pages/portfolio/fire/fire-page.html - 34 + 38 Holdings Positions + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 75 + apps/client/src/app/pages/portfolio/holdings/holdings-page.html 4 @@ -3009,7 +3025,7 @@ Prix apps/client/src/app/pages/pricing/pricing-page-routing.module.ts - 12 + 13 @@ -3049,7 +3065,7 @@ Démarrer apps/client/src/app/pages/features/features-page.html - 299 + 296 apps/client/src/app/pages/public/public-page.html @@ -3061,7 +3077,7 @@ Enregistrement apps/client/src/app/pages/register/register-page-routing.module.ts - 12 + 13 @@ -3109,7 +3125,7 @@ Je certifie avoir sauvé mon Jeton de Sécurité ci-dessus dans un endroit sûr. Si je le perds, je ne pourrai pas récupérer mon compte. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 31 + 32 @@ -3117,7 +3133,7 @@ Accepter et continuer apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 44 + 45 @@ -3125,7 +3141,7 @@ Ressources apps/client/src/app/pages/resources/resources-page-routing.module.ts - 12 + 13 @@ -3133,7 +3149,7 @@ Oups, l'identification a échoué. apps/client/src/app/pages/webauthn/webauthn-page.html - 18 + 19 @@ -3141,7 +3157,7 @@ Essayer à nouveau apps/client/src/app/pages/webauthn/webauthn-page.html - 26 + 27 @@ -3149,7 +3165,7 @@ Retour à la Page d'Accueil apps/client/src/app/pages/webauthn/webauthn-page.html - 30 + 31 @@ -3157,19 +3173,19 @@ Aperçu apps/client/src/app/pages/admin/admin-page.component.ts - 26 + 27 apps/client/src/app/pages/home/home-page.component.ts - 33 + 34 apps/client/src/app/pages/zen/zen-page-routing.module.ts - 18 + 19 apps/client/src/app/pages/zen/zen-page.component.ts - 33 + 34 @@ -3177,7 +3193,7 @@ Brouillon libs/ui/src/lib/activities-table/activities-table.component.html - 189 + 143 @@ -3185,7 +3201,7 @@ Importer Activités apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 40 + 44 @@ -3193,11 +3209,11 @@ Exporter Activités libs/ui/src/lib/activities-table/activities-table.component.html - 47 + 41 libs/ui/src/lib/activities-table/activities-table.component.html - 476 + 394 @@ -3205,11 +3221,11 @@ Exporter Brouillons sous ICS libs/ui/src/lib/activities-table/activities-table.component.html - 59 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 488 + 407 @@ -3217,7 +3233,7 @@ Dupliquer libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 434 @@ -3225,7 +3241,7 @@ Exporter Brouillon sous ICS libs/ui/src/lib/activities-table/activities-table.component.html - 523 + 444 @@ -3233,15 +3249,7 @@ Voulez-vous vraiment supprimer cette activité ? libs/ui/src/lib/activities-table/activities-table.component.ts - 227 - - - - Filter by account, currency, symbol or type... - Filtrer par compte, devise, symbole, ou type... - - libs/ui/src/lib/activities-table/activities-table.component.ts - 427 + 175 @@ -3257,7 +3265,7 @@ Différence avec le Record Historique libs/ui/src/lib/benchmark/benchmark.component.html - 79 + 81 @@ -3265,7 +3273,7 @@ par rapport au record historique libs/ui/src/lib/benchmark/benchmark.component.html - 81 + 83 @@ -3317,7 +3325,7 @@ Montrer tout libs/ui/src/lib/holdings-table/holdings-table.component.html - 172 + 171 @@ -3361,7 +3369,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 384 + 385 @@ -3537,11 +3545,11 @@ Pas de données disponibles libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 386 + 387 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 399 + 400 @@ -3573,7 +3581,7 @@ Importer Dividendes apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 79 + 86 @@ -3581,7 +3589,7 @@ Valide jusqu'au libs/ui/src/lib/membership-card/membership-card.component.html - 22 + 23 @@ -3645,7 +3653,7 @@ Expérience sans distraction pour les périodes tumultueuses apps/client/src/app/components/user-account-settings/user-account-settings.html - 142 + 154 @@ -3653,7 +3661,7 @@ Avant-première de fonctionnalités futures apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 189 @@ -3661,7 +3669,7 @@ Êtes-vous un investisseur ambitieux qui a besoin d'une vue complète ? apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 15 + 12 @@ -3669,15 +3677,15 @@ Résumé du Portefeuille apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 25 + 22 apps/client/src/app/pages/pricing/pricing-page.html - 67 + 55 apps/client/src/app/pages/pricing/pricing-page.html - 256 + 199 @@ -3685,15 +3693,15 @@ Référence de Performance apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 33 + 30 apps/client/src/app/pages/pricing/pricing-page.html - 81 + 63 apps/client/src/app/pages/pricing/pricing-page.html - 270 + 207 @@ -3701,15 +3709,15 @@ Calculateur FIRE apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 37 + 34 apps/client/src/app/pages/pricing/pricing-page.html - 88 + 67 apps/client/src/app/pages/pricing/pricing-page.html - 277 + 211 @@ -3717,15 +3725,15 @@ et d'autres fonctionnalités... apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 45 + 42 apps/client/src/app/pages/pricing/pricing-page.html - 110 + 83 apps/client/src/app/pages/pricing/pricing-page.html - 306 + 231 @@ -3733,19 +3741,27 @@ Passer apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 55 + 52 Upgrade Plan Mettre à niveau l'Abonnement + + apps/client/src/app/components/header/header.component.html + 177 + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 62 + 59 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 18 apps/client/src/app/pages/pricing/pricing-page.html - 343 + 265 @@ -3761,15 +3777,15 @@ Transactions Illimitées apps/client/src/app/pages/pricing/pricing-page.html - 46 + 43 apps/client/src/app/pages/pricing/pricing-page.html - 159 + 126 apps/client/src/app/pages/pricing/pricing-page.html - 235 + 187 @@ -3777,15 +3793,15 @@ Comptes illimités apps/client/src/app/pages/pricing/pricing-page.html - 53 + 47 apps/client/src/app/pages/pricing/pricing-page.html - 166 + 130 apps/client/src/app/pages/pricing/pricing-page.html - 242 + 191 @@ -3793,15 +3809,15 @@ Performance du Portefeuille apps/client/src/app/pages/pricing/pricing-page.html - 60 + 51 apps/client/src/app/pages/pricing/pricing-page.html - 173 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 249 + 195 @@ -3809,7 +3825,7 @@ Hébergé localement, mises à jour manuelles. apps/client/src/app/pages/pricing/pricing-page.html - 122 + 92 @@ -3817,11 +3833,11 @@ Gratuit apps/client/src/app/pages/pricing/pricing-page.html - 123 + 93 apps/client/src/app/pages/pricing/pricing-page.html - 192 + 150 @@ -3829,7 +3845,7 @@ Pour les nouveaux investisseurs qui débutent en Bourse. apps/client/src/app/pages/pricing/pricing-page.html - 150 + 120 @@ -3837,11 +3853,11 @@ Offre Ghostfolio cloud complètement administrée. apps/client/src/app/pages/pricing/pricing-page.html - 191 + 149 apps/client/src/app/pages/pricing/pricing-page.html - 318 + 240 @@ -3849,7 +3865,7 @@ Pour les investisseurs ambitieux qui ont besoin d'une vue complète de leurs actifs financiers. apps/client/src/app/pages/pricing/pricing-page.html - 225 + 180 @@ -3857,7 +3873,7 @@ Paiement unique, sans auto-renouvellement. apps/client/src/app/pages/pricing/pricing-page.html - 352 + 274 @@ -3865,7 +3881,7 @@ Débuter apps/client/src/app/pages/pricing/pricing-page.html - 363 + 285 @@ -3873,7 +3889,7 @@ C'est gratuit. apps/client/src/app/pages/pricing/pricing-page.html - 366 + 288 @@ -3881,7 +3897,7 @@ Frais apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 87 + 94 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -3889,7 +3905,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 158 @@ -3897,19 +3913,19 @@ Allocations du Portefeuille apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 29 + 26 apps/client/src/app/pages/features/features-page.html - 161 + 160 apps/client/src/app/pages/pricing/pricing-page.html - 74 + 59 apps/client/src/app/pages/pricing/pricing-page.html - 263 + 203 @@ -3925,15 +3941,15 @@ Import et Export de Données apps/client/src/app/pages/pricing/pricing-page.html - 95 + 71 apps/client/src/app/pages/pricing/pricing-page.html - 180 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 215 @@ -3949,7 +3965,7 @@ Support de la Communauté apps/client/src/app/pages/pricing/pricing-page.html - 118 + 88 @@ -3957,7 +3973,7 @@ Support par E-mail et Tchat apps/client/src/app/pages/pricing/pricing-page.html - 314 + 236 @@ -3989,7 +4005,7 @@ Oups ! Nous n'avons pas pu obtenir le taux de change historique à partir de apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 258 + 257 @@ -4013,11 +4029,11 @@ Fournisseur de Données Professionnel apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 41 + 38 apps/client/src/app/pages/pricing/pricing-page.html - 298 + 226 @@ -4028,20 +4044,20 @@ 4 - - Renew - Renouveler - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 21 - - Renew Plan Renouveler l'Abonnement + + apps/client/src/app/components/header/header.component.html + 185 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 23 + apps/client/src/app/pages/pricing/pricing-page.html - 348 + 270 @@ -4073,7 +4089,7 @@ Voulez-vous vraiment supprimer toutes vos activités ? apps/client/src/app/pages/portfolio/activities/activities-page.component.ts - 140 + 169 @@ -4081,7 +4097,7 @@ Par Émetteur d'ETF apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 286 + 280 @@ -4089,7 +4105,7 @@ Supprimer toutes les Activités libs/ui/src/lib/activities-table/activities-table.component.html - 69 + 65 @@ -4125,7 +4141,7 @@ Voulez-vous vraiment supprimer cette plateforme ? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 78 + 79 @@ -4141,7 +4157,7 @@ Mettre à jour le Solde apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 94 + 93 @@ -4149,7 +4165,7 @@ Par Plateforme apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 42 + 36 @@ -4157,7 +4173,7 @@ Mettez à niveau vers Ghostfolio Premium aujourd'hui et gagnez accès à des fonctionnalités exclusives pour améliorer votre expérience d'investissement: apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 18 + 15 @@ -4165,7 +4181,7 @@ Obtenez les outils pour gérer efficacement vos finances et affinez votre stratégie d'investissement personnelle. apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 48 + 45 @@ -4181,19 +4197,19 @@ Paramètres apps/client/src/app/pages/admin/admin-page-routing.module.ts - 30 + 35 apps/client/src/app/pages/admin/admin-page.component.ts - 31 + 32 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 17 + 18 apps/client/src/app/pages/user-account/user-account-page.component.ts - 34 + 35 @@ -4217,7 +4233,7 @@ Gérer les Références apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html - 36 + 38 @@ -4241,7 +4257,7 @@ Selectionner les Dividendes apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 110 @@ -4249,7 +4265,7 @@ Selectionner les Activités apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 117 + 113 @@ -4257,11 +4273,11 @@ Importer les Activités libs/ui/src/lib/activities-table/activities-table.component.html - 16 + 9 libs/ui/src/lib/activities-table/activities-table.component.html - 453 + 369 @@ -4269,11 +4285,11 @@ Importer les Dividendes libs/ui/src/lib/activities-table/activities-table.component.html - 35 + 29 libs/ui/src/lib/activities-table/activities-table.component.html - 464 + 381 @@ -4297,7 +4313,7 @@ Série en cours apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 187 + 275 @@ -4305,7 +4321,7 @@ Série la plus longue apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 196 + 284 @@ -4340,20 +4356,12 @@ 26 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Si vous prenez votre retraite aujourd'hui, vous pourriez retirer par an ou par mois, sur base de vos actifs totaux de et un taux de retrait de 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 57 - - Liabilities Dettes apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 230 + 244 apps/client/src/app/pages/features/features-page.html @@ -4365,11 +4373,11 @@ Historique des Modifications apps/client/src/app/pages/about/about-page.component.ts - 48 + 49 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts - 12 + 13 @@ -4377,11 +4385,11 @@ Licence apps/client/src/app/pages/about/about-page.component.ts - 53 + 54 apps/client/src/app/pages/about/license/license-page-routing.module.ts - 12 + 13 @@ -4453,7 +4461,7 @@ Mode Sombre apps/client/src/app/pages/features/features-page.html - 179 + 177 @@ -4461,7 +4469,7 @@ Sentiment du Marché apps/client/src/app/pages/features/features-page.html - 209 + 205 @@ -4469,7 +4477,7 @@ Analyse statique apps/client/src/app/pages/features/features-page.html - 227 + 224 @@ -4477,7 +4485,7 @@ Multi-Langue apps/client/src/app/pages/features/features-page.html - 245 + 241 @@ -4485,7 +4493,7 @@ Logiciel Open Source apps/client/src/app/pages/features/features-page.html - 279 + 275 @@ -4501,7 +4509,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 243 @@ -4517,7 +4525,7 @@ Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 13 + 14 @@ -4719,8 +4727,20 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 67 - - + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + Origin Origin @@ -4911,6 +4931,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 72 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + Region @@ -5103,6 +5135,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 77 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + Available in @@ -5295,6 +5339,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 82 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + ✅ Yes @@ -5487,6 +5543,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 104 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 111 @@ -5863,6 +5943,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 @@ -6239,6 +6343,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 150 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 157 @@ -6615,6 +6743,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 169 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 176 @@ -6995,6 +7147,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 106 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 129 @@ -7371,6 +7547,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 140 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 152 @@ -7747,6 +7947,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 159 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 171 @@ -8123,6 +8347,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 178 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + ❌ No @@ -8315,6 +8551,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 113 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + Self-Hosting @@ -8507,6 +8755,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 118 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + Use anonymously @@ -8699,8 +8959,20 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 145 - - + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + Free Plan Free Plan @@ -8891,6 +9163,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 164 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + Notes @@ -9083,6 +9367,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 196 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -9275,6 +9571,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 221 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + Personal Finance Tools @@ -9467,6 +9775,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 302 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + Guides @@ -9533,7 +9853,7 @@ ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 71 + 72 @@ -9541,7 +9861,7 @@ ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 76 + 77 @@ -9549,7 +9869,7 @@ Assets apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 190 + 204 @@ -9565,7 +9885,7 @@ By Market apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 177 + 171 @@ -9589,7 +9909,7 @@ Welcome to Ghostfolio apps/client/src/app/components/home-overview/home-overview.html - 9 + 7 @@ -9597,7 +9917,7 @@ Setup your accounts apps/client/src/app/components/home-overview/home-overview.html - 17 + 15 @@ -9605,7 +9925,7 @@ Get a comprehensive financial overview by adding your bank and brokerage accounts. apps/client/src/app/components/home-overview/home-overview.html - 19 + 17 @@ -9613,7 +9933,7 @@ Capture your activities apps/client/src/app/components/home-overview/home-overview.html - 26 + 24 @@ -9621,7 +9941,7 @@ Record your investment activities to keep your portfolio up to date. apps/client/src/app/components/home-overview/home-overview.html - 28 + 26 @@ -9629,7 +9949,7 @@ Monitor and analyze your portfolio apps/client/src/app/components/home-overview/home-overview.html - 35 + 33 @@ -9637,7 +9957,7 @@ Track your progress in real-time with comprehensive analysis and insights. apps/client/src/app/components/home-overview/home-overview.html - 37 + 35 @@ -9645,7 +9965,7 @@ No data available apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 254 + 248 apps/client/src/app/pages/public/public-page.html @@ -9657,7 +9977,7 @@ Ready to take control of your personal finances? apps/client/src/app/components/home-overview/home-overview.html - 10 + 8 @@ -9665,7 +9985,7 @@ Setup accounts apps/client/src/app/components/home-overview/home-overview.html - 50 + 48 @@ -9673,7 +9993,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 158 + 170 @@ -9757,7 +10077,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 199 + 213 @@ -9765,7 +10085,7 @@ Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 66 + 67 @@ -9781,7 +10101,7 @@ Visit apps/client/src/app/pages/about/oss-friends/oss-friends-page.html - 28 + 26 @@ -9796,7 +10116,15 @@ Frequently Asked Questions (FAQ) Frequently Asked Questions (FAQ) - apps/client/src/app/pages/faq/faq-page.html + apps/client/src/app/pages/faq/overview/faq-overview-page.html + 4 + + + apps/client/src/app/pages/faq/saas/saas-page.html + 4 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html 4 @@ -9849,7 +10177,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 424 @@ -10041,7 +10369,7 @@ Members from around the globe are using Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 358 + 354 @@ -10049,7 +10377,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 373 + 366 @@ -10057,7 +10385,7 @@ Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 382 + 375 @@ -10065,7 +10393,7 @@ * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 384 + 377 @@ -10073,7 +10401,7 @@ Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 395 + 388 @@ -10081,7 +10409,7 @@ Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 407 + 400 @@ -10089,7 +10417,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 419 + 412 @@ -10097,7 +10425,7 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 420 + 413 @@ -10109,7 +10437,7 @@ apps/client/src/app/pages/landing/landing-page.html - 436 + 429 @@ -10125,7 +10453,7 @@ Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 376 + 369 @@ -10133,15 +10461,27 @@ foire-aux-questions apps/client/src/app/app-routing.module.ts - 9 + 10 apps/client/src/app/app.component.ts - 54 + 55 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 37 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 42 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 @@ -10149,27 +10489,27 @@ fonctionnalites apps/client/src/app/app-routing.module.ts - 10 + 11 apps/client/src/app/app.component.ts - 55 + 56 apps/client/src/app/components/header/header.component.ts - 72 + 77 apps/client/src/app/components/header/header.component.ts - 77 + 82 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -10189,19 +10529,23 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts 14 - apps/client/src/app/pages/faq/faq-page.component.ts - 13 + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 14 apps/client/src/app/pages/pricing/pricing-page.component.ts - 34 + 35 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 27 apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts @@ -10259,6 +10603,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 27 @@ -10375,6 +10723,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 27 @@ -10397,51 +10749,51 @@ a-propos apps/client/src/app/app-routing.module.ts - 8 + 9 apps/client/src/app/app.component.ts - 47 + 48 apps/client/src/app/app.component.ts - 48 + 49 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/app.component.ts - 51 + 52 apps/client/src/app/components/header/header.component.ts - 71 + 76 apps/client/src/app/components/header/header.component.ts - 76 + 81 apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/about-page.component.ts - 73 + 74 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -10465,12 +10817,16 @@ apps/client/src/app/pages/landing/landing-page.component.ts - 25 + 26 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 22 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 26 @@ -10527,6 +10883,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 26 @@ -10643,6 +11003,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 26 @@ -10665,15 +11029,15 @@ politique-de-confidentialite apps/client/src/app/app-routing.module.ts - 14 + 15 apps/client/src/app/app.component.ts - 52 + 53 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 @@ -10681,15 +11045,15 @@ licence apps/client/src/app/app-routing.module.ts - 11 + 12 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 @@ -10697,19 +11061,19 @@ marches apps/client/src/app/app-routing.module.ts - 12 + 13 apps/client/src/app/app.component.ts - 56 + 57 apps/client/src/app/components/header/header.component.ts - 73 + 78 apps/client/src/app/components/header/header.component.ts - 78 + 83 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -10720,7 +11084,7 @@ 16 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 14 @@ -10729,23 +11093,23 @@ prix apps/client/src/app/app-routing.module.ts - 13 + 14 apps/client/src/app/app.component.ts - 57 + 58 apps/client/src/app/components/header/header.component.ts - 74 + 79 apps/client/src/app/components/header/header.component.ts - 79 + 84 apps/client/src/app/components/home-summary/home-summary.component.ts - 124 + 125 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts @@ -10753,11 +11117,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 37 + 38 apps/client/src/app/core/http-response.interceptor.ts - 80 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -10777,7 +11141,7 @@ apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 16 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -10785,10 +11149,14 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 16 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts 15 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 @@ -10801,35 +11169,35 @@ enregistrement apps/client/src/app/app-routing.module.ts - 15 + 16 apps/client/src/app/app.component.ts - 58 + 59 apps/client/src/app/components/header/header.component.ts - 80 + 85 apps/client/src/app/core/auth.guard.ts - 53 + 54 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 16 apps/client/src/app/pages/features/features-page.component.ts - 17 + 18 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/pricing/pricing-page.component.ts - 35 + 36 @@ -10837,19 +11205,19 @@ ressources apps/client/src/app/app-routing.module.ts - 16 + 17 apps/client/src/app/app.component.ts - 59 + 60 apps/client/src/app/components/header/header.component.ts - 75 + 80 apps/client/src/app/components/header/header.component.ts - 81 + 86 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -10869,12 +11237,16 @@ apps/client/src/app/pages/features/features-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 29 @@ -10931,6 +11303,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 29 @@ -11047,6 +11423,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 29 @@ -11065,7 +11445,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 17 + 18 @@ -11089,7 +11469,7 @@ Open Source Alternative to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html - 35 + 32 @@ -11097,7 +11477,7 @@ Open Source Alternative to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 25 + 26 @@ -11291,6 +11671,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -11483,6 +11875,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -11675,6 +12079,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -11867,13 +12283,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + open-source-alternative-to open-source-alternative-to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts @@ -12071,6 +12499,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 204 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + Ready to take your investments to the next level? @@ -12263,6 +12703,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 217 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + Get Started @@ -12455,25 +12907,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 226 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + Switzerland Switzerland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 72 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 90 + 102 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 506 + 530 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 548 + 580 @@ -12481,19 +12945,19 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 70 + 73 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 317 + 341 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 438 + 462 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 549 + 581 @@ -12501,83 +12965,87 @@ United States apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 81 + 93 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 149 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 159 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 189 + 201 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 198 + 210 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 208 + 220 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 218 + 232 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 270 + 242 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 294 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 316 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 328 + 327 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 330 + 352 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 340 + 354 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 405 + 364 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 415 + 429 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 425 + 439 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 494 + 449 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 517 + 518 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 537 + 541 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 559 + 569 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 591 @@ -12585,7 +13053,7 @@ Belgium apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 167 + 179 @@ -12593,31 +13061,31 @@ Germany apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 128 + 140 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 178 + 190 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 250 + 274 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 260 + 284 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 305 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 315 + 339 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 361 + 385 @@ -12625,7 +13093,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 238 + 262 @@ -12633,7 +13101,7 @@ Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 372 + 396 @@ -12641,7 +13109,7 @@ Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 382 + 406 @@ -12649,7 +13117,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 394 + 418 @@ -12657,7 +13125,7 @@ New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 436 + 460 @@ -12665,11 +13133,11 @@ Czech Republic apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 447 + 471 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 484 + 508 @@ -12713,7 +13181,7 @@ Choose or drop a file here apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 85 + 81 @@ -12745,7 +13213,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 197 @@ -12761,7 +13229,7 @@ Interest apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 280 + 294 @@ -12785,7 +13253,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 78 + 79 @@ -12809,15 +13277,15 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 109 + 121 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 458 + 482 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 474 + 498 @@ -12825,7 +13293,7 @@ Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. apps/client/src/app/pages/portfolio/fire/fire-page.html - 100 + 108 @@ -12833,7 +13301,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 132 @@ -12841,7 +13309,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 145 @@ -12861,7 +13329,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 219 + 226 @@ -12893,7 +13361,7 @@ To apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 29 + 28 @@ -12901,7 +13369,7 @@ Transfer apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 66 + 64 @@ -12909,7 +13377,7 @@ Finland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 466 + 490 @@ -12917,11 +13385,11 @@ Membership apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/user-account/user-account-page.component.ts - 39 + 40 @@ -12929,11 +13397,11 @@ Access apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/user-account/user-account-page.component.ts - 45 + 46 @@ -12941,7 +13409,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 89 + 126 @@ -12969,7 +13437,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 184 + 185 @@ -13001,7 +13469,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 63 + 65 @@ -13203,13 +13671,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 48 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + Canada Canada apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 529 + 561 @@ -13233,7 +13713,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 305 + 306 @@ -13241,7 +13721,7 @@ Poland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 119 + 131 @@ -13249,7 +13729,7 @@ South Africa apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 227 + 251 @@ -13281,7 +13761,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 205 + 224 @@ -13289,7 +13769,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 159 + 166 @@ -13305,7 +13785,7 @@ 200-Day Trend libs/ui/src/lib/benchmark/benchmark.component.html - 39 + 40 @@ -13313,7 +13793,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 88 + 109 @@ -13507,6 +13987,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 190 @@ -13887,6 +14391,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 @@ -14081,7 +14609,335 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 56 + 57 + + + + is an invalid currency! + is an invalid currency! + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 129 + + + + If a translation is missing, kindly support us in extending it here. + If a translation is missing, kindly support us in extending it here. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 53 + + + + The current market price is + The current market price is + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 318 + + + + Test + Test + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 259 + + + + Date Range + Date Range + + libs/ui/src/lib/assistant/assistant.html + 93 + + + + Permission + Permission + + apps/client/src/app/components/access-table/access-table.component.html + 17 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 33 + + + + Restricted view + Restricted view + + apps/client/src/app/components/access-table/access-table.component.html + 25 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 35 + + + + Oops! Could not grant access. + Oops! Could not grant access. + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts + 80 + + + + Private + Private + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 + + + + Job Queue + Job Queue + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 25 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 42 + + + + Market data is delayed for + Market data is delayed for + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts + 80 + + + + Investment + Investment + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 46 + + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 60 + + + + Absolute Asset Performance + Absolute Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Asset Performance + Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 42 + + + + Absolute Currency Performance + Absolute Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 57 + + + + Currency Performance + Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 72 + + + + Absolute Net Performance + Absolute Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 88 + + + + Net Performance + Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 103 + + + + Week to date + Week to date + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + WTD + WTD + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + Month to date + Month to date + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + MTD + MTD + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + Year to date + Year to date + + libs/ui/src/lib/assistant/assistant.component.ts + 109 + + + + View + View + + apps/client/src/app/components/access-table/access-table.component.html + 22 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + + + + Oops! A data provider is experiencing the hiccups. + Oops! A data provider is experiencing the hiccups. + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html + 8 + + + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 65 + + + + Reset Filters + Reset Filters + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + year + year + + libs/ui/src/lib/assistant/assistant.component.ts + 112 + + + + years + years + + libs/ui/src/lib/assistant/assistant.component.ts + 114 + + + + Asset Classes + Asset Classes + + libs/ui/src/lib/assistant/assistant.html + 138 + + + + Apply Filters + Apply Filters + + libs/ui/src/lib/assistant/assistant.html + 165 + + + + Data Gathering + Data Gathering + + apps/client/src/app/components/admin-overview/admin-overview.html + 132 + + + + General + General + + apps/client/src/app/pages/faq/faq-page.component.ts + 36 + + + + Cloud + Cloud + + apps/client/src/app/pages/faq/faq-page.component.ts + 41 + + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + + Self-Hosting + Self-Hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 47 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + + self-hosting + self-hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 + + + + FAQ + FAQ + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 diff --git a/apps/client/src/locales/messages.it.xlf b/apps/client/src/locales/messages.it.xlf index fa83ef57a..0d18d16ec 100644 --- a/apps/client/src/locales/messages.it.xlf +++ b/apps/client/src/locales/messages.it.xlf @@ -23,7 +23,7 @@ Il rischio di perdita nel trading può essere notevole. Non è consigliabile investire denaro di cui potresti avere bisogno a breve termine. apps/client/src/app/app.component.html - 182 + 179 @@ -37,10 +37,6 @@ Type Tipo - - apps/client/src/app/components/access-table/access-table.component.html - 17 - apps/client/src/app/components/admin-jobs/admin-jobs.html 28 @@ -55,7 +51,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 164 + 159 @@ -63,7 +59,7 @@ Dettagli apps/client/src/app/components/access-table/access-table.component.html - 27 + 32 @@ -71,7 +67,7 @@ Revoca apps/client/src/app/components/access-table/access-table.component.html - 54 + 59 @@ -79,7 +75,7 @@ Vuoi davvero revocare l'accesso concesso? apps/client/src/app/components/access-table/access-table.component.ts - 49 + 50 @@ -91,7 +87,7 @@ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 73 + 87 apps/client/src/app/components/accounts-table/accounts-table.component.html @@ -111,7 +107,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 253 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -131,7 +127,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 182 + 180 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -151,15 +147,15 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 12 + 15 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 114 + 113 libs/ui/src/lib/activities-table/activities-table.component.html - 179 + 136 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -173,10 +169,6 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html 50 - - libs/ui/src/lib/activities-table/activities-table.component.html - 159 - Value @@ -191,7 +183,11 @@ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 47 + 45 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 167 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -199,11 +195,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 169 + 170 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 171 + 223 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -217,21 +213,17 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 226 - - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 227 - libs/ui/src/lib/account-balances/account-balances.component.html 20 libs/ui/src/lib/activities-table/activities-table.component.html - 321 + 255 libs/ui/src/lib/activities-table/activities-table.component.html - 356 + 291 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -251,7 +243,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 80 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -263,7 +255,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 507 + 428 @@ -279,11 +271,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 99 + 90 apps/client/src/app/components/admin-overview/admin-overview.html - 201 + 197 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -295,11 +287,11 @@ libs/ui/src/lib/account-balances/account-balances.component.html - 50 + 51 libs/ui/src/lib/activities-table/activities-table.component.html - 529 + 450 @@ -307,7 +299,7 @@ Vuoi davvero eliminare questo account? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 83 + 99 @@ -315,7 +307,7 @@ Elimina i lavori apps/client/src/app/components/admin-jobs/admin-jobs.html - 135 + 126 @@ -351,7 +343,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 130 + 129 @@ -407,7 +399,7 @@ Visualizza i dati apps/client/src/app/components/admin-jobs/admin-jobs.html - 150 + 141 @@ -415,7 +407,7 @@ Visualizza Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 157 + 148 @@ -423,7 +415,7 @@ Elimina il lavoro apps/client/src/app/components/admin-jobs/admin-jobs.html - 160 + 151 @@ -443,7 +435,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 136 + 135 libs/ui/src/lib/account-balances/account-balances.component.html @@ -451,7 +443,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 152 + 168 @@ -475,7 +467,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 260 + 301 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -491,23 +483,23 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 30 + 58 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 96 + 101 apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 59 + 57 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 362 + 361 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 37 + 38 @@ -519,7 +511,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 267 + 308 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -535,15 +527,15 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 37 + 65 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 103 + 108 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 368 @@ -591,7 +583,7 @@ Aggiungi una valuta: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 119 + 122 @@ -599,7 +591,7 @@ Vuoi davvero eliminare questo buono? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 133 + 140 @@ -607,7 +599,7 @@ Vuoi davvero eliminare questa valuta? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 146 + 153 @@ -615,7 +607,7 @@ Vuoi davvero svuotare la cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 169 + 183 @@ -623,7 +615,7 @@ Imposta il messaggio di sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 200 + 214 @@ -683,7 +675,7 @@ Aggiungi valuta apps/client/src/app/components/admin-overview/admin-overview.html - 113 + 104 @@ -691,7 +683,7 @@ Messaggio di sistema apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 143 @@ -699,7 +691,7 @@ Imposta messaggio apps/client/src/app/components/admin-overview/admin-overview.html - 164 + 163 @@ -707,7 +699,7 @@ Modalità di sola lettura apps/client/src/app/components/admin-overview/admin-overview.html - 130 + 121 @@ -715,7 +707,7 @@ Buoni sconto apps/client/src/app/components/admin-overview/admin-overview.html - 172 + 171 @@ -723,7 +715,7 @@ Aggiungi apps/client/src/app/components/admin-overview/admin-overview.html - 233 + 229 @@ -731,7 +723,7 @@ Bilancio domestico apps/client/src/app/components/admin-overview/admin-overview.html - 240 + 236 @@ -739,7 +731,7 @@ Svuota la cache apps/client/src/app/components/admin-overview/admin-overview.html - 244 + 240 @@ -747,7 +739,7 @@ Vuoi davvero eliminare questo utente? apps/client/src/app/components/admin-users/admin-users.component.ts - 112 + 113 @@ -755,7 +747,7 @@ Utente apps/client/src/app/components/header/header.component.html - 192 + 225 @@ -795,11 +787,11 @@ Panoramica apps/client/src/app/components/header/header.component.html - 27 + 28 apps/client/src/app/components/header/header.component.html - 206 + 239 @@ -807,11 +799,11 @@ Portafoglio apps/client/src/app/components/header/header.component.html - 40 + 41 apps/client/src/app/components/header/header.component.html - 216 + 249 @@ -827,27 +819,35 @@ apps/client/src/app/components/header/header.component.html - 53 + 54 apps/client/src/app/components/header/header.component.html - 224 + 257 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 276 apps/client/src/app/pages/accounts/accounts-page.html 4 + + libs/ui/src/lib/assistant/assistant.html + 107 + Admin Control Controllo amministrativo apps/client/src/app/components/header/header.component.html - 66 + 67 apps/client/src/app/components/header/header.component.html - 240 + 273 @@ -859,11 +859,11 @@ apps/client/src/app/components/header/header.component.html - 79 + 80 apps/client/src/app/components/header/header.component.html - 251 + 284 apps/client/src/app/pages/resources/resources-page.html @@ -879,15 +879,27 @@ apps/client/src/app/components/header/header.component.html - 97 + 98 apps/client/src/app/components/header/header.component.html - 263 + 296 apps/client/src/app/components/header/header.component.html - 332 + 365 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -1087,11 +1099,11 @@ apps/client/src/app/components/header/header.component.html - 110 + 111 apps/client/src/app/components/header/header.component.html - 319 + 352 @@ -1099,7 +1111,7 @@ Io apps/client/src/app/components/header/header.component.html - 173 + 206 @@ -1107,7 +1119,7 @@ Il mio Ghostfolio apps/client/src/app/components/header/header.component.html - 231 + 264 @@ -1115,7 +1127,7 @@ Informazioni su Ghostfolio apps/client/src/app/components/header/header.component.html - 271 + 304 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -1131,7 +1143,7 @@ apps/client/src/app/components/header/header.component.html - 306 + 339 apps/client/src/app/pages/features/features-page.html @@ -1147,7 +1159,7 @@ apps/client/src/app/components/header/header.component.html - 348 + 381 apps/client/src/app/components/home-market/home-market.html @@ -1163,7 +1175,7 @@ Inizia apps/client/src/app/pages/features/features-page.html - 299 + 296 apps/client/src/app/pages/public/public-page.html @@ -1175,11 +1187,11 @@ Accedi apps/client/src/app/components/header/header.component.ts - 169 + 226 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts - 6 + 7 @@ -1187,7 +1199,7 @@ Ops! Token di sicurezza errato. apps/client/src/app/components/header/header.component.ts - 183 + 240 @@ -1195,11 +1207,11 @@ Gestione delle attività apps/client/src/app/components/home-holdings/home-holdings.html - 30 + 22 apps/client/src/app/pages/portfolio/holdings/holdings-page.html - 31 + 23 @@ -1239,11 +1251,11 @@ apps/client/src/app/pages/landing/landing-page.html - 435 + 428 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 98 + 94 apps/client/src/app/pages/register/register-page.html @@ -1251,7 +1263,7 @@ apps/client/src/app/pages/webauthn/webauthn-page.html - 28 + 29 @@ -1283,7 +1295,7 @@ Accedi apps/client/src/app/components/header/header.component.html - 361 + 394 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1339,10 +1351,10 @@ Prestazioni lorde apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 72 + 73 - + @@ -1358,7 +1370,7 @@ {VAR_PLURAL, plural, =1 {transazione} other {transazioni}} apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 13 + 14 @@ -1366,7 +1378,7 @@ Prestazioni nette assolute apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 103 + 110 @@ -1374,7 +1386,7 @@ Prestazioni nette apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 115 + 123 @@ -1382,7 +1394,7 @@ Asset totali apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 131 + 145 @@ -1390,7 +1402,7 @@ Oggetti di valore apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 144 + 158 @@ -1398,7 +1410,7 @@ Fondo di emergenza apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 156 + 170 apps/client/src/app/pages/features/features-page.html @@ -1406,7 +1418,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 119 @@ -1414,7 +1426,7 @@ Potere d'acquisto apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 203 + 217 @@ -1422,7 +1434,7 @@ Patrimonio netto apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 250 + 264 @@ -1430,7 +1442,7 @@ Prestazioni annualizzate apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 262 + 276 @@ -1438,7 +1450,7 @@ Dividendo apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 292 + 306 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1450,11 +1462,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 166 + 165 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 222 + 221 @@ -1462,7 +1474,7 @@ Inserisci l'importo del tuo fondo di emergenza: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 52 + 53 @@ -1470,11 +1482,15 @@ Settori apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 158 + 156 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 266 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 216 + 211 apps/client/src/app/pages/public/public-page.html @@ -1486,11 +1502,15 @@ Paesi apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 166 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 277 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 228 + 223 @@ -1502,11 +1522,15 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 295 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 320 + 319 + + + libs/ui/src/lib/assistant/assistant.html + 127 @@ -1514,7 +1538,7 @@ Segnala un'anomalia dei dati apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 287 + 312 @@ -1546,7 +1570,7 @@ Mostra tutti libs/ui/src/lib/holdings-table/holdings-table.component.html - 172 + 171 @@ -1554,7 +1578,11 @@ Oggi apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 + + + libs/ui/src/lib/assistant/assistant.component.ts + 99 @@ -1562,7 +1590,11 @@ anno corrente apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 + + + libs/ui/src/lib/assistant/assistant.component.ts + 109 @@ -1570,7 +1602,11 @@ 1 anno apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 + + + libs/ui/src/lib/assistant/assistant.component.ts + 112 @@ -1578,7 +1614,11 @@ 5 anni apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 + + + libs/ui/src/lib/assistant/assistant.component.ts + 114 @@ -1586,7 +1626,11 @@ Massimo apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 + + + libs/ui/src/lib/assistant/assistant.component.ts + 117 @@ -1594,11 +1638,11 @@ Questa funzione richiede un abbonamento. apps/client/src/app/components/home-summary/home-summary.component.ts - 112 + 113 apps/client/src/app/core/http-response.interceptor.ts - 67 + 68 @@ -1606,11 +1650,11 @@ Piano di aggiornamento apps/client/src/app/components/home-summary/home-summary.component.ts - 114 + 115 apps/client/src/app/core/http-response.interceptor.ts - 69 + 70 @@ -1618,11 +1662,11 @@ Bene apps/client/src/app/core/http-response.interceptor.ts - 89 + 90 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 139 @@ -1630,15 +1674,15 @@ Informazioni su apps/client/src/app/pages/about/about-page-routing.module.ts - 52 + 51 apps/client/src/app/pages/about/about-page.component.ts - 43 + 44 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts - 12 + 13 @@ -1770,11 +1814,11 @@ Informativa sulla privacy apps/client/src/app/pages/about/about-page.component.ts - 61 + 62 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts - 12 + 13 @@ -1782,7 +1826,7 @@ Il mio Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 32 + 33 @@ -1790,7 +1834,7 @@ Inserisci il tuo codice del buono: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 110 + 111 @@ -1798,7 +1842,7 @@ Impossibile riscattare il codice del buono apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 120 + 121 @@ -1806,7 +1850,7 @@ Il codice del buono è stato riscattato apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 132 + 133 @@ -1814,7 +1858,7 @@ Ricarica apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 133 + 134 @@ -1822,7 +1866,7 @@ Vuoi davvero rimuovere questo metodo di accesso? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 182 + 188 @@ -1834,7 +1878,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 387 + 306 @@ -1845,24 +1889,16 @@ 18 - - Upgrade - Aggiornamento - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 - - per year per anno apps/client/src/app/components/user-account-membership/user-account-membership.html - 33 + 35 apps/client/src/app/pages/pricing/pricing-page.html - 332 + 254 @@ -1870,7 +1906,7 @@ Prova Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 42 + 44 @@ -1878,7 +1914,7 @@ Riscatta il buono apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 57 @@ -1902,7 +1938,7 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 95 + 107 @@ -1910,7 +1946,7 @@ Formato data e numero apps/client/src/app/components/user-account-settings/user-account-settings.html - 97 + 109 @@ -1918,11 +1954,11 @@ Modalità Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 141 + 153 apps/client/src/app/pages/features/features-page.html - 192 + 190 @@ -1930,15 +1966,19 @@ Accesso con impronta digitale apps/client/src/app/components/user-account-settings/user-account-settings.html - 159 + 171 User ID ID utente + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 45 + apps/client/src/app/components/user-account-settings/user-account-settings.html - 192 + 205 @@ -1962,7 +2002,7 @@ Pubblico apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 24 + 25 @@ -1970,7 +2010,7 @@ Account apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 12 + 13 @@ -1978,7 +2018,7 @@ Aggiorna account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 8 @@ -1986,7 +2026,7 @@ Aggiungi un account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 8 + 10 @@ -1994,7 +2034,7 @@ Contanti apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 177 + 191 @@ -2008,17 +2048,21 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 91 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 186 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 22 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 120 + 119 libs/ui/src/lib/activities-table/activities-table.component.html - 209 + 274 @@ -2034,7 +2078,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 31 + 34 @@ -2050,7 +2094,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 45 + 48 @@ -2058,7 +2102,7 @@ ID account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 90 + 94 @@ -2066,7 +2110,7 @@ Controllo amministrativo apps/client/src/app/pages/admin/admin-page-routing.module.ts - 19 + 20 @@ -2074,7 +2118,7 @@ Blog apps/client/src/app/pages/blog/blog-page-routing.module.ts - 12 + 13 @@ -2082,7 +2126,7 @@ Poiché hai già effettuato l'accesso, non puoi accedere all'account demo. apps/client/src/app/pages/demo/demo-page.component.ts - 31 + 32 @@ -2090,7 +2134,11 @@ Domande più frequenti (FAQ) apps/client/src/app/pages/faq/faq-page-routing.module.ts - 12 + 34 + + + apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts + 13 @@ -2098,7 +2146,7 @@ Funzionalità apps/client/src/app/pages/features/features-page-routing.module.ts - 12 + 13 @@ -2106,19 +2154,19 @@ Panoramica apps/client/src/app/pages/admin/admin-page.component.ts - 26 + 27 apps/client/src/app/pages/home/home-page.component.ts - 33 + 34 apps/client/src/app/pages/zen/zen-page-routing.module.ts - 18 + 19 apps/client/src/app/pages/zen/zen-page.component.ts - 33 + 34 @@ -2126,15 +2174,15 @@ Mercati apps/client/src/app/pages/home/home-page-routing.module.ts - 32 + 33 apps/client/src/app/pages/home/home-page.component.ts - 48 + 49 apps/client/src/app/pages/markets/markets-page-routing.module.ts - 12 + 13 @@ -2142,11 +2190,11 @@ Allocazioni apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 48 + 49 @@ -2162,7 +2210,7 @@ Per account apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 266 + 260 @@ -2170,7 +2218,7 @@ Per valuta apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 61 + 55 @@ -2178,7 +2226,7 @@ Per classe asset apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 84 + 78 @@ -2186,7 +2234,7 @@ Per partecipazione apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 107 + 101 @@ -2194,7 +2242,7 @@ Per settore apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 130 + 124 @@ -2202,7 +2250,7 @@ Per continente apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 154 + 148 @@ -2210,7 +2258,7 @@ Per paese apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 309 + 303 @@ -2218,7 +2266,7 @@ Regioni apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 201 + 195 apps/client/src/app/pages/public/public-page.html @@ -2230,11 +2278,11 @@ Analisi apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 33 + 34 @@ -2250,7 +2298,7 @@ Cronologia degli investimenti apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 166 + 254 @@ -2258,7 +2306,7 @@ In alto apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 40 + 128 @@ -2266,7 +2314,7 @@ In basso apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 86 + 174 @@ -2274,7 +2322,7 @@ FIRE apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 12 + 13 @@ -2298,7 +2346,7 @@ Regola del 4% apps/client/src/app/pages/portfolio/fire/fire-page.html - 34 + 38 @@ -2306,28 +2354,32 @@ Partecipazioni apps/client/src/app/pages/home/home-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/home/home-page.component.ts - 38 + 39 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 38 + 39 apps/client/src/app/pages/zen/zen-page.component.ts - 38 + 39 Holdings Partecipazioni + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 75 + apps/client/src/app/pages/portfolio/holdings/holdings-page.html 4 @@ -2354,7 +2406,7 @@ Aggiungi un'attività apps/client/src/app/components/home-overview/home-overview.html - 58 + 56 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2378,7 +2430,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 102 + 101 @@ -2390,11 +2442,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 152 libs/ui/src/lib/activities-table/activities-table.component.html - 230 + 184 @@ -2402,15 +2454,15 @@ Prezzo unitario apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 173 + 172 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 228 + 227 libs/ui/src/lib/activities-table/activities-table.component.html - 259 + 208 @@ -2418,15 +2470,15 @@ Commissione apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 242 + 241 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 266 libs/ui/src/lib/activities-table/activities-table.component.html - 288 + 232 @@ -2434,15 +2486,15 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 247 + 288 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 73 + 76 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 275 @@ -2458,7 +2510,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 195 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2466,7 +2518,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 291 + 290 @@ -2474,11 +2526,11 @@ Attività apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 43 + 44 @@ -2486,7 +2538,7 @@ Importazione dei dati... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 113 + 120 @@ -2494,7 +2546,7 @@ L'importazione è stata completata apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 121 + 128 @@ -2502,7 +2554,7 @@ Prezzi apps/client/src/app/pages/pricing/pricing-page-routing.module.ts - 12 + 13 @@ -2514,7 +2566,7 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 + 48 @@ -2546,7 +2598,7 @@ Iscrizione apps/client/src/app/pages/register/register-page-routing.module.ts - 12 + 13 @@ -2578,7 +2630,7 @@ Accetto di aver memorizzato il mio Token di sicurezza sopra citato in un luogo sicuro. Se lo perdo, non posso recuperare il mio account. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 31 + 32 @@ -2586,7 +2638,7 @@ Accetta e continua apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 44 + 45 @@ -2594,7 +2646,7 @@ Risorse apps/client/src/app/pages/resources/resources-page-routing.module.ts - 12 + 13 @@ -2602,7 +2654,7 @@ Ops, l'autenticazione non è riuscita. apps/client/src/app/pages/webauthn/webauthn-page.html - 18 + 19 @@ -2610,7 +2662,7 @@ Riprova apps/client/src/app/pages/webauthn/webauthn-page.html - 26 + 27 @@ -2618,7 +2670,7 @@ Torna alla pagina iniziale apps/client/src/app/pages/webauthn/webauthn-page.html - 30 + 31 @@ -2626,7 +2678,7 @@ Bozza libs/ui/src/lib/activities-table/activities-table.component.html - 189 + 143 @@ -2634,7 +2686,7 @@ Importa le attività apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 40 + 44 @@ -2642,11 +2694,11 @@ Esporta le attività libs/ui/src/lib/activities-table/activities-table.component.html - 47 + 41 libs/ui/src/lib/activities-table/activities-table.component.html - 476 + 394 @@ -2654,11 +2706,11 @@ Esporta le bozze come ICS libs/ui/src/lib/activities-table/activities-table.component.html - 59 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 488 + 407 @@ -2666,7 +2718,7 @@ Clona libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 434 @@ -2674,7 +2726,7 @@ Esporta la bozza come ICS libs/ui/src/lib/activities-table/activities-table.component.html - 523 + 444 @@ -2682,7 +2734,7 @@ Vuoi davvero eliminare questa attività? libs/ui/src/lib/activities-table/activities-table.component.ts - 227 + 175 @@ -2698,7 +2750,7 @@ Variazione rispetto al massimo storico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 79 + 81 @@ -2706,7 +2758,7 @@ dal massimo storico (ATH) libs/ui/src/lib/benchmark/benchmark.component.html - 81 + 83 @@ -2738,7 +2790,7 @@ Inizia apps/client/src/app/components/header/header.component.html - 373 + 406 @@ -2746,7 +2798,7 @@ Questa funzionalità non è attualmente disponibile. apps/client/src/app/core/http-response.interceptor.ts - 59 + 60 @@ -2754,11 +2806,11 @@ Ops! Qualcosa è andato storto. apps/client/src/app/core/http-response.interceptor.ts - 86 + 87 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 129 + 136 @@ -2766,15 +2818,15 @@ Riprova più tardi. apps/client/src/app/core/http-response.interceptor.ts - 61 + 62 apps/client/src/app/core/http-response.interceptor.ts - 88 + 89 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 131 + 138 @@ -2790,7 +2842,7 @@ Mercati sviluppati apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 224 + 218 apps/client/src/app/pages/public/public-page.html @@ -2810,7 +2862,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 201 + 208 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2818,7 +2870,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 307 + 306 @@ -2842,7 +2894,7 @@ Altri mercati apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 242 + 236 apps/client/src/app/pages/public/public-page.html @@ -2854,7 +2906,7 @@ Mercati emergenti apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 233 + 227 apps/client/src/app/pages/public/public-page.html @@ -2866,11 +2918,11 @@ Settore apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 143 + 142 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 198 + 197 @@ -2878,7 +2930,7 @@ Paese apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 152 + 151 apps/client/src/app/components/admin-users/admin-users.html @@ -2886,7 +2938,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 210 + 206 @@ -2928,14 +2980,6 @@ Deposit Deposito - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 48 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 60 - libs/ui/src/lib/fire-calculator/fire-calculator.component.ts 331 @@ -2970,7 +3014,7 @@ Paura apps/client/src/app/components/home-market/home-market.component.ts - 24 + 25 libs/ui/src/lib/i18n.ts @@ -2982,43 +3026,19 @@ Avidità apps/client/src/app/components/home-market/home-market.component.ts - 25 + 26 libs/ui/src/lib/i18n.ts 66 - - Filter by account or tag... - Filtra per account o tag... + + Filter by... + Filtra per... - apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts - 146 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 126 - - - apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts - 86 - - - - Filter by... - Filtra per... - - apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 281 - - - - Filter by account, currency, symbol or type... - Filtra per account, valuta, simbolo o tipo... - - libs/ui/src/lib/activities-table/activities-table.component.ts - 427 + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 282 @@ -3046,7 +3066,7 @@ Funzionalità sperimentali apps/client/src/app/components/user-account-settings/user-account-settings.html - 176 + 188 @@ -3070,7 +3090,7 @@ Percentuale del patrimonio netto apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 18 + 12 @@ -3078,7 +3098,7 @@ Escluso dall'analisi apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 215 + 229 @@ -3086,7 +3106,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 31 + 33 @@ -3094,7 +3114,7 @@ Aspetto apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 130 @@ -3102,7 +3122,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 130 + 142 @@ -3110,7 +3130,7 @@ Chiaro apps/client/src/app/components/user-account-settings/user-account-settings.html - 131 + 143 @@ -3118,7 +3138,7 @@ Scuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 132 + 144 @@ -3126,7 +3146,7 @@ Importo totale apps/client/src/app/components/investment-chart/investment-chart.component.ts - 182 + 190 @@ -3134,7 +3154,7 @@ Evoluzione del portafoglio apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 136 + 224 @@ -3142,7 +3162,7 @@ Tasso di risparmio apps/client/src/app/components/investment-chart/investment-chart.component.ts - 248 + 262 @@ -3290,7 +3310,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 384 + 385 @@ -3298,11 +3318,11 @@ Nessun dato disponibile libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 386 + 387 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 399 + 400 @@ -3358,7 +3378,7 @@ Sono supportati i seguenti formati di file: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 91 + 87 @@ -3366,11 +3386,11 @@ Indietro apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 141 + 140 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 178 + 176 @@ -3382,35 +3402,35 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 62 + 74 apps/client/src/app/components/user-account-settings/user-account-settings.html - 66 + 78 apps/client/src/app/components/user-account-settings/user-account-settings.html - 70 + 82 apps/client/src/app/components/user-account-settings/user-account-settings.html - 74 + 86 apps/client/src/app/components/user-account-settings/user-account-settings.html - 78 + 90 apps/client/src/app/components/user-account-settings/user-account-settings.html - 82 + 94 apps/client/src/app/components/user-account-settings/user-account-settings.html - 86 + 98 apps/client/src/app/pages/features/features-page.html - 260 + 256 @@ -3434,7 +3454,7 @@ Mappatura dei simboli apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 225 + 232 @@ -3442,7 +3462,7 @@ Dividendi apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 43 + 42 libs/ui/src/lib/i18n.ts @@ -3454,7 +3474,7 @@ Cronologia dei dividendi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 223 + 312 @@ -3470,7 +3490,7 @@ Registrazione utente apps/client/src/app/components/admin-overview/admin-overview.html - 119 + 110 @@ -3478,7 +3498,7 @@ Convalida dei dati... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 224 + 233 @@ -3490,23 +3510,11 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 150 + 149 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 186 - - - - Jobs - Lavori - - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 21 - - - apps/client/src/app/pages/admin/admin-page.component.ts - 41 + 184 @@ -3514,11 +3522,11 @@ Dati del mercato apps/client/src/app/pages/admin/admin-page-routing.module.ts - 25 + 30 apps/client/src/app/pages/admin/admin-page.component.ts - 36 + 37 @@ -3526,11 +3534,11 @@ Utenti apps/client/src/app/pages/admin/admin-page-routing.module.ts - 35 + 40 apps/client/src/app/pages/admin/admin-page.component.ts - 46 + 47 @@ -3538,11 +3546,11 @@ Summario apps/client/src/app/pages/home/home-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 43 + 44 @@ -3574,7 +3582,7 @@ Importa i dividendi apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 79 + 86 @@ -3582,7 +3590,7 @@ Valido fino a libs/ui/src/lib/membership-card/membership-card.component.html - 22 + 23 @@ -3646,7 +3654,7 @@ Esperienza priva di distrazioni per i periodi più turbolenti apps/client/src/app/components/user-account-settings/user-account-settings.html - 142 + 154 @@ -3654,7 +3662,7 @@ Un'anteprima delle funzionalità in arrivo apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 189 @@ -3662,7 +3670,7 @@ Sei un investitore ambizioso che ha bisogno di un quadro completo? apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 15 + 12 @@ -3670,15 +3678,15 @@ Riepilogo del portafoglio apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 25 + 22 apps/client/src/app/pages/pricing/pricing-page.html - 67 + 55 apps/client/src/app/pages/pricing/pricing-page.html - 256 + 199 @@ -3686,15 +3694,15 @@ Benchmark delle prestazioni apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 33 + 30 apps/client/src/app/pages/pricing/pricing-page.html - 81 + 63 apps/client/src/app/pages/pricing/pricing-page.html - 270 + 207 @@ -3702,15 +3710,15 @@ Calcolatore FIRE apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 37 + 34 apps/client/src/app/pages/pricing/pricing-page.html - 88 + 67 apps/client/src/app/pages/pricing/pricing-page.html - 277 + 211 @@ -3718,15 +3726,15 @@ e altre funzionalità... apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 45 + 42 apps/client/src/app/pages/pricing/pricing-page.html - 110 + 83 apps/client/src/app/pages/pricing/pricing-page.html - 306 + 231 @@ -3734,19 +3742,27 @@ Salta apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 55 + 52 Upgrade Plan Aggiorna il piano + + apps/client/src/app/components/header/header.component.html + 177 + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 62 + 59 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 18 apps/client/src/app/pages/pricing/pricing-page.html - 343 + 265 @@ -3762,15 +3778,15 @@ Transazioni illimitate apps/client/src/app/pages/pricing/pricing-page.html - 46 + 43 apps/client/src/app/pages/pricing/pricing-page.html - 159 + 126 apps/client/src/app/pages/pricing/pricing-page.html - 235 + 187 @@ -3778,15 +3794,15 @@ Account illimitati apps/client/src/app/pages/pricing/pricing-page.html - 53 + 47 apps/client/src/app/pages/pricing/pricing-page.html - 166 + 130 apps/client/src/app/pages/pricing/pricing-page.html - 242 + 191 @@ -3794,15 +3810,15 @@ Prestazioni del portafoglio apps/client/src/app/pages/pricing/pricing-page.html - 60 + 51 apps/client/src/app/pages/pricing/pricing-page.html - 173 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 249 + 195 @@ -3810,7 +3826,7 @@ Self-hosted, aggiornamento manuale. apps/client/src/app/pages/pricing/pricing-page.html - 122 + 92 @@ -3818,11 +3834,11 @@ Free apps/client/src/app/pages/pricing/pricing-page.html - 123 + 93 apps/client/src/app/pages/pricing/pricing-page.html - 192 + 150 @@ -3830,7 +3846,7 @@ Per i nuovi investitori che hanno appena iniziato a fare trading. apps/client/src/app/pages/pricing/pricing-page.html - 150 + 120 @@ -3838,11 +3854,11 @@ Offerta cloud Ghostfolio completamente gestita. apps/client/src/app/pages/pricing/pricing-page.html - 191 + 149 apps/client/src/app/pages/pricing/pricing-page.html - 318 + 240 @@ -3850,7 +3866,7 @@ Per gli investitori ambiziosi che hanno bisogno di un quadro completo dei propri asset finanziari. apps/client/src/app/pages/pricing/pricing-page.html - 225 + 180 @@ -3858,7 +3874,7 @@ Pagamento una tantum, senza rinnovo automatico. apps/client/src/app/pages/pricing/pricing-page.html - 352 + 274 @@ -3866,7 +3882,7 @@ Inizia apps/client/src/app/pages/pricing/pricing-page.html - 363 + 285 @@ -3874,7 +3890,7 @@ È gratuito. apps/client/src/app/pages/pricing/pricing-page.html - 366 + 288 @@ -3882,7 +3898,7 @@ Commissioni apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 87 + 94 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -3890,7 +3906,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 158 @@ -3898,19 +3914,19 @@ Allocazioni del portafoglio apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 29 + 26 apps/client/src/app/pages/features/features-page.html - 161 + 160 apps/client/src/app/pages/pricing/pricing-page.html - 74 + 59 apps/client/src/app/pages/pricing/pricing-page.html - 263 + 203 @@ -3926,15 +3942,15 @@ Importazione ed esportazione dei dati apps/client/src/app/pages/pricing/pricing-page.html - 95 + 71 apps/client/src/app/pages/pricing/pricing-page.html - 180 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 215 @@ -3950,7 +3966,7 @@ Supporto della comunità apps/client/src/app/pages/pricing/pricing-page.html - 118 + 88 @@ -3958,7 +3974,7 @@ Supporto via email e chat apps/client/src/app/pages/pricing/pricing-page.html - 314 + 236 @@ -3990,7 +4006,7 @@ Ops! Impossibile ottenere il tasso di cambio storico da apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 258 + 257 @@ -4014,11 +4030,11 @@ Fornitore di dati professionale apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 41 + 38 apps/client/src/app/pages/pricing/pricing-page.html - 298 + 226 @@ -4029,20 +4045,20 @@ 4 - - Renew - Rinnova - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 21 - - Renew Plan Rinnova il piano + + apps/client/src/app/components/header/header.component.html + 185 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 23 + apps/client/src/app/pages/pricing/pricing-page.html - 348 + 270 @@ -4074,7 +4090,7 @@ Vuoi davvero eliminare tutte le tue attività? apps/client/src/app/pages/portfolio/activities/activities-page.component.ts - 140 + 169 @@ -4082,7 +4098,7 @@ Per fornitore di ETF apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 286 + 280 @@ -4090,7 +4106,7 @@ Elimina tutte le attività libs/ui/src/lib/activities-table/activities-table.component.html - 69 + 65 @@ -4126,7 +4142,7 @@ Vuoi davvero eliminare questa piattaforma? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 78 + 79 @@ -4142,7 +4158,7 @@ Aggiornamento del saldo di cassa apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 94 + 93 @@ -4150,7 +4166,7 @@ Per piattaforma apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 42 + 36 @@ -4158,7 +4174,7 @@ Effettua oggi stesso l'aggiornamento a Ghostfolio Premium e ottieni l'accesso a funzionalità esclusive per migliorare la tua esperienza di investimento: apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 18 + 15 @@ -4166,7 +4182,7 @@ Ottieni gli strumenti per gestire efficacemente le tue finanze e perfezionare la tua strategia di investimento personale. apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 48 + 45 @@ -4182,19 +4198,19 @@ Impostazioni apps/client/src/app/pages/admin/admin-page-routing.module.ts - 30 + 35 apps/client/src/app/pages/admin/admin-page.component.ts - 31 + 32 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 17 + 18 apps/client/src/app/pages/user-account/user-account-page.component.ts - 34 + 35 @@ -4218,7 +4234,7 @@ Gestisci i benchmark apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html - 36 + 38 @@ -4242,7 +4258,7 @@ Seleziona i dividendi apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 110 @@ -4250,7 +4266,7 @@ Seleziona le attività apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 117 + 113 @@ -4258,11 +4274,11 @@ Importa le attività libs/ui/src/lib/activities-table/activities-table.component.html - 16 + 9 libs/ui/src/lib/activities-table/activities-table.component.html - 453 + 369 @@ -4270,11 +4286,11 @@ Importa i dividendi libs/ui/src/lib/activities-table/activities-table.component.html - 35 + 29 libs/ui/src/lib/activities-table/activities-table.component.html - 464 + 381 @@ -4298,7 +4314,7 @@ Serie attuale apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 187 + 275 @@ -4306,7 +4322,7 @@ Serie più lunga apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 196 + 284 @@ -4341,20 +4357,12 @@ 26 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Se andassi in pensione oggi, potresti prelevare all'anno o al mese, sulla base dei tuoi asset totali pari a e un tasso di prelievo del 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 57 - - Liabilities Passività apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 230 + 244 apps/client/src/app/pages/features/features-page.html @@ -4366,11 +4374,11 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 48 + 49 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts - 12 + 13 @@ -4378,11 +4386,11 @@ Licenza apps/client/src/app/pages/about/about-page.component.ts - 53 + 54 apps/client/src/app/pages/about/license/license-page-routing.module.ts - 12 + 13 @@ -4454,7 +4462,7 @@ Modalità scura apps/client/src/app/pages/features/features-page.html - 179 + 177 @@ -4462,7 +4470,7 @@ Umore del mercato apps/client/src/app/pages/features/features-page.html - 209 + 205 @@ -4470,7 +4478,7 @@ Analisi statica apps/client/src/app/pages/features/features-page.html - 227 + 224 @@ -4478,7 +4486,7 @@ Multilingue apps/client/src/app/pages/features/features-page.html - 245 + 241 @@ -4486,7 +4494,7 @@ Software open source apps/client/src/app/pages/features/features-page.html - 279 + 275 @@ -4502,7 +4510,7 @@ Configurazione dello scraper apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 243 @@ -4518,7 +4526,7 @@ Strumenti di finanza personale apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 13 + 14 @@ -4720,6 +4728,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 67 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + Origin @@ -4912,6 +4932,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 72 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + Region @@ -5104,6 +5136,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 77 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + Available in @@ -5296,6 +5340,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 82 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + ✅ Yes @@ -5488,6 +5544,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 104 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 111 @@ -5864,6 +5944,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 @@ -6240,6 +6344,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 150 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 157 @@ -6616,6 +6744,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 169 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 176 @@ -6996,6 +7148,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 106 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 129 @@ -7372,6 +7548,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 140 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 152 @@ -7748,6 +7948,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 159 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 171 @@ -8124,6 +8348,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 178 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + ❌ No @@ -8316,6 +8552,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 113 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + Self-Hosting @@ -8508,21 +8756,45 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 118 - - - Use anonymously - Usalo in modo anonimo apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 + + + + Use anonymously + Usalo in modo anonimo + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -8892,6 +9164,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 164 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + Notes @@ -9084,6 +9368,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 196 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -9276,6 +9572,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 221 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + Personal Finance Tools @@ -9468,6 +9776,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 302 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + Guides @@ -9534,7 +9854,7 @@ ETF senza paesi apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 71 + 72 @@ -9542,7 +9862,7 @@ ETF senza settori apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 76 + 77 @@ -9550,7 +9870,7 @@ Asset apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 190 + 204 @@ -9566,7 +9886,7 @@ Per mercato apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 177 + 171 @@ -9590,7 +9910,7 @@ Benvenuto su Ghostfolio apps/client/src/app/components/home-overview/home-overview.html - 9 + 7 @@ -9598,7 +9918,7 @@ Configura i tuoi account apps/client/src/app/components/home-overview/home-overview.html - 17 + 15 @@ -9606,7 +9926,7 @@ Ottieni una panoramica finanziaria completa aggiungendo i tuoi conti bancari e di trading. apps/client/src/app/components/home-overview/home-overview.html - 19 + 17 @@ -9614,7 +9934,7 @@ Cattura le tue attività apps/client/src/app/components/home-overview/home-overview.html - 26 + 24 @@ -9622,7 +9942,7 @@ Registra le tue attività di investimento per tenere aggiornato il tuo portafoglio. apps/client/src/app/components/home-overview/home-overview.html - 28 + 26 @@ -9630,7 +9950,7 @@ Monitora e analizza il tuo portafoglio apps/client/src/app/components/home-overview/home-overview.html - 35 + 33 @@ -9638,7 +9958,7 @@ Monitora i tuoi progressi in tempo reale, con analisi e approfondimenti completi. apps/client/src/app/components/home-overview/home-overview.html - 37 + 35 @@ -9646,7 +9966,7 @@ Nessun dato disponibile apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 254 + 248 apps/client/src/app/pages/public/public-page.html @@ -9658,7 +9978,7 @@ Sei pronto a prendere il controllo delle tue finanze personali? apps/client/src/app/components/home-overview/home-overview.html - 10 + 8 @@ -9666,7 +9986,7 @@ Configura gli account apps/client/src/app/components/home-overview/home-overview.html - 50 + 48 @@ -9674,7 +9994,7 @@ Autenticazione biometrica apps/client/src/app/components/user-account-settings/user-account-settings.html - 158 + 170 @@ -9758,7 +10078,7 @@ Esporta dati apps/client/src/app/components/user-account-settings/user-account-settings.html - 199 + 213 @@ -9766,7 +10086,7 @@ Valute apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 66 + 67 @@ -9782,7 +10102,7 @@ Visita apps/client/src/app/pages/about/oss-friends/oss-friends-page.html - 28 + 26 @@ -9797,7 +10117,15 @@ Frequently Asked Questions (FAQ) Domande più frequenti (FAQ) - apps/client/src/app/pages/faq/faq-page.html + apps/client/src/app/pages/faq/overview/faq-overview-page.html + 4 + + + apps/client/src/app/pages/faq/saas/saas-page.html + 4 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html 4 @@ -9850,7 +10178,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 424 @@ -10042,7 +10370,7 @@ Membri da tutto il mondo utilizzano Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 358 + 354 @@ -10050,7 +10378,7 @@ Come funziona Ghostfolio? apps/client/src/app/pages/landing/landing-page.html - 373 + 366 @@ -10058,7 +10386,7 @@ Iscriviti in modo anonimo* apps/client/src/app/pages/landing/landing-page.html - 382 + 375 @@ -10066,7 +10394,7 @@ * non è richiesto alcun indirizzo email né la carta di credito apps/client/src/app/pages/landing/landing-page.html - 384 + 377 @@ -10074,7 +10402,7 @@ Aggiungi le tue transazioni storiche apps/client/src/app/pages/landing/landing-page.html - 395 + 388 @@ -10082,7 +10410,7 @@ Ottieni informazioni preziose sulla composizione del tuo portafoglio apps/client/src/app/pages/landing/landing-page.html - 407 + 400 @@ -10090,7 +10418,7 @@ Seipronto? apps/client/src/app/pages/landing/landing-page.html - 419 + 412 @@ -10098,7 +10426,7 @@ Iscriviti adesso o consulta l'account di esempio apps/client/src/app/pages/landing/landing-page.html - 420 + 413 @@ -10110,7 +10438,7 @@ apps/client/src/app/pages/landing/landing-page.html - 436 + 429 @@ -10126,7 +10454,7 @@ Inizia in soli 3 passi apps/client/src/app/pages/landing/landing-page.html - 376 + 369 @@ -10134,15 +10462,27 @@ domande-piu-frequenti apps/client/src/app/app-routing.module.ts - 9 + 10 apps/client/src/app/app.component.ts - 54 + 55 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 37 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 42 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 @@ -10150,27 +10490,27 @@ funzionalita apps/client/src/app/app-routing.module.ts - 10 + 11 apps/client/src/app/app.component.ts - 55 + 56 apps/client/src/app/components/header/header.component.ts - 72 + 77 apps/client/src/app/components/header/header.component.ts - 77 + 82 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -10190,19 +10530,23 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts 14 - apps/client/src/app/pages/faq/faq-page.component.ts - 13 + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 14 apps/client/src/app/pages/pricing/pricing-page.component.ts - 34 + 35 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 27 apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts @@ -10260,6 +10604,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 27 @@ -10376,6 +10724,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 27 @@ -10398,51 +10750,51 @@ informazioni-su apps/client/src/app/app-routing.module.ts - 8 + 9 apps/client/src/app/app.component.ts - 47 + 48 apps/client/src/app/app.component.ts - 48 + 49 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/app.component.ts - 51 + 52 apps/client/src/app/components/header/header.component.ts - 71 + 76 apps/client/src/app/components/header/header.component.ts - 76 + 81 apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/about-page.component.ts - 73 + 74 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -10466,12 +10818,16 @@ apps/client/src/app/pages/landing/landing-page.component.ts - 25 + 26 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 22 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 26 @@ -10528,6 +10884,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 26 @@ -10644,6 +11004,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 26 @@ -10666,15 +11030,15 @@ informativa-sulla-privacy apps/client/src/app/app-routing.module.ts - 14 + 15 apps/client/src/app/app.component.ts - 52 + 53 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 @@ -10682,15 +11046,15 @@ licenza apps/client/src/app/app-routing.module.ts - 11 + 12 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 @@ -10698,19 +11062,19 @@ mercati apps/client/src/app/app-routing.module.ts - 12 + 13 apps/client/src/app/app.component.ts - 56 + 57 apps/client/src/app/components/header/header.component.ts - 73 + 78 apps/client/src/app/components/header/header.component.ts - 78 + 83 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -10721,7 +11085,7 @@ 16 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 14 @@ -10730,23 +11094,23 @@ prezzi apps/client/src/app/app-routing.module.ts - 13 + 14 apps/client/src/app/app.component.ts - 57 + 58 apps/client/src/app/components/header/header.component.ts - 74 + 79 apps/client/src/app/components/header/header.component.ts - 79 + 84 apps/client/src/app/components/home-summary/home-summary.component.ts - 124 + 125 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts @@ -10754,11 +11118,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 37 + 38 apps/client/src/app/core/http-response.interceptor.ts - 80 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -10778,7 +11142,7 @@ apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 16 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -10786,10 +11150,14 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 16 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts 15 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 @@ -10802,35 +11170,35 @@ iscrizione apps/client/src/app/app-routing.module.ts - 15 + 16 apps/client/src/app/app.component.ts - 58 + 59 apps/client/src/app/components/header/header.component.ts - 80 + 85 apps/client/src/app/core/auth.guard.ts - 53 + 54 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 16 apps/client/src/app/pages/features/features-page.component.ts - 17 + 18 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/pricing/pricing-page.component.ts - 35 + 36 @@ -10838,19 +11206,19 @@ risorse apps/client/src/app/app-routing.module.ts - 16 + 17 apps/client/src/app/app.component.ts - 59 + 60 apps/client/src/app/components/header/header.component.ts - 75 + 80 apps/client/src/app/components/header/header.component.ts - 81 + 86 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -10870,12 +11238,16 @@ apps/client/src/app/pages/features/features-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 29 @@ -10932,6 +11304,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 29 @@ -11048,6 +11424,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 29 @@ -11066,7 +11446,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 17 + 18 @@ -11090,7 +11470,7 @@ L'alternativa open source a apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html - 35 + 32 @@ -11098,7 +11478,7 @@ L'alternativa open source a apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 25 + 26 @@ -11292,6 +11672,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -11484,6 +11876,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -11676,6 +12080,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -11868,13 +12284,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + open-source-alternative-to alternativa-open-source-a apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts @@ -12072,6 +12500,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 204 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + Ready to take your investments to the next level? @@ -12264,6 +12704,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 217 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + Get Started @@ -12456,25 +12908,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 226 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + Switzerland Svizzera apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 72 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 90 + 102 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 506 + 530 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 548 + 580 @@ -12482,19 +12946,19 @@ Globale apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 70 + 73 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 317 + 341 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 438 + 462 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 549 + 581 @@ -12502,83 +12966,87 @@ Stati Uniti apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 81 + 93 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 149 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 159 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 189 + 201 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 198 + 210 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 208 + 220 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 218 + 232 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 270 + 242 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 294 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 316 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 327 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 328 + 352 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 330 + 354 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 340 + 364 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 405 + 429 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 415 + 439 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 425 + 449 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 494 + 518 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 517 + 541 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 537 + 569 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 559 + 591 @@ -12586,7 +13054,7 @@ Belgio apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 167 + 179 @@ -12594,31 +13062,31 @@ Germania apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 128 + 140 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 178 + 190 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 250 + 274 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 260 + 284 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 305 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 315 + 339 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 361 + 385 @@ -12626,7 +13094,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 238 + 262 @@ -12634,7 +13102,7 @@ Italia apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 372 + 396 @@ -12642,7 +13110,7 @@ Paesi Bassi apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 382 + 406 @@ -12650,7 +13118,7 @@ Thailandia apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 394 + 418 @@ -12658,7 +13126,7 @@ Nuova Zelanda apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 436 + 460 @@ -12666,11 +13134,11 @@ Repubblica Ceca apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 447 + 471 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 484 + 508 @@ -12714,7 +13182,7 @@ Choose or drop a file here apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 85 + 81 @@ -12746,7 +13214,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 197 @@ -12762,7 +13230,7 @@ Interest apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 280 + 294 @@ -12786,7 +13254,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 78 + 79 @@ -12810,15 +13278,15 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 109 + 121 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 458 + 482 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 474 + 498 @@ -12826,7 +13294,7 @@ Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. apps/client/src/app/pages/portfolio/fire/fire-page.html - 100 + 108 @@ -12834,7 +13302,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 132 @@ -12842,7 +13310,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 145 @@ -12862,7 +13330,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 219 + 226 @@ -12894,7 +13362,7 @@ To apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 29 + 28 @@ -12902,7 +13370,7 @@ Transfer apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 66 + 64 @@ -12910,7 +13378,7 @@ Finland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 466 + 490 @@ -12918,11 +13386,11 @@ Membership apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/user-account/user-account-page.component.ts - 39 + 40 @@ -12930,11 +13398,11 @@ Access apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/user-account/user-account-page.component.ts - 45 + 46 @@ -12942,7 +13410,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 89 + 126 @@ -12970,7 +13438,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 184 + 185 @@ -13002,7 +13470,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 63 + 65 @@ -13204,13 +13672,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 48 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + Canada Canada apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 529 + 561 @@ -13234,7 +13714,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 305 + 306 @@ -13242,7 +13722,7 @@ Poland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 119 + 131 @@ -13250,7 +13730,7 @@ South Africa apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 227 + 251 @@ -13282,7 +13762,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 205 + 224 @@ -13290,7 +13770,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 159 + 166 @@ -13306,7 +13786,7 @@ 200-Day Trend libs/ui/src/lib/benchmark/benchmark.component.html - 39 + 40 @@ -13314,7 +13794,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 88 + 109 @@ -13508,6 +13988,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 190 @@ -13888,6 +14392,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 @@ -14082,7 +14610,335 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 56 + 57 + + + + is an invalid currency! + is an invalid currency! + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 129 + + + + If a translation is missing, kindly support us in extending it here. + If a translation is missing, kindly support us in extending it here. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 53 + + + + The current market price is + The current market price is + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 318 + + + + Test + Test + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 259 + + + + Date Range + Date Range + + libs/ui/src/lib/assistant/assistant.html + 93 + + + + Permission + Permission + + apps/client/src/app/components/access-table/access-table.component.html + 17 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 33 + + + + Restricted view + Restricted view + + apps/client/src/app/components/access-table/access-table.component.html + 25 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 35 + + + + Oops! Could not grant access. + Oops! Could not grant access. + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts + 80 + + + + Private + Private + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 + + + + Job Queue + Job Queue + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 25 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 42 + + + + Market data is delayed for + Market data is delayed for + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts + 80 + + + + Investment + Investment + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 46 + + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 60 + + + + Absolute Asset Performance + Absolute Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Asset Performance + Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 42 + + + + Absolute Currency Performance + Absolute Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 57 + + + + Currency Performance + Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 72 + + + + Absolute Net Performance + Absolute Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 88 + + + + Net Performance + Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 103 + + + + Week to date + Week to date + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + WTD + WTD + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + Month to date + Month to date + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + MTD + MTD + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + Year to date + Year to date + + libs/ui/src/lib/assistant/assistant.component.ts + 109 + + + + View + View + + apps/client/src/app/components/access-table/access-table.component.html + 22 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + + + + Oops! A data provider is experiencing the hiccups. + Oops! A data provider is experiencing the hiccups. + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html + 8 + + + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 65 + + + + Reset Filters + Reset Filters + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + year + year + + libs/ui/src/lib/assistant/assistant.component.ts + 112 + + + + years + years + + libs/ui/src/lib/assistant/assistant.component.ts + 114 + + + + Asset Classes + Asset Classes + + libs/ui/src/lib/assistant/assistant.html + 138 + + + + Apply Filters + Apply Filters + + libs/ui/src/lib/assistant/assistant.html + 165 + + + + Data Gathering + Data Gathering + + apps/client/src/app/components/admin-overview/admin-overview.html + 132 + + + + General + General + + apps/client/src/app/pages/faq/faq-page.component.ts + 36 + + + + Cloud + Cloud + + apps/client/src/app/pages/faq/faq-page.component.ts + 41 + + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + + Self-Hosting + Self-Hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 47 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + + self-hosting + self-hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 + + + + FAQ + FAQ + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 diff --git a/apps/client/src/locales/messages.nl.xlf b/apps/client/src/locales/messages.nl.xlf index b103891ca..4b328b7b8 100644 --- a/apps/client/src/locales/messages.nl.xlf +++ b/apps/client/src/locales/messages.nl.xlf @@ -22,7 +22,7 @@ Het risico op verlies bij handelen kan aanzienlijk zijn. Het is niet aan te raden om geld te investeren dat je misschien op korte termijn nodig heeft. apps/client/src/app/app.component.html - 182 + 179 @@ -36,10 +36,6 @@ Type Type - - apps/client/src/app/components/access-table/access-table.component.html - 17 - apps/client/src/app/components/admin-jobs/admin-jobs.html 28 @@ -54,7 +50,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 164 + 159 @@ -62,7 +58,7 @@ Details apps/client/src/app/components/access-table/access-table.component.html - 27 + 32 @@ -70,7 +66,7 @@ Intrekken apps/client/src/app/components/access-table/access-table.component.html - 54 + 59 @@ -78,7 +74,7 @@ Wil je deze verleende toegang echt intrekken? apps/client/src/app/components/access-table/access-table.component.ts - 49 + 50 @@ -90,7 +86,7 @@ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 73 + 87 apps/client/src/app/components/accounts-table/accounts-table.component.html @@ -110,7 +106,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 253 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -130,7 +126,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 182 + 180 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -150,15 +146,15 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 12 + 15 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 114 + 113 libs/ui/src/lib/activities-table/activities-table.component.html - 179 + 136 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -172,10 +168,6 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html 50 - - libs/ui/src/lib/activities-table/activities-table.component.html - 159 - Value @@ -190,7 +182,11 @@ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 47 + 45 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 167 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -198,11 +194,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 169 + 170 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 171 + 223 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -216,21 +212,17 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 226 - - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 227 - libs/ui/src/lib/account-balances/account-balances.component.html 20 libs/ui/src/lib/activities-table/activities-table.component.html - 321 + 255 libs/ui/src/lib/activities-table/activities-table.component.html - 356 + 291 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -250,7 +242,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 80 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -262,7 +254,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 507 + 428 @@ -278,11 +270,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 99 + 90 apps/client/src/app/components/admin-overview/admin-overview.html - 201 + 197 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -294,11 +286,11 @@ libs/ui/src/lib/account-balances/account-balances.component.html - 50 + 51 libs/ui/src/lib/activities-table/activities-table.component.html - 529 + 450 @@ -306,7 +298,7 @@ Wil je deze rekening echt verwijderen? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 83 + 99 @@ -314,7 +306,7 @@ Taken verwijderen apps/client/src/app/components/admin-jobs/admin-jobs.html - 135 + 126 @@ -350,7 +342,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 130 + 129 @@ -406,7 +398,7 @@ Bekijk gegevens apps/client/src/app/components/admin-jobs/admin-jobs.html - 150 + 141 @@ -414,7 +406,7 @@ Bekijk Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 157 + 148 @@ -422,7 +414,7 @@ Taak verwijderen apps/client/src/app/components/admin-jobs/admin-jobs.html - 160 + 151 @@ -442,7 +434,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 136 + 135 libs/ui/src/lib/account-balances/account-balances.component.html @@ -450,7 +442,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 152 + 168 @@ -474,7 +466,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 260 + 301 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -490,23 +482,23 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 30 + 58 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 96 + 101 apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 59 + 57 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 362 + 361 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 37 + 38 @@ -518,7 +510,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 267 + 308 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -534,15 +526,15 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 37 + 65 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 103 + 108 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 368 @@ -590,7 +582,7 @@ Voeg een valuta toe: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 119 + 122 @@ -598,7 +590,7 @@ Wil je deze coupon echt verwijderen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 133 + 140 @@ -606,7 +598,7 @@ Wil je deze valuta echt verwijderen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 146 + 153 @@ -614,7 +606,7 @@ Wil je echt de cache legen? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 169 + 183 @@ -622,7 +614,7 @@ Stel je systeemboodschap in: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 200 + 214 @@ -682,7 +674,7 @@ Valuta toevoegen apps/client/src/app/components/admin-overview/admin-overview.html - 113 + 104 @@ -690,7 +682,7 @@ Systeembericht apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 143 @@ -698,7 +690,7 @@ Bericht instellen apps/client/src/app/components/admin-overview/admin-overview.html - 164 + 163 @@ -706,7 +698,7 @@ Alleen lezen apps/client/src/app/components/admin-overview/admin-overview.html - 130 + 121 @@ -714,7 +706,7 @@ Coupons apps/client/src/app/components/admin-overview/admin-overview.html - 172 + 171 @@ -722,7 +714,7 @@ Toevoegen apps/client/src/app/components/admin-overview/admin-overview.html - 233 + 229 @@ -730,7 +722,7 @@ Huishouding apps/client/src/app/components/admin-overview/admin-overview.html - 240 + 236 @@ -738,7 +730,7 @@ Cache legen apps/client/src/app/components/admin-overview/admin-overview.html - 244 + 240 @@ -746,7 +738,7 @@ Wilt je deze gebruiker echt verwijderen? apps/client/src/app/components/admin-users/admin-users.component.ts - 112 + 113 @@ -754,7 +746,7 @@ Gebruiker apps/client/src/app/components/header/header.component.html - 192 + 225 @@ -794,11 +786,11 @@ Overzicht apps/client/src/app/components/header/header.component.html - 27 + 28 apps/client/src/app/components/header/header.component.html - 206 + 239 @@ -806,11 +798,11 @@ Portefeuille apps/client/src/app/components/header/header.component.html - 40 + 41 apps/client/src/app/components/header/header.component.html - 216 + 249 @@ -826,27 +818,35 @@ apps/client/src/app/components/header/header.component.html - 53 + 54 apps/client/src/app/components/header/header.component.html - 224 + 257 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 276 apps/client/src/app/pages/accounts/accounts-page.html 4 + + libs/ui/src/lib/assistant/assistant.html + 107 + Admin Control Beheer apps/client/src/app/components/header/header.component.html - 66 + 67 apps/client/src/app/components/header/header.component.html - 240 + 273 @@ -858,11 +858,11 @@ apps/client/src/app/components/header/header.component.html - 79 + 80 apps/client/src/app/components/header/header.component.html - 251 + 284 apps/client/src/app/pages/resources/resources-page.html @@ -878,15 +878,27 @@ apps/client/src/app/components/header/header.component.html - 97 + 98 apps/client/src/app/components/header/header.component.html - 263 + 296 apps/client/src/app/components/header/header.component.html - 332 + 365 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -1086,11 +1098,11 @@ apps/client/src/app/components/header/header.component.html - 110 + 111 apps/client/src/app/components/header/header.component.html - 319 + 352 @@ -1098,7 +1110,7 @@ Ik apps/client/src/app/components/header/header.component.html - 173 + 206 @@ -1106,7 +1118,7 @@ Mijn Ghostfolio apps/client/src/app/components/header/header.component.html - 231 + 264 @@ -1114,7 +1126,7 @@ Over Ghostfolio apps/client/src/app/components/header/header.component.html - 271 + 304 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -1130,7 +1142,7 @@ apps/client/src/app/components/header/header.component.html - 306 + 339 apps/client/src/app/pages/features/features-page.html @@ -1146,7 +1158,7 @@ apps/client/src/app/components/header/header.component.html - 348 + 381 apps/client/src/app/components/home-market/home-market.html @@ -1162,7 +1174,7 @@ Aan de slag apps/client/src/app/pages/features/features-page.html - 299 + 296 apps/client/src/app/pages/public/public-page.html @@ -1174,11 +1186,11 @@ Aanmelden apps/client/src/app/components/header/header.component.ts - 169 + 226 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts - 6 + 7 @@ -1186,7 +1198,7 @@ Oeps! Onjuiste beveiligingstoken. apps/client/src/app/components/header/header.component.ts - 183 + 240 @@ -1194,11 +1206,11 @@ Activiteiten beheren apps/client/src/app/components/home-holdings/home-holdings.html - 30 + 22 apps/client/src/app/pages/portfolio/holdings/holdings-page.html - 31 + 23 @@ -1238,11 +1250,11 @@ apps/client/src/app/pages/landing/landing-page.html - 435 + 428 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 98 + 94 apps/client/src/app/pages/register/register-page.html @@ -1250,7 +1262,7 @@ apps/client/src/app/pages/webauthn/webauthn-page.html - 28 + 29 @@ -1282,7 +1294,7 @@ Aanmelden apps/client/src/app/components/header/header.component.html - 361 + 394 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1338,10 +1350,10 @@ Bruto rendement apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 72 + 73 - + @@ -1357,7 +1369,7 @@ {VAR_PLURAL, plural, =1 {transaction} other {transactions}} apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 13 + 14 @@ -1365,7 +1377,7 @@ Absoluut netto rendement apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 103 + 110 @@ -1373,7 +1385,7 @@ Netto rendement apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 115 + 123 @@ -1381,7 +1393,7 @@ Totaal Activa apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 131 + 145 @@ -1389,7 +1401,7 @@ Kostbaarheden apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 144 + 158 @@ -1397,7 +1409,7 @@ Noodfonds apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 156 + 170 apps/client/src/app/pages/features/features-page.html @@ -1405,7 +1417,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 119 @@ -1413,7 +1425,7 @@ Koopkracht apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 203 + 217 @@ -1421,7 +1433,7 @@ Netto waarde apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 250 + 264 @@ -1429,7 +1441,7 @@ Rendement per jaar apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 262 + 276 @@ -1437,7 +1449,7 @@ Dividend apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 292 + 306 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1449,11 +1461,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 166 + 165 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 222 + 221 @@ -1461,7 +1473,7 @@ Voer het bedrag van je noodfonds in: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 52 + 53 @@ -1469,11 +1481,15 @@ Sectoren apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 158 + 156 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 266 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 216 + 211 apps/client/src/app/pages/public/public-page.html @@ -1485,11 +1501,15 @@ Landen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 166 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 277 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 228 + 223 @@ -1501,11 +1521,15 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 295 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 320 + 319 + + + libs/ui/src/lib/assistant/assistant.html + 127 @@ -1513,7 +1537,7 @@ Gegevensstoring melden apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 287 + 312 @@ -1545,7 +1569,7 @@ Toon alle libs/ui/src/lib/holdings-table/holdings-table.component.html - 172 + 171 @@ -1553,7 +1577,11 @@ Vandaag apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 + + + libs/ui/src/lib/assistant/assistant.component.ts + 99 @@ -1561,7 +1589,11 @@ YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 + + + libs/ui/src/lib/assistant/assistant.component.ts + 109 @@ -1569,7 +1601,11 @@ 1J apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 + + + libs/ui/src/lib/assistant/assistant.component.ts + 112 @@ -1577,7 +1613,11 @@ 5J apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 + + + libs/ui/src/lib/assistant/assistant.component.ts + 114 @@ -1585,7 +1625,11 @@ Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 + + + libs/ui/src/lib/assistant/assistant.component.ts + 117 @@ -1593,11 +1637,11 @@ Voor deze functie is een abonnement vereist. apps/client/src/app/components/home-summary/home-summary.component.ts - 112 + 113 apps/client/src/app/core/http-response.interceptor.ts - 67 + 68 @@ -1605,11 +1649,11 @@ Abonnement uitbreiden apps/client/src/app/components/home-summary/home-summary.component.ts - 114 + 115 apps/client/src/app/core/http-response.interceptor.ts - 69 + 70 @@ -1617,11 +1661,11 @@ Oké apps/client/src/app/core/http-response.interceptor.ts - 89 + 90 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 139 @@ -1629,15 +1673,15 @@ Over apps/client/src/app/pages/about/about-page-routing.module.ts - 52 + 51 apps/client/src/app/pages/about/about-page.component.ts - 43 + 44 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts - 12 + 13 @@ -1769,11 +1813,11 @@ Privacybeleid apps/client/src/app/pages/about/about-page.component.ts - 61 + 62 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts - 12 + 13 @@ -1781,7 +1825,7 @@ Mijn Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 32 + 33 @@ -1789,7 +1833,7 @@ Voer je couponcode in: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 110 + 111 @@ -1797,7 +1841,7 @@ Kon je kortingscode niet inwisselen apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 120 + 121 @@ -1805,7 +1849,7 @@ Je couponcode is ingewisseld apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 132 + 133 @@ -1813,7 +1857,7 @@ Herladen apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 133 + 134 @@ -1821,7 +1865,7 @@ Wil je deze aanmeldingsmethode echt verwijderen? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 182 + 188 @@ -1833,7 +1877,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 387 + 306 @@ -1844,24 +1888,16 @@ 18 - - Upgrade - Uitbreiden - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 - - per year per jaar apps/client/src/app/components/user-account-membership/user-account-membership.html - 33 + 35 apps/client/src/app/pages/pricing/pricing-page.html - 332 + 254 @@ -1869,7 +1905,7 @@ Probeer Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 42 + 44 @@ -1877,7 +1913,7 @@ Coupon inwisselen apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 57 @@ -1901,7 +1937,7 @@ Locatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 95 + 107 @@ -1909,7 +1945,7 @@ Datum- en getalnotatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 97 + 109 @@ -1917,11 +1953,11 @@ Zen-modus apps/client/src/app/components/user-account-settings/user-account-settings.html - 141 + 153 apps/client/src/app/pages/features/features-page.html - 192 + 190 @@ -1929,15 +1965,19 @@ Aanmelden met vingerafdruk apps/client/src/app/components/user-account-settings/user-account-settings.html - 159 + 171 User ID Gebruikers-ID + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 45 + apps/client/src/app/components/user-account-settings/user-account-settings.html - 192 + 205 @@ -1961,7 +2001,7 @@ Openbaar apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 24 + 25 @@ -1969,7 +2009,7 @@ Rekeningen apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 12 + 13 @@ -1977,7 +2017,7 @@ Rekening bijwerken apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 8 @@ -1985,7 +2025,7 @@ Rekening toevoegen apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 8 + 10 @@ -1993,7 +2033,7 @@ Contant geld apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 177 + 191 @@ -2007,17 +2047,21 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 91 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 186 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 22 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 120 + 119 libs/ui/src/lib/activities-table/activities-table.component.html - 209 + 274 @@ -2033,7 +2077,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 31 + 34 @@ -2049,7 +2093,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 45 + 48 @@ -2057,7 +2101,7 @@ Rekening-ID apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 90 + 94 @@ -2065,7 +2109,7 @@ Beheer apps/client/src/app/pages/admin/admin-page-routing.module.ts - 19 + 20 @@ -2073,7 +2117,7 @@ Blog apps/client/src/app/pages/blog/blog-page-routing.module.ts - 12 + 13 @@ -2081,7 +2125,7 @@ Aangezien je al ingelogd bent, heb je geen toegang tot de demo-account. apps/client/src/app/pages/demo/demo-page.component.ts - 31 + 32 @@ -2089,7 +2133,11 @@ Veelgestelde vragen apps/client/src/app/pages/faq/faq-page-routing.module.ts - 12 + 34 + + + apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts + 13 @@ -2097,7 +2145,7 @@ Functionaliteiten apps/client/src/app/pages/features/features-page-routing.module.ts - 12 + 13 @@ -2105,19 +2153,19 @@ Overzicht apps/client/src/app/pages/admin/admin-page.component.ts - 26 + 27 apps/client/src/app/pages/home/home-page.component.ts - 33 + 34 apps/client/src/app/pages/zen/zen-page-routing.module.ts - 18 + 19 apps/client/src/app/pages/zen/zen-page.component.ts - 33 + 34 @@ -2125,15 +2173,15 @@ Markten apps/client/src/app/pages/home/home-page-routing.module.ts - 32 + 33 apps/client/src/app/pages/home/home-page.component.ts - 48 + 49 apps/client/src/app/pages/markets/markets-page-routing.module.ts - 12 + 13 @@ -2141,11 +2189,11 @@ Allocaties apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 48 + 49 @@ -2161,7 +2209,7 @@ Per rekening apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 266 + 260 @@ -2169,7 +2217,7 @@ Per valuta apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 61 + 55 @@ -2177,7 +2225,7 @@ Per asset klasse apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 84 + 78 @@ -2185,7 +2233,7 @@ Per positie apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 107 + 101 @@ -2193,7 +2241,7 @@ Per sector apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 130 + 124 @@ -2201,7 +2249,7 @@ Per continent apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 154 + 148 @@ -2209,7 +2257,7 @@ Per land apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 309 + 303 @@ -2217,7 +2265,7 @@ Regio's apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 201 + 195 apps/client/src/app/pages/public/public-page.html @@ -2229,11 +2277,11 @@ Analyse apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 33 + 34 @@ -2249,7 +2297,7 @@ Tijdlijn investeringen apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 166 + 254 @@ -2257,7 +2305,7 @@ Winnaars apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 40 + 128 @@ -2265,7 +2313,7 @@ Verliezers apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 86 + 174 @@ -2273,7 +2321,7 @@ FIRE apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 12 + 13 @@ -2297,7 +2345,7 @@ 4% regel apps/client/src/app/pages/portfolio/fire/fire-page.html - 34 + 38 @@ -2305,28 +2353,32 @@ Posities apps/client/src/app/pages/home/home-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/home/home-page.component.ts - 38 + 39 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 38 + 39 apps/client/src/app/pages/zen/zen-page.component.ts - 38 + 39 Holdings Posities + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 75 + apps/client/src/app/pages/portfolio/holdings/holdings-page.html 4 @@ -2353,7 +2405,7 @@ Activiteit toevoegen apps/client/src/app/components/home-overview/home-overview.html - 58 + 56 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2377,7 +2429,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 102 + 101 @@ -2389,11 +2441,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 152 libs/ui/src/lib/activities-table/activities-table.component.html - 230 + 184 @@ -2401,15 +2453,15 @@ Prijs per eenheid apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 173 + 172 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 228 + 227 libs/ui/src/lib/activities-table/activities-table.component.html - 259 + 208 @@ -2417,15 +2469,15 @@ Transactiekosten apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 242 + 241 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 266 libs/ui/src/lib/activities-table/activities-table.component.html - 288 + 232 @@ -2433,15 +2485,15 @@ Opmerking apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 247 + 288 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 73 + 76 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 275 @@ -2457,7 +2509,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 195 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2465,7 +2517,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 291 + 290 @@ -2473,11 +2525,11 @@ Activiteiten apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 43 + 44 @@ -2485,7 +2537,7 @@ Gegevens importeren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 113 + 120 @@ -2493,7 +2545,7 @@ Importeren is voltooid apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 121 + 128 @@ -2501,7 +2553,7 @@ Prijzen apps/client/src/app/pages/pricing/pricing-page-routing.module.ts - 12 + 13 @@ -2513,7 +2565,7 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 + 48 @@ -2545,7 +2597,7 @@ Registratie apps/client/src/app/pages/register/register-page-routing.module.ts - 12 + 13 @@ -2577,7 +2629,7 @@ Ik ga ermee akkoord dat ik mijn Security Token van hierboven op een veilige plaats heb opgeslagen. Als ik het verlies, kan ik mijn account niet terug krijgen. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 31 + 32 @@ -2585,7 +2637,7 @@ Akkoord en doorgaan apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 44 + 45 @@ -2593,7 +2645,7 @@ Bronnen apps/client/src/app/pages/resources/resources-page-routing.module.ts - 12 + 13 @@ -2601,7 +2653,7 @@ Oeps, authenticatie is mislukt. apps/client/src/app/pages/webauthn/webauthn-page.html - 18 + 19 @@ -2609,7 +2661,7 @@ Probeer opnieuw apps/client/src/app/pages/webauthn/webauthn-page.html - 26 + 27 @@ -2617,7 +2669,7 @@ Ga terug naar de startpagina apps/client/src/app/pages/webauthn/webauthn-page.html - 30 + 31 @@ -2625,7 +2677,7 @@ Concept libs/ui/src/lib/activities-table/activities-table.component.html - 189 + 143 @@ -2633,7 +2685,7 @@ Activiteiten importeren apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 40 + 44 @@ -2641,11 +2693,11 @@ Activiteiten exporteren libs/ui/src/lib/activities-table/activities-table.component.html - 47 + 41 libs/ui/src/lib/activities-table/activities-table.component.html - 476 + 394 @@ -2653,11 +2705,11 @@ Concept exporteren als ICS libs/ui/src/lib/activities-table/activities-table.component.html - 59 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 488 + 407 @@ -2665,7 +2717,7 @@ Kloon libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 434 @@ -2673,7 +2725,7 @@ Concept exporteren als ICS libs/ui/src/lib/activities-table/activities-table.component.html - 523 + 444 @@ -2681,7 +2733,7 @@ Wil je deze activiteit echt verwijderen? libs/ui/src/lib/activities-table/activities-table.component.ts - 227 + 175 @@ -2697,7 +2749,7 @@ Verandering van All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 79 + 81 @@ -2705,7 +2757,7 @@ van ATH libs/ui/src/lib/benchmark/benchmark.component.html - 81 + 83 @@ -2737,7 +2789,7 @@ Aan de slag apps/client/src/app/components/header/header.component.html - 373 + 406 @@ -2745,7 +2797,7 @@ Deze functie is momenteel niet beschikbaar. apps/client/src/app/core/http-response.interceptor.ts - 59 + 60 @@ -2753,11 +2805,11 @@ Oeps! Er ging iets mis. apps/client/src/app/core/http-response.interceptor.ts - 86 + 87 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 129 + 136 @@ -2765,15 +2817,15 @@ Probeer het later nog eens. apps/client/src/app/core/http-response.interceptor.ts - 61 + 62 apps/client/src/app/core/http-response.interceptor.ts - 88 + 89 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 131 + 138 @@ -2789,7 +2841,7 @@ Ontwikkelde markten apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 224 + 218 apps/client/src/app/pages/public/public-page.html @@ -2809,7 +2861,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 201 + 208 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2817,7 +2869,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 307 + 306 @@ -2841,7 +2893,7 @@ Andere markten apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 242 + 236 apps/client/src/app/pages/public/public-page.html @@ -2853,7 +2905,7 @@ Opkomende markten apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 233 + 227 apps/client/src/app/pages/public/public-page.html @@ -2865,11 +2917,11 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 143 + 142 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 198 + 197 @@ -2877,7 +2929,7 @@ Land apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 152 + 151 apps/client/src/app/components/admin-users/admin-users.html @@ -2885,7 +2937,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 210 + 206 @@ -2927,14 +2979,6 @@ Deposit Storting - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 48 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 60 - libs/ui/src/lib/fire-calculator/fire-calculator.component.ts 331 @@ -2969,7 +3013,7 @@ Angst apps/client/src/app/components/home-market/home-market.component.ts - 24 + 25 libs/ui/src/lib/i18n.ts @@ -2981,43 +3025,19 @@ Hebzucht apps/client/src/app/components/home-market/home-market.component.ts - 25 + 26 libs/ui/src/lib/i18n.ts 66 - - Filter by account or tag... - Filter op account of tag... + + Filter by... + Filter op... - apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts - 146 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 126 - - - apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts - 86 - - - - Filter by... - Filter op... - - apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 281 - - - - Filter by account, currency, symbol or type... - Filter op rekening, valuta, symbool of type... - - libs/ui/src/lib/activities-table/activities-table.component.ts - 427 + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 282 @@ -3045,7 +3065,7 @@ Experimentele functies apps/client/src/app/components/user-account-settings/user-account-settings.html - 176 + 188 @@ -3069,7 +3089,7 @@ Verhouding van netto waarde apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 18 + 12 @@ -3077,7 +3097,7 @@ Uitgesloten van analyse apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 215 + 229 @@ -3085,7 +3105,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 31 + 33 @@ -3093,7 +3113,7 @@ Weergave apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 130 @@ -3101,7 +3121,7 @@ Automatisch apps/client/src/app/components/user-account-settings/user-account-settings.html - 130 + 142 @@ -3109,7 +3129,7 @@ Licht apps/client/src/app/components/user-account-settings/user-account-settings.html - 131 + 143 @@ -3117,7 +3137,7 @@ Donker apps/client/src/app/components/user-account-settings/user-account-settings.html - 132 + 144 @@ -3125,7 +3145,7 @@ Totaalbedrag apps/client/src/app/components/investment-chart/investment-chart.component.ts - 182 + 190 @@ -3133,7 +3153,7 @@ Waardeontwikkeling van portefeuille apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 136 + 224 @@ -3141,7 +3161,7 @@ Spaarrente apps/client/src/app/components/investment-chart/investment-chart.component.ts - 248 + 262 @@ -3289,7 +3309,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 384 + 385 @@ -3297,11 +3317,11 @@ Geen gegevens beschikbaar libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 386 + 387 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 399 + 400 @@ -3357,7 +3377,7 @@ De volgende bestandsformaten worden ondersteund: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 91 + 87 @@ -3365,11 +3385,11 @@ Terug apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 141 + 140 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 178 + 176 @@ -3381,35 +3401,35 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 62 + 74 apps/client/src/app/components/user-account-settings/user-account-settings.html - 66 + 78 apps/client/src/app/components/user-account-settings/user-account-settings.html - 70 + 82 apps/client/src/app/components/user-account-settings/user-account-settings.html - 74 + 86 apps/client/src/app/components/user-account-settings/user-account-settings.html - 78 + 90 apps/client/src/app/components/user-account-settings/user-account-settings.html - 82 + 94 apps/client/src/app/components/user-account-settings/user-account-settings.html - 86 + 98 apps/client/src/app/pages/features/features-page.html - 260 + 256 @@ -3433,7 +3453,7 @@ Symbool toewijzen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 225 + 232 @@ -3441,7 +3461,7 @@ Dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 43 + 42 libs/ui/src/lib/i18n.ts @@ -3453,7 +3473,7 @@ Tijdlijn dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 223 + 312 @@ -3469,7 +3489,7 @@ Account aanmaken apps/client/src/app/components/admin-overview/admin-overview.html - 119 + 110 @@ -3477,7 +3497,7 @@ Gegevens valideren... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 224 + 233 @@ -3489,23 +3509,11 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 150 + 149 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 186 - - - - Jobs - Taken - - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 21 - - - apps/client/src/app/pages/admin/admin-page.component.ts - 41 + 184 @@ -3513,11 +3521,11 @@ Marktgegevens apps/client/src/app/pages/admin/admin-page-routing.module.ts - 25 + 30 apps/client/src/app/pages/admin/admin-page.component.ts - 36 + 37 @@ -3525,11 +3533,11 @@ Gebruikers apps/client/src/app/pages/admin/admin-page-routing.module.ts - 35 + 40 apps/client/src/app/pages/admin/admin-page.component.ts - 46 + 47 @@ -3537,11 +3545,11 @@ Samenvatting apps/client/src/app/pages/home/home-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 43 + 44 @@ -3573,7 +3581,7 @@ Importeer dividenden apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 79 + 86 @@ -3581,7 +3589,7 @@ Geldig tot libs/ui/src/lib/membership-card/membership-card.component.html - 22 + 23 @@ -3645,7 +3653,7 @@ Afleidingsvrije ervaring voor roerige tijden apps/client/src/app/components/user-account-settings/user-account-settings.html - 142 + 154 @@ -3653,7 +3661,7 @@ Voorproefje van nieuwe functionaliteit apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 189 @@ -3661,7 +3669,7 @@ Ben jij een ambitieuze investeerder die het volledige plaatje wilt zien? apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 15 + 12 @@ -3669,15 +3677,15 @@ Portfolio Samenvatting apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 25 + 22 apps/client/src/app/pages/pricing/pricing-page.html - 67 + 55 apps/client/src/app/pages/pricing/pricing-page.html - 256 + 199 @@ -3685,15 +3693,15 @@ Prestatie Benchmarks apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 33 + 30 apps/client/src/app/pages/pricing/pricing-page.html - 81 + 63 apps/client/src/app/pages/pricing/pricing-page.html - 270 + 207 @@ -3701,15 +3709,15 @@ FIRE Calculator apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 37 + 34 apps/client/src/app/pages/pricing/pricing-page.html - 88 + 67 apps/client/src/app/pages/pricing/pricing-page.html - 277 + 211 @@ -3717,15 +3725,15 @@ en meer functies ... apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 45 + 42 apps/client/src/app/pages/pricing/pricing-page.html - 110 + 83 apps/client/src/app/pages/pricing/pricing-page.html - 306 + 231 @@ -3733,19 +3741,27 @@ Overslaan apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 55 + 52 Upgrade Plan Abonnement uitbreiden + + apps/client/src/app/components/header/header.component.html + 177 + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 62 + 59 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 18 apps/client/src/app/pages/pricing/pricing-page.html - 343 + 265 @@ -3761,15 +3777,15 @@ Onbeperkte transacties apps/client/src/app/pages/pricing/pricing-page.html - 46 + 43 apps/client/src/app/pages/pricing/pricing-page.html - 159 + 126 apps/client/src/app/pages/pricing/pricing-page.html - 235 + 187 @@ -3777,15 +3793,15 @@ Onbeperkte rekeningen apps/client/src/app/pages/pricing/pricing-page.html - 53 + 47 apps/client/src/app/pages/pricing/pricing-page.html - 166 + 130 apps/client/src/app/pages/pricing/pricing-page.html - 242 + 191 @@ -3793,15 +3809,15 @@ Portefeuilleprestaties apps/client/src/app/pages/pricing/pricing-page.html - 60 + 51 apps/client/src/app/pages/pricing/pricing-page.html - 173 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 249 + 195 @@ -3809,7 +3825,7 @@ Zelf hosten, handmatig bijwerken. apps/client/src/app/pages/pricing/pricing-page.html - 122 + 92 @@ -3817,11 +3833,11 @@ Gratis apps/client/src/app/pages/pricing/pricing-page.html - 123 + 93 apps/client/src/app/pages/pricing/pricing-page.html - 192 + 150 @@ -3829,7 +3845,7 @@ Voor nieuwe beleggers die net beginnen met handelen. apps/client/src/app/pages/pricing/pricing-page.html - 150 + 120 @@ -3837,11 +3853,11 @@ Volledig beheerd Ghostfolio cloud-aanbod. apps/client/src/app/pages/pricing/pricing-page.html - 191 + 149 apps/client/src/app/pages/pricing/pricing-page.html - 318 + 240 @@ -3849,7 +3865,7 @@ Voor ambitieuze beleggers die een volledig beeld willen hebben van hun financiële assets. apps/client/src/app/pages/pricing/pricing-page.html - 225 + 180 @@ -3857,7 +3873,7 @@ Eenmalige betaling, geen automatische verlenging. apps/client/src/app/pages/pricing/pricing-page.html - 352 + 274 @@ -3865,7 +3881,7 @@ Aan de slag apps/client/src/app/pages/pricing/pricing-page.html - 363 + 285 @@ -3873,7 +3889,7 @@ Het is gratis. apps/client/src/app/pages/pricing/pricing-page.html - 366 + 288 @@ -3881,7 +3897,7 @@ Kosten apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 87 + 94 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -3889,7 +3905,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 158 @@ -3897,19 +3913,19 @@ Portefeuille-allocatie apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 29 + 26 apps/client/src/app/pages/features/features-page.html - 161 + 160 apps/client/src/app/pages/pricing/pricing-page.html - 74 + 59 apps/client/src/app/pages/pricing/pricing-page.html - 263 + 203 @@ -3925,15 +3941,15 @@ Data Import and Export apps/client/src/app/pages/pricing/pricing-page.html - 95 + 71 apps/client/src/app/pages/pricing/pricing-page.html - 180 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 215 @@ -3949,7 +3965,7 @@ Steun van de Gemeenschap apps/client/src/app/pages/pricing/pricing-page.html - 118 + 88 @@ -3957,7 +3973,7 @@ Ondersteuning via e-mail en chat apps/client/src/app/pages/pricing/pricing-page.html - 314 + 236 @@ -3989,7 +4005,7 @@ Oeps! Kon de historische wisselkoers niet krijgen van apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 258 + 257 @@ -4013,11 +4029,11 @@ Professionele gegevensleverancier apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 41 + 38 apps/client/src/app/pages/pricing/pricing-page.html - 298 + 226 @@ -4028,20 +4044,20 @@ 4 - - Renew - Vernieuw - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 21 - - Renew Plan Abonnement Vernieuwen + + apps/client/src/app/components/header/header.component.html + 185 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 23 + apps/client/src/app/pages/pricing/pricing-page.html - 348 + 270 @@ -4073,7 +4089,7 @@ Wil je echt al je activiteiten verwijderen? apps/client/src/app/pages/portfolio/activities/activities-page.component.ts - 140 + 169 @@ -4081,7 +4097,7 @@ Per ETF-aanbieder apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 286 + 280 @@ -4089,7 +4105,7 @@ Alle activiteiten verwijderen libs/ui/src/lib/activities-table/activities-table.component.html - 69 + 65 @@ -4125,7 +4141,7 @@ Wil je dit platform echt verwijderen? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 78 + 79 @@ -4141,7 +4157,7 @@ Saldo bijwerken apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 94 + 93 @@ -4149,7 +4165,7 @@ Per platform apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 42 + 36 @@ -4157,7 +4173,7 @@ Upgrade vandaag nog naar Ghostfolio Premium en krijg toegang tot exclusieve functies om je beleggingservaring te verbeteren: apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 18 + 15 @@ -4165,7 +4181,7 @@ Krijg de tools om je financiën effectief te beheren en je persoonlijke beleggingsstrategie te verfijnen. apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 48 + 45 @@ -4181,19 +4197,19 @@ Instellingen apps/client/src/app/pages/admin/admin-page-routing.module.ts - 30 + 35 apps/client/src/app/pages/admin/admin-page.component.ts - 31 + 32 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 17 + 18 apps/client/src/app/pages/user-account/user-account-page.component.ts - 34 + 35 @@ -4217,7 +4233,7 @@ Beheer Benchmarks apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html - 36 + 38 @@ -4241,7 +4257,7 @@ Selecteer dividenden apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 110 @@ -4249,7 +4265,7 @@ Selecteer activiteiten apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 117 + 113 @@ -4257,11 +4273,11 @@ Importeer activiteiten libs/ui/src/lib/activities-table/activities-table.component.html - 16 + 9 libs/ui/src/lib/activities-table/activities-table.component.html - 453 + 369 @@ -4269,11 +4285,11 @@ Importeer dividenden libs/ui/src/lib/activities-table/activities-table.component.html - 35 + 29 libs/ui/src/lib/activities-table/activities-table.component.html - 464 + 381 @@ -4297,7 +4313,7 @@ Huidige reeks apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 187 + 275 @@ -4305,7 +4321,7 @@ Langste reeks apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 196 + 284 @@ -4340,20 +4356,12 @@ 26 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Mocht je vandaag met pension gaan, dan kun je per jaar of per maandopnemen, gebaseerd op al je financiële assets en een opnamepercentage van 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 57 - - Liabilities Verplichtingen apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 230 + 244 apps/client/src/app/pages/features/features-page.html @@ -4365,11 +4373,11 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 48 + 49 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts - 12 + 13 @@ -4377,11 +4385,11 @@ Licentie apps/client/src/app/pages/about/about-page.component.ts - 53 + 54 apps/client/src/app/pages/about/license/license-page-routing.module.ts - 12 + 13 @@ -4453,7 +4461,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 179 + 177 @@ -4461,7 +4469,7 @@ Marktsentiment apps/client/src/app/pages/features/features-page.html - 209 + 205 @@ -4469,7 +4477,7 @@ Statische Analyse apps/client/src/app/pages/features/features-page.html - 227 + 224 @@ -4477,7 +4485,7 @@ Meerdere talen apps/client/src/app/pages/features/features-page.html - 245 + 241 @@ -4485,7 +4493,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 279 + 275 @@ -4501,7 +4509,7 @@ Scraper instellingen apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 243 @@ -4517,7 +4525,7 @@ Tools voor persoonlijke financiën apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 13 + 14 @@ -4719,6 +4727,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 67 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + Origin @@ -4911,6 +4931,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 72 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + Region @@ -5103,6 +5135,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 77 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + Available in @@ -5295,6 +5339,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 82 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + ✅ Yes @@ -5487,6 +5543,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 104 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 111 @@ -5863,6 +5943,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 @@ -6239,6 +6343,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 150 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 157 @@ -6615,6 +6743,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 169 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 176 @@ -6995,6 +7147,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 106 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 129 @@ -7371,6 +7547,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 140 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 152 @@ -7747,6 +7947,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 159 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 171 @@ -8123,6 +8347,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 178 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + ❌ No @@ -8315,6 +8551,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 113 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + Self-Hosting @@ -8507,21 +8755,45 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 118 - - - Use anonymously - Gebruik anoniem apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 + + + + Use anonymously + Gebruik anoniem + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -8891,6 +9163,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 164 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + Notes @@ -9083,6 +9367,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 196 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -9275,6 +9571,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 221 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + Personal Finance Tools @@ -9467,6 +9775,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 302 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + Guides @@ -9533,7 +9853,7 @@ ETF's zonder Landen apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 71 + 72 @@ -9541,7 +9861,7 @@ ETF's zonder Sectoren apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 76 + 77 @@ -9549,7 +9869,7 @@ Assets apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 190 + 204 @@ -9565,7 +9885,7 @@ Per markt apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 177 + 171 @@ -9589,7 +9909,7 @@ Welkom bij Ghostfolio apps/client/src/app/components/home-overview/home-overview.html - 9 + 7 @@ -9597,7 +9917,7 @@ Je accounts instellen apps/client/src/app/components/home-overview/home-overview.html - 17 + 15 @@ -9605,7 +9925,7 @@ Krijg een uitgebreid financieel overzicht door je bank- en effectenrekeningen toe te voegen. apps/client/src/app/components/home-overview/home-overview.html - 19 + 17 @@ -9613,7 +9933,7 @@ Leg je activiteiten vast apps/client/src/app/components/home-overview/home-overview.html - 26 + 24 @@ -9621,7 +9941,7 @@ Leg je investeringsactiviteiten vast om je portefeuille up-to-date te houden. apps/client/src/app/components/home-overview/home-overview.html - 28 + 26 @@ -9629,7 +9949,7 @@ Volg en analyseer je portfolio apps/client/src/app/components/home-overview/home-overview.html - 35 + 33 @@ -9637,7 +9957,7 @@ Volg je voortgang in real-time met uitgebreide analyses en inzichten. apps/client/src/app/components/home-overview/home-overview.html - 37 + 35 @@ -9645,7 +9965,7 @@ Geen data beschikbaar apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 254 + 248 apps/client/src/app/pages/public/public-page.html @@ -9657,7 +9977,7 @@ Klaar om je persoonlijke financiën onder controle te krijgen? apps/client/src/app/components/home-overview/home-overview.html - 10 + 8 @@ -9665,7 +9985,7 @@ Account opzetten apps/client/src/app/components/home-overview/home-overview.html - 50 + 48 @@ -9673,7 +9993,7 @@ Biometrische authenticatie apps/client/src/app/components/user-account-settings/user-account-settings.html - 158 + 170 @@ -9757,7 +10077,7 @@ Exporteer Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 199 + 213 @@ -9765,7 +10085,7 @@ Valuta apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 66 + 67 @@ -9781,7 +10101,7 @@ Bezoek apps/client/src/app/pages/about/oss-friends/oss-friends-page.html - 28 + 26 @@ -9796,7 +10116,15 @@ Frequently Asked Questions (FAQ) Veelgestelde vragen - apps/client/src/app/pages/faq/faq-page.html + apps/client/src/app/pages/faq/overview/faq-overview-page.html + 4 + + + apps/client/src/app/pages/faq/saas/saas-page.html + 4 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html 4 @@ -9849,7 +10177,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 424 @@ -10041,7 +10369,7 @@ Leden van over de hele wereld gebruikenGhostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 358 + 354 @@ -10049,7 +10377,7 @@ Hoe Ghostfolio werkt? apps/client/src/app/pages/landing/landing-page.html - 373 + 366 @@ -10057,7 +10385,7 @@ Anoniem aanmelden* apps/client/src/app/pages/landing/landing-page.html - 382 + 375 @@ -10065,7 +10393,7 @@ * geen e-mailadres of creditcard nodig apps/client/src/app/pages/landing/landing-page.html - 384 + 377 @@ -10073,7 +10401,7 @@ Voeg al je historische transacties toe apps/client/src/app/pages/landing/landing-page.html - 395 + 388 @@ -10081,7 +10409,7 @@ Krijg waardevolle inzichten in de samenstelling van je portefeuille apps/client/src/app/pages/landing/landing-page.html - 407 + 400 @@ -10089,7 +10417,7 @@ Ben je er klaar voor? apps/client/src/app/pages/landing/landing-page.html - 419 + 412 @@ -10097,7 +10425,7 @@ Nu lid worden of bekijk het voorbeeld account apps/client/src/app/pages/landing/landing-page.html - 420 + 413 @@ -10109,7 +10437,7 @@ apps/client/src/app/pages/landing/landing-page.html - 436 + 429 @@ -10125,7 +10453,7 @@ Aan de slag in slechts 3 stappen apps/client/src/app/pages/landing/landing-page.html - 376 + 369 @@ -10133,15 +10461,27 @@ veelgestelde-vragen apps/client/src/app/app-routing.module.ts - 9 + 10 apps/client/src/app/app.component.ts - 54 + 55 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 37 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 42 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 @@ -10149,27 +10489,27 @@ functionaliteiten apps/client/src/app/app-routing.module.ts - 10 + 11 apps/client/src/app/app.component.ts - 55 + 56 apps/client/src/app/components/header/header.component.ts - 72 + 77 apps/client/src/app/components/header/header.component.ts - 77 + 82 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -10189,19 +10529,23 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts 14 - apps/client/src/app/pages/faq/faq-page.component.ts - 13 + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 14 apps/client/src/app/pages/pricing/pricing-page.component.ts - 34 + 35 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 27 apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts @@ -10259,6 +10603,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 27 @@ -10375,6 +10723,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 27 @@ -10397,51 +10749,51 @@ over apps/client/src/app/app-routing.module.ts - 8 + 9 apps/client/src/app/app.component.ts - 47 + 48 apps/client/src/app/app.component.ts - 48 + 49 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/app.component.ts - 51 + 52 apps/client/src/app/components/header/header.component.ts - 71 + 76 apps/client/src/app/components/header/header.component.ts - 76 + 81 apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/about-page.component.ts - 73 + 74 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -10465,12 +10817,16 @@ apps/client/src/app/pages/landing/landing-page.component.ts - 25 + 26 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 22 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 26 @@ -10527,6 +10883,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 26 @@ -10643,6 +11003,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 26 @@ -10665,15 +11029,15 @@ privacybeleid apps/client/src/app/app-routing.module.ts - 14 + 15 apps/client/src/app/app.component.ts - 52 + 53 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 @@ -10681,15 +11045,15 @@ licentie apps/client/src/app/app-routing.module.ts - 11 + 12 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 @@ -10697,19 +11061,19 @@ markten apps/client/src/app/app-routing.module.ts - 12 + 13 apps/client/src/app/app.component.ts - 56 + 57 apps/client/src/app/components/header/header.component.ts - 73 + 78 apps/client/src/app/components/header/header.component.ts - 78 + 83 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -10720,7 +11084,7 @@ 16 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 14 @@ -10729,23 +11093,23 @@ prijzen apps/client/src/app/app-routing.module.ts - 13 + 14 apps/client/src/app/app.component.ts - 57 + 58 apps/client/src/app/components/header/header.component.ts - 74 + 79 apps/client/src/app/components/header/header.component.ts - 79 + 84 apps/client/src/app/components/home-summary/home-summary.component.ts - 124 + 125 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts @@ -10753,11 +11117,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 37 + 38 apps/client/src/app/core/http-response.interceptor.ts - 80 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -10777,7 +11141,7 @@ apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 16 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -10785,10 +11149,14 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 16 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts 15 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 @@ -10801,35 +11169,35 @@ registratie apps/client/src/app/app-routing.module.ts - 15 + 16 apps/client/src/app/app.component.ts - 58 + 59 apps/client/src/app/components/header/header.component.ts - 80 + 85 apps/client/src/app/core/auth.guard.ts - 53 + 54 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 16 apps/client/src/app/pages/features/features-page.component.ts - 17 + 18 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/pricing/pricing-page.component.ts - 35 + 36 @@ -10837,19 +11205,19 @@ bronnen apps/client/src/app/app-routing.module.ts - 16 + 17 apps/client/src/app/app.component.ts - 59 + 60 apps/client/src/app/components/header/header.component.ts - 75 + 80 apps/client/src/app/components/header/header.component.ts - 81 + 86 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -10869,12 +11237,16 @@ apps/client/src/app/pages/features/features-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 29 @@ -10931,6 +11303,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 29 @@ -11047,6 +11423,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 29 @@ -11065,7 +11445,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 17 + 18 @@ -11089,7 +11469,7 @@ Open Source alternatief voor apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html - 35 + 32 @@ -11097,7 +11477,7 @@ Open Source alternatief voor apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 25 + 26 @@ -11291,6 +11671,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -11483,6 +11875,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -11675,6 +12079,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -11867,13 +12283,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + open-source-alternative-to open-source-alternatief-voor apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts @@ -12071,6 +12499,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 204 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + Ready to take your investments to the next level? @@ -12263,6 +12703,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 217 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + Get Started @@ -12455,25 +12907,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 226 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + Switzerland Zwitserland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 72 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 90 + 102 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 506 + 530 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 548 + 580 @@ -12481,19 +12945,19 @@ Wereldwijd apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 70 + 73 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 317 + 341 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 438 + 462 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 549 + 581 @@ -12501,83 +12965,87 @@ Verenigde Staten apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 81 + 93 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 149 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 159 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 189 + 201 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 198 + 210 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 208 + 220 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 218 + 232 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 270 + 242 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 294 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 316 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 327 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 328 + 352 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 330 + 354 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 340 + 364 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 405 + 429 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 415 + 439 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 425 + 449 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 494 + 518 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 517 + 541 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 537 + 569 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 559 + 591 @@ -12585,7 +13053,7 @@ België apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 167 + 179 @@ -12593,31 +13061,31 @@ Duitsland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 128 + 140 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 178 + 190 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 250 + 274 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 260 + 284 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 305 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 315 + 339 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 361 + 385 @@ -12625,7 +13093,7 @@ Oostenrijk apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 238 + 262 @@ -12633,7 +13101,7 @@ Italië apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 372 + 396 @@ -12641,7 +13109,7 @@ Nederland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 382 + 406 @@ -12649,7 +13117,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 394 + 418 @@ -12657,7 +13125,7 @@ Nieuw-Zeeland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 436 + 460 @@ -12665,11 +13133,11 @@ Tsjechië apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 447 + 471 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 484 + 508 @@ -12713,7 +13181,7 @@ Choose or drop a file here apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 85 + 81 @@ -12745,7 +13213,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 197 @@ -12761,7 +13229,7 @@ Interest apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 280 + 294 @@ -12785,7 +13253,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 78 + 79 @@ -12809,15 +13277,15 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 109 + 121 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 458 + 482 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 474 + 498 @@ -12825,7 +13293,7 @@ Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. apps/client/src/app/pages/portfolio/fire/fire-page.html - 100 + 108 @@ -12833,7 +13301,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 132 @@ -12841,7 +13309,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 145 @@ -12861,7 +13329,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 219 + 226 @@ -12893,7 +13361,7 @@ To apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 29 + 28 @@ -12901,7 +13369,7 @@ Transfer apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 66 + 64 @@ -12909,7 +13377,7 @@ Finland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 466 + 490 @@ -12917,11 +13385,11 @@ Membership apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/user-account/user-account-page.component.ts - 39 + 40 @@ -12929,11 +13397,11 @@ Access apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/user-account/user-account-page.component.ts - 45 + 46 @@ -12941,7 +13409,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 89 + 126 @@ -12969,7 +13437,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 184 + 185 @@ -13001,7 +13469,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 63 + 65 @@ -13203,13 +13671,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 48 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + Canada Canada apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 529 + 561 @@ -13233,7 +13713,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 305 + 306 @@ -13241,7 +13721,7 @@ Poland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 119 + 131 @@ -13249,7 +13729,7 @@ South Africa apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 227 + 251 @@ -13281,7 +13761,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 205 + 224 @@ -13289,7 +13769,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 159 + 166 @@ -13305,7 +13785,7 @@ 200-Day Trend libs/ui/src/lib/benchmark/benchmark.component.html - 39 + 40 @@ -13313,7 +13793,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 88 + 109 @@ -13507,6 +13987,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 190 @@ -13887,6 +14391,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 @@ -14081,7 +14609,335 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 56 + 57 + + + + is an invalid currency! + is an invalid currency! + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 129 + + + + If a translation is missing, kindly support us in extending it here. + If a translation is missing, kindly support us in extending it here. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 53 + + + + The current market price is + The current market price is + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 318 + + + + Test + Test + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 259 + + + + Date Range + Date Range + + libs/ui/src/lib/assistant/assistant.html + 93 + + + + Permission + Permission + + apps/client/src/app/components/access-table/access-table.component.html + 17 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 33 + + + + Restricted view + Restricted view + + apps/client/src/app/components/access-table/access-table.component.html + 25 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 35 + + + + Oops! Could not grant access. + Oops! Could not grant access. + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts + 80 + + + + Private + Private + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 + + + + Job Queue + Job Queue + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 25 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 42 + + + + Market data is delayed for + Market data is delayed for + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts + 80 + + + + Investment + Investment + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 46 + + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 60 + + + + Absolute Asset Performance + Absolute Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Asset Performance + Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 42 + + + + Absolute Currency Performance + Absolute Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 57 + + + + Currency Performance + Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 72 + + + + Absolute Net Performance + Absolute Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 88 + + + + Net Performance + Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 103 + + + + Week to date + Week to date + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + WTD + WTD + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + Month to date + Month to date + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + MTD + MTD + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + Year to date + Year to date + + libs/ui/src/lib/assistant/assistant.component.ts + 109 + + + + View + View + + apps/client/src/app/components/access-table/access-table.component.html + 22 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + + + + Oops! A data provider is experiencing the hiccups. + Oops! A data provider is experiencing the hiccups. + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html + 8 + + + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 65 + + + + Reset Filters + Reset Filters + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + year + year + + libs/ui/src/lib/assistant/assistant.component.ts + 112 + + + + years + years + + libs/ui/src/lib/assistant/assistant.component.ts + 114 + + + + Asset Classes + Asset Classes + + libs/ui/src/lib/assistant/assistant.html + 138 + + + + Apply Filters + Apply Filters + + libs/ui/src/lib/assistant/assistant.html + 165 + + + + Data Gathering + Data Gathering + + apps/client/src/app/components/admin-overview/admin-overview.html + 132 + + + + General + General + + apps/client/src/app/pages/faq/faq-page.component.ts + 36 + + + + Cloud + Cloud + + apps/client/src/app/pages/faq/faq-page.component.ts + 41 + + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + + Self-Hosting + Self-Hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 47 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + + self-hosting + self-hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 + + + + FAQ + FAQ + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 diff --git a/apps/client/src/locales/messages.pl.xlf b/apps/client/src/locales/messages.pl.xlf index 3971bd557..2a6412181 100644 --- a/apps/client/src/locales/messages.pl.xlf +++ b/apps/client/src/locales/messages.pl.xlf @@ -6,51 +6,51 @@ about apps/client/src/app/app-routing.module.ts - 8 + 9 apps/client/src/app/app.component.ts - 47 + 48 apps/client/src/app/app.component.ts - 48 + 49 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/app.component.ts - 51 + 52 apps/client/src/app/components/header/header.component.ts - 71 + 76 apps/client/src/app/components/header/header.component.ts - 76 + 81 apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/about-page.component.ts - 73 + 74 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -74,12 +74,16 @@ apps/client/src/app/pages/landing/landing-page.component.ts - 25 + 26 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 22 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 26 @@ -136,6 +140,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 26 @@ -252,6 +260,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 26 @@ -274,15 +286,27 @@ faq apps/client/src/app/app-routing.module.ts - 9 + 10 apps/client/src/app/app.component.ts - 54 + 55 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 37 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 42 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 @@ -290,27 +314,27 @@ features apps/client/src/app/app-routing.module.ts - 10 + 11 apps/client/src/app/app.component.ts - 55 + 56 apps/client/src/app/components/header/header.component.ts - 72 + 77 apps/client/src/app/components/header/header.component.ts - 77 + 82 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -330,19 +354,23 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts 14 - apps/client/src/app/pages/faq/faq-page.component.ts - 13 + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 14 apps/client/src/app/pages/pricing/pricing-page.component.ts - 34 + 35 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 27 apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts @@ -400,6 +428,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 27 @@ -516,6 +548,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 27 @@ -538,15 +574,15 @@ license apps/client/src/app/app-routing.module.ts - 11 + 12 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 @@ -554,19 +590,19 @@ markets apps/client/src/app/app-routing.module.ts - 12 + 13 apps/client/src/app/app.component.ts - 56 + 57 apps/client/src/app/components/header/header.component.ts - 73 + 78 apps/client/src/app/components/header/header.component.ts - 78 + 83 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -577,7 +613,7 @@ 16 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 14 @@ -586,23 +622,23 @@ pricing apps/client/src/app/app-routing.module.ts - 13 + 14 apps/client/src/app/app.component.ts - 57 + 58 apps/client/src/app/components/header/header.component.ts - 74 + 79 apps/client/src/app/components/header/header.component.ts - 79 + 84 apps/client/src/app/components/home-summary/home-summary.component.ts - 124 + 125 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts @@ -610,11 +646,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 37 + 38 apps/client/src/app/core/http-response.interceptor.ts - 80 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -634,7 +670,7 @@ apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 16 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -642,10 +678,14 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 16 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts 15 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 @@ -658,15 +698,15 @@ privacy-policy apps/client/src/app/app-routing.module.ts - 14 + 15 apps/client/src/app/app.component.ts - 52 + 53 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 @@ -674,35 +714,35 @@ register apps/client/src/app/app-routing.module.ts - 15 + 16 apps/client/src/app/app.component.ts - 58 + 59 apps/client/src/app/components/header/header.component.ts - 80 + 85 apps/client/src/app/core/auth.guard.ts - 53 + 54 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 16 apps/client/src/app/pages/features/features-page.component.ts - 17 + 18 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/pricing/pricing-page.component.ts - 35 + 36 @@ -710,19 +750,19 @@ resources apps/client/src/app/app-routing.module.ts - 16 + 17 apps/client/src/app/app.component.ts - 59 + 60 apps/client/src/app/components/header/header.component.ts - 75 + 80 apps/client/src/app/components/header/header.component.ts - 81 + 86 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -742,12 +782,16 @@ apps/client/src/app/pages/features/features-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 29 @@ -804,6 +848,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 29 @@ -920,6 +968,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 29 @@ -938,7 +990,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 17 + 18 @@ -982,7 +1034,7 @@ apps/client/src/app/components/header/header.component.html - 348 + 381 apps/client/src/app/components/home-market/home-market.html @@ -1002,11 +1054,11 @@ apps/client/src/app/components/header/header.component.html - 79 + 80 apps/client/src/app/components/header/header.component.html - 251 + 284 apps/client/src/app/pages/resources/resources-page.html @@ -1022,11 +1074,11 @@ apps/client/src/app/components/header/header.component.html - 110 + 111 apps/client/src/app/components/header/header.component.html - 319 + 352 @@ -1138,7 +1190,7 @@ apps/client/src/app/components/header/header.component.html - 306 + 339 apps/client/src/app/pages/features/features-page.html @@ -1174,15 +1226,27 @@ apps/client/src/app/components/header/header.component.html - 97 + 98 apps/client/src/app/components/header/header.component.html - 263 + 296 apps/client/src/app/components/header/header.component.html - 332 + 365 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -1394,35 +1458,35 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 62 + 74 apps/client/src/app/components/user-account-settings/user-account-settings.html - 66 + 78 apps/client/src/app/components/user-account-settings/user-account-settings.html - 70 + 82 apps/client/src/app/components/user-account-settings/user-account-settings.html - 74 + 86 apps/client/src/app/components/user-account-settings/user-account-settings.html - 78 + 90 apps/client/src/app/components/user-account-settings/user-account-settings.html - 82 + 94 apps/client/src/app/components/user-account-settings/user-account-settings.html - 86 + 98 apps/client/src/app/pages/features/features-page.html - 260 + 256 @@ -1430,7 +1494,7 @@ The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. apps/client/src/app/app.component.html - 182 + 179 @@ -1456,10 +1520,6 @@ Type Type - - apps/client/src/app/components/access-table/access-table.component.html - 17 - apps/client/src/app/components/admin-jobs/admin-jobs.html 28 @@ -1474,7 +1534,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 164 + 159 @@ -1482,7 +1542,7 @@ Details apps/client/src/app/components/access-table/access-table.component.html - 27 + 32 @@ -1490,7 +1550,7 @@ Revoke apps/client/src/app/components/access-table/access-table.component.html - 54 + 59 @@ -1498,7 +1558,7 @@ Do you really want to revoke this granted access? apps/client/src/app/components/access-table/access-table.component.ts - 49 + 50 @@ -1514,7 +1574,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 31 + 34 @@ -1534,7 +1594,7 @@ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 73 + 87 apps/client/src/app/components/accounts-table/accounts-table.component.html @@ -1554,7 +1614,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 253 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -1574,7 +1634,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 45 + 48 @@ -1602,7 +1662,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 182 + 180 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1622,15 +1682,15 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 12 + 15 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 114 + 113 libs/ui/src/lib/activities-table/activities-table.component.html - 179 + 136 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1644,10 +1704,6 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html 50 - - libs/ui/src/lib/activities-table/activities-table.component.html - 159 - Currency @@ -1660,17 +1716,21 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 91 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 186 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 22 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 120 + 119 libs/ui/src/lib/activities-table/activities-table.component.html - 209 + 274 @@ -1686,7 +1746,11 @@ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 47 + 45 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 167 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1694,11 +1758,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 169 + 170 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 171 + 223 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1712,21 +1776,17 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 226 - - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 227 - libs/ui/src/lib/account-balances/account-balances.component.html 20 libs/ui/src/lib/activities-table/activities-table.component.html - 321 + 255 libs/ui/src/lib/activities-table/activities-table.component.html - 356 + 291 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1746,7 +1806,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 80 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1758,7 +1818,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 507 + 428 @@ -1774,11 +1834,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 99 + 90 apps/client/src/app/components/admin-overview/admin-overview.html - 201 + 197 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1790,11 +1850,11 @@ libs/ui/src/lib/account-balances/account-balances.component.html - 50 + 51 libs/ui/src/lib/activities-table/activities-table.component.html - 529 + 450 @@ -1802,7 +1862,7 @@ Do you really want to delete this account? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 83 + 99 @@ -1854,7 +1914,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 130 + 129 @@ -1894,7 +1954,7 @@ Delete Jobs apps/client/src/app/components/admin-jobs/admin-jobs.html - 135 + 126 @@ -1902,7 +1962,7 @@ View Data apps/client/src/app/components/admin-jobs/admin-jobs.html - 150 + 141 @@ -1910,7 +1970,7 @@ View Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 157 + 148 @@ -1918,7 +1978,7 @@ Delete Job apps/client/src/app/components/admin-jobs/admin-jobs.html - 160 + 151 @@ -1938,7 +1998,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 136 + 135 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1946,7 +2006,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 152 + 168 @@ -1970,7 +2030,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 260 + 301 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1986,23 +2046,23 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 30 + 58 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 96 + 101 apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 59 + 57 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 362 + 361 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 37 + 38 @@ -2014,7 +2074,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 267 + 308 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -2030,15 +2090,15 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 37 + 65 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 103 + 108 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 368 @@ -2046,7 +2106,7 @@ Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 66 + 67 @@ -2054,7 +2114,7 @@ ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 71 + 72 @@ -2062,7 +2122,7 @@ ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 76 + 77 @@ -2070,7 +2130,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 184 + 185 @@ -2078,7 +2138,7 @@ Filter by... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 281 + 282 @@ -2094,7 +2154,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 195 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2102,7 +2162,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 291 + 290 @@ -2118,7 +2178,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 201 + 208 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2126,7 +2186,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 307 + 306 @@ -2218,7 +2278,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 205 + 224 @@ -2246,11 +2306,11 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 150 + 149 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 186 + 184 @@ -2258,11 +2318,11 @@ Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 143 + 142 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 198 + 197 @@ -2270,7 +2330,7 @@ Country apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 152 + 151 apps/client/src/app/components/admin-users/admin-users.html @@ -2278,7 +2338,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 210 + 206 @@ -2286,11 +2346,15 @@ Sectors apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 158 + 156 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 266 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 216 + 211 apps/client/src/app/pages/public/public-page.html @@ -2302,11 +2366,15 @@ Countries apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 166 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 277 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 228 + 223 @@ -2314,7 +2382,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 219 + 226 @@ -2322,7 +2390,7 @@ Symbol Mapping apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 225 + 232 @@ -2330,7 +2398,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 243 @@ -2338,15 +2406,15 @@ Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 247 + 288 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 73 + 76 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 275 @@ -2382,7 +2450,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 102 + 101 @@ -2390,7 +2458,7 @@ Please add a currency: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 119 + 122 @@ -2398,7 +2466,7 @@ Do you really want to delete this coupon? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 133 + 140 @@ -2406,7 +2474,7 @@ Do you really want to delete this currency? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 146 + 153 @@ -2414,7 +2482,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 159 + 166 @@ -2422,7 +2490,7 @@ Do you really want to flush the cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 169 + 183 @@ -2430,7 +2498,7 @@ Please set your system message: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 200 + 214 @@ -2478,7 +2546,7 @@ Add Currency apps/client/src/app/components/admin-overview/admin-overview.html - 113 + 104 @@ -2486,7 +2554,7 @@ User Signup apps/client/src/app/components/admin-overview/admin-overview.html - 119 + 110 @@ -2494,7 +2562,7 @@ Read-only Mode apps/client/src/app/components/admin-overview/admin-overview.html - 130 + 121 @@ -2502,7 +2570,7 @@ System Message apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 143 @@ -2510,7 +2578,7 @@ Set Message apps/client/src/app/components/admin-overview/admin-overview.html - 164 + 163 @@ -2518,7 +2586,7 @@ Coupons apps/client/src/app/components/admin-overview/admin-overview.html - 172 + 171 @@ -2526,7 +2594,7 @@ Add apps/client/src/app/components/admin-overview/admin-overview.html - 233 + 229 @@ -2534,7 +2602,7 @@ Housekeeping apps/client/src/app/components/admin-overview/admin-overview.html - 240 + 236 @@ -2542,7 +2610,7 @@ Flush Cache apps/client/src/app/components/admin-overview/admin-overview.html - 244 + 240 @@ -2578,23 +2646,31 @@ apps/client/src/app/components/header/header.component.html - 53 + 54 apps/client/src/app/components/header/header.component.html - 224 + 257 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 276 apps/client/src/app/pages/accounts/accounts-page.html 4 + + libs/ui/src/lib/assistant/assistant.html + 107 + Do you really want to delete this platform? Do you really want to delete this platform? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 78 + 79 @@ -2630,11 +2706,15 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 295 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 320 + 319 + + + libs/ui/src/lib/assistant/assistant.html + 127 @@ -2650,7 +2730,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 78 + 79 @@ -2674,7 +2754,7 @@ Do you really want to delete this user? apps/client/src/app/components/admin-users/admin-users.component.ts - 112 + 113 @@ -2754,7 +2834,7 @@ Manage Benchmarks apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html - 36 + 38 @@ -2766,7 +2846,7 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 + 48 @@ -2790,11 +2870,11 @@ Overview apps/client/src/app/components/header/header.component.html - 27 + 28 apps/client/src/app/components/header/header.component.html - 206 + 239 @@ -2802,11 +2882,11 @@ Portfolio apps/client/src/app/components/header/header.component.html - 40 + 41 apps/client/src/app/components/header/header.component.html - 216 + 249 @@ -2814,11 +2894,11 @@ Admin Control apps/client/src/app/components/header/header.component.html - 66 + 67 apps/client/src/app/components/header/header.component.html - 240 + 273 @@ -2826,7 +2906,7 @@ Me apps/client/src/app/components/header/header.component.html - 173 + 206 @@ -2834,7 +2914,7 @@ User apps/client/src/app/components/header/header.component.html - 192 + 225 @@ -2842,7 +2922,7 @@ My Ghostfolio apps/client/src/app/components/header/header.component.html - 231 + 264 @@ -2850,7 +2930,7 @@ About Ghostfolio apps/client/src/app/components/header/header.component.html - 271 + 304 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -2862,7 +2942,7 @@ Sign in apps/client/src/app/components/header/header.component.html - 361 + 394 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2874,7 +2954,7 @@ Get started apps/client/src/app/components/header/header.component.html - 373 + 406 @@ -2882,11 +2962,11 @@ Sign in apps/client/src/app/components/header/header.component.ts - 169 + 226 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts - 6 + 7 @@ -2894,7 +2974,7 @@ Oops! Incorrect Security Token. apps/client/src/app/components/header/header.component.ts - 183 + 240 @@ -2902,11 +2982,11 @@ Manage Activities apps/client/src/app/components/home-holdings/home-holdings.html - 30 + 22 apps/client/src/app/pages/portfolio/holdings/holdings-page.html - 31 + 23 @@ -2914,7 +2994,7 @@ Fear apps/client/src/app/components/home-market/home-market.component.ts - 24 + 25 libs/ui/src/lib/i18n.ts @@ -2926,7 +3006,7 @@ Greed apps/client/src/app/components/home-market/home-market.component.ts - 25 + 26 libs/ui/src/lib/i18n.ts @@ -2946,7 +3026,7 @@ Welcome to Ghostfolio apps/client/src/app/components/home-overview/home-overview.html - 9 + 7 @@ -2954,7 +3034,7 @@ Ready to take control of your personal finances? apps/client/src/app/components/home-overview/home-overview.html - 10 + 8 @@ -2962,7 +3042,7 @@ Setup your accounts apps/client/src/app/components/home-overview/home-overview.html - 17 + 15 @@ -2970,7 +3050,7 @@ Get a comprehensive financial overview by adding your bank and brokerage accounts. apps/client/src/app/components/home-overview/home-overview.html - 19 + 17 @@ -2978,7 +3058,7 @@ Capture your activities apps/client/src/app/components/home-overview/home-overview.html - 26 + 24 @@ -2986,7 +3066,7 @@ Record your investment activities to keep your portfolio up to date. apps/client/src/app/components/home-overview/home-overview.html - 28 + 26 @@ -2994,7 +3074,7 @@ Monitor and analyze your portfolio apps/client/src/app/components/home-overview/home-overview.html - 35 + 33 @@ -3002,7 +3082,7 @@ Track your progress in real-time with comprehensive analysis and insights. apps/client/src/app/components/home-overview/home-overview.html - 37 + 35 @@ -3010,7 +3090,7 @@ Setup accounts apps/client/src/app/components/home-overview/home-overview.html - 50 + 48 @@ -3018,7 +3098,7 @@ Add activity apps/client/src/app/components/home-overview/home-overview.html - 58 + 56 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -3030,11 +3110,11 @@ This feature requires a subscription. apps/client/src/app/components/home-summary/home-summary.component.ts - 112 + 113 apps/client/src/app/core/http-response.interceptor.ts - 67 + 68 @@ -3042,11 +3122,11 @@ Upgrade Plan apps/client/src/app/components/home-summary/home-summary.component.ts - 114 + 115 apps/client/src/app/core/http-response.interceptor.ts - 69 + 70 @@ -3062,7 +3142,7 @@ Total Amount apps/client/src/app/components/investment-chart/investment-chart.component.ts - 182 + 190 @@ -3070,7 +3150,7 @@ Savings Rate apps/client/src/app/components/investment-chart/investment-chart.component.ts - 248 + 262 @@ -3094,11 +3174,11 @@ apps/client/src/app/pages/landing/landing-page.html - 435 + 428 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 98 + 94 apps/client/src/app/pages/register/register-page.html @@ -3106,7 +3186,7 @@ apps/client/src/app/pages/webauthn/webauthn-page.html - 28 + 29 @@ -3141,7 +3221,7 @@ 3 - + @@ -3160,7 +3240,7 @@ {VAR_PLURAL, plural, =1 {transaction} other {transactions}} apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 13 + 14 @@ -3204,7 +3284,7 @@ Gross Performance apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 72 + 73 @@ -3212,7 +3292,7 @@ Fees apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 87 + 94 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -3220,7 +3300,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 158 @@ -3228,7 +3308,7 @@ Absolute Net Performance apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 103 + 110 @@ -3236,7 +3316,7 @@ Net Performance apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 115 + 123 @@ -3244,7 +3324,7 @@ Total Assets apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 131 + 145 @@ -3252,7 +3332,7 @@ Valuables apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 144 + 158 @@ -3260,7 +3340,7 @@ Emergency Fund apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 156 + 170 apps/client/src/app/pages/features/features-page.html @@ -3268,7 +3348,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 119 @@ -3276,7 +3356,7 @@ Cash apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 177 + 191 @@ -3284,7 +3364,7 @@ Assets apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 190 + 204 @@ -3292,7 +3372,7 @@ Buying Power apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 203 + 217 @@ -3300,7 +3380,7 @@ Excluded from Analysis apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 215 + 229 @@ -3308,7 +3388,7 @@ Liabilities apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 230 + 244 apps/client/src/app/pages/features/features-page.html @@ -3320,7 +3400,7 @@ Net Worth apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 250 + 264 @@ -3328,7 +3408,7 @@ Annualized Performance apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 262 + 276 @@ -3336,7 +3416,7 @@ Interest apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 280 + 294 @@ -3344,7 +3424,7 @@ Dividend apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 292 + 306 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -3356,11 +3436,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 166 + 165 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 222 + 221 @@ -3368,7 +3448,7 @@ Please enter the amount of your emergency fund: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 52 + 53 @@ -3412,11 +3492,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 152 libs/ui/src/lib/activities-table/activities-table.component.html - 230 + 184 @@ -3424,7 +3504,7 @@ Report Data Glitch apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 287 + 312 @@ -3432,7 +3512,7 @@ Are you an ambitious investor who needs the full picture? apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 15 + 12 @@ -3440,7 +3520,7 @@ Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience: apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 18 + 15 @@ -3448,15 +3528,15 @@ Portfolio Summary apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 25 + 22 apps/client/src/app/pages/pricing/pricing-page.html - 67 + 55 apps/client/src/app/pages/pricing/pricing-page.html - 256 + 199 @@ -3464,19 +3544,19 @@ Portfolio Allocations apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 29 + 26 apps/client/src/app/pages/features/features-page.html - 161 + 160 apps/client/src/app/pages/pricing/pricing-page.html - 74 + 59 apps/client/src/app/pages/pricing/pricing-page.html - 263 + 203 @@ -3484,15 +3564,15 @@ Performance Benchmarks apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 33 + 30 apps/client/src/app/pages/pricing/pricing-page.html - 81 + 63 apps/client/src/app/pages/pricing/pricing-page.html - 270 + 207 @@ -3500,15 +3580,15 @@ FIRE Calculator apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 37 + 34 apps/client/src/app/pages/pricing/pricing-page.html - 88 + 67 apps/client/src/app/pages/pricing/pricing-page.html - 277 + 211 @@ -3516,11 +3596,11 @@ Professional Data Provider apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 41 + 38 apps/client/src/app/pages/pricing/pricing-page.html - 298 + 226 @@ -3528,15 +3608,15 @@ and more Features... apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 45 + 42 apps/client/src/app/pages/pricing/pricing-page.html - 110 + 83 apps/client/src/app/pages/pricing/pricing-page.html - 306 + 231 @@ -3544,7 +3624,7 @@ Get the tools to effectively manage your finances and refine your personal investment strategy. apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 48 + 45 @@ -3552,19 +3632,27 @@ Skip apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 55 + 52 Upgrade Plan Upgrade Plan + + apps/client/src/app/components/header/header.component.html + 177 + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 62 + 59 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 18 apps/client/src/app/pages/pricing/pricing-page.html - 343 + 265 @@ -3572,7 +3660,11 @@ Today apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 + + + libs/ui/src/lib/assistant/assistant.component.ts + 99 @@ -3580,7 +3672,11 @@ YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 + + + libs/ui/src/lib/assistant/assistant.component.ts + 109 @@ -3588,7 +3684,11 @@ 1Y apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 + + + libs/ui/src/lib/assistant/assistant.component.ts + 112 @@ -3596,7 +3696,11 @@ 5Y apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 + + + libs/ui/src/lib/assistant/assistant.component.ts + 114 @@ -3604,7 +3708,11 @@ Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 + + + libs/ui/src/lib/assistant/assistant.component.ts + 117 @@ -3620,7 +3728,7 @@ Public apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 24 + 25 @@ -3636,7 +3744,7 @@ Please enter your coupon code: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 110 + 111 @@ -3644,7 +3752,7 @@ Could not redeem coupon code apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 120 + 121 @@ -3652,7 +3760,7 @@ Coupon code has been redeemed apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 132 + 133 @@ -3660,23 +3768,7 @@ Reload apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 133 - - - - Upgrade - Upgrade - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 - - - - Renew - Renew - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 21 + 134 @@ -3684,11 +3776,11 @@ per year apps/client/src/app/components/user-account-membership/user-account-membership.html - 33 + 35 apps/client/src/app/pages/pricing/pricing-page.html - 332 + 254 @@ -3696,7 +3788,7 @@ Try Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 42 + 44 @@ -3704,7 +3796,7 @@ Redeem Coupon apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 57 @@ -3712,7 +3804,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 31 + 33 @@ -3720,7 +3812,7 @@ Do you really want to remove this sign in method? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 182 + 188 @@ -3768,7 +3860,7 @@ Locale apps/client/src/app/components/user-account-settings/user-account-settings.html - 95 + 107 @@ -3776,7 +3868,7 @@ Date and number format apps/client/src/app/components/user-account-settings/user-account-settings.html - 97 + 109 @@ -3784,7 +3876,7 @@ Appearance apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 130 @@ -3792,7 +3884,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 130 + 142 @@ -3800,7 +3892,7 @@ Light apps/client/src/app/components/user-account-settings/user-account-settings.html - 131 + 143 @@ -3808,7 +3900,7 @@ Dark apps/client/src/app/components/user-account-settings/user-account-settings.html - 132 + 144 @@ -3816,11 +3908,11 @@ Zen Mode apps/client/src/app/components/user-account-settings/user-account-settings.html - 141 + 153 apps/client/src/app/pages/features/features-page.html - 192 + 190 @@ -3828,7 +3920,7 @@ Distraction-free experience for turbulent times apps/client/src/app/components/user-account-settings/user-account-settings.html - 142 + 154 @@ -3836,7 +3928,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 158 + 170 @@ -3844,7 +3936,7 @@ Sign in with fingerprint apps/client/src/app/components/user-account-settings/user-account-settings.html - 159 + 171 @@ -3852,7 +3944,7 @@ Experimental Features apps/client/src/app/components/user-account-settings/user-account-settings.html - 176 + 188 @@ -3860,15 +3952,19 @@ Sneak peek at upcoming functionality apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 189 User ID User ID + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 45 + apps/client/src/app/components/user-account-settings/user-account-settings.html - 192 + 205 @@ -3876,7 +3972,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 199 + 213 @@ -3884,7 +3980,7 @@ This feature is currently unavailable. apps/client/src/app/core/http-response.interceptor.ts - 59 + 60 @@ -3892,15 +3988,15 @@ Please try again later. apps/client/src/app/core/http-response.interceptor.ts - 61 + 62 apps/client/src/app/core/http-response.interceptor.ts - 88 + 89 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 131 + 138 @@ -3908,11 +4004,11 @@ Oops! Something went wrong. apps/client/src/app/core/http-response.interceptor.ts - 86 + 87 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 129 + 136 @@ -3920,11 +4016,11 @@ Okay apps/client/src/app/core/http-response.interceptor.ts - 89 + 90 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 139 @@ -3932,15 +4028,15 @@ About apps/client/src/app/pages/about/about-page-routing.module.ts - 52 + 51 apps/client/src/app/pages/about/about-page.component.ts - 43 + 44 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts - 12 + 13 @@ -3948,11 +4044,11 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 48 + 49 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts - 12 + 13 @@ -3960,11 +4056,11 @@ License apps/client/src/app/pages/about/about-page.component.ts - 53 + 54 apps/client/src/app/pages/about/license/license-page-routing.module.ts - 12 + 13 @@ -3972,11 +4068,11 @@ Privacy Policy apps/client/src/app/pages/about/about-page.component.ts - 61 + 62 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts - 12 + 13 @@ -4000,7 +4096,7 @@ Visit apps/client/src/app/pages/about/oss-friends/oss-friends-page.html - 28 + 26 @@ -4008,7 +4104,7 @@ Accounts apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 12 + 13 @@ -4016,7 +4112,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 305 + 306 @@ -4024,7 +4120,7 @@ Update account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 8 @@ -4032,7 +4128,7 @@ Add account apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 8 + 10 @@ -4040,7 +4136,7 @@ Account ID apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 90 + 94 @@ -4056,7 +4152,7 @@ To apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 29 + 28 @@ -4064,7 +4160,7 @@ Transfer apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 66 + 64 @@ -4072,19 +4168,7 @@ Admin Control apps/client/src/app/pages/admin/admin-page-routing.module.ts - 19 - - - - Jobs - Jobs - - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 21 - - - apps/client/src/app/pages/admin/admin-page.component.ts - 41 + 20 @@ -4092,11 +4176,11 @@ Market Data apps/client/src/app/pages/admin/admin-page-routing.module.ts - 25 + 30 apps/client/src/app/pages/admin/admin-page.component.ts - 36 + 37 @@ -4104,19 +4188,19 @@ Settings apps/client/src/app/pages/admin/admin-page-routing.module.ts - 30 + 35 apps/client/src/app/pages/admin/admin-page.component.ts - 31 + 32 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 17 + 18 apps/client/src/app/pages/user-account/user-account-page.component.ts - 34 + 35 @@ -4124,11 +4208,11 @@ Users apps/client/src/app/pages/admin/admin-page-routing.module.ts - 35 + 40 apps/client/src/app/pages/admin/admin-page.component.ts - 46 + 47 @@ -4136,19 +4220,19 @@ Overview apps/client/src/app/pages/admin/admin-page.component.ts - 26 + 27 apps/client/src/app/pages/home/home-page.component.ts - 33 + 34 apps/client/src/app/pages/zen/zen-page-routing.module.ts - 18 + 19 apps/client/src/app/pages/zen/zen-page.component.ts - 33 + 34 @@ -4156,7 +4240,7 @@ Blog apps/client/src/app/pages/blog/blog-page-routing.module.ts - 12 + 13 @@ -4172,7 +4256,7 @@ As you are already logged in, you cannot access the demo account. apps/client/src/app/pages/demo/demo-page.component.ts - 31 + 32 @@ -4180,14 +4264,26 @@ Frequently Asked Questions (FAQ) apps/client/src/app/pages/faq/faq-page-routing.module.ts - 12 + 34 + + + apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts + 13 Frequently Asked Questions (FAQ) Frequently Asked Questions (FAQ) - apps/client/src/app/pages/faq/faq-page.html + apps/client/src/app/pages/faq/overview/faq-overview-page.html + 4 + + + apps/client/src/app/pages/faq/saas/saas-page.html + 4 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html 4 @@ -4196,7 +4292,7 @@ Features apps/client/src/app/pages/features/features-page-routing.module.ts - 12 + 13 @@ -4276,7 +4372,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 179 + 177 @@ -4284,7 +4380,7 @@ Market Mood apps/client/src/app/pages/features/features-page.html - 209 + 205 @@ -4292,7 +4388,7 @@ Static Analysis apps/client/src/app/pages/features/features-page.html - 227 + 224 @@ -4300,7 +4396,7 @@ Multi-Language apps/client/src/app/pages/features/features-page.html - 245 + 241 @@ -4308,7 +4404,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 279 + 275 @@ -4316,7 +4412,7 @@ Get Started apps/client/src/app/pages/features/features-page.html - 299 + 296 apps/client/src/app/pages/public/public-page.html @@ -4328,23 +4424,23 @@ Holdings apps/client/src/app/pages/home/home-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/home/home-page.component.ts - 38 + 39 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 38 + 39 apps/client/src/app/pages/zen/zen-page.component.ts - 38 + 39 @@ -4352,11 +4448,11 @@ Summary apps/client/src/app/pages/home/home-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 43 + 44 @@ -4364,15 +4460,15 @@ Markets apps/client/src/app/pages/home/home-page-routing.module.ts - 32 + 33 apps/client/src/app/pages/home/home-page.component.ts - 48 + 49 apps/client/src/app/pages/markets/markets-page-routing.module.ts - 12 + 13 @@ -4432,7 +4528,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 424 @@ -4452,7 +4548,7 @@ apps/client/src/app/pages/landing/landing-page.html - 436 + 429 @@ -4668,7 +4764,7 @@ Members from around the globe are using Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 358 + 354 @@ -4676,7 +4772,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 373 + 366 @@ -4684,7 +4780,7 @@ Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 376 + 369 @@ -4692,7 +4788,7 @@ Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 382 + 375 @@ -4700,7 +4796,7 @@ * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 384 + 377 @@ -4708,7 +4804,7 @@ Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 395 + 388 @@ -4716,7 +4812,7 @@ Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 407 + 400 @@ -4724,7 +4820,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 419 + 412 @@ -4732,7 +4828,7 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 420 + 413 @@ -4820,11 +4916,11 @@ Activities apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 43 + 44 @@ -4832,7 +4928,7 @@ Do you really want to delete all your activities? apps/client/src/app/pages/portfolio/activities/activities-page.component.ts - 140 + 169 @@ -4904,7 +5000,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 387 + 306 @@ -4912,7 +5008,7 @@ Update Cash Balance apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 94 + 93 @@ -4920,15 +5016,15 @@ Unit Price apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 173 + 172 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 228 + 227 libs/ui/src/lib/activities-table/activities-table.component.html - 259 + 208 @@ -4936,7 +5032,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 197 @@ -4944,15 +5040,15 @@ Fee apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 242 + 241 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 266 libs/ui/src/lib/activities-table/activities-table.component.html - 288 + 232 @@ -4960,7 +5056,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 258 + 257 @@ -4968,7 +5064,7 @@ Import Activities apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 40 + 44 @@ -4976,7 +5072,7 @@ Import Dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 79 + 86 @@ -4984,7 +5080,7 @@ Importing data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 113 + 120 @@ -4992,7 +5088,7 @@ Import has been completed apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 121 + 128 @@ -5000,7 +5096,7 @@ Validating data... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 224 + 233 @@ -5040,7 +5136,7 @@ Choose or drop a file here apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 85 + 81 @@ -5048,7 +5144,7 @@ The following file formats are supported: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 91 + 87 @@ -5056,7 +5152,7 @@ Select Dividends apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 110 @@ -5064,7 +5160,7 @@ Select Activities apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 117 + 113 @@ -5072,11 +5168,11 @@ Back apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 141 + 140 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 178 + 176 @@ -5084,27 +5180,11 @@ Allocations apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 48 - - - - Filter by account or tag... - Filter by account or tag... - - apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts - 146 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 126 - - - apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts - 86 + 49 @@ -5120,7 +5200,7 @@ Proportion of Net Worth apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 18 + 12 @@ -5128,7 +5208,7 @@ By Platform apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 42 + 36 @@ -5136,7 +5216,7 @@ By Currency apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 61 + 55 @@ -5144,7 +5224,7 @@ By Asset Class apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 84 + 78 @@ -5152,7 +5232,7 @@ By Holding apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 107 + 101 @@ -5160,7 +5240,7 @@ By Sector apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 130 + 124 @@ -5168,7 +5248,7 @@ By Continent apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 154 + 148 @@ -5176,7 +5256,7 @@ By Market apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 177 + 171 @@ -5184,7 +5264,7 @@ Regions apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 201 + 195 apps/client/src/app/pages/public/public-page.html @@ -5196,7 +5276,7 @@ Developed Markets apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 224 + 218 apps/client/src/app/pages/public/public-page.html @@ -5208,7 +5288,7 @@ Emerging Markets apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 233 + 227 apps/client/src/app/pages/public/public-page.html @@ -5220,7 +5300,7 @@ Other Markets apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 242 + 236 apps/client/src/app/pages/public/public-page.html @@ -5232,7 +5312,7 @@ No data available apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 254 + 248 apps/client/src/app/pages/public/public-page.html @@ -5244,7 +5324,7 @@ By Account apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 266 + 260 @@ -5252,7 +5332,7 @@ By ETF Provider apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 286 + 280 @@ -5260,7 +5340,7 @@ By Country apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 309 + 303 @@ -5268,11 +5348,11 @@ Analysis apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 33 + 34 @@ -5280,7 +5360,7 @@ Dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 43 + 42 libs/ui/src/lib/i18n.ts @@ -5290,14 +5370,6 @@ Deposit Deposit - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 48 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 60 - libs/ui/src/lib/fire-calculator/fire-calculator.component.ts 331 @@ -5332,7 +5404,7 @@ Top apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 40 + 128 @@ -5340,7 +5412,7 @@ Bottom apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 86 + 174 @@ -5348,7 +5420,7 @@ Portfolio Evolution apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 136 + 224 @@ -5356,7 +5428,7 @@ Investment Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 166 + 254 @@ -5364,7 +5436,7 @@ Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 187 + 275 @@ -5372,7 +5444,7 @@ Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 196 + 284 @@ -5380,7 +5452,7 @@ Dividend Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 223 + 312 @@ -5388,7 +5460,7 @@ FIRE apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 12 + 13 @@ -5412,15 +5484,7 @@ 4% Rule apps/client/src/app/pages/portfolio/fire/fire-page.html - 34 - - - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 57 + 38 @@ -5428,7 +5492,7 @@ Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. apps/client/src/app/pages/portfolio/fire/fire-page.html - 100 + 108 @@ -5436,7 +5500,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 132 @@ -5444,12 +5508,16 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 145 Holdings Holdings + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 75 + apps/client/src/app/pages/portfolio/holdings/holdings-page.html 4 @@ -5468,7 +5536,7 @@ Pricing apps/client/src/app/pages/pricing/pricing-page-routing.module.ts - 12 + 13 @@ -5508,15 +5576,15 @@ Unlimited Transactions apps/client/src/app/pages/pricing/pricing-page.html - 46 + 43 apps/client/src/app/pages/pricing/pricing-page.html - 159 + 126 apps/client/src/app/pages/pricing/pricing-page.html - 235 + 187 @@ -5524,15 +5592,15 @@ Unlimited Accounts apps/client/src/app/pages/pricing/pricing-page.html - 53 + 47 apps/client/src/app/pages/pricing/pricing-page.html - 166 + 130 apps/client/src/app/pages/pricing/pricing-page.html - 242 + 191 @@ -5540,15 +5608,15 @@ Portfolio Performance apps/client/src/app/pages/pricing/pricing-page.html - 60 + 51 apps/client/src/app/pages/pricing/pricing-page.html - 173 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 249 + 195 @@ -5556,15 +5624,15 @@ Data Import and Export apps/client/src/app/pages/pricing/pricing-page.html - 95 + 71 apps/client/src/app/pages/pricing/pricing-page.html - 180 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 215 @@ -5572,7 +5640,7 @@ Community Support apps/client/src/app/pages/pricing/pricing-page.html - 118 + 88 @@ -5580,7 +5648,7 @@ Self-hosted, update manually. apps/client/src/app/pages/pricing/pricing-page.html - 122 + 92 @@ -5588,11 +5656,11 @@ Free apps/client/src/app/pages/pricing/pricing-page.html - 123 + 93 apps/client/src/app/pages/pricing/pricing-page.html - 192 + 150 @@ -5600,7 +5668,7 @@ For new investors who are just getting started with trading. apps/client/src/app/pages/pricing/pricing-page.html - 150 + 120 @@ -5608,11 +5676,11 @@ Fully managed Ghostfolio cloud offering. apps/client/src/app/pages/pricing/pricing-page.html - 191 + 149 apps/client/src/app/pages/pricing/pricing-page.html - 318 + 240 @@ -5620,7 +5688,7 @@ For ambitious investors who need the full picture of their financial assets. apps/client/src/app/pages/pricing/pricing-page.html - 225 + 180 @@ -5628,15 +5696,23 @@ Email and Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 314 + 236 Renew Plan Renew Plan + + apps/client/src/app/components/header/header.component.html + 185 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 23 + apps/client/src/app/pages/pricing/pricing-page.html - 348 + 270 @@ -5644,7 +5720,7 @@ One-time payment, no auto-renewal. apps/client/src/app/pages/pricing/pricing-page.html - 352 + 274 @@ -5652,7 +5728,7 @@ Get Started apps/client/src/app/pages/pricing/pricing-page.html - 363 + 285 @@ -5660,7 +5736,7 @@ It’s free. apps/client/src/app/pages/pricing/pricing-page.html - 366 + 288 @@ -5700,7 +5776,7 @@ Registration apps/client/src/app/pages/register/register-page-routing.module.ts - 12 + 13 @@ -5732,7 +5808,7 @@ I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 31 + 32 @@ -5740,7 +5816,7 @@ Agree and continue apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 44 + 45 @@ -5748,7 +5824,7 @@ Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 13 + 14 @@ -5756,7 +5832,7 @@ open-source-alternative-to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts @@ -5768,7 +5844,7 @@ Open Source Alternative to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 25 + 26 @@ -5800,7 +5876,7 @@ Open Source Alternative to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html - 35 + 32 @@ -5994,6 +6070,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -6186,6 +6274,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -6378,6 +6478,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -6570,6 +6682,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + Ghostfolio vs comparison table @@ -6762,6 +6886,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 48 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + Founded @@ -6954,17 +7090,41 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 67 - - - Origin - Origin apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 72 + 67 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 72 + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + + Origin + Origin + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -7338,6 +7498,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 77 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + Available in @@ -7530,6 +7702,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 82 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + ✅ Yes @@ -7722,6 +7906,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 104 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 111 @@ -8098,6 +8306,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 @@ -8474,6 +8706,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 150 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 157 @@ -8850,6 +9106,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 169 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 176 @@ -9230,6 +9510,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 106 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 129 @@ -9606,6 +9910,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 140 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 152 @@ -9982,6 +10310,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 159 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 171 @@ -10358,6 +10710,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 178 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + ❌ No @@ -10550,6 +10914,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 113 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + Self-Hosting @@ -10742,23 +11118,47 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 118 - - - Use anonymously - Use anonymously apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 145 + 118 - + + + Use anonymously + Use anonymously + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 145 @@ -11126,6 +11526,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 164 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + Notes @@ -11318,6 +11730,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 196 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. @@ -11510,6 +11934,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 204 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + Ready to take your investments to the next level? @@ -11702,6 +12138,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 217 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -11894,6 +12342,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 221 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + Get Started @@ -12086,6 +12546,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 226 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + Personal Finance Tools @@ -12278,25 +12750,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 302 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + Switzerland Switzerland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 72 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 90 + 102 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 506 + 530 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 548 + 580 @@ -12304,19 +12788,19 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 70 + 73 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 317 + 341 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 438 + 462 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 549 + 581 @@ -12324,83 +12808,87 @@ United States apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 81 + 93 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 149 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 159 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 189 + 201 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 198 + 210 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 208 + 220 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 218 + 232 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 270 + 242 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 294 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 316 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 328 + 327 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 330 + 352 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 354 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 340 + 364 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 405 + 429 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 415 + 439 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 425 + 449 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 494 + 518 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 517 + 541 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 537 + 569 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 559 + 591 @@ -12408,15 +12896,15 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 109 + 121 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 458 + 482 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 474 + 498 @@ -12424,7 +12912,7 @@ Poland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 119 + 131 @@ -12432,31 +12920,31 @@ Germany apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 128 + 140 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 178 + 190 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 250 + 274 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 260 + 284 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 305 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 315 + 339 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 361 + 385 @@ -12464,7 +12952,7 @@ Belgium apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 167 + 179 @@ -12472,7 +12960,7 @@ South Africa apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 227 + 251 @@ -12480,7 +12968,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 238 + 262 @@ -12488,7 +12976,7 @@ Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 372 + 396 @@ -12496,7 +12984,7 @@ Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 382 + 406 @@ -12504,7 +12992,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 394 + 418 @@ -12512,7 +13000,7 @@ New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 436 + 460 @@ -12520,11 +13008,11 @@ Czech Republic apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 447 + 471 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 484 + 508 @@ -12532,7 +13020,7 @@ Finland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 466 + 490 @@ -12540,7 +13028,7 @@ Canada apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 529 + 561 @@ -12548,7 +13036,7 @@ Resources apps/client/src/app/pages/resources/resources-page-routing.module.ts - 12 + 13 @@ -12572,11 +13060,11 @@ Membership apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/user-account/user-account-page.component.ts - 39 + 40 @@ -12584,11 +13072,11 @@ Access apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/user-account/user-account-page.component.ts - 45 + 46 @@ -12596,7 +13084,7 @@ My Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 32 + 33 @@ -12604,7 +13092,7 @@ Oops, authentication has failed. apps/client/src/app/pages/webauthn/webauthn-page.html - 18 + 19 @@ -12612,7 +13100,7 @@ Try again apps/client/src/app/pages/webauthn/webauthn-page.html - 26 + 27 @@ -12620,7 +13108,7 @@ Go back to Home Page apps/client/src/app/pages/webauthn/webauthn-page.html - 30 + 31 @@ -12628,11 +13116,11 @@ Import Activities libs/ui/src/lib/activities-table/activities-table.component.html - 16 + 9 libs/ui/src/lib/activities-table/activities-table.component.html - 453 + 369 @@ -12640,11 +13128,11 @@ Import Dividends libs/ui/src/lib/activities-table/activities-table.component.html - 35 + 29 libs/ui/src/lib/activities-table/activities-table.component.html - 464 + 381 @@ -12652,11 +13140,11 @@ Export Activities libs/ui/src/lib/activities-table/activities-table.component.html - 47 + 41 libs/ui/src/lib/activities-table/activities-table.component.html - 476 + 394 @@ -12664,11 +13152,11 @@ Export Drafts as ICS libs/ui/src/lib/activities-table/activities-table.component.html - 59 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 488 + 407 @@ -12676,7 +13164,7 @@ Delete all Activities libs/ui/src/lib/activities-table/activities-table.component.html - 69 + 65 @@ -12684,7 +13172,7 @@ Draft libs/ui/src/lib/activities-table/activities-table.component.html - 189 + 143 @@ -12692,7 +13180,7 @@ Clone libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 434 @@ -12700,7 +13188,7 @@ Export Draft as ICS libs/ui/src/lib/activities-table/activities-table.component.html - 523 + 444 @@ -12708,15 +13196,7 @@ Do you really want to delete this activity? libs/ui/src/lib/activities-table/activities-table.component.ts - 227 - - - - Filter by account, currency, symbol or type... - Filter by account, currency, symbol or type... - - libs/ui/src/lib/activities-table/activities-table.component.ts - 427 + 175 @@ -12724,7 +13204,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 89 + 126 @@ -12760,7 +13240,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 63 + 65 @@ -12768,7 +13248,7 @@ Change from All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 79 + 81 @@ -12776,7 +13256,7 @@ from ATH libs/ui/src/lib/benchmark/benchmark.component.html - 81 + 83 @@ -12852,7 +13332,7 @@ Show all libs/ui/src/lib/holdings-table/holdings-table.component.html - 172 + 171 @@ -12992,7 +13472,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 384 + 385 @@ -13272,7 +13752,7 @@ Valid until libs/ui/src/lib/membership-card/membership-card.component.html - 22 + 23 @@ -13288,11 +13768,11 @@ No data available libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 386 + 387 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 399 + 400 @@ -13308,7 +13788,7 @@ 200-Day Trend libs/ui/src/lib/benchmark/benchmark.component.html - 39 + 40 @@ -13316,7 +13796,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 88 + 109 @@ -13510,6 +13990,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 190 @@ -13890,6 +14394,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 @@ -14084,7 +14612,335 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 56 + 57 + + + + is an invalid currency! + is an invalid currency! + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 129 + + + + If a translation is missing, kindly support us in extending it here. + If a translation is missing, kindly support us in extending it here. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 53 + + + + The current market price is + The current market price is + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 318 + + + + Test + Test + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 259 + + + + Date Range + Date Range + + libs/ui/src/lib/assistant/assistant.html + 93 + + + + Permission + Permission + + apps/client/src/app/components/access-table/access-table.component.html + 17 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 33 + + + + Restricted view + Restricted view + + apps/client/src/app/components/access-table/access-table.component.html + 25 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 35 + + + + Oops! Could not grant access. + Oops! Could not grant access. + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts + 80 + + + + Private + Private + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 + + + + Job Queue + Job Queue + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 25 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 42 + + + + Market data is delayed for + Market data is delayed for + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts + 80 + + + + Investment + Investment + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 46 + + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 60 + + + + Absolute Asset Performance + Absolute Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Asset Performance + Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 42 + + + + Absolute Currency Performance + Absolute Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 57 + + + + Currency Performance + Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 72 + + + + Absolute Net Performance + Absolute Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 88 + + + + Net Performance + Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 103 + + + + Week to date + Week to date + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + WTD + WTD + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + Month to date + Month to date + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + MTD + MTD + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + Year to date + Year to date + + libs/ui/src/lib/assistant/assistant.component.ts + 109 + + + + View + View + + apps/client/src/app/components/access-table/access-table.component.html + 22 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + + + + Oops! A data provider is experiencing the hiccups. + Oops! A data provider is experiencing the hiccups. + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html + 8 + + + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 65 + + + + Reset Filters + Reset Filters + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + year + year + + libs/ui/src/lib/assistant/assistant.component.ts + 112 + + + + years + years + + libs/ui/src/lib/assistant/assistant.component.ts + 114 + + + + Asset Classes + Asset Classes + + libs/ui/src/lib/assistant/assistant.html + 138 + + + + Apply Filters + Apply Filters + + libs/ui/src/lib/assistant/assistant.html + 165 + + + + Data Gathering + Data Gathering + + apps/client/src/app/components/admin-overview/admin-overview.html + 132 + + + + General + General + + apps/client/src/app/pages/faq/faq-page.component.ts + 36 + + + + Cloud + Cloud + + apps/client/src/app/pages/faq/faq-page.component.ts + 41 + + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + + Self-Hosting + Self-Hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 47 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + + self-hosting + self-hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 + + + + FAQ + FAQ + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 diff --git a/apps/client/src/locales/messages.pt.xlf b/apps/client/src/locales/messages.pt.xlf index 2c358c8cd..cf3f4fca4 100644 --- a/apps/client/src/locales/messages.pt.xlf +++ b/apps/client/src/locales/messages.pt.xlf @@ -6,7 +6,7 @@ O risco de perda em investimentos pode ser substancial. Não é aconselhável investir dinheiro que possa vir a precisar a curto prazo. apps/client/src/app/app.component.html - 182 + 179 @@ -32,10 +32,6 @@ Type Tipo - - apps/client/src/app/components/access-table/access-table.component.html - 17 - apps/client/src/app/components/admin-jobs/admin-jobs.html 28 @@ -50,7 +46,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 164 + 159 @@ -58,7 +54,7 @@ Detalhes apps/client/src/app/components/access-table/access-table.component.html - 27 + 32 @@ -66,7 +62,7 @@ Revogar apps/client/src/app/components/access-table/access-table.component.html - 54 + 59 @@ -74,7 +70,7 @@ Pretende realmente revogar este acesso concedido? apps/client/src/app/components/access-table/access-table.component.ts - 49 + 50 @@ -90,7 +86,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 45 + 48 @@ -102,7 +98,7 @@ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 73 + 87 apps/client/src/app/components/accounts-table/accounts-table.component.html @@ -122,7 +118,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 253 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -142,7 +138,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 182 + 180 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -162,15 +158,15 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 12 + 15 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 114 + 113 libs/ui/src/lib/activities-table/activities-table.component.html - 179 + 136 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -184,10 +180,6 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html 50 - - libs/ui/src/lib/activities-table/activities-table.component.html - 159 - Currency @@ -200,17 +192,21 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 91 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 186 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 22 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 120 + 119 libs/ui/src/lib/activities-table/activities-table.component.html - 209 + 274 @@ -226,7 +222,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 31 + 34 @@ -242,7 +238,11 @@ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 47 + 45 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 167 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -250,11 +250,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 169 + 170 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 171 + 223 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -268,21 +268,17 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 226 - - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 227 - libs/ui/src/lib/account-balances/account-balances.component.html 20 libs/ui/src/lib/activities-table/activities-table.component.html - 321 + 255 libs/ui/src/lib/activities-table/activities-table.component.html - 356 + 291 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -302,7 +298,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 80 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -314,7 +310,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 507 + 428 @@ -330,11 +326,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 99 + 90 apps/client/src/app/components/admin-overview/admin-overview.html - 201 + 197 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -346,11 +342,11 @@ libs/ui/src/lib/account-balances/account-balances.component.html - 50 + 51 libs/ui/src/lib/activities-table/activities-table.component.html - 529 + 450 @@ -358,7 +354,7 @@ Pretende realmente eliminar esta conta? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 83 + 99 @@ -394,7 +390,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 130 + 129 @@ -434,7 +430,7 @@ Eliminar Tarefas apps/client/src/app/components/admin-jobs/admin-jobs.html - 135 + 126 @@ -458,7 +454,7 @@ Visualizar dados apps/client/src/app/components/admin-jobs/admin-jobs.html - 150 + 141 @@ -466,7 +462,7 @@ Ver Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 157 + 148 @@ -474,7 +470,7 @@ Apagar Tarefa apps/client/src/app/components/admin-jobs/admin-jobs.html - 160 + 151 @@ -494,7 +490,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 136 + 135 libs/ui/src/lib/account-balances/account-balances.component.html @@ -502,7 +498,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 152 + 168 @@ -526,7 +522,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 260 + 301 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -542,23 +538,23 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 30 + 58 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 96 + 101 apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 59 + 57 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 362 + 361 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 37 + 38 @@ -570,7 +566,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 267 + 308 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -586,15 +582,15 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 37 + 65 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 103 + 108 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 368 @@ -602,7 +598,7 @@ Filtrar por... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 281 + 282 @@ -618,7 +614,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 195 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -626,7 +622,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 291 + 290 @@ -642,7 +638,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 201 + 208 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -650,7 +646,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 307 + 306 @@ -742,7 +738,7 @@ Por favor, adicione uma moeda: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 119 + 122 @@ -750,7 +746,7 @@ Deseja realmente eliminar este cupão? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 133 + 140 @@ -758,7 +754,7 @@ Deseja realmente excluir esta moeda? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 146 + 153 @@ -766,7 +762,7 @@ Deseja realmente limpar a cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 169 + 183 @@ -774,7 +770,7 @@ Por favor, defina a sua mensagem do sistema: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 200 + 214 @@ -806,7 +802,7 @@ Adicionar Moeda apps/client/src/app/components/admin-overview/admin-overview.html - 113 + 104 @@ -814,7 +810,7 @@ Mensagem de Sistema apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 143 @@ -822,7 +818,7 @@ Definir Mensagem apps/client/src/app/components/admin-overview/admin-overview.html - 164 + 163 @@ -830,7 +826,7 @@ Modo Somente Leitura apps/client/src/app/components/admin-overview/admin-overview.html - 130 + 121 @@ -838,7 +834,7 @@ Cupões apps/client/src/app/components/admin-overview/admin-overview.html - 172 + 171 @@ -846,7 +842,7 @@ Adicionar apps/client/src/app/components/admin-overview/admin-overview.html - 233 + 229 @@ -854,7 +850,7 @@ Manutenção apps/client/src/app/components/admin-overview/admin-overview.html - 240 + 236 @@ -862,7 +858,7 @@ Limpar Cache apps/client/src/app/components/admin-overview/admin-overview.html - 244 + 240 @@ -870,7 +866,7 @@ Deseja realmente excluir este utilizador? apps/client/src/app/components/admin-users/admin-users.component.ts - 112 + 113 @@ -878,7 +874,7 @@ Utilizador apps/client/src/app/components/header/header.component.html - 192 + 225 @@ -902,16 +898,24 @@ apps/client/src/app/components/header/header.component.html - 53 + 54 apps/client/src/app/components/header/header.component.html - 224 + 257 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 276 apps/client/src/app/pages/accounts/accounts-page.html 4 + + libs/ui/src/lib/assistant/assistant.html + 107 + Engagement per Day @@ -962,7 +966,7 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 + 48 @@ -986,11 +990,11 @@ Visão geral apps/client/src/app/components/header/header.component.html - 27 + 28 apps/client/src/app/components/header/header.component.html - 206 + 239 @@ -998,11 +1002,11 @@ Portefólio apps/client/src/app/components/header/header.component.html - 40 + 41 apps/client/src/app/components/header/header.component.html - 216 + 249 @@ -1010,11 +1014,11 @@ Controlo Administrativo apps/client/src/app/components/header/header.component.html - 66 + 67 apps/client/src/app/components/header/header.component.html - 240 + 273 @@ -1026,11 +1030,11 @@ apps/client/src/app/components/header/header.component.html - 79 + 80 apps/client/src/app/components/header/header.component.html - 251 + 284 apps/client/src/app/pages/resources/resources-page.html @@ -1046,15 +1050,27 @@ apps/client/src/app/components/header/header.component.html - 97 + 98 apps/client/src/app/components/header/header.component.html - 263 + 296 apps/client/src/app/components/header/header.component.html - 332 + 365 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -1254,11 +1270,11 @@ apps/client/src/app/components/header/header.component.html - 110 + 111 apps/client/src/app/components/header/header.component.html - 319 + 352 @@ -1266,7 +1282,7 @@ Eu apps/client/src/app/components/header/header.component.html - 173 + 206 @@ -1274,7 +1290,7 @@ O meu Ghostfolio apps/client/src/app/components/header/header.component.html - 231 + 264 @@ -1282,7 +1298,7 @@ Sobre o Ghostfolio apps/client/src/app/components/header/header.component.html - 271 + 304 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -1298,7 +1314,7 @@ apps/client/src/app/components/header/header.component.html - 306 + 339 apps/client/src/app/pages/features/features-page.html @@ -1314,7 +1330,7 @@ apps/client/src/app/components/header/header.component.html - 348 + 381 apps/client/src/app/components/home-market/home-market.html @@ -1330,7 +1346,7 @@ Iniciar sessão apps/client/src/app/components/header/header.component.html - 361 + 394 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -1342,7 +1358,7 @@ Começar apps/client/src/app/components/header/header.component.html - 373 + 406 @@ -1350,11 +1366,11 @@ Iniciar sessão apps/client/src/app/components/header/header.component.ts - 169 + 226 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts - 6 + 7 @@ -1362,7 +1378,7 @@ Oops! Token de Segurança Incorreto. apps/client/src/app/components/header/header.component.ts - 183 + 240 @@ -1370,11 +1386,11 @@ Gerir Atividades apps/client/src/app/components/home-holdings/home-holdings.html - 30 + 22 apps/client/src/app/pages/portfolio/holdings/holdings-page.html - 31 + 23 @@ -1382,7 +1398,7 @@ Medo apps/client/src/app/components/home-market/home-market.component.ts - 24 + 25 libs/ui/src/lib/i18n.ts @@ -1394,7 +1410,7 @@ Ganância apps/client/src/app/components/home-market/home-market.component.ts - 25 + 26 libs/ui/src/lib/i18n.ts @@ -1414,11 +1430,11 @@ Esta funcionalidade requer uma subscrição. apps/client/src/app/components/home-summary/home-summary.component.ts - 112 + 113 apps/client/src/app/core/http-response.interceptor.ts - 67 + 68 @@ -1426,11 +1442,11 @@ Atualizar Plano apps/client/src/app/components/home-summary/home-summary.component.ts - 114 + 115 apps/client/src/app/core/http-response.interceptor.ts - 69 + 70 @@ -1444,14 +1460,6 @@ Deposit Depósito - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 48 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 60 - libs/ui/src/lib/fire-calculator/fire-calculator.component.ts 331 @@ -1462,7 +1470,7 @@ Valor Total apps/client/src/app/components/investment-chart/investment-chart.component.ts - 182 + 190 @@ -1470,7 +1478,7 @@ Taxa de Poupança apps/client/src/app/components/investment-chart/investment-chart.component.ts - 248 + 262 @@ -1494,11 +1502,11 @@ apps/client/src/app/pages/landing/landing-page.html - 435 + 428 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 98 + 94 apps/client/src/app/pages/register/register-page.html @@ -1506,7 +1514,7 @@ apps/client/src/app/pages/webauthn/webauthn-page.html - 28 + 29 @@ -1582,10 +1590,10 @@ Desempenho Bruto apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 72 + 73 - + @@ -1601,7 +1609,7 @@ {VAR_PLURAL, plural, =1 {transação} other {transações}} apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 13 + 14 @@ -1609,7 +1617,7 @@ Desempenho Líquido Absoluto apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 103 + 110 @@ -1617,7 +1625,7 @@ Desempenho Líquido apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 115 + 123 @@ -1625,7 +1633,7 @@ Ativos Totais apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 131 + 145 @@ -1633,7 +1641,7 @@ Bens de valor apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 144 + 158 @@ -1641,7 +1649,7 @@ Fundo de Emergência apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 156 + 170 apps/client/src/app/pages/features/features-page.html @@ -1649,7 +1657,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 119 @@ -1657,7 +1665,7 @@ Poder de Compra apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 203 + 217 @@ -1665,7 +1673,7 @@ Excluído da Análise apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 215 + 229 @@ -1673,7 +1681,7 @@ Valor Líquido apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 250 + 264 @@ -1681,7 +1689,7 @@ Desempenho Anual apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 262 + 276 @@ -1689,7 +1697,7 @@ Dividendo apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 292 + 306 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1701,11 +1709,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 166 + 165 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 222 + 221 @@ -1713,7 +1721,7 @@ Por favor, insira o valor do seu fundo de emergência: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 52 + 53 @@ -1757,11 +1765,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 152 libs/ui/src/lib/activities-table/activities-table.component.html - 230 + 184 @@ -1769,11 +1777,11 @@ Setor apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 143 + 142 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 198 + 197 @@ -1781,7 +1789,7 @@ País apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 152 + 151 apps/client/src/app/components/admin-users/admin-users.html @@ -1789,7 +1797,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 210 + 206 @@ -1797,11 +1805,15 @@ Setores apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 158 + 156 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 266 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 216 + 211 apps/client/src/app/pages/public/public-page.html @@ -1813,11 +1825,15 @@ Países apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 166 - apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 228 + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 277 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 223 @@ -1829,11 +1845,15 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 295 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 320 + 319 + + + libs/ui/src/lib/assistant/assistant.html + 127 @@ -1841,7 +1861,7 @@ Dados do Relatório com Problema apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 287 + 312 @@ -1857,7 +1877,7 @@ Mostrar tudo libs/ui/src/lib/holdings-table/holdings-table.component.html - 172 + 171 @@ -1865,7 +1885,11 @@ Hoje apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 + + + libs/ui/src/lib/assistant/assistant.component.ts + 99 @@ -1873,7 +1897,11 @@ AATD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 + + + libs/ui/src/lib/assistant/assistant.component.ts + 109 @@ -1881,7 +1909,11 @@ 1A apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 + + + libs/ui/src/lib/assistant/assistant.component.ts + 112 @@ -1889,7 +1921,11 @@ 5A apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 + + + libs/ui/src/lib/assistant/assistant.component.ts + 114 @@ -1897,7 +1933,11 @@ Máx apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 + + + libs/ui/src/lib/assistant/assistant.component.ts + 117 @@ -1905,7 +1945,7 @@ Esta funcionalidade está atualmente indisponível. apps/client/src/app/core/http-response.interceptor.ts - 59 + 60 @@ -1913,15 +1953,15 @@ Por favor tente novamente mais tarde. apps/client/src/app/core/http-response.interceptor.ts - 61 + 62 apps/client/src/app/core/http-response.interceptor.ts - 88 + 89 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 131 + 138 @@ -1929,11 +1969,11 @@ Oops! Ocorreu um erro. apps/client/src/app/core/http-response.interceptor.ts - 86 + 87 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 129 + 136 @@ -1941,11 +1981,11 @@ OK apps/client/src/app/core/http-response.interceptor.ts - 89 + 90 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 139 @@ -1953,15 +1993,15 @@ Sobre apps/client/src/app/pages/about/about-page-routing.module.ts - 52 + 51 apps/client/src/app/pages/about/about-page.component.ts - 43 + 44 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts - 12 + 13 @@ -1993,11 +2033,11 @@ Política de Privacidade apps/client/src/app/pages/about/about-page.component.ts - 61 + 62 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts - 12 + 13 @@ -2017,7 +2057,7 @@ O meu Ghostfolio apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 32 + 33 @@ -2025,7 +2065,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 31 + 33 @@ -2033,7 +2073,7 @@ Por favor, insira o seu código de cupão: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 110 + 111 @@ -2041,7 +2081,7 @@ Não foi possível resgatar o código de cupão apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 120 + 121 @@ -2049,7 +2089,7 @@ Código de cupão foi resgatado apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 132 + 133 @@ -2057,7 +2097,7 @@ Atualizar apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 133 + 134 @@ -2065,7 +2105,7 @@ Deseja realmente remover este método de início de sessão? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 182 + 188 @@ -2077,7 +2117,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 387 + 306 @@ -2088,24 +2128,16 @@ 18 - - Upgrade - Atualizar - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 - - per year por ano apps/client/src/app/components/user-account-membership/user-account-membership.html - 33 + 35 apps/client/src/app/pages/pricing/pricing-page.html - 332 + 254 @@ -2113,7 +2145,7 @@ Experimentar Premium apps/client/src/app/components/user-account-membership/user-account-membership.html - 42 + 44 @@ -2121,7 +2153,7 @@ Resgatar Cupão apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 57 @@ -2153,11 +2185,11 @@ Utilizadores apps/client/src/app/pages/admin/admin-page-routing.module.ts - 35 + 40 apps/client/src/app/pages/admin/admin-page.component.ts - 46 + 47 @@ -2165,7 +2197,7 @@ Localidade apps/client/src/app/components/user-account-settings/user-account-settings.html - 95 + 107 @@ -2173,7 +2205,7 @@ Formato de números e datas apps/client/src/app/components/user-account-settings/user-account-settings.html - 97 + 109 @@ -2181,11 +2213,11 @@ Modo Zen apps/client/src/app/components/user-account-settings/user-account-settings.html - 141 + 153 apps/client/src/app/pages/features/features-page.html - 192 + 190 @@ -2193,7 +2225,7 @@ Aparência apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 130 @@ -2201,7 +2233,7 @@ Auto apps/client/src/app/components/user-account-settings/user-account-settings.html - 130 + 142 @@ -2209,7 +2241,7 @@ Claro apps/client/src/app/components/user-account-settings/user-account-settings.html - 131 + 143 @@ -2217,7 +2249,7 @@ Escuro apps/client/src/app/components/user-account-settings/user-account-settings.html - 132 + 144 @@ -2225,7 +2257,7 @@ Iniciar sessão com impressão digital apps/client/src/app/components/user-account-settings/user-account-settings.html - 159 + 171 @@ -2233,15 +2265,19 @@ Funcionalidades Experimentais apps/client/src/app/components/user-account-settings/user-account-settings.html - 176 + 188 User ID ID do Utilizador + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 45 + apps/client/src/app/components/user-account-settings/user-account-settings.html - 192 + 205 @@ -2265,7 +2301,7 @@ Público apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 24 + 25 @@ -2273,7 +2309,7 @@ Contas apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 12 + 13 @@ -2281,7 +2317,7 @@ Atualizar conta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 8 @@ -2289,7 +2325,7 @@ Adicionar conta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 8 + 10 @@ -2297,7 +2333,7 @@ Dinheiro apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 177 + 191 @@ -2305,7 +2341,7 @@ ID da Conta apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 90 + 94 @@ -2313,7 +2349,7 @@ Controlo Administrativo apps/client/src/app/pages/admin/admin-page-routing.module.ts - 19 + 20 @@ -2321,7 +2357,7 @@ Blog apps/client/src/app/pages/blog/blog-page-routing.module.ts - 12 + 13 @@ -2417,7 +2453,7 @@ Como já tem sessão iniciada, não pode aceder à conta de demonstração. apps/client/src/app/pages/demo/demo-page.component.ts - 31 + 32 @@ -2425,7 +2461,11 @@ FAQ apps/client/src/app/pages/faq/faq-page-routing.module.ts - 12 + 34 + + + apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts + 13 @@ -2433,7 +2473,7 @@ Funcionalidades apps/client/src/app/pages/features/features-page-routing.module.ts - 12 + 13 @@ -2441,19 +2481,19 @@ Visão geral apps/client/src/app/pages/admin/admin-page.component.ts - 26 + 27 apps/client/src/app/pages/home/home-page.component.ts - 33 + 34 apps/client/src/app/pages/zen/zen-page-routing.module.ts - 18 + 19 apps/client/src/app/pages/zen/zen-page.component.ts - 33 + 34 @@ -2461,15 +2501,15 @@ Mercados apps/client/src/app/pages/home/home-page-routing.module.ts - 32 + 33 apps/client/src/app/pages/home/home-page.component.ts - 48 + 49 apps/client/src/app/pages/markets/markets-page-routing.module.ts - 12 + 13 @@ -2477,11 +2517,11 @@ Atividades apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 43 + 44 @@ -2497,25 +2537,13 @@ Adicionar atividade apps/client/src/app/components/home-overview/home-overview.html - 58 + 56 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 8 - - Jobs - Tarefas - - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 21 - - - apps/client/src/app/pages/admin/admin-page.component.ts - 41 - - Sell Venda @@ -2533,7 +2561,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 102 + 101 @@ -2541,15 +2569,15 @@ Preço por Unidade apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 173 + 172 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 228 + 227 libs/ui/src/lib/activities-table/activities-table.component.html - 259 + 208 @@ -2557,15 +2585,15 @@ Comissão apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 242 + 241 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 266 libs/ui/src/lib/activities-table/activities-table.component.html - 288 + 232 @@ -2573,15 +2601,15 @@ Nota apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 247 + 288 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 73 + 76 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 275 @@ -2589,7 +2617,7 @@ A importar dados... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 113 + 120 @@ -2597,7 +2625,7 @@ A importação foi concluída apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 121 + 128 @@ -2605,7 +2633,7 @@ Os seguintes formatos de ficheiro são suportados: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 91 + 87 @@ -2613,11 +2641,11 @@ Anterior apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 141 + 140 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 178 + 176 @@ -2625,27 +2653,11 @@ Alocações apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 48 - - - - Filter by account or tag... - Filtrar por conta ou marcador... - - apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts - 146 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 126 - - - apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts - 86 + 49 @@ -2661,7 +2673,7 @@ Proporção do Valor Líquido apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 18 + 12 @@ -2669,7 +2681,7 @@ Por Conta apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 266 + 260 @@ -2677,7 +2689,7 @@ Por Moeda apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 61 + 55 @@ -2685,7 +2697,7 @@ Por Classe de Ativo apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 84 + 78 @@ -2693,7 +2705,7 @@ Por Posse apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 107 + 101 @@ -2701,7 +2713,7 @@ Por Setor apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 130 + 124 @@ -2709,7 +2721,7 @@ Por Continente apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 154 + 148 @@ -2717,7 +2729,7 @@ Por País apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 309 + 303 @@ -2725,7 +2737,7 @@ Regiões apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 201 + 195 apps/client/src/app/pages/public/public-page.html @@ -2737,7 +2749,7 @@ Mercados Desenvoldidos apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 224 + 218 apps/client/src/app/pages/public/public-page.html @@ -2749,7 +2761,7 @@ Mercados Emergentes apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 233 + 227 apps/client/src/app/pages/public/public-page.html @@ -2761,7 +2773,7 @@ Outros Mercados apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 242 + 236 apps/client/src/app/pages/public/public-page.html @@ -2773,11 +2785,11 @@ Análise apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 33 + 34 @@ -2801,7 +2813,7 @@ Topo apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 40 + 128 @@ -2809,7 +2821,7 @@ Fundo apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 86 + 174 @@ -2817,7 +2829,7 @@ Evolução do Portefólio apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 136 + 224 @@ -2825,7 +2837,7 @@ Cronograma de Investimento apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 166 + 254 @@ -2833,7 +2845,7 @@ FIRE apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 12 + 13 @@ -2857,7 +2869,7 @@ Regra dos 4% apps/client/src/app/pages/portfolio/fire/fire-page.html - 34 + 38 @@ -2865,28 +2877,32 @@ Posições apps/client/src/app/pages/home/home-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/home/home-page.component.ts - 38 + 39 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 38 + 39 apps/client/src/app/pages/zen/zen-page.component.ts - 38 + 39 Holdings Posições + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 75 + apps/client/src/app/pages/portfolio/holdings/holdings-page.html 4 @@ -2905,7 +2921,7 @@ Preços apps/client/src/app/pages/pricing/pricing-page-routing.module.ts - 12 + 13 @@ -2945,7 +2961,7 @@ Começar apps/client/src/app/pages/features/features-page.html - 299 + 296 apps/client/src/app/pages/public/public-page.html @@ -2957,7 +2973,7 @@ Registo apps/client/src/app/pages/register/register-page-routing.module.ts - 12 + 13 @@ -3005,7 +3021,7 @@ Concordo em como guardei o meu Token de Segurança acima num local seguro. Se o perder, não conseguirei recuperar a minha conta. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 31 + 32 @@ -3013,7 +3029,7 @@ Aceitar e continuar apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 44 + 45 @@ -3021,7 +3037,7 @@ Recursos apps/client/src/app/pages/resources/resources-page-routing.module.ts - 12 + 13 @@ -3029,7 +3045,7 @@ Oops, a autenticação falhou. apps/client/src/app/pages/webauthn/webauthn-page.html - 18 + 19 @@ -3037,7 +3053,7 @@ Tentar novamente apps/client/src/app/pages/webauthn/webauthn-page.html - 26 + 27 @@ -3045,7 +3061,7 @@ Voltar à Página Inicial apps/client/src/app/pages/webauthn/webauthn-page.html - 30 + 31 @@ -3053,7 +3069,7 @@ Rascunho libs/ui/src/lib/activities-table/activities-table.component.html - 189 + 143 @@ -3061,7 +3077,7 @@ Importar Atividades apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 40 + 44 @@ -3069,11 +3085,11 @@ Exportar Atividades libs/ui/src/lib/activities-table/activities-table.component.html - 47 + 41 libs/ui/src/lib/activities-table/activities-table.component.html - 476 + 394 @@ -3081,11 +3097,11 @@ Exportar Rascunhos como ICS libs/ui/src/lib/activities-table/activities-table.component.html - 59 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 488 + 407 @@ -3093,7 +3109,7 @@ Clonar libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 434 @@ -3101,7 +3117,7 @@ Exportar Rascunho como ICS libs/ui/src/lib/activities-table/activities-table.component.html - 523 + 444 @@ -3109,15 +3125,7 @@ Deseja realmente eliminar esta atividade? libs/ui/src/lib/activities-table/activities-table.component.ts - 227 - - - - Filter by account, currency, symbol or type... - Filtrar por conta, moeda, símbolo ou tipo... - - libs/ui/src/lib/activities-table/activities-table.component.ts - 427 + 175 @@ -3133,7 +3141,7 @@ Diferença desde o Máximo Histórico libs/ui/src/lib/benchmark/benchmark.component.html - 79 + 81 @@ -3141,7 +3149,7 @@ a partir do ATH (All Time High) libs/ui/src/lib/benchmark/benchmark.component.html - 81 + 83 @@ -3213,7 +3221,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 384 + 385 @@ -3389,11 +3397,11 @@ Sem dados disponíveis libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 386 + 387 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 399 + 400 @@ -3417,7 +3425,7 @@ Mapeamento de Símbolo apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 225 + 232 @@ -3425,7 +3433,7 @@ Registo do Utilizador apps/client/src/app/components/admin-overview/admin-overview.html - 119 + 110 @@ -3437,35 +3445,35 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 62 + 74 apps/client/src/app/components/user-account-settings/user-account-settings.html - 66 + 78 apps/client/src/app/components/user-account-settings/user-account-settings.html - 70 + 82 apps/client/src/app/components/user-account-settings/user-account-settings.html - 74 + 86 apps/client/src/app/components/user-account-settings/user-account-settings.html - 78 + 90 apps/client/src/app/components/user-account-settings/user-account-settings.html - 82 + 94 apps/client/src/app/components/user-account-settings/user-account-settings.html - 86 + 98 apps/client/src/app/pages/features/features-page.html - 260 + 256 @@ -3473,11 +3481,11 @@ Dados de Mercado apps/client/src/app/pages/admin/admin-page-routing.module.ts - 25 + 30 apps/client/src/app/pages/admin/admin-page.component.ts - 36 + 37 @@ -3485,11 +3493,11 @@ Sumário apps/client/src/app/pages/home/home-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 43 + 44 @@ -3497,7 +3505,7 @@ A validar dados... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 224 + 233 @@ -3509,11 +3517,11 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 150 + 149 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 186 + 184 @@ -3521,7 +3529,7 @@ Dividendos apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 43 + 42 libs/ui/src/lib/i18n.ts @@ -3533,7 +3541,7 @@ Cronograma de Dividendos apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 223 + 312 @@ -3573,7 +3581,7 @@ Importar Dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 79 + 86 @@ -3581,7 +3589,7 @@ Válido até libs/ui/src/lib/membership-card/membership-card.component.html - 22 + 23 @@ -3645,7 +3653,7 @@ Experiência sem distrações para tempos turbulentos apps/client/src/app/components/user-account-settings/user-account-settings.html - 142 + 154 @@ -3653,7 +3661,7 @@ Acesso antecipado a funcionalidades futuras apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 189 @@ -3661,7 +3669,7 @@ É um investidor ambicioso que precisa de ter uma vista completa? apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 15 + 12 @@ -3669,15 +3677,15 @@ Resumo do Portefólio apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 25 + 22 apps/client/src/app/pages/pricing/pricing-page.html - 67 + 55 apps/client/src/app/pages/pricing/pricing-page.html - 256 + 199 @@ -3685,15 +3693,15 @@ Desempenho das Referências apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 33 + 30 apps/client/src/app/pages/pricing/pricing-page.html - 81 + 63 apps/client/src/app/pages/pricing/pricing-page.html - 270 + 207 @@ -3701,15 +3709,15 @@ Calculadora FIRE apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 37 + 34 apps/client/src/app/pages/pricing/pricing-page.html - 88 + 67 apps/client/src/app/pages/pricing/pricing-page.html - 277 + 211 @@ -3717,15 +3725,15 @@ e mais Funcionalidades... apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 45 + 42 apps/client/src/app/pages/pricing/pricing-page.html - 110 + 83 apps/client/src/app/pages/pricing/pricing-page.html - 306 + 231 @@ -3733,19 +3741,27 @@ Saltar apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 55 + 52 Upgrade Plan Atualizar Plano + + apps/client/src/app/components/header/header.component.html + 177 + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 62 + 59 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 18 apps/client/src/app/pages/pricing/pricing-page.html - 343 + 265 @@ -3761,15 +3777,15 @@ Transações Ilimitadas apps/client/src/app/pages/pricing/pricing-page.html - 46 + 43 apps/client/src/app/pages/pricing/pricing-page.html - 159 + 126 apps/client/src/app/pages/pricing/pricing-page.html - 235 + 187 @@ -3777,15 +3793,15 @@ Contas Ilimitadas apps/client/src/app/pages/pricing/pricing-page.html - 53 + 47 apps/client/src/app/pages/pricing/pricing-page.html - 166 + 130 apps/client/src/app/pages/pricing/pricing-page.html - 242 + 191 @@ -3793,15 +3809,15 @@ Desempenho do Portefólio apps/client/src/app/pages/pricing/pricing-page.html - 60 + 51 apps/client/src/app/pages/pricing/pricing-page.html - 173 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 249 + 195 @@ -3809,7 +3825,7 @@ Hospedado localmente, atualização manual. apps/client/src/app/pages/pricing/pricing-page.html - 122 + 92 @@ -3817,11 +3833,11 @@ Grátis apps/client/src/app/pages/pricing/pricing-page.html - 123 + 93 apps/client/src/app/pages/pricing/pricing-page.html - 192 + 150 @@ -3829,7 +3845,7 @@ Para novos investidores que estão a começar a investir agora. apps/client/src/app/pages/pricing/pricing-page.html - 150 + 120 @@ -3837,11 +3853,11 @@ Ghostfolio hospedado na nuvem, totalmente gerido. apps/client/src/app/pages/pricing/pricing-page.html - 191 + 149 apps/client/src/app/pages/pricing/pricing-page.html - 318 + 240 @@ -3849,7 +3865,7 @@ Para investidores ambiciosos que precisam de ter uma visão completa de seus ativos financeiros. apps/client/src/app/pages/pricing/pricing-page.html - 225 + 180 @@ -3857,7 +3873,7 @@ Pagamento único, sem renovação automática. apps/client/src/app/pages/pricing/pricing-page.html - 352 + 274 @@ -3865,7 +3881,7 @@ Começar apps/client/src/app/pages/pricing/pricing-page.html - 363 + 285 @@ -3873,7 +3889,7 @@ É gratuito. apps/client/src/app/pages/pricing/pricing-page.html - 366 + 288 @@ -3881,7 +3897,7 @@ Taxas apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 87 + 94 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -3889,7 +3905,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 + 158 @@ -3897,19 +3913,19 @@ Alocações do Portefólio apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 29 + 26 apps/client/src/app/pages/features/features-page.html - 161 + 160 apps/client/src/app/pages/pricing/pricing-page.html - 74 + 59 apps/client/src/app/pages/pricing/pricing-page.html - 263 + 203 @@ -3925,15 +3941,15 @@ Importação e Exportação de Dados apps/client/src/app/pages/pricing/pricing-page.html - 95 + 71 apps/client/src/app/pages/pricing/pricing-page.html - 180 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 215 @@ -3949,7 +3965,7 @@ Suporte da Comunidade apps/client/src/app/pages/pricing/pricing-page.html - 118 + 88 @@ -3957,7 +3973,7 @@ Suporte por Email e Chat apps/client/src/app/pages/pricing/pricing-page.html - 314 + 236 @@ -3989,7 +4005,7 @@ Oops! Não foi possível obter a taxa de câmbio histórica de apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 258 + 257 @@ -4013,11 +4029,11 @@ Provedor de Dados Profissionais apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 41 + 38 apps/client/src/app/pages/pricing/pricing-page.html - 298 + 226 @@ -4028,20 +4044,20 @@ 4 - - Renew - Renovar - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 21 - - Renew Plan Renovar Plano + + apps/client/src/app/components/header/header.component.html + 185 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 23 + apps/client/src/app/pages/pricing/pricing-page.html - 348 + 270 @@ -4073,7 +4089,7 @@ Deseja mesmo eliminar todas as suas atividades? apps/client/src/app/pages/portfolio/activities/activities-page.component.ts - 140 + 169 @@ -4081,7 +4097,7 @@ Por Prestador de ETF apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 286 + 280 @@ -4089,7 +4105,7 @@ Apagar todas as Atividades libs/ui/src/lib/activities-table/activities-table.component.html - 69 + 65 @@ -4125,7 +4141,7 @@ Deseja mesmo eliminar esta plataforma? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 78 + 79 @@ -4141,7 +4157,7 @@ Atualizar saldo em Dinheiro apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 94 + 93 @@ -4149,7 +4165,7 @@ Por Plataforma apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 42 + 36 @@ -4157,7 +4173,7 @@ Atualize para o Ghostfolio Premium e obtenha acesso a recursos exclusivos para aperfeiçoar a sua experiência de investimento: apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 18 + 15 @@ -4165,7 +4181,7 @@ Obtenha as ferramentas necessárias para gerir as suas finanças de forma eficaz e aperfeiçoe a sua estratégia de investimento pessoal. apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 48 + 45 @@ -4181,19 +4197,19 @@ Definições apps/client/src/app/pages/admin/admin-page-routing.module.ts - 30 + 35 apps/client/src/app/pages/admin/admin-page.component.ts - 31 + 32 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 17 + 18 apps/client/src/app/pages/user-account/user-account-page.component.ts - 34 + 35 @@ -4217,7 +4233,7 @@ Gerir Referências apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html - 36 + 38 @@ -4241,7 +4257,7 @@ Selecionar Dividendos apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 110 @@ -4249,7 +4265,7 @@ Selecionar Atividades apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 117 + 113 @@ -4257,11 +4273,11 @@ Importar Atividades libs/ui/src/lib/activities-table/activities-table.component.html - 16 + 9 libs/ui/src/lib/activities-table/activities-table.component.html - 453 + 369 @@ -4269,11 +4285,11 @@ Importar Dividendos libs/ui/src/lib/activities-table/activities-table.component.html - 35 + 29 libs/ui/src/lib/activities-table/activities-table.component.html - 464 + 381 @@ -4297,7 +4313,7 @@ Série Atual apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 187 + 275 @@ -4305,7 +4321,7 @@ Série mais Longa apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 196 + 284 @@ -4340,20 +4356,12 @@ 26 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - Se se reformar-se hoje, teria a possibilidade de efetuar um levantamento por ano ou por mês, com base no seu património total de e uma taxa de levantamento de 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 57 - - Liabilities Liabilities apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 230 + 244 apps/client/src/app/pages/features/features-page.html @@ -4365,11 +4373,11 @@ Changelog apps/client/src/app/pages/about/about-page.component.ts - 48 + 49 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts - 12 + 13 @@ -4377,11 +4385,11 @@ License apps/client/src/app/pages/about/about-page.component.ts - 53 + 54 apps/client/src/app/pages/about/license/license-page-routing.module.ts - 12 + 13 @@ -4453,7 +4461,7 @@ Dark Mode apps/client/src/app/pages/features/features-page.html - 179 + 177 @@ -4461,7 +4469,7 @@ Market Mood apps/client/src/app/pages/features/features-page.html - 209 + 205 @@ -4469,7 +4477,7 @@ Static Analysis apps/client/src/app/pages/features/features-page.html - 227 + 224 @@ -4477,7 +4485,7 @@ Multi-Language apps/client/src/app/pages/features/features-page.html - 245 + 241 @@ -4485,7 +4493,7 @@ Open Source Software apps/client/src/app/pages/features/features-page.html - 279 + 275 @@ -4501,7 +4509,7 @@ Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 243 @@ -4517,7 +4525,7 @@ Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 13 + 14 @@ -4719,6 +4727,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 67 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + Origin @@ -4911,6 +4931,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 72 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + Region @@ -5103,6 +5135,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 77 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + Available in @@ -5295,6 +5339,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 82 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + ✅ Yes @@ -5487,6 +5543,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 104 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 111 @@ -5863,6 +5943,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 @@ -6239,6 +6343,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 150 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 157 @@ -6615,6 +6743,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 169 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 176 @@ -6995,6 +7147,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 106 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 129 @@ -7371,6 +7547,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 140 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 152 @@ -7747,6 +7947,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 159 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 171 @@ -8123,6 +8347,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 178 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + ❌ No @@ -8315,6 +8551,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 113 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + Self-Hosting @@ -8507,6 +8755,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 118 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + Use anonymously @@ -8699,9 +8959,21 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 145 - - - Free Plan + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + + Free Plan Free Plan apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -8891,6 +9163,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 164 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + Notes @@ -9083,6 +9367,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 196 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -9275,6 +9571,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 221 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + Personal Finance Tools @@ -9467,6 +9775,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 302 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + Guides @@ -9533,7 +9853,7 @@ ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 71 + 72 @@ -9541,7 +9861,7 @@ ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 76 + 77 @@ -9549,7 +9869,7 @@ Assets apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 190 + 204 @@ -9565,7 +9885,7 @@ By Market apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 177 + 171 @@ -9589,7 +9909,7 @@ Welcome to Ghostfolio apps/client/src/app/components/home-overview/home-overview.html - 9 + 7 @@ -9597,7 +9917,7 @@ Setup your accounts apps/client/src/app/components/home-overview/home-overview.html - 17 + 15 @@ -9605,7 +9925,7 @@ Get a comprehensive financial overview by adding your bank and brokerage accounts. apps/client/src/app/components/home-overview/home-overview.html - 19 + 17 @@ -9613,7 +9933,7 @@ Capture your activities apps/client/src/app/components/home-overview/home-overview.html - 26 + 24 @@ -9621,7 +9941,7 @@ Record your investment activities to keep your portfolio up to date. apps/client/src/app/components/home-overview/home-overview.html - 28 + 26 @@ -9629,7 +9949,7 @@ Monitor and analyze your portfolio apps/client/src/app/components/home-overview/home-overview.html - 35 + 33 @@ -9637,7 +9957,7 @@ Track your progress in real-time with comprehensive analysis and insights. apps/client/src/app/components/home-overview/home-overview.html - 37 + 35 @@ -9645,7 +9965,7 @@ No data available apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 254 + 248 apps/client/src/app/pages/public/public-page.html @@ -9657,7 +9977,7 @@ Ready to take control of your personal finances? apps/client/src/app/components/home-overview/home-overview.html - 10 + 8 @@ -9665,7 +9985,7 @@ Setup accounts apps/client/src/app/components/home-overview/home-overview.html - 50 + 48 @@ -9673,7 +9993,7 @@ Biometric Authentication apps/client/src/app/components/user-account-settings/user-account-settings.html - 158 + 170 @@ -9757,7 +10077,7 @@ Export Data apps/client/src/app/components/user-account-settings/user-account-settings.html - 199 + 213 @@ -9765,7 +10085,7 @@ Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 66 + 67 @@ -9781,7 +10101,7 @@ Visit apps/client/src/app/pages/about/oss-friends/oss-friends-page.html - 28 + 26 @@ -9796,7 +10116,15 @@ Frequently Asked Questions (FAQ) Frequently Asked Questions (FAQ) - apps/client/src/app/pages/faq/faq-page.html + apps/client/src/app/pages/faq/overview/faq-overview-page.html + 4 + + + apps/client/src/app/pages/faq/saas/saas-page.html + 4 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html 4 @@ -9849,7 +10177,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 424 @@ -10041,7 +10369,7 @@ Members from around the globe are using Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 358 + 354 @@ -10049,7 +10377,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 373 + 366 @@ -10057,7 +10385,7 @@ Sign up anonymously* apps/client/src/app/pages/landing/landing-page.html - 382 + 375 @@ -10065,7 +10393,7 @@ * no e-mail address nor credit card required apps/client/src/app/pages/landing/landing-page.html - 384 + 377 @@ -10073,7 +10401,7 @@ Add any of your historical transactions apps/client/src/app/pages/landing/landing-page.html - 395 + 388 @@ -10081,7 +10409,7 @@ Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 407 + 400 @@ -10089,7 +10417,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 419 + 412 @@ -10097,7 +10425,7 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 420 + 413 @@ -10109,7 +10437,7 @@ apps/client/src/app/pages/landing/landing-page.html - 436 + 429 @@ -10125,7 +10453,7 @@ Get started in only 3 steps apps/client/src/app/pages/landing/landing-page.html - 376 + 369 @@ -10133,15 +10461,27 @@ perguntas-mais-frequentes apps/client/src/app/app-routing.module.ts - 9 + 10 apps/client/src/app/app.component.ts - 54 + 55 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 37 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 42 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 @@ -10149,27 +10489,27 @@ funcionalidades apps/client/src/app/app-routing.module.ts - 10 + 11 apps/client/src/app/app.component.ts - 55 + 56 apps/client/src/app/components/header/header.component.ts - 72 + 77 apps/client/src/app/components/header/header.component.ts - 77 + 82 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -10189,19 +10529,23 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts 14 - apps/client/src/app/pages/faq/faq-page.component.ts - 13 + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 14 apps/client/src/app/pages/pricing/pricing-page.component.ts - 34 + 35 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 27 apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts @@ -10259,6 +10603,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 27 @@ -10375,6 +10723,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 27 @@ -10397,51 +10749,51 @@ sobre apps/client/src/app/app-routing.module.ts - 8 + 9 apps/client/src/app/app.component.ts - 47 + 48 apps/client/src/app/app.component.ts - 48 + 49 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/app.component.ts - 51 + 52 apps/client/src/app/components/header/header.component.ts - 71 + 76 apps/client/src/app/components/header/header.component.ts - 76 + 81 apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/about-page.component.ts - 73 + 74 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -10465,12 +10817,16 @@ apps/client/src/app/pages/landing/landing-page.component.ts - 25 + 26 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 22 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 26 @@ -10527,6 +10883,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 26 @@ -10643,6 +11003,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 26 @@ -10665,15 +11029,15 @@ politica-de-privacidade apps/client/src/app/app-routing.module.ts - 14 + 15 apps/client/src/app/app.component.ts - 52 + 53 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 @@ -10681,15 +11045,15 @@ licenca apps/client/src/app/app-routing.module.ts - 11 + 12 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 @@ -10697,19 +11061,19 @@ mercados apps/client/src/app/app-routing.module.ts - 12 + 13 apps/client/src/app/app.component.ts - 56 + 57 apps/client/src/app/components/header/header.component.ts - 73 + 78 apps/client/src/app/components/header/header.component.ts - 78 + 83 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -10720,7 +11084,7 @@ 16 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 14 @@ -10729,23 +11093,23 @@ precos apps/client/src/app/app-routing.module.ts - 13 + 14 apps/client/src/app/app.component.ts - 57 + 58 apps/client/src/app/components/header/header.component.ts - 74 + 79 apps/client/src/app/components/header/header.component.ts - 79 + 84 apps/client/src/app/components/home-summary/home-summary.component.ts - 124 + 125 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts @@ -10753,11 +11117,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 37 + 38 apps/client/src/app/core/http-response.interceptor.ts - 80 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -10777,7 +11141,7 @@ apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 16 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -10785,10 +11149,14 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 16 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts 15 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 @@ -10801,35 +11169,35 @@ registo apps/client/src/app/app-routing.module.ts - 15 + 16 apps/client/src/app/app.component.ts - 58 + 59 apps/client/src/app/components/header/header.component.ts - 80 + 85 apps/client/src/app/core/auth.guard.ts - 53 + 54 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 16 apps/client/src/app/pages/features/features-page.component.ts - 17 + 18 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/pricing/pricing-page.component.ts - 35 + 36 @@ -10837,19 +11205,19 @@ recursos apps/client/src/app/app-routing.module.ts - 16 + 17 apps/client/src/app/app.component.ts - 59 + 60 apps/client/src/app/components/header/header.component.ts - 75 + 80 apps/client/src/app/components/header/header.component.ts - 81 + 86 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -10869,18 +11237,22 @@ apps/client/src/app/pages/features/features-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 - apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts 29 - apps/client/src/app/pages/resources/personal-finance-tools/products/altoo-page.component.ts + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts + 29 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/altoo-page.component.ts 29 @@ -10931,6 +11303,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 29 @@ -11047,6 +11423,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 29 @@ -11065,7 +11445,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 17 + 18 @@ -11089,7 +11469,7 @@ Open Source Alternative to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html - 35 + 32 @@ -11097,7 +11477,7 @@ Open Source Alternative to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 25 + 26 @@ -11291,6 +11671,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -11483,6 +11875,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -11675,6 +12079,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -11867,13 +12283,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + open-source-alternative-to open-source-alternative-to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts @@ -12071,6 +12499,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 204 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + Ready to take your investments to the next level? @@ -12263,6 +12703,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 217 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + Get Started @@ -12455,25 +12907,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 226 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + Switzerland Switzerland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 72 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 90 + 102 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 506 + 530 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 548 + 580 @@ -12481,19 +12945,19 @@ Global apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 70 + 73 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 317 + 341 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 438 + 462 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 549 + 581 @@ -12501,83 +12965,87 @@ United States apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 81 + 93 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 149 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 159 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 189 + 201 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 198 + 210 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 208 + 220 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 218 + 232 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 270 + 242 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 294 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 316 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 328 + 327 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 330 + 352 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 340 + 354 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 405 + 364 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 415 + 429 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 425 + 439 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 494 + 449 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 517 + 518 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 537 + 541 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 559 + 569 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 591 @@ -12585,7 +13053,7 @@ Belgium apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 167 + 179 @@ -12593,31 +13061,31 @@ Germany apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 128 + 140 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 178 + 190 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 250 + 274 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 260 + 284 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 305 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 315 + 339 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 361 + 385 @@ -12625,7 +13093,7 @@ Austria apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 238 + 262 @@ -12633,7 +13101,7 @@ Italy apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 372 + 396 @@ -12641,7 +13109,7 @@ Netherlands apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 382 + 406 @@ -12649,7 +13117,7 @@ Thailand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 394 + 418 @@ -12657,7 +13125,7 @@ New Zealand apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 436 + 460 @@ -12665,11 +13133,11 @@ Czech Republic apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 447 + 471 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 484 + 508 @@ -12713,7 +13181,7 @@ Choose or drop a file here apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 85 + 81 @@ -12745,7 +13213,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 197 @@ -12761,7 +13229,7 @@ Interest apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 280 + 294 @@ -12785,7 +13253,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 78 + 79 @@ -12809,15 +13277,15 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 109 + 121 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 458 + 482 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 474 + 498 @@ -12825,7 +13293,7 @@ Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. apps/client/src/app/pages/portfolio/fire/fire-page.html - 100 + 108 @@ -12833,7 +13301,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 132 @@ -12841,7 +13309,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 145 @@ -12861,7 +13329,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 219 + 226 @@ -12893,7 +13361,7 @@ To apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 29 + 28 @@ -12901,7 +13369,7 @@ Transfer apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 66 + 64 @@ -12909,7 +13377,7 @@ Finland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 466 + 490 @@ -12917,11 +13385,11 @@ Membership apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/user-account/user-account-page.component.ts - 39 + 40 @@ -12929,11 +13397,11 @@ Access apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/user-account/user-account-page.component.ts - 45 + 46 @@ -12941,7 +13409,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 89 + 126 @@ -12969,7 +13437,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 184 + 185 @@ -13001,7 +13469,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 63 + 65 @@ -13203,13 +13671,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 48 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + Canada Canada apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 529 + 561 @@ -13233,7 +13713,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 305 + 306 @@ -13241,7 +13721,7 @@ Poland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 119 + 131 @@ -13249,7 +13729,7 @@ South Africa apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 227 + 251 @@ -13281,7 +13761,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 205 + 224 @@ -13289,7 +13769,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 159 + 166 @@ -13305,7 +13785,7 @@ 200-Day Trend libs/ui/src/lib/benchmark/benchmark.component.html - 39 + 40 @@ -13313,7 +13793,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 88 + 109 @@ -13507,6 +13987,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 190 @@ -13887,6 +14391,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 @@ -14081,7 +14609,335 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 56 + 57 + + + + is an invalid currency! + is an invalid currency! + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 129 + + + + If a translation is missing, kindly support us in extending it here. + If a translation is missing, kindly support us in extending it here. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 53 + + + + The current market price is + The current market price is + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 318 + + + + Test + Test + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 259 + + + + Date Range + Date Range + + libs/ui/src/lib/assistant/assistant.html + 93 + + + + Permission + Permission + + apps/client/src/app/components/access-table/access-table.component.html + 17 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 33 + + + + Restricted view + Restricted view + + apps/client/src/app/components/access-table/access-table.component.html + 25 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 35 + + + + Oops! Could not grant access. + Oops! Could not grant access. + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts + 80 + + + + Private + Private + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 + + + + Job Queue + Job Queue + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 25 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 42 + + + + Market data is delayed for + Market data is delayed for + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts + 80 + + + + Investment + Investment + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 46 + + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 60 + + + + Absolute Asset Performance + Absolute Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Asset Performance + Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 42 + + + + Absolute Currency Performance + Absolute Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 57 + + + + Currency Performance + Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 72 + + + + Absolute Net Performance + Absolute Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 88 + + + + Net Performance + Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 103 + + + + Week to date + Week to date + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + WTD + WTD + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + Month to date + Month to date + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + MTD + MTD + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + Year to date + Year to date + + libs/ui/src/lib/assistant/assistant.component.ts + 109 + + + + View + View + + apps/client/src/app/components/access-table/access-table.component.html + 22 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + + + + Oops! A data provider is experiencing the hiccups. + Oops! A data provider is experiencing the hiccups. + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html + 8 + + + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 65 + + + + Reset Filters + Reset Filters + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + year + year + + libs/ui/src/lib/assistant/assistant.component.ts + 112 + + + + years + years + + libs/ui/src/lib/assistant/assistant.component.ts + 114 + + + + Asset Classes + Asset Classes + + libs/ui/src/lib/assistant/assistant.html + 138 + + + + Apply Filters + Apply Filters + + libs/ui/src/lib/assistant/assistant.html + 165 + + + + Data Gathering + Data Gathering + + apps/client/src/app/components/admin-overview/admin-overview.html + 132 + + + + General + General + + apps/client/src/app/pages/faq/faq-page.component.ts + 36 + + + + Cloud + Cloud + + apps/client/src/app/pages/faq/faq-page.component.ts + 41 + + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + + Self-Hosting + Self-Hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 47 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + + self-hosting + self-hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 + + + + FAQ + FAQ + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 diff --git a/apps/client/src/locales/messages.tr.xlf b/apps/client/src/locales/messages.tr.xlf index 33f91edd1..e32e28188 100644 --- a/apps/client/src/locales/messages.tr.xlf +++ b/apps/client/src/locales/messages.tr.xlf @@ -6,51 +6,51 @@ hakkinda apps/client/src/app/app-routing.module.ts - 8 + 9 apps/client/src/app/app.component.ts - 47 + 48 apps/client/src/app/app.component.ts - 48 + 49 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/app.component.ts - 51 + 52 apps/client/src/app/components/header/header.component.ts - 71 + 76 apps/client/src/app/components/header/header.component.ts - 76 + 81 apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/about-page.component.ts - 73 + 74 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -74,12 +74,16 @@ apps/client/src/app/pages/landing/landing-page.component.ts - 25 + 26 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 22 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 26 @@ -136,6 +140,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 26 @@ -252,6 +260,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 26 @@ -274,15 +286,27 @@ sss apps/client/src/app/app-routing.module.ts - 9 + 10 apps/client/src/app/app.component.ts - 54 + 55 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 37 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 42 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 @@ -290,27 +314,27 @@ oezellikler apps/client/src/app/app-routing.module.ts - 10 + 11 apps/client/src/app/app.component.ts - 55 + 56 apps/client/src/app/components/header/header.component.ts - 72 + 77 apps/client/src/app/components/header/header.component.ts - 77 + 82 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -330,19 +354,23 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts 14 - apps/client/src/app/pages/faq/faq-page.component.ts - 13 + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 14 apps/client/src/app/pages/pricing/pricing-page.component.ts - 34 + 35 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 27 apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts @@ -400,6 +428,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 27 @@ -516,6 +548,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 27 @@ -538,15 +574,15 @@ lisans apps/client/src/app/app-routing.module.ts - 11 + 12 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 @@ -554,19 +590,19 @@ piyasalar apps/client/src/app/app-routing.module.ts - 12 + 13 apps/client/src/app/app.component.ts - 56 + 57 apps/client/src/app/components/header/header.component.ts - 73 + 78 apps/client/src/app/components/header/header.component.ts - 78 + 83 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -577,7 +613,7 @@ 16 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 14 @@ -586,23 +622,23 @@ fiyatlandirma apps/client/src/app/app-routing.module.ts - 13 + 14 apps/client/src/app/app.component.ts - 57 + 58 apps/client/src/app/components/header/header.component.ts - 74 + 79 apps/client/src/app/components/header/header.component.ts - 79 + 84 apps/client/src/app/components/home-summary/home-summary.component.ts - 124 + 125 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts @@ -610,11 +646,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 37 + 38 apps/client/src/app/core/http-response.interceptor.ts - 80 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -634,7 +670,7 @@ apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 16 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -642,10 +678,14 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 16 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts 15 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 @@ -658,15 +698,15 @@ gizlilik-politikasi apps/client/src/app/app-routing.module.ts - 14 + 15 apps/client/src/app/app.component.ts - 52 + 53 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 @@ -674,35 +714,35 @@ kayit-ol apps/client/src/app/app-routing.module.ts - 15 + 16 apps/client/src/app/app.component.ts - 58 + 59 apps/client/src/app/components/header/header.component.ts - 80 + 85 apps/client/src/app/core/auth.guard.ts - 53 + 54 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 16 apps/client/src/app/pages/features/features-page.component.ts - 17 + 18 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/pricing/pricing-page.component.ts - 35 + 36 @@ -710,19 +750,19 @@ kaynaklar apps/client/src/app/app-routing.module.ts - 16 + 17 apps/client/src/app/app.component.ts - 59 + 60 apps/client/src/app/components/header/header.component.ts - 75 + 80 apps/client/src/app/components/header/header.component.ts - 81 + 86 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -742,12 +782,16 @@ apps/client/src/app/pages/features/features-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 29 @@ -804,6 +848,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 29 @@ -920,6 +968,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 29 @@ -938,7 +990,7 @@ apps/client/src/app/pages/resources/resources-page.component.ts - 17 + 18 @@ -958,7 +1010,7 @@ apps/client/src/app/components/header/header.component.html - 348 + 381 apps/client/src/app/components/home-market/home-market.html @@ -978,11 +1030,11 @@ apps/client/src/app/components/header/header.component.html - 79 + 80 apps/client/src/app/components/header/header.component.html - 251 + 284 apps/client/src/app/pages/resources/resources-page.html @@ -998,11 +1050,11 @@ apps/client/src/app/components/header/header.component.html - 110 + 111 apps/client/src/app/components/header/header.component.html - 319 + 352 @@ -1114,7 +1166,7 @@ apps/client/src/app/components/header/header.component.html - 306 + 339 apps/client/src/app/pages/features/features-page.html @@ -1150,15 +1202,27 @@ apps/client/src/app/components/header/header.component.html - 97 + 98 apps/client/src/app/components/header/header.component.html - 263 + 296 apps/client/src/app/components/header/header.component.html - 332 + 365 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -1370,35 +1434,35 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 62 + 74 apps/client/src/app/components/user-account-settings/user-account-settings.html - 66 + 78 apps/client/src/app/components/user-account-settings/user-account-settings.html - 70 + 82 apps/client/src/app/components/user-account-settings/user-account-settings.html - 74 + 86 apps/client/src/app/components/user-account-settings/user-account-settings.html - 78 + 90 apps/client/src/app/components/user-account-settings/user-account-settings.html - 82 + 94 apps/client/src/app/components/user-account-settings/user-account-settings.html - 86 + 98 apps/client/src/app/pages/features/features-page.html - 260 + 256 @@ -1406,7 +1470,7 @@ Alım satımda kayıp riski büyük boyutta olabilir. Kısa vadede ihtiyaç duyabileceğiniz parayla yatırım yapmak tavsiye edilmez. apps/client/src/app/app.component.html - 182 + 179 @@ -1432,10 +1496,6 @@ Type Tip - - apps/client/src/app/components/access-table/access-table.component.html - 17 - apps/client/src/app/components/admin-jobs/admin-jobs.html 28 @@ -1450,7 +1510,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 164 + 159 @@ -1458,7 +1518,7 @@ Ayrıntılar apps/client/src/app/components/access-table/access-table.component.html - 27 + 32 @@ -1466,7 +1526,7 @@ Geri Al apps/client/src/app/components/access-table/access-table.component.html - 54 + 59 @@ -1474,7 +1534,7 @@ Bu erişim iznini geri almayı gerçekten istiyor musunuz? apps/client/src/app/components/access-table/access-table.component.ts - 49 + 50 @@ -1490,7 +1550,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 31 + 34 @@ -1514,7 +1574,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 45 + 48 @@ -1526,7 +1586,7 @@ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 73 + 87 apps/client/src/app/components/accounts-table/accounts-table.component.html @@ -1546,7 +1606,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 253 apps/client/src/app/pages/portfolio/activities/activities-page.html @@ -1566,7 +1626,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 182 + 180 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1586,15 +1646,15 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 12 + 15 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 114 + 113 libs/ui/src/lib/activities-table/activities-table.component.html - 179 + 136 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1608,10 +1668,6 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html 50 - - libs/ui/src/lib/activities-table/activities-table.component.html - 159 - Currency @@ -1624,17 +1680,21 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 91 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 186 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 22 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 120 + 119 libs/ui/src/lib/activities-table/activities-table.component.html - 209 + 274 @@ -1650,7 +1710,11 @@ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 47 + 45 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 167 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1658,11 +1722,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 169 + 170 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 171 + 223 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1676,21 +1740,17 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 226 - - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 227 - libs/ui/src/lib/account-balances/account-balances.component.html 20 libs/ui/src/lib/activities-table/activities-table.component.html - 321 + 255 libs/ui/src/lib/activities-table/activities-table.component.html - 356 + 291 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1710,7 +1770,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 80 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1722,7 +1782,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 507 + 428 @@ -1738,11 +1798,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 99 + 90 apps/client/src/app/components/admin-overview/admin-overview.html - 201 + 197 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1754,11 +1814,11 @@ libs/ui/src/lib/account-balances/account-balances.component.html - 50 + 51 libs/ui/src/lib/activities-table/activities-table.component.html - 529 + 450 @@ -1766,7 +1826,7 @@ Bu hesabı silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 83 + 99 @@ -1802,7 +1862,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 130 + 129 @@ -1842,7 +1902,7 @@ İşleri Sil apps/client/src/app/components/admin-jobs/admin-jobs.html - 135 + 126 @@ -1866,7 +1926,7 @@ Veri Gör apps/client/src/app/components/admin-jobs/admin-jobs.html - 150 + 141 @@ -1874,7 +1934,7 @@ Hata İzini Görüntüle apps/client/src/app/components/admin-jobs/admin-jobs.html - 157 + 148 @@ -1882,7 +1942,7 @@ İşleri Sil apps/client/src/app/components/admin-jobs/admin-jobs.html - 160 + 151 @@ -1902,7 +1962,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 136 + 135 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1910,7 +1970,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 152 + 168 @@ -1934,7 +1994,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 260 + 301 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1950,23 +2010,23 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 30 + 58 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 96 + 101 apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 59 + 57 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 362 + 361 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 37 + 38 @@ -1978,7 +2038,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 267 + 308 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1994,15 +2054,15 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 37 + 65 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 103 + 108 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 368 @@ -2010,7 +2070,7 @@ Para Birimleri apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 66 + 67 @@ -2018,7 +2078,7 @@ Ülkesi Olmayan ETF'ler apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 71 + 72 @@ -2026,7 +2086,7 @@ Sektörü Olmayan ETF'ler apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 76 + 77 @@ -2034,7 +2094,7 @@ Filtrele... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 281 + 282 @@ -2050,7 +2110,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 195 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2058,7 +2118,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 291 + 290 @@ -2074,7 +2134,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 201 + 208 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2082,7 +2142,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 307 + 306 @@ -2190,11 +2250,11 @@ Sektör apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 143 + 142 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 198 + 197 @@ -2202,7 +2262,7 @@ Ülke apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 152 + 151 apps/client/src/app/components/admin-users/admin-users.html @@ -2210,7 +2270,7 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 210 + 206 @@ -2218,11 +2278,15 @@ Sektörler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 158 + 156 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 266 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 216 + 211 apps/client/src/app/pages/public/public-page.html @@ -2234,11 +2298,15 @@ Ülkeler apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 166 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 277 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 228 + 223 @@ -2246,7 +2314,7 @@ Sembol Eşleştirme apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 225 + 232 @@ -2254,7 +2322,7 @@ Veri Toplayıcı Yapılandırması apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 243 @@ -2262,15 +2330,15 @@ Not apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 247 + 288 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 73 + 76 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 275 @@ -2290,7 +2358,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 102 + 101 @@ -2298,7 +2366,7 @@ Lütfen bir para birimi giriniz: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 119 + 122 @@ -2306,7 +2374,7 @@ Önbelleği temizlemeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 133 + 140 @@ -2314,7 +2382,7 @@ Bu para birimini silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 146 + 153 @@ -2322,7 +2390,7 @@ Önbelleği temizlemeyi gerçekten istiyor musunuz apps/client/src/app/components/admin-overview/admin-overview.component.ts - 169 + 183 @@ -2330,7 +2398,7 @@ Lütfen sistem mesajınızı belirleyin: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 200 + 214 @@ -2370,7 +2438,7 @@ Para Birimi Ekle apps/client/src/app/components/admin-overview/admin-overview.html - 113 + 104 @@ -2382,11 +2450,15 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 + 295 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 320 + 319 + + + libs/ui/src/lib/assistant/assistant.html + 127 @@ -2394,7 +2466,7 @@ Kullanıcı Kaydı apps/client/src/app/components/admin-overview/admin-overview.html - 119 + 110 @@ -2402,7 +2474,7 @@ Salt okunur mod apps/client/src/app/components/admin-overview/admin-overview.html - 130 + 121 @@ -2410,7 +2482,7 @@ Sistem Mesajı apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 143 @@ -2418,7 +2490,7 @@ Mesaj Belirle apps/client/src/app/components/admin-overview/admin-overview.html - 164 + 163 @@ -2426,7 +2498,7 @@ Kupon apps/client/src/app/components/admin-overview/admin-overview.html - 172 + 171 @@ -2434,7 +2506,7 @@ Ekle apps/client/src/app/components/admin-overview/admin-overview.html - 233 + 229 @@ -2442,7 +2514,7 @@ Genel Ayarlar apps/client/src/app/components/admin-overview/admin-overview.html - 240 + 236 @@ -2450,7 +2522,7 @@ Önbelleği temizle apps/client/src/app/components/admin-overview/admin-overview.html - 244 + 240 @@ -2486,23 +2558,31 @@ apps/client/src/app/components/header/header.component.html - 53 + 54 apps/client/src/app/components/header/header.component.html - 224 + 257 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 276 apps/client/src/app/pages/accounts/accounts-page.html 4 + + libs/ui/src/lib/assistant/assistant.html + 107 + Do you really want to delete this platform? Bu platformu silmeyi gerçekten istiyor musunuz? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 78 + 79 @@ -2534,7 +2614,7 @@ Bu kullanıcıyı silmeyi gerçekten istiyor musunu? apps/client/src/app/components/admin-users/admin-users.component.ts - 112 + 113 @@ -2542,7 +2622,7 @@ Kullanıcı apps/client/src/app/components/header/header.component.html - 192 + 225 @@ -2614,7 +2694,7 @@ Karşılaştırma Ölçütlerini Yönet apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html - 36 + 38 @@ -2626,7 +2706,7 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 + 48 @@ -2650,11 +2730,11 @@ Genel Bakış apps/client/src/app/components/header/header.component.html - 27 + 28 apps/client/src/app/components/header/header.component.html - 206 + 239 @@ -2662,11 +2742,11 @@ Portföy apps/client/src/app/components/header/header.component.html - 40 + 41 apps/client/src/app/components/header/header.component.html - 216 + 249 @@ -2674,11 +2754,11 @@ Yönetici Kontrolü apps/client/src/app/components/header/header.component.html - 66 + 67 apps/client/src/app/components/header/header.component.html - 240 + 273 @@ -2686,7 +2766,7 @@ Ben apps/client/src/app/components/header/header.component.html - 173 + 206 @@ -2694,7 +2774,7 @@ Ghostfolio'm apps/client/src/app/components/header/header.component.html - 231 + 264 @@ -2702,7 +2782,7 @@ Ghostfolio Hakkında apps/client/src/app/components/header/header.component.html - 271 + 304 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -2714,7 +2794,7 @@ Giriş apps/client/src/app/components/header/header.component.html - 361 + 394 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2726,7 +2806,7 @@ Haydi Başlayalım apps/client/src/app/components/header/header.component.html - 373 + 406 @@ -2734,11 +2814,11 @@ Giriş apps/client/src/app/components/header/header.component.ts - 169 + 226 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts - 6 + 7 @@ -2746,7 +2826,7 @@ Hay Allah! Güvenlik anahtarı yanlış. apps/client/src/app/components/header/header.component.ts - 183 + 240 @@ -2754,11 +2834,11 @@ İşlemleri Yönet apps/client/src/app/components/home-holdings/home-holdings.html - 30 + 22 apps/client/src/app/pages/portfolio/holdings/holdings-page.html - 31 + 23 @@ -2766,7 +2846,7 @@ Korku apps/client/src/app/components/home-market/home-market.component.ts - 24 + 25 libs/ui/src/lib/i18n.ts @@ -2778,7 +2858,7 @@ Açgözlülük apps/client/src/app/components/home-market/home-market.component.ts - 25 + 26 libs/ui/src/lib/i18n.ts @@ -2798,7 +2878,7 @@ Ghostfolio'ya Hoşgeldiniz. apps/client/src/app/components/home-overview/home-overview.html - 9 + 7 @@ -2806,7 +2886,7 @@ Kişisel finansal yönetiminizi ele almaya hazır mısınız? apps/client/src/app/components/home-overview/home-overview.html - 10 + 8 @@ -2814,7 +2894,7 @@ Hesaplarınızı kurun apps/client/src/app/components/home-overview/home-overview.html - 17 + 15 @@ -2822,7 +2902,7 @@ Banka ve yatırım hesaplarınızı ekleyerek kapsamlı finansal durumunuzu görün. apps/client/src/app/components/home-overview/home-overview.html - 19 + 17 @@ -2830,7 +2910,7 @@ İşlemlerinizi kaydedin apps/client/src/app/components/home-overview/home-overview.html - 26 + 24 @@ -2838,7 +2918,7 @@ Yatırım işlemlerinizi kaydederek portföyünüzü güncel tutun. apps/client/src/app/components/home-overview/home-overview.html - 28 + 26 @@ -2846,7 +2926,7 @@ Portföyünüzü izleyin ve analiz edin. apps/client/src/app/components/home-overview/home-overview.html - 35 + 33 @@ -2854,7 +2934,7 @@ Kapsamlı analiz ve içgörülerle ilerleme durumunuzu gerçek zamanlı olarak takip edin. apps/client/src/app/components/home-overview/home-overview.html - 37 + 35 @@ -2862,7 +2942,7 @@ Hesaplarınızı kurunuz apps/client/src/app/components/home-overview/home-overview.html - 50 + 48 @@ -2870,7 +2950,7 @@ İşlem ekle. apps/client/src/app/components/home-overview/home-overview.html - 58 + 56 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2882,11 +2962,11 @@ Bu özellik için abonelik gereklidir. apps/client/src/app/components/home-summary/home-summary.component.ts - 112 + 113 apps/client/src/app/core/http-response.interceptor.ts - 67 + 68 @@ -2894,11 +2974,11 @@ Aboneliğinizi Yükseltiniz apps/client/src/app/components/home-summary/home-summary.component.ts - 114 + 115 apps/client/src/app/core/http-response.interceptor.ts - 69 + 70 @@ -2914,7 +2994,7 @@ Toplam Tutar apps/client/src/app/components/investment-chart/investment-chart.component.ts - 182 + 190 @@ -2922,7 +3002,7 @@ Tasarruf Oranı apps/client/src/app/components/investment-chart/investment-chart.component.ts - 248 + 262 @@ -2946,11 +3026,11 @@ apps/client/src/app/pages/landing/landing-page.html - 435 + 428 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 98 + 94 apps/client/src/app/pages/register/register-page.html @@ -2958,7 +3038,7 @@ apps/client/src/app/pages/webauthn/webauthn-page.html - 28 + 29 @@ -3034,10 +3114,10 @@ Brüt Performans apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 72 + 73 - + @@ -3053,7 +3133,7 @@ {VAR_PLURAL, plural, =1 {transaction} other {transactions}} apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 13 + 14 @@ -3061,7 +3141,7 @@ Toplam Net Performans apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 103 + 110 @@ -3069,7 +3149,7 @@ Net Performans apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 115 + 123 @@ -3077,7 +3157,7 @@ Toplam Varlıklar apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 131 + 145 @@ -3085,7 +3165,7 @@ Yatırım Varlıkları apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 144 + 158 @@ -3093,7 +3173,7 @@ Acil Durum Yedeği apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 156 + 170 apps/client/src/app/pages/features/features-page.html @@ -3101,7 +3181,7 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 119 @@ -3109,7 +3189,7 @@ Nakit apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 177 + 191 @@ -3117,7 +3197,7 @@ Varlıklar apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 190 + 204 @@ -3125,7 +3205,7 @@ Alım Limiti apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 203 + 217 @@ -3133,7 +3213,7 @@ Analize Dahil Edilmemiştir. apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 215 + 229 @@ -3141,7 +3221,7 @@ Yükümlülükler apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 230 + 244 apps/client/src/app/pages/features/features-page.html @@ -3153,7 +3233,7 @@ Toplam Varlık apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 250 + 264 @@ -3161,7 +3241,7 @@ Yıllıklandırılmış Performans apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 262 + 276 @@ -3169,7 +3249,7 @@ Temettü apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 292 + 306 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -3181,11 +3261,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 166 + 165 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 222 + 221 @@ -3193,7 +3273,7 @@ Lütfen acil durum yedeği meblağını giriniz: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 52 + 53 @@ -3237,11 +3317,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 152 libs/ui/src/lib/activities-table/activities-table.component.html - 230 + 184 @@ -3249,7 +3329,7 @@ Komisyon apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 87 + 94 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -3257,31 +3337,15 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 - - - - First Buy Date - İlk Alım Tarihi - - apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html 158 - - Transactions - İşlemler - - apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 150 - - Report Data Glitch Rapor Veri Sorunu apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 287 + 312 @@ -3289,15 +3353,15 @@ Tüm ayrıntılara hakim olmak isteyen iddialı bir yatırımcı mısınız? apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 15 + 12 Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience: - Bugün Ghostfolio Premium'a yükseltin ve yatırım deneyiminizi geliştirmek için ayrıcalıklı özelliklere erişim kazanın: + Bugün Ghostfolio Premium'a yükseltin ve yatırım deneyiminizi geliştirmek için ayrıcalıklı özelliklere erişim kazanın: apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 18 + 15 @@ -3305,15 +3369,15 @@ Portföy Özeti apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 25 + 22 apps/client/src/app/pages/pricing/pricing-page.html - 67 + 55 apps/client/src/app/pages/pricing/pricing-page.html - 256 + 199 @@ -3321,19 +3385,19 @@ Portföy Dağılımı apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 29 + 26 apps/client/src/app/pages/features/features-page.html - 161 + 160 apps/client/src/app/pages/pricing/pricing-page.html - 74 + 59 apps/client/src/app/pages/pricing/pricing-page.html - 263 + 203 @@ -3341,15 +3405,15 @@ Performans Ölçütleri apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 33 + 30 apps/client/src/app/pages/pricing/pricing-page.html - 81 + 63 apps/client/src/app/pages/pricing/pricing-page.html - 270 + 207 @@ -3357,15 +3421,15 @@ FIRE Hesaplayıcı apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 37 + 34 apps/client/src/app/pages/pricing/pricing-page.html - 88 + 67 apps/client/src/app/pages/pricing/pricing-page.html - 277 + 211 @@ -3373,11 +3437,11 @@ Profesyonel Veri Sağlayıcı apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 41 + 38 apps/client/src/app/pages/pricing/pricing-page.html - 298 + 226 @@ -3385,15 +3449,15 @@ ve daha fazla Özellik... apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 45 + 42 apps/client/src/app/pages/pricing/pricing-page.html - 110 + 83 apps/client/src/app/pages/pricing/pricing-page.html - 306 + 231 @@ -3401,7 +3465,7 @@ Mali durumunuzu etkili bir şekilde yönetecek ve kişisel yatırım stratejinizi geliştirecek Araçları edinin. apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 48 + 45 @@ -3409,19 +3473,27 @@ Geç apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 55 + 52 Upgrade Plan - <Üyeliğinizi Yükseltin> + Üyeliğinizi Yükseltin + + apps/client/src/app/components/header/header.component.html + 177 + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 62 + 59 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 18 apps/client/src/app/pages/pricing/pricing-page.html - 343 + 265 @@ -3429,7 +3501,11 @@ Bugün apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 + + + libs/ui/src/lib/assistant/assistant.component.ts + 99 @@ -3437,7 +3513,11 @@ YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 + + + libs/ui/src/lib/assistant/assistant.component.ts + 109 @@ -3445,7 +3525,11 @@ 1Y apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 + + + libs/ui/src/lib/assistant/assistant.component.ts + 112 @@ -3453,7 +3537,11 @@ 5Y apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 + + + libs/ui/src/lib/assistant/assistant.component.ts + 114 @@ -3461,7 +3549,11 @@ Maks. apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 + + + libs/ui/src/lib/assistant/assistant.component.ts + 117 @@ -3469,7 +3561,7 @@ Bu özellik şu an için mevcut değil. apps/client/src/app/core/http-response.interceptor.ts - 59 + 60 @@ -3477,15 +3569,15 @@ Daha sonra tekrar deneyiniz. apps/client/src/app/core/http-response.interceptor.ts - 61 + 62 apps/client/src/app/core/http-response.interceptor.ts - 88 + 89 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 131 + 138 @@ -3493,11 +3585,11 @@ Hay Allah! Bir şeyler yanlış gitti. apps/client/src/app/core/http-response.interceptor.ts - 86 + 87 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 129 + 136 @@ -3505,11 +3597,11 @@ Tamam apps/client/src/app/core/http-response.interceptor.ts - 89 + 90 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + 139 @@ -3517,15 +3609,15 @@ Hakkında apps/client/src/app/pages/about/about-page-routing.module.ts - 52 + 51 apps/client/src/app/pages/about/about-page.component.ts - 43 + 44 apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts - 12 + 13 @@ -3533,11 +3625,11 @@ Değişiklik Günlüğü apps/client/src/app/pages/about/about-page.component.ts - 48 + 49 apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts - 12 + 13 @@ -3545,11 +3637,11 @@ Lisans apps/client/src/app/pages/about/about-page.component.ts - 53 + 54 apps/client/src/app/pages/about/license/license-page-routing.module.ts - 12 + 13 @@ -3557,11 +3649,11 @@ Gizlilik Politikası apps/client/src/app/pages/about/about-page.component.ts - 61 + 62 apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts - 12 + 13 @@ -3585,7 +3677,7 @@ Ziyaret et apps/client/src/app/pages/about/oss-friends/oss-friends-page.html - 28 + 26 @@ -3593,7 +3685,7 @@ Hesaplar apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 12 + 13 @@ -3601,7 +3693,7 @@ Hesabı Güncelle apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + 8 @@ -3609,7 +3701,7 @@ Hesap ekle apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 8 + 10 @@ -3617,7 +3709,7 @@ Hesap Kimliği apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 90 + 94 @@ -3625,19 +3717,7 @@ Yönetici Denetimleri apps/client/src/app/pages/admin/admin-page-routing.module.ts - 19 - - - - Jobs - İşler - - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 21 - - - apps/client/src/app/pages/admin/admin-page.component.ts - 41 + 20 @@ -3645,11 +3725,11 @@ Piyasa Verileri apps/client/src/app/pages/admin/admin-page-routing.module.ts - 25 + 30 apps/client/src/app/pages/admin/admin-page.component.ts - 36 + 37 @@ -3657,19 +3737,19 @@ Ayarlar apps/client/src/app/pages/admin/admin-page-routing.module.ts - 30 + 35 apps/client/src/app/pages/admin/admin-page.component.ts - 31 + 32 apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 17 + 18 apps/client/src/app/pages/user-account/user-account-page.component.ts - 34 + 35 @@ -3677,11 +3757,11 @@ Kullanıcılar apps/client/src/app/pages/admin/admin-page-routing.module.ts - 35 + 40 apps/client/src/app/pages/admin/admin-page.component.ts - 46 + 47 @@ -3689,19 +3769,19 @@ Özet apps/client/src/app/pages/admin/admin-page.component.ts - 26 + 27 apps/client/src/app/pages/home/home-page.component.ts - 33 + 34 apps/client/src/app/pages/zen/zen-page-routing.module.ts - 18 + 19 apps/client/src/app/pages/zen/zen-page.component.ts - 33 + 34 @@ -3709,7 +3789,7 @@ Blog apps/client/src/app/pages/blog/blog-page-routing.module.ts - 12 + 13 @@ -3725,7 +3805,7 @@ Oturum açmış olduğunuz için demo hesabına erişemezsiniz. apps/client/src/app/pages/demo/demo-page.component.ts - 31 + 32 @@ -3733,14 +3813,26 @@ Sıkça Sorulan Sorular (SSS) apps/client/src/app/pages/faq/faq-page-routing.module.ts - 12 + 34 + + + apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts + 13 Frequently Asked Questions (FAQ) Sıkça Sorulan Sorular (SSS) - apps/client/src/app/pages/faq/faq-page.html + apps/client/src/app/pages/faq/overview/faq-overview-page.html + 4 + + + apps/client/src/app/pages/faq/saas/saas-page.html + 4 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html 4 @@ -3749,12 +3841,12 @@ Özellikler apps/client/src/app/pages/features/features-page-routing.module.ts - 12 + 13 Check out the numerous features of Ghostfolio to manage your wealth - Varlığınızı yönetmek için Ghostfolio'nun pek çok özelliğini keşfedin + Varlığınızı yönetmek için Ghostfolio'nun pek çok özelliğini keşfedin apps/client/src/app/pages/features/features-page.html 6 @@ -3770,7 +3862,7 @@ ETFs - ETF'ler + ETF'ler apps/client/src/app/pages/features/features-page.html 25 @@ -3829,7 +3921,7 @@ Karanlık Mod apps/client/src/app/pages/features/features-page.html - 179 + 177 @@ -3837,11 +3929,11 @@ Zen Modu apps/client/src/app/components/user-account-settings/user-account-settings.html - 141 + 153 apps/client/src/app/pages/features/features-page.html - 192 + 190 @@ -3849,7 +3941,7 @@ Piyasa Modu apps/client/src/app/pages/features/features-page.html - 209 + 205 @@ -3857,7 +3949,7 @@ Statik Analiz apps/client/src/app/pages/features/features-page.html - 227 + 224 @@ -3865,7 +3957,7 @@ Çoklu Dil apps/client/src/app/pages/features/features-page.html - 245 + 241 @@ -3873,7 +3965,7 @@ Açık Kaynak Yazılım apps/client/src/app/pages/features/features-page.html - 279 + 275 @@ -3881,7 +3973,7 @@ Başla apps/client/src/app/pages/features/features-page.html - 299 + 296 apps/client/src/app/pages/public/public-page.html @@ -3893,23 +3985,23 @@ Varlıklar apps/client/src/app/pages/home/home-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/home/home-page.component.ts - 38 + 39 apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 38 + 39 apps/client/src/app/pages/zen/zen-page.component.ts - 38 + 39 @@ -3917,11 +4009,11 @@ Özet apps/client/src/app/pages/home/home-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/home/home-page.component.ts - 43 + 44 @@ -3929,15 +4021,15 @@ Piyasalar apps/client/src/app/pages/home/home-page-routing.module.ts - 32 + 33 apps/client/src/app/pages/home/home-page.component.ts - 48 + 49 apps/client/src/app/pages/markets/markets-page-routing.module.ts - 12 + 13 @@ -3965,7 +4057,7 @@ apps/client/src/app/pages/landing/landing-page.html - 431 + 424 @@ -3985,7 +4077,7 @@ apps/client/src/app/pages/landing/landing-page.html - 436 + 429 @@ -3998,7 +4090,7 @@ Stars on GitHub - GitHub'daki Beğeniler + GitHub'daki Beğeniler apps/client/src/app/pages/landing/landing-page.html 93 @@ -4010,7 +4102,7 @@ Pulls on Docker Hub - Docker Hub'ta Çekmeler + Docker Hub'ta Çekmeler apps/client/src/app/pages/landing/landing-page.html 111 @@ -4038,7 +4130,7 @@ Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. - Ghostfolio, takip edilmeden hisse senetleri, ETF'ler veya kripto paraları izlemek isteyen yoğun insanlara güç verir. + Ghostfolio, takip edilmeden hisse senetleri, ETF'ler veya kripto paraları izlemek isteyen yoğun insanlara güç verir. apps/client/src/app/pages/landing/landing-page.html 225 @@ -4070,7 +4162,7 @@ Use Ghostfolio anonymously and own your financial data. - Ghostfolio'yu anonim olarak kullanın ve finansal verilerinize sahip çıkın. + Ghostfolio'yu anonim olarak kullanın ve finansal verilerinize sahip çıkın. apps/client/src/app/pages/landing/landing-page.html 249 @@ -4201,7 +4293,7 @@ Members from around the globe are using Ghostfolio Premium apps/client/src/app/pages/landing/landing-page.html - 358 + 354 @@ -4209,7 +4301,7 @@ How does Ghostfolio work? apps/client/src/app/pages/landing/landing-page.html - 373 + 366 @@ -4217,7 +4309,7 @@ Sadece 3 adımda başlayın apps/client/src/app/pages/landing/landing-page.html - 376 + 369 @@ -4225,7 +4317,7 @@ Anonim olarak kaydolun* apps/client/src/app/pages/landing/landing-page.html - 382 + 375 @@ -4233,7 +4325,7 @@ * e-posta adresi veya kredi kartı gerekmez apps/client/src/app/pages/landing/landing-page.html - 384 + 377 @@ -4241,7 +4333,7 @@ Herhangi bir geçmiş işleminizi ekleyin apps/client/src/app/pages/landing/landing-page.html - 395 + 388 @@ -4249,7 +4341,7 @@ Portföy bileşiminizle ilgili değerli bilgiler edinin apps/client/src/app/pages/landing/landing-page.html - 407 + 400 @@ -4257,7 +4349,7 @@ Are you ready? apps/client/src/app/pages/landing/landing-page.html - 419 + 412 @@ -4265,12 +4357,12 @@ Join now or check out the example account apps/client/src/app/pages/landing/landing-page.html - 420 + 413 At Ghostfolio, transparency is at the core of our values. We publish the source code as open source software (OSS) under the AGPL-3.0 license and we openly share aggregated key metrics of the platform’s operational status. - Ghostfolio'da şeffaflık, değerlerimizin temelinde yer alır. Kaynak kodunu açık kaynak yazılım (OSS) olarak AGPL-3.0 lisansı altında yayınlıyoruz ve platformun işletme durumunun toplu anahtar metriklerini açıkça paylaşıyoruz. + Ghostfolio'da şeffaflık, değerlerimizin temelinde yer alır. Kaynak kodunu açık kaynak yazılım (OSS) olarak AGPL-3.0 lisansı altında yayınlıyoruz ve platformun işletme durumunun toplu anahtar metriklerini açıkça paylaşıyoruz. apps/client/src/app/pages/open/open-page.html 6 @@ -4306,7 +4398,7 @@ Contributors on GitHub - GitHub'da Katkıda Bulunanlar + GitHub'da Katkıda Bulunanlar apps/client/src/app/pages/open/open-page.html 89 @@ -4325,11 +4417,11 @@ İşlemler apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 43 + 44 @@ -4337,7 +4429,7 @@ Tüm işlemlerinizi silmeyi gerçekten istiyor musunuz? apps/client/src/app/pages/portfolio/activities/activities-page.component.ts - 140 + 169 @@ -4350,7 +4442,7 @@ Stocks, ETFs, bonds, cryptocurrencies, commodities - Hisse senetleri, ETF'ler, tahviller, kripto paralar, emtialar + Hisse senetleri, ETF'ler, tahviller, kripto paralar, emtialar apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 21 @@ -4385,7 +4477,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 387 + 306 @@ -4393,7 +4485,7 @@ Nakit Bakiyesini Güncelle apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 94 + 93 @@ -4401,15 +4493,15 @@ Birim Fiyat apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 173 + 172 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 228 + 227 libs/ui/src/lib/activities-table/activities-table.component.html - 259 + 208 @@ -4417,7 +4509,7 @@ Hay Allah! Geçmiş döviz kuru alınamadı: apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 258 + 257 @@ -4425,15 +4517,15 @@ Komisyon apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 242 + 241 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + 266 libs/ui/src/lib/activities-table/activities-table.component.html - 288 + 232 @@ -4441,7 +4533,7 @@ İşlemleri İçe Aktar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 40 + 44 @@ -4449,7 +4541,7 @@ Temettüleri İçe Aktar apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 79 + 86 @@ -4457,7 +4549,7 @@ Veri içe aktarılıyor... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 113 + 120 @@ -4465,7 +4557,7 @@ İçe aktarma tamamlandı apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 121 + 128 @@ -4473,7 +4565,7 @@ Veri doğrulanıyor... apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 224 + 233 @@ -4513,7 +4605,7 @@ Aşağıdaki dosya formatları desteklenmektedir: apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 91 + 87 @@ -4521,7 +4613,7 @@ Temettü Seç apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + 110 @@ -4529,7 +4621,7 @@ İşlemleri Seç apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 117 + 113 @@ -4537,11 +4629,11 @@ Geri apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 141 + 140 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 178 + 176 @@ -4553,11 +4645,11 @@ apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 150 + 149 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 186 + 184 @@ -4565,27 +4657,11 @@ Dağılımlar apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 48 - - - - Filter by account or tag... - Hesaba veya etikete göre filtrele... - - apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts - 146 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 126 - - - apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts - 86 + 49 @@ -4601,7 +4677,7 @@ Net Değer Oranı apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 18 + 12 @@ -4609,7 +4685,7 @@ Platforma Göre apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 42 + 36 @@ -4617,7 +4693,7 @@ Para Birimine Göre apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 61 + 55 @@ -4625,7 +4701,7 @@ Varlık Sınıfına Göre apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 84 + 78 @@ -4633,7 +4709,7 @@ Varlığa Göre apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 107 + 101 @@ -4641,7 +4717,7 @@ Sektöre Göre apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 130 + 124 @@ -4649,7 +4725,7 @@ Kıtaya Göre apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 154 + 148 @@ -4657,7 +4733,7 @@ Piyasaya Göre apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 177 + 171 @@ -4665,7 +4741,7 @@ Bölgeler apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 201 + 195 apps/client/src/app/pages/public/public-page.html @@ -4677,7 +4753,7 @@ Gelişmiş Piyasalar apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 224 + 218 apps/client/src/app/pages/public/public-page.html @@ -4689,7 +4765,7 @@ Gelişmekte Olan Piyasalar apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 233 + 227 apps/client/src/app/pages/public/public-page.html @@ -4701,7 +4777,7 @@ Diğer Piyasalar apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 242 + 236 apps/client/src/app/pages/public/public-page.html @@ -4713,7 +4789,7 @@ Veri mevcut değil apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 254 + 248 apps/client/src/app/pages/public/public-page.html @@ -4725,7 +4801,7 @@ Hesaba Göre apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 266 + 260 @@ -4733,7 +4809,7 @@ ETF Sağlayıcısına Göre apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 286 + 280 @@ -4741,7 +4817,7 @@ Ülkeye Göre apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 309 + 303 @@ -4749,11 +4825,11 @@ Analiz apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 33 + 34 @@ -4761,7 +4837,7 @@ Temettü apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 43 + 42 libs/ui/src/lib/i18n.ts @@ -4771,14 +4847,6 @@ Deposit Para Yatırma - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 48 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 60 - libs/ui/src/lib/fire-calculator/fire-calculator.component.ts 331 @@ -4813,7 +4881,7 @@ Üst apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 40 + 128 @@ -4821,7 +4889,7 @@ Alt apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 86 + 174 @@ -4829,7 +4897,7 @@ Portföyün Gelişimi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 136 + 224 @@ -4837,7 +4905,7 @@ Yatırım Zaman Çizelgesi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 166 + 254 @@ -4845,7 +4913,7 @@ Güncel Seri apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 187 + 275 @@ -4853,7 +4921,7 @@ En Uzun Seri apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 196 + 284 @@ -4861,7 +4929,7 @@ Temettü Zaman Çizelgesi apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 223 + 312 @@ -4869,7 +4937,7 @@ FIRE apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 12 + 13 @@ -4893,20 +4961,16 @@ %4 Kuralı apps/client/src/app/pages/portfolio/fire/fire-page.html - 34 - - - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 57 + 38 Holdings Varlıklar + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 75 + apps/client/src/app/pages/portfolio/holdings/holdings-page.html 4 @@ -4925,7 +4989,7 @@ Fiyatlandırma apps/client/src/app/pages/pricing/pricing-page-routing.module.ts - 12 + 13 @@ -4938,7 +5002,7 @@ Our official Ghostfolio Premium cloud offering is the easiest way to get started. Due to the time it saves, this will be the best option for most people. Revenue is used to cover the costs of the hosting infrastructure and to fund ongoing development. - Resmi Ghostfolio Premium bulut teklifimiz bir başlangıç yapmanın en kolay yoludur. Zaman tasarrufu sağladığı için çoğu insan için en iyi seçenek olacaktır. Gelir, barındırma altyapısının maliyetlerini karşılamak ve süregiden geliştirme işlerini finanse etmek için kullanılmaktadır. + Resmi Ghostfolio Premium bulut teklifimiz bir başlangıç yapmanın en kolay yoludur. Zaman tasarrufu sağladığı için çoğu insan için en iyi seçenek olacaktır. Gelir, barındırma altyapısının maliyetlerini karşılamak ve süregiden geliştirme işlerini finanse etmek için kullanılmaktadır. apps/client/src/app/pages/pricing/pricing-page.html 6 @@ -4946,7 +5010,7 @@ If you prefer to run Ghostfolio on your own infrastructure, please find the source code and further instructions on GitHub. - Ghostfolio'yu kendi altyapınızda çalıştırmayı tercih ederseniz, lütfen kaynak kodunu ve daha fazla talimatı GitHub adresinde bulun. + Ghostfolio'yu kendi altyapınızda çalıştırmayı tercih ederseniz, lütfen kaynak kodunu ve daha fazla talimatı GitHub adresinde bulun. apps/client/src/app/pages/pricing/pricing-page.html 24 @@ -4954,7 +5018,7 @@ For tech-savvy investors who prefer to run Ghostfolio on their own infrastructure. - Kendi altyapılarında Ghostfolio'yu çalıştırmayı tercih eden teknolojiye hakim yatırımcılar için. + Kendi altyapılarında Ghostfolio'yu çalıştırmayı tercih eden teknolojiye hakim yatırımcılar için. apps/client/src/app/pages/pricing/pricing-page.html 36 @@ -4965,15 +5029,15 @@ Sınırsız İşlem apps/client/src/app/pages/pricing/pricing-page.html - 46 + 43 apps/client/src/app/pages/pricing/pricing-page.html - 159 + 126 apps/client/src/app/pages/pricing/pricing-page.html - 235 + 187 @@ -4981,15 +5045,15 @@ Kısıtsız Hesaplar apps/client/src/app/pages/pricing/pricing-page.html - 53 + 47 apps/client/src/app/pages/pricing/pricing-page.html - 166 + 130 apps/client/src/app/pages/pricing/pricing-page.html - 242 + 191 @@ -4997,15 +5061,15 @@ Portföy Performansı apps/client/src/app/pages/pricing/pricing-page.html - 60 + 51 apps/client/src/app/pages/pricing/pricing-page.html - 173 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 249 + 195 @@ -5013,15 +5077,15 @@ Veri İçe Aktarma ve Dışa Aktarma apps/client/src/app/pages/pricing/pricing-page.html - 95 + 71 apps/client/src/app/pages/pricing/pricing-page.html - 180 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 215 @@ -5029,15 +5093,15 @@ Topluluk Desteği apps/client/src/app/pages/pricing/pricing-page.html - 118 + 88 Self-hosted, update manually. - Tarafınızca barındırılıyor, elle güncelleyiniz. + Tarafınızca barındırılıyor, elle güncelleyiniz. apps/client/src/app/pages/pricing/pricing-page.html - 122 + 92 @@ -5045,11 +5109,11 @@ Ücretsiz apps/client/src/app/pages/pricing/pricing-page.html - 123 + 93 apps/client/src/app/pages/pricing/pricing-page.html - 192 + 150 @@ -5057,7 +5121,7 @@ Alım satıma henüz başlamış yeni yatırımcılar için. apps/client/src/app/pages/pricing/pricing-page.html - 150 + 120 @@ -5065,11 +5129,11 @@ Eksiksiz yönetilen Ghostfolio bulut teklifi. apps/client/src/app/pages/pricing/pricing-page.html - 191 + 149 apps/client/src/app/pages/pricing/pricing-page.html - 318 + 240 @@ -5077,7 +5141,7 @@ Finansal varlıklarının tamamını görmeye ihtiyaç duyan hırslı yatırımcılar için. apps/client/src/app/pages/pricing/pricing-page.html - 225 + 180 @@ -5085,15 +5149,23 @@ E-posta ve Sohbet Desteği apps/client/src/app/pages/pricing/pricing-page.html - 314 + 236 Renew Plan Aboneliği Yenile + + apps/client/src/app/components/header/header.component.html + 185 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 23 + apps/client/src/app/pages/pricing/pricing-page.html - 348 + 270 @@ -5101,7 +5173,7 @@ Tek seferlik ödeme, otomatik yenileme yok. apps/client/src/app/pages/pricing/pricing-page.html - 352 + 274 @@ -5109,7 +5181,7 @@ Başla apps/client/src/app/pages/pricing/pricing-page.html - 363 + 285 @@ -5117,7 +5189,7 @@ Ücretsiz. apps/client/src/app/pages/pricing/pricing-page.html - 366 + 288 @@ -5157,7 +5229,7 @@ Kayıt apps/client/src/app/pages/register/register-page-routing.module.ts - 12 + 13 @@ -5205,7 +5277,7 @@ I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 31 + 32 @@ -5213,7 +5285,7 @@ Kabul et ve devam et apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 44 + 45 @@ -5221,7 +5293,7 @@ Kişisel Finans Araçları apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 13 + 14 @@ -5229,7 +5301,7 @@ Açık kaynak alternatif apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts @@ -5241,7 +5313,7 @@ için Açık Kaynak Alternatif apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 25 + 26 @@ -5273,7 +5345,7 @@ için Açık Kaynak Alternatifi apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html - 35 + 32 @@ -5467,6 +5539,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -5659,6 +5743,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -5851,6 +5947,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -6043,6 +6151,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 37 + Founded @@ -6235,6 +6355,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 67 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + Origin @@ -6427,6 +6559,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 72 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + Region @@ -6619,6 +6763,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 77 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + Available in @@ -6811,6 +6967,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 82 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + ✅ Yes @@ -7003,6 +7171,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 104 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 111 @@ -7381,15 +7573,15 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 136 + 125 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 136 + 125 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 136 + 125 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -7569,27 +7761,63 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 150 + 136 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 150 + 136 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 150 + 136 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 150 + 136 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 150 + 136 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 150 + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -7943,6 +8171,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 157 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 169 @@ -8319,6 +8571,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 176 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + ❌ No @@ -8511,6 +8775,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 106 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 129 @@ -8887,6 +9175,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 140 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 152 @@ -9263,6 +9575,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 159 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 171 @@ -9639,6 +9975,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 178 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + ❌ No @@ -9831,6 +10179,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 113 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + Self-Hosting @@ -10023,6 +10383,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 118 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + Use anonymously @@ -10215,6 +10587,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 145 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + Free Plan @@ -10407,6 +10791,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 164 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 164 + Notes @@ -10599,6 +10995,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 196 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 196 + Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. @@ -10791,6 +11199,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 204 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + Ready to take your investments to the next level? @@ -10983,6 +11403,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 217 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. @@ -11175,6 +11607,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 221 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 + Get Started @@ -11367,9 +11811,21 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 226 - - - Personal Finance Tools + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + + Personal Finance Tools Kişisel Finans Araçları apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -11559,25 +12015,37 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 302 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 + Switzerland İsviçre apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + 72 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 90 + 102 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 506 + 530 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 548 + 580 @@ -11585,19 +12053,19 @@ Küresel apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 70 + 73 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 317 + 341 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 438 + 462 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 549 + 581 @@ -11605,83 +12073,87 @@ Amerika Birleşik Devletleri apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 81 + 93 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + 149 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + 159 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 189 + 201 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 198 + 210 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 208 + 220 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 218 + 232 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 270 + 242 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + 294 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + 316 + + + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 327 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 328 + 352 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 330 + 354 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 340 + 364 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 405 + 429 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 415 + 439 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 425 + 449 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 494 + 518 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 517 + 541 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 537 + 569 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 559 + 591 @@ -11689,7 +12161,7 @@ Belçika apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 167 + 179 @@ -11697,31 +12169,31 @@ Almanya apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 128 + 140 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 178 + 190 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 250 + 274 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 260 + 284 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + 305 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 315 + 339 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 361 + 385 @@ -11729,7 +12201,7 @@ Avusturya apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 238 + 262 @@ -11737,7 +12209,7 @@ İtalya apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 372 + 396 @@ -11745,7 +12217,7 @@ Hollanda apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 382 + 406 @@ -11753,7 +12225,7 @@ Tayland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 394 + 418 @@ -11761,7 +12233,7 @@ Yeni Zelanda apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 436 + 460 @@ -11769,11 +12241,11 @@ Çekya apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 447 + 471 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 484 + 508 @@ -11781,7 +12253,7 @@ Kaynaklar apps/client/src/app/pages/resources/resources-page-routing.module.ts - 12 + 13 @@ -11813,15 +12285,15 @@ Halka açık apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 24 + 25 My Ghostfolio - Benim Ghostfolio'm + Benim Ghostfolio'm apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 32 + 33 @@ -11829,7 +12301,7 @@ Otomatik apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 31 + 33 @@ -11837,7 +12309,7 @@ Lütfen kupon kodunuzu girin: apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 110 + 111 @@ -11845,7 +12317,7 @@ Kupon kodu kullanılamadı apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 120 + 121 @@ -11853,7 +12325,7 @@ Kupon kodu kullanıldı apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 132 + 133 @@ -11861,7 +12333,7 @@ Yeniden Yükle apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 133 + 134 @@ -11869,7 +12341,7 @@ Bu giriş yöntemini kaldırmayı gerçekten istiyor musunuz? apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 182 + 188 @@ -11885,23 +12357,7 @@ Geçerli tarih libs/ui/src/lib/membership-card/membership-card.component.html - 22 - - - - Upgrade - Yükselt - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 - - - - Renew - Yenile - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 21 + 23 @@ -11909,19 +12365,19 @@ yıllık apps/client/src/app/components/user-account-membership/user-account-membership.html - 33 + 35 apps/client/src/app/pages/pricing/pricing-page.html - 332 + 254 Try Premium - Premium'u Deneyin + Premium'u Deneyin apps/client/src/app/components/user-account-membership/user-account-membership.html - 42 + 44 @@ -11929,7 +12385,7 @@ Kupon Kullan apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 + 57 @@ -11969,7 +12425,7 @@ Yerel Ayarlar apps/client/src/app/components/user-account-settings/user-account-settings.html - 95 + 107 @@ -11977,7 +12433,7 @@ Tarih ve Sayı Formatları apps/client/src/app/components/user-account-settings/user-account-settings.html - 97 + 109 @@ -11985,7 +12441,7 @@ Görünüm apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 + 130 @@ -11993,7 +12449,7 @@ Otomatik apps/client/src/app/components/user-account-settings/user-account-settings.html - 130 + 142 @@ -12001,7 +12457,7 @@ Açık apps/client/src/app/components/user-account-settings/user-account-settings.html - 131 + 143 @@ -12009,7 +12465,7 @@ Koyu apps/client/src/app/components/user-account-settings/user-account-settings.html - 132 + 144 @@ -12017,7 +12473,7 @@ Çalkantılı zamanlar için dikkat dağıtmayan bir deneyim apps/client/src/app/components/user-account-settings/user-account-settings.html - 142 + 154 @@ -12025,7 +12481,7 @@ Biyometrik Kimlik Doğrulama apps/client/src/app/components/user-account-settings/user-account-settings.html - 158 + 170 @@ -12033,7 +12489,7 @@ Parmak iziyle oturum aç apps/client/src/app/components/user-account-settings/user-account-settings.html - 159 + 171 @@ -12041,7 +12497,7 @@ Deneysel Özellikler apps/client/src/app/components/user-account-settings/user-account-settings.html - 176 + 188 @@ -12049,15 +12505,19 @@ Gelecek özelliklere göz atın apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 + 189 User ID Kullanıcı Kimliği + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 45 + apps/client/src/app/components/user-account-settings/user-account-settings.html - 192 + 205 @@ -12065,7 +12525,7 @@ Verileri Dışa Aktar apps/client/src/app/components/user-account-settings/user-account-settings.html - 199 + 213 @@ -12081,7 +12541,7 @@ Hay Allah, kimlik doğrulaması başarısız oldu. apps/client/src/app/pages/webauthn/webauthn-page.html - 18 + 19 @@ -12089,7 +12549,7 @@ Yeniden dene apps/client/src/app/pages/webauthn/webauthn-page.html - 26 + 27 @@ -12097,7 +12557,7 @@ Ana Sayfaya Geri Dön apps/client/src/app/pages/webauthn/webauthn-page.html - 30 + 31 @@ -12105,11 +12565,11 @@ İşlemleri İçe Aktar libs/ui/src/lib/activities-table/activities-table.component.html - 16 + 9 libs/ui/src/lib/activities-table/activities-table.component.html - 453 + 369 @@ -12117,11 +12577,11 @@ Temettüleri İçe Aktar libs/ui/src/lib/activities-table/activities-table.component.html - 35 + 29 libs/ui/src/lib/activities-table/activities-table.component.html - 464 + 381 @@ -12129,11 +12589,11 @@ İşlemleri Dışa Aktar libs/ui/src/lib/activities-table/activities-table.component.html - 47 + 41 libs/ui/src/lib/activities-table/activities-table.component.html - 476 + 394 @@ -12141,11 +12601,11 @@ Taslakları ICS Olarak Dışa Aktar libs/ui/src/lib/activities-table/activities-table.component.html - 59 + 54 libs/ui/src/lib/activities-table/activities-table.component.html - 488 + 407 @@ -12153,7 +12613,7 @@ Tüm İşlemleri sil libs/ui/src/lib/activities-table/activities-table.component.html - 69 + 65 @@ -12161,7 +12621,7 @@ Taslak libs/ui/src/lib/activities-table/activities-table.component.html - 189 + 143 @@ -12169,7 +12629,7 @@ Klonla libs/ui/src/lib/activities-table/activities-table.component.html - 513 + 434 @@ -12177,7 +12637,7 @@ Taslakları ICS Olarak Dışa Aktar libs/ui/src/lib/activities-table/activities-table.component.html - 523 + 444 @@ -12185,15 +12645,7 @@ TBu işlemi silmeyi gerçekten istiyor musunuz? libs/ui/src/lib/activities-table/activities-table.component.ts - 227 - - - - Filter by account, currency, symbol or type... - Hesap, para birimi, sembol veya türe göre filtrele... - - libs/ui/src/lib/activities-table/activities-table.component.ts - 427 + 175 @@ -12209,7 +12661,7 @@ Tüm Zamanların En Yüksek Seviyesinden (ATH) Değişim libs/ui/src/lib/benchmark/benchmark.component.html - 79 + 81 @@ -12217,7 +12669,7 @@ Tüm Zamanların En Yüksek Seviyesinden libs/ui/src/lib/benchmark/benchmark.component.html - 81 + 83 @@ -12293,7 +12745,7 @@ Tümünü göster libs/ui/src/lib/holdings-table/holdings-table.component.html - 172 + 171 @@ -12433,7 +12885,7 @@ libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 384 + 385 @@ -12681,11 +13133,11 @@ No data available libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 386 + 387 libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 399 + 400 @@ -12701,7 +13153,7 @@ Interest apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 280 + 294 @@ -12769,7 +13221,7 @@ Oops! Could not get the historical exchange rate from apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + 197 @@ -12777,7 +13229,7 @@ Choose or drop a file here apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 85 + 81 @@ -12801,7 +13253,7 @@ Do you really want to delete this tag? apps/client/src/app/components/admin-tag/admin-tag.component.ts - 78 + 79 @@ -12825,15 +13277,15 @@ France apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 109 + 121 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 458 + 482 apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 474 + 498 @@ -12841,7 +13293,7 @@ Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. apps/client/src/app/pages/portfolio/fire/fire-page.html - 100 + 108 @@ -12849,7 +13301,7 @@ Currency Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + 132 @@ -12857,7 +13309,7 @@ Account Cluster Risks apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + 145 @@ -12877,7 +13329,7 @@ Benchmark apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 219 + 226 @@ -12909,7 +13361,7 @@ To apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 29 + 28 @@ -12917,7 +13369,7 @@ Transfer apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 66 + 64 @@ -12925,7 +13377,7 @@ Finland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 466 + 490 @@ -12933,11 +13385,11 @@ Membership apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/user-account/user-account-page.component.ts - 39 + 40 @@ -12945,11 +13397,11 @@ Access apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 27 + 28 apps/client/src/app/pages/user-account/user-account-page.component.ts - 45 + 46 @@ -12957,7 +13409,7 @@ Find holding... libs/ui/src/lib/assistant/assistant.component.ts - 89 + 126 @@ -12985,7 +13437,7 @@ Do you really want to delete this asset profile? apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 184 + 185 @@ -13017,7 +13469,7 @@ Last All Time High libs/ui/src/lib/benchmark/benchmark.component.html - 63 + 65 @@ -13219,13 +13671,25 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 48 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + Canada Canada apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 529 + 561 @@ -13249,7 +13713,7 @@ Oops, cash balance transfer has failed. apps/client/src/app/pages/accounts/accounts-page.component.ts - 305 + 306 @@ -13257,7 +13721,7 @@ Poland apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 119 + 131 @@ -13265,7 +13729,7 @@ South Africa apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 227 + 251 @@ -13297,7 +13761,7 @@ Oops! Could not parse historical data. apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 205 + 224 @@ -13305,7 +13769,7 @@ Do you really want to delete this system message? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 159 + 166 @@ -13321,7 +13785,7 @@ 200-Day Trend libs/ui/src/lib/benchmark/benchmark.component.html - 39 + 40 @@ -13329,7 +13793,7 @@ Cash Balances apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 88 + 109 @@ -13523,6 +13987,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 185 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 185 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 190 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 190 @@ -13903,6 +14391,30 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 186 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 186 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 191 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 191 @@ -14097,7 +14609,335 @@ Do you really want to delete this account balance? libs/ui/src/lib/account-balances/account-balances.component.ts - 56 + 57 + + + + is an invalid currency! + is an invalid currency! + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 129 + + + + If a translation is missing, kindly support us in extending it here. + If a translation is missing, kindly support us in extending it here. + + apps/client/src/app/components/user-account-settings/user-account-settings.html + 53 + + + + The current market price is + The current market price is + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 318 + + + + Test + Test + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 259 + + + + Date Range + Date Range + + libs/ui/src/lib/assistant/assistant.html + 93 + + + + Permission + Permission + + apps/client/src/app/components/access-table/access-table.component.html + 17 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 33 + + + + Restricted view + Restricted view + + apps/client/src/app/components/access-table/access-table.component.html + 25 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 35 + + + + Oops! Could not grant access. + Oops! Could not grant access. + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts + 80 + + + + Private + Private + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 + + + + Job Queue + Job Queue + + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 25 + + + apps/client/src/app/pages/admin/admin-page.component.ts + 42 + + + + Market data is delayed for + Market data is delayed for + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts + 80 + + + + Investment + Investment + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 46 + + + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 60 + + + + Absolute Asset Performance + Absolute Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + + Asset Performance + Asset Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 42 + + + + Absolute Currency Performance + Absolute Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 57 + + + + Currency Performance + Currency Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 72 + + + + Absolute Net Performance + Absolute Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 88 + + + + Net Performance + Net Performance + + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 103 + + + + Week to date + Week to date + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + WTD + WTD + + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + + Month to date + Month to date + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + MTD + MTD + + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + + Year to date + Year to date + + libs/ui/src/lib/assistant/assistant.component.ts + 109 + + + + View + View + + apps/client/src/app/components/access-table/access-table.component.html + 22 + + + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + + + + Oops! A data provider is experiencing the hiccups. + Oops! A data provider is experiencing the hiccups. + + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html + 8 + + + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 65 + + + + Reset Filters + Reset Filters + + libs/ui/src/lib/assistant/assistant.html + 155 + + + + year + year + + libs/ui/src/lib/assistant/assistant.component.ts + 112 + + + + years + years + + libs/ui/src/lib/assistant/assistant.component.ts + 114 + + + + Asset Classes + Asset Classes + + libs/ui/src/lib/assistant/assistant.html + 138 + + + + Apply Filters + Apply Filters + + libs/ui/src/lib/assistant/assistant.html + 165 + + + + Data Gathering + Data Gathering + + apps/client/src/app/components/admin-overview/admin-overview.html + 132 + + + + General + General + + apps/client/src/app/pages/faq/faq-page.component.ts + 36 + + + + Cloud + Cloud + + apps/client/src/app/pages/faq/faq-page.component.ts + 41 + + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + + Self-Hosting + Self-Hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 47 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + + self-hosting + self-hosting + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 + + + + FAQ + FAQ + + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 + + + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 diff --git a/apps/client/src/locales/messages.xlf b/apps/client/src/locales/messages.xlf index 2c04c01a4..cfcb9792f 100644 --- a/apps/client/src/locales/messages.xlf +++ b/apps/client/src/locales/messages.xlf @@ -6,51 +6,51 @@ about apps/client/src/app/app-routing.module.ts - 8 + 9 apps/client/src/app/app.component.ts - 47 + 48 apps/client/src/app/app.component.ts - 48 + 49 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/app.component.ts - 51 + 52 apps/client/src/app/components/header/header.component.ts - 71 + 76 apps/client/src/app/components/header/header.component.ts - 76 + 81 apps/client/src/app/pages/about/about-page.component.ts - 44 + 45 apps/client/src/app/pages/about/about-page.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 apps/client/src/app/pages/about/about-page.component.ts - 73 + 74 apps/client/src/app/pages/blog/2023/08/ghostfolio-joins-oss-friends/ghostfolio-joins-oss-friends-page.component.ts @@ -74,12 +74,16 @@ apps/client/src/app/pages/landing/landing-page.component.ts - 25 + 26 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 22 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 26 @@ -136,6 +140,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 26 @@ -252,6 +260,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 26 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 26 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 26 @@ -273,42 +285,54 @@ faq apps/client/src/app/app-routing.module.ts - 9 + 10 apps/client/src/app/app.component.ts - 54 + 55 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 19 + 20 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 37 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 42 + + + apps/client/src/app/pages/faq/faq-page.component.ts + 48 features apps/client/src/app/app-routing.module.ts - 10 + 11 apps/client/src/app/app.component.ts - 55 + 56 apps/client/src/app/components/header/header.component.ts - 72 + 77 apps/client/src/app/components/header/header.component.ts - 77 + 82 apps/client/src/app/pages/about/overview/about-overview-page.component.ts - 20 + 21 apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -328,19 +352,23 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts - 14 + 15 apps/client/src/app/pages/blog/2023/11/hacktoberfest-2023-debriefing/hacktoberfest-2023-debriefing-page.component.ts 14 - apps/client/src/app/pages/faq/faq-page.component.ts - 13 + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts + 14 apps/client/src/app/pages/pricing/pricing-page.component.ts - 34 + 35 + + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 27 apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts @@ -398,6 +426,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 27 @@ -514,6 +546,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 27 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 27 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 27 @@ -535,34 +571,34 @@ license apps/client/src/app/app-routing.module.ts - 11 + 12 apps/client/src/app/app.component.ts - 49 + 50 apps/client/src/app/pages/about/about-page.component.ts - 54 + 55 markets apps/client/src/app/app-routing.module.ts - 12 + 13 apps/client/src/app/app.component.ts - 56 + 57 apps/client/src/app/components/header/header.component.ts - 73 + 78 apps/client/src/app/components/header/header.component.ts - 78 + 83 apps/client/src/app/pages/blog/2022/08/500-stars-on-github/500-stars-on-github-page.component.ts @@ -573,7 +609,7 @@ 16 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 14 @@ -581,23 +617,23 @@ pricing apps/client/src/app/app-routing.module.ts - 13 + 14 apps/client/src/app/app.component.ts - 57 + 58 apps/client/src/app/components/header/header.component.ts - 74 + 79 apps/client/src/app/components/header/header.component.ts - 79 + 84 apps/client/src/app/components/home-summary/home-summary.component.ts - 124 + 125 apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.component.ts @@ -605,11 +641,11 @@ apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 37 + 38 apps/client/src/app/core/http-response.interceptor.ts - 80 + 81 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -629,7 +665,7 @@ apps/client/src/app/pages/blog/2022/11/black-friday-2022/black-friday-2022-page.component.ts - 15 + 16 apps/client/src/app/pages/blog/2023/03/1000-stars-on-github/1000-stars-on-github-page.component.ts @@ -637,10 +673,14 @@ apps/client/src/app/pages/blog/2023/11/black-week-2023/black-week-2023-page.component.ts + 16 + + + apps/client/src/app/pages/faq/overview/faq-overview-page.component.ts 15 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 15 @@ -652,69 +692,69 @@ privacy-policy apps/client/src/app/app-routing.module.ts - 14 + 15 apps/client/src/app/app.component.ts - 52 + 53 apps/client/src/app/pages/about/about-page.component.ts - 62 + 63 register apps/client/src/app/app-routing.module.ts - 15 + 16 apps/client/src/app/app.component.ts - 58 + 59 apps/client/src/app/components/header/header.component.ts - 80 + 85 apps/client/src/app/core/auth.guard.ts - 53 + 54 - apps/client/src/app/pages/faq/faq-page.component.ts + apps/client/src/app/pages/faq/saas/saas-page.component.ts 16 apps/client/src/app/pages/features/features-page.component.ts - 17 + 18 apps/client/src/app/pages/landing/landing-page.component.ts - 26 + 27 apps/client/src/app/pages/pricing/pricing-page.component.ts - 35 + 36 resources apps/client/src/app/app-routing.module.ts - 16 + 17 apps/client/src/app/app.component.ts - 59 + 60 apps/client/src/app/components/header/header.component.ts - 75 + 80 apps/client/src/app/components/header/header.component.ts - 81 + 86 apps/client/src/app/pages/blog/2021/07/hallo-ghostfolio/hallo-ghostfolio-page.component.ts @@ -734,12 +774,16 @@ apps/client/src/app/pages/features/features-page.component.ts - 18 + 19 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts 14 + + apps/client/src/app/pages/resources/personal-finance-tools/products/allinvestview-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/allvue-systems-page.component.ts 29 @@ -796,6 +840,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/exirio-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/fina-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/finary-page.component.ts 29 @@ -912,6 +960,10 @@ apps/client/src/app/pages/resources/personal-finance-tools/products/vyzer-page.component.ts 29 + + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthfolio-page.component.ts + 29 + apps/client/src/app/pages/resources/personal-finance-tools/products/wealthica-page.component.ts 29 @@ -930,9 +982,31 @@ apps/client/src/app/pages/resources/resources-page.component.ts + 18 + + + + You are using the Live Demo. + + apps/client/src/app/app.component.html 17 + + Create Account + + apps/client/src/app/app.component.html + 18 + + + apps/client/src/app/pages/register/register-page.html + 26 + + + apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html + 2 + + Personal Finance @@ -948,7 +1022,7 @@ apps/client/src/app/components/header/header.component.html - 348 + 381 apps/client/src/app/components/home-market/home-market.html @@ -967,11 +1041,11 @@ apps/client/src/app/components/header/header.component.html - 79 + 80 apps/client/src/app/components/header/header.component.html - 251 + 284 apps/client/src/app/pages/resources/resources-page.html @@ -986,11 +1060,11 @@ apps/client/src/app/components/header/header.component.html - 110 + 111 apps/client/src/app/components/header/header.component.html - 319 + 352 @@ -1099,7 +1173,7 @@ apps/client/src/app/components/header/header.component.html - 306 + 339 apps/client/src/app/pages/features/features-page.html @@ -1132,15 +1206,27 @@ apps/client/src/app/components/header/header.component.html - 97 + 98 apps/client/src/app/components/header/header.component.html - 263 + 296 apps/client/src/app/components/header/header.component.html - 332 + 365 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 183 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -1350,42 +1436,42 @@ apps/client/src/app/components/user-account-settings/user-account-settings.html - 62 + 74 apps/client/src/app/components/user-account-settings/user-account-settings.html - 66 + 78 apps/client/src/app/components/user-account-settings/user-account-settings.html - 70 + 82 apps/client/src/app/components/user-account-settings/user-account-settings.html - 74 + 86 apps/client/src/app/components/user-account-settings/user-account-settings.html - 78 + 90 apps/client/src/app/components/user-account-settings/user-account-settings.html - 82 + 94 apps/client/src/app/components/user-account-settings/user-account-settings.html - 86 + 98 apps/client/src/app/pages/features/features-page.html - 260 + 256 The risk of loss in trading can be substantial. It is not advisable to invest money you may need in the short term. apps/client/src/app/app.component.html - 182 + 179 @@ -1408,10 +1494,6 @@ Type - - apps/client/src/app/components/access-table/access-table.component.html - 17 - apps/client/src/app/components/admin-jobs/admin-jobs.html 28 @@ -1426,28 +1508,28 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 164 + 159 Details apps/client/src/app/components/access-table/access-table.component.html - 27 + 32 Revoke apps/client/src/app/components/access-table/access-table.component.html - 54 + 59 Do you really want to revoke this granted access? apps/client/src/app/components/access-table/access-table.component.ts - 49 + 50 @@ -1462,7 +1544,7 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 31 + 34 @@ -1472,21 +1554,6 @@ 54 - - Platform - - apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 63 - - - apps/client/src/app/components/accounts-table/accounts-table.component.html - 77 - - - apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 45 - - Activities @@ -1495,7 +1562,7 @@ apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 73 + 87 apps/client/src/app/components/accounts-table/accounts-table.component.html @@ -1515,18 +1582,51 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 251 + 253 apps/client/src/app/pages/portfolio/activities/activities-page.html 4 - - Name + + Platform - apps/client/src/app/components/accounts-table/accounts-table.component.html - 34 + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 63 + + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 77 + + + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 48 + + + + Cash Balances + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 109 + + + + Transfer Cash Balance + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 9 + + + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 7 + + + + Name + + apps/client/src/app/components/accounts-table/accounts-table.component.html + 34 apps/client/src/app/components/admin-market-data/admin-market-data.html @@ -1534,7 +1634,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 182 + 180 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1554,15 +1654,15 @@ apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 12 + 15 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 114 + 113 libs/ui/src/lib/activities-table/activities-table.component.html - 179 + 136 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1575,10 +1675,6 @@ apps/client/src/app/components/accounts-table/accounts-table.component.html 50 - - libs/ui/src/lib/activities-table/activities-table.component.html - 159 - Currency @@ -1590,17 +1686,21 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html 91 + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 186 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 22 + 25 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 120 + 119 libs/ui/src/lib/activities-table/activities-table.component.html - 209 + 274 @@ -1615,7 +1715,11 @@ apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 47 + 45 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 167 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1623,11 +1727,11 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 169 + 170 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 171 + 223 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -1641,21 +1745,17 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html 226 - - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 227 - libs/ui/src/lib/account-balances/account-balances.component.html 20 libs/ui/src/lib/activities-table/activities-table.component.html - 321 + 255 libs/ui/src/lib/activities-table/activities-table.component.html - 356 + 291 libs/ui/src/lib/holdings-table/holdings-table.component.html @@ -1674,7 +1774,7 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 86 + 80 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1686,7 +1786,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 507 + 428 @@ -1701,11 +1801,11 @@ apps/client/src/app/components/admin-overview/admin-overview.html - 99 + 90 apps/client/src/app/components/admin-overview/admin-overview.html - 201 + 197 apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -1717,18 +1817,32 @@ libs/ui/src/lib/account-balances/account-balances.component.html - 50 + 51 libs/ui/src/lib/activities-table/activities-table.component.html - 529 + 450 Do you really want to delete this account? apps/client/src/app/components/accounts-table/accounts-table.component.ts - 83 + 99 + + + + Asset Profile + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 31 + + + + Historical Market Data + + apps/client/src/app/components/admin-jobs/admin-jobs.html + 37 @@ -1762,7 +1876,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 130 + 129 @@ -1797,42 +1911,28 @@ Delete Jobs apps/client/src/app/components/admin-jobs/admin-jobs.html - 135 - - - - Asset Profiles - - libs/ui/src/lib/assistant/assistant.html - 67 - - - - Historical Market Data - - apps/client/src/app/components/admin-jobs/admin-jobs.html - 37 + 126 View Data apps/client/src/app/components/admin-jobs/admin-jobs.html - 150 + 141 View Stacktrace apps/client/src/app/components/admin-jobs/admin-jobs.html - 157 + 148 Delete Job apps/client/src/app/components/admin-jobs/admin-jobs.html - 160 + 151 @@ -1850,7 +1950,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 136 + 135 libs/ui/src/lib/account-balances/account-balances.component.html @@ -1858,7 +1958,7 @@ libs/ui/src/lib/activities-table/activities-table.component.html - 152 + 168 @@ -1880,7 +1980,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 260 + 301 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1896,23 +1996,23 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 30 + 58 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 96 + 101 apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 59 + 57 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 362 + 361 apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 37 + 38 @@ -1923,7 +2023,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 267 + 308 apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html @@ -1939,43 +2039,50 @@ apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 37 + 65 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 103 + 108 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 369 + 368 Currencies apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 66 + 67 ETFs without Countries apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 71 + 72 ETFs without Sectors apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 76 + 77 + + + + Do you really want to delete this asset profile? + + apps/client/src/app/components/admin-market-data/admin-market-data.component.ts + 185 Filter by... apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 281 + 282 @@ -1990,7 +2097,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 188 + 195 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -1998,7 +2105,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 291 + 290 @@ -2013,7 +2120,7 @@ apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 201 + 208 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -2021,7 +2128,7 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 307 + 306 @@ -2100,6 +2207,13 @@ 38 + + Oops! Could not parse historical data. + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 224 + + Refresh @@ -2114,22 +2228,37 @@ 30 + + Import + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 79 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 149 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 184 + + Sector apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 143 + 142 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 198 + 197 Country apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 152 + 151 apps/client/src/app/components/admin-users/admin-users.html @@ -2137,18 +2266,22 @@ apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 210 + 206 Sectors apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 158 + 156 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 266 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 216 + 211 apps/client/src/app/pages/public/public-page.html @@ -2159,40 +2292,51 @@ Countries apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 168 + 166 + + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 277 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 228 + 223 + + + + Benchmark + + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 226 Symbol Mapping apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 225 + 232 Scraper Configuration apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 236 + 243 Note apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 247 + 288 apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 73 + 76 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 276 + 275 @@ -2202,6 +2346,20 @@ 7 + + Search + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 16 + + + + Add Manually + + apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html + 19 + + Name, symbol or ISIN @@ -2210,42 +2368,63 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 102 + 101 Please add a currency: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 119 + 122 + + + + is an invalid currency! + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 129 Do you really want to delete this coupon? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 133 + 140 Do you really want to delete this currency? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 146 + 153 + + + + Do you really want to delete this system message? + + apps/client/src/app/components/admin-overview/admin-overview.component.ts + 166 Do you really want to flush the cache? apps/client/src/app/components/admin-overview/admin-overview.component.ts - 169 + 183 Please set your system message: apps/client/src/app/components/admin-overview/admin-overview.component.ts - 200 + 214 + + + + Version + + apps/client/src/app/components/admin-overview/admin-overview.html + 7 @@ -2280,78 +2459,63 @@ Add Currency apps/client/src/app/components/admin-overview/admin-overview.html - 113 - - - - Tags - - apps/client/src/app/components/admin-settings/admin-settings.component.html - 10 - - - apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 270 - - - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 320 + 104 User Signup apps/client/src/app/components/admin-overview/admin-overview.html - 119 + 110 Read-only Mode apps/client/src/app/components/admin-overview/admin-overview.html - 130 + 121 System Message apps/client/src/app/components/admin-overview/admin-overview.html - 141 + 143 Set Message apps/client/src/app/components/admin-overview/admin-overview.html - 164 + 163 Coupons apps/client/src/app/components/admin-overview/admin-overview.html - 172 + 171 Add apps/client/src/app/components/admin-overview/admin-overview.html - 233 + 229 Housekeeping apps/client/src/app/components/admin-overview/admin-overview.html - 240 + 236 Flush Cache apps/client/src/app/components/admin-overview/admin-overview.html - 244 + 240 @@ -2384,22 +2548,30 @@ apps/client/src/app/components/header/header.component.html - 53 + 54 apps/client/src/app/components/header/header.component.html - 224 + 257 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 276 apps/client/src/app/pages/accounts/accounts-page.html 4 + + libs/ui/src/lib/assistant/assistant.html + 107 + Do you really want to delete this platform? apps/client/src/app/components/admin-platform/admin-platform.component.ts - 78 + 79 @@ -2423,18 +2595,65 @@ 4 + + Tags + + apps/client/src/app/components/admin-settings/admin-settings.component.html + 10 + + + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 295 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 319 + + + libs/ui/src/lib/assistant/assistant.html + 127 + + + + Add Tag + + apps/client/src/app/components/admin-tag/admin-tag.component.html + 11 + + + + Do you really want to delete this tag? + + apps/client/src/app/components/admin-tag/admin-tag.component.ts + 79 + + + + Update tag + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 2 + + + + Add tag + + apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html + 3 + + Do you really want to delete this user? apps/client/src/app/components/admin-users/admin-users.component.ts - 112 + 113 - - User + + User - apps/client/src/app/components/header/header.component.html - 192 + apps/client/src/app/components/admin-users/admin-users.html + 29 @@ -2498,7 +2717,7 @@ Manage Benchmarks apps/client/src/app/components/benchmark-comparator/benchmark-comparator.component.html - 36 + 38 @@ -2509,7 +2728,7 @@ apps/client/src/app/pages/portfolio/portfolio-page-routing.module.ts - 47 + 48 @@ -2530,54 +2749,61 @@ Overview apps/client/src/app/components/header/header.component.html - 27 + 28 apps/client/src/app/components/header/header.component.html - 206 + 239 Portfolio apps/client/src/app/components/header/header.component.html - 40 + 41 apps/client/src/app/components/header/header.component.html - 216 + 249 Admin Control apps/client/src/app/components/header/header.component.html - 66 + 67 apps/client/src/app/components/header/header.component.html - 240 + 273 Me apps/client/src/app/components/header/header.component.html - 173 + 206 + + + + User + + apps/client/src/app/components/header/header.component.html + 225 My Ghostfolio apps/client/src/app/components/header/header.component.html - 231 + 264 About Ghostfolio apps/client/src/app/components/header/header.component.html - 271 + 304 apps/client/src/app/pages/about/overview/about-overview-page.html @@ -2588,7 +2814,7 @@ Sign in apps/client/src/app/components/header/header.component.html - 361 + 394 apps/client/src/app/components/login-with-access-token-dialog/login-with-access-token-dialog.html @@ -2599,43 +2825,43 @@ Get started apps/client/src/app/components/header/header.component.html - 373 + 406 Sign in apps/client/src/app/components/header/header.component.ts - 169 + 226 apps/client/src/app/pages/webauthn/webauthn-page-routing.module.ts - 6 + 7 Oops! Incorrect Security Token. apps/client/src/app/components/header/header.component.ts - 183 + 240 Manage Activities apps/client/src/app/components/home-holdings/home-holdings.html - 30 + 22 apps/client/src/app/pages/portfolio/holdings/holdings-page.html - 31 + 23 Fear apps/client/src/app/components/home-market/home-market.component.ts - 24 + 25 libs/ui/src/lib/i18n.ts @@ -2646,7 +2872,7 @@ Greed apps/client/src/app/components/home-market/home-market.component.ts - 25 + 26 libs/ui/src/lib/i18n.ts @@ -2664,70 +2890,70 @@ Welcome to Ghostfolio apps/client/src/app/components/home-overview/home-overview.html - 9 + 7 Ready to take control of your personal finances? apps/client/src/app/components/home-overview/home-overview.html - 10 + 8 Setup your accounts apps/client/src/app/components/home-overview/home-overview.html - 17 + 15 Get a comprehensive financial overview by adding your bank and brokerage accounts. apps/client/src/app/components/home-overview/home-overview.html - 19 + 17 Capture your activities apps/client/src/app/components/home-overview/home-overview.html - 26 + 24 Record your investment activities to keep your portfolio up to date. apps/client/src/app/components/home-overview/home-overview.html - 28 + 26 Monitor and analyze your portfolio apps/client/src/app/components/home-overview/home-overview.html - 35 + 33 Track your progress in real-time with comprehensive analysis and insights. apps/client/src/app/components/home-overview/home-overview.html - 37 + 35 Setup accounts apps/client/src/app/components/home-overview/home-overview.html - 50 + 48 Add activity apps/client/src/app/components/home-overview/home-overview.html - 58 + 56 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html @@ -2738,22 +2964,22 @@ This feature requires a subscription. apps/client/src/app/components/home-summary/home-summary.component.ts - 112 + 113 apps/client/src/app/core/http-response.interceptor.ts - 67 + 68 Upgrade Plan apps/client/src/app/components/home-summary/home-summary.component.ts - 114 + 115 apps/client/src/app/core/http-response.interceptor.ts - 69 + 70 @@ -2767,14 +2993,14 @@ Total Amount apps/client/src/app/components/investment-chart/investment-chart.component.ts - 182 + 190 Savings Rate apps/client/src/app/components/investment-chart/investment-chart.component.ts - 248 + 262 @@ -2796,11 +3022,11 @@ apps/client/src/app/pages/landing/landing-page.html - 435 + 428 apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 98 + 94 apps/client/src/app/pages/register/register-page.html @@ -2808,7 +3034,7 @@ apps/client/src/app/pages/webauthn/webauthn-page.html - 28 + 29 @@ -2839,6 +3065,23 @@ 3 + + + + + + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 12 + + + + {VAR_PLURAL, plural, =1 {transaction} other {transactions}} + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 14 + + Buy @@ -2875,59 +3118,57 @@ Gross Performance apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 72 + 73 - - - - - + + Fees apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 12 + 94 - - - {VAR_PLURAL, plural, =1 {transaction} other {transactions}} - apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 13 + apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html + 148 + + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 158 Absolute Net Performance apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 103 + 110 Net Performance apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 115 + 123 Total Assets apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 131 + 145 Valuables apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 144 + 158 Emergency Fund apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 156 + 170 apps/client/src/app/pages/features/features-page.html @@ -2935,42 +3176,42 @@ apps/client/src/app/pages/portfolio/fire/fire-page.html - 111 + 119 Cash apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 177 + 191 Assets apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 190 + 204 Buying Power apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 203 + 217 Excluded from Analysis apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 215 + 229 Liabilities apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 230 + 244 apps/client/src/app/pages/features/features-page.html @@ -2981,21 +3222,28 @@ Net Worth apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 250 + 264 Annualized Performance apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 262 + 276 + + + + Interest + + apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html + 294 Dividend apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 292 + 306 apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html @@ -3007,18 +3255,18 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 166 + 165 apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 222 + 221 Please enter the amount of your emergency fund: apps/client/src/app/components/portfolio-summary/portfolio-summary.component.ts - 52 + 53 @@ -3057,1235 +3305,1521 @@ apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 153 + 152 libs/ui/src/lib/activities-table/activities-table.component.html - 230 + 184 - - Fees - - apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 87 - + + Report Data Glitch apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 148 + 312 - - apps/client/src/app/pages/portfolio/fire/fire-page.html - 150 - - - - Report Data Glitch - - apps/client/src/app/components/position/position-detail-dialog/position-detail-dialog.html - 287 - - - - Are you an ambitious investor who needs the full picture? + + + Are you an ambitious investor who needs the full picture? apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 15 + 12 Upgrade to Ghostfolio Premium today and gain access to exclusive features to enhance your investment experience: apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 18 + 15 Portfolio Summary apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 25 + 22 apps/client/src/app/pages/pricing/pricing-page.html - 67 + 55 apps/client/src/app/pages/pricing/pricing-page.html - 256 + 199 Portfolio Allocations apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 29 + 26 apps/client/src/app/pages/features/features-page.html - 161 + 160 apps/client/src/app/pages/pricing/pricing-page.html - 74 + 59 apps/client/src/app/pages/pricing/pricing-page.html - 263 + 203 Performance Benchmarks apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 33 + 30 apps/client/src/app/pages/pricing/pricing-page.html - 81 + 63 apps/client/src/app/pages/pricing/pricing-page.html - 270 + 207 FIRE Calculator apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 37 + 34 apps/client/src/app/pages/pricing/pricing-page.html - 88 + 67 apps/client/src/app/pages/pricing/pricing-page.html - 277 + 211 Professional Data Provider apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 41 + 38 apps/client/src/app/pages/pricing/pricing-page.html - 298 + 226 and more Features... apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 45 + 42 apps/client/src/app/pages/pricing/pricing-page.html - 110 + 83 apps/client/src/app/pages/pricing/pricing-page.html - 306 + 231 Get the tools to effectively manage your finances and refine your personal investment strategy. apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 48 + 45 Skip apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 55 + 52 Upgrade Plan + + apps/client/src/app/components/header/header.component.html + 177 + apps/client/src/app/components/subscription-interstitial-dialog/subscription-interstitial-dialog.html - 62 + 59 + + + apps/client/src/app/components/user-account-membership/user-account-membership.html + 18 apps/client/src/app/pages/pricing/pricing-page.html - 343 + 265 Today apps/client/src/app/components/toggle/toggle.component.ts - 21 + 22 + + + libs/ui/src/lib/assistant/assistant.component.ts + 99 YTD apps/client/src/app/components/toggle/toggle.component.ts - 22 + 23 + + + libs/ui/src/lib/assistant/assistant.component.ts + 109 1Y apps/client/src/app/components/toggle/toggle.component.ts - 23 + 24 + + + libs/ui/src/lib/assistant/assistant.component.ts + 112 5Y apps/client/src/app/components/toggle/toggle.component.ts - 24 + 25 + + + libs/ui/src/lib/assistant/assistant.component.ts + 114 Max apps/client/src/app/components/toggle/toggle.component.ts - 25 + 26 - - - This feature is currently unavailable. - apps/client/src/app/core/http-response.interceptor.ts - 59 + libs/ui/src/lib/assistant/assistant.component.ts + 117 - - Please try again later. - - apps/client/src/app/core/http-response.interceptor.ts - 61 - + + Grant access - apps/client/src/app/core/http-response.interceptor.ts - 88 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 7 + + + Public - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 131 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 25 - - Oops! Something went wrong. + + Granted Access - apps/client/src/app/core/http-response.interceptor.ts - 86 + apps/client/src/app/components/user-account-access/user-account-access.html + 5 + + + Please enter your coupon code: - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 129 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 111 - - Okay + + Could not redeem coupon code - apps/client/src/app/core/http-response.interceptor.ts - 89 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 121 + + + Coupon code has been redeemed - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 132 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 133 - - About + + Reload - apps/client/src/app/pages/about/about-page-routing.module.ts - 52 + apps/client/src/app/components/user-account-membership/user-account-membership.component.ts + 134 + + + per year - apps/client/src/app/pages/about/about-page.component.ts - 43 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 35 - apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts - 12 + apps/client/src/app/pages/pricing/pricing-page.html + 254 - - Changelog + + Try Premium - apps/client/src/app/pages/about/about-page.component.ts - 48 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 44 + + + Redeem Coupon - apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts - 12 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 57 - - License + + Auto - apps/client/src/app/pages/about/about-page.component.ts - 53 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 33 + + + Do you really want to remove this sign in method? - apps/client/src/app/pages/about/license/license-page-routing.module.ts - 12 + apps/client/src/app/components/user-account-settings/user-account-settings.component.ts + 188 - - Privacy Policy + + Settings - apps/client/src/app/pages/about/about-page.component.ts - 61 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 2 + + + Presenter View - apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts - 12 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 7 - - Our + + Protection for sensitive information like absolute performances and quantity values - apps/client/src/app/pages/about/oss-friends/oss-friends-page.html - 6 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 8 - - Discover other exciting Open Source Software projects + + Base Currency - apps/client/src/app/pages/about/oss-friends/oss-friends-page.html - 9 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 27 - - Visit + + Language - apps/client/src/app/pages/about/oss-friends/oss-friends-page.html - 28 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 48 - - Accounts + + Locale - apps/client/src/app/pages/accounts/accounts-page-routing.module.ts - 12 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 107 - - Update account + + Date and number format - apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 7 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 109 - - Add account + + Appearance - apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 8 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 130 - - Account ID + + Auto - apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html - 90 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 142 - - Admin Control + + Light - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 19 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 143 - - Jobs + + Dark - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 21 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 144 + + + Zen Mode - apps/client/src/app/pages/admin/admin-page.component.ts - 41 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 153 - - - Market Data - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 25 + apps/client/src/app/pages/features/features-page.html + 190 + + + Distraction-free experience for turbulent times - apps/client/src/app/pages/admin/admin-page.component.ts - 36 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 154 - - Settings + + Biometric Authentication - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 30 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 170 + + + Sign in with fingerprint - apps/client/src/app/pages/admin/admin-page.component.ts - 31 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 171 + + + Experimental Features - apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 17 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 188 + + + Sneak peek at upcoming functionality - apps/client/src/app/pages/user-account/user-account-page.component.ts - 34 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 189 - - Users + + User ID - apps/client/src/app/pages/admin/admin-page-routing.module.ts - 35 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 45 - apps/client/src/app/pages/admin/admin-page.component.ts - 46 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 205 - - Overview + + Export Data - apps/client/src/app/pages/admin/admin-page.component.ts - 26 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 213 + + + This feature is currently unavailable. - apps/client/src/app/pages/home/home-page.component.ts - 33 + apps/client/src/app/core/http-response.interceptor.ts + 60 + + + Please try again later. - apps/client/src/app/pages/zen/zen-page-routing.module.ts - 18 + apps/client/src/app/core/http-response.interceptor.ts + 62 - apps/client/src/app/pages/zen/zen-page.component.ts - 33 + apps/client/src/app/core/http-response.interceptor.ts + 89 - - - Blog - apps/client/src/app/pages/blog/blog-page-routing.module.ts - 12 + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 138 - - Discover the latest Ghostfolio updates and insights on personal finance + + Oops! Something went wrong. - apps/client/src/app/pages/blog/blog-page.html - 7 + apps/client/src/app/core/http-response.interceptor.ts + 87 - - - As you are already logged in, you cannot access the demo account. - apps/client/src/app/pages/demo/demo-page.component.ts - 31 + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 136 - - Frequently Asked Questions (FAQ) + + Okay - apps/client/src/app/pages/faq/faq-page-routing.module.ts - 12 + apps/client/src/app/core/http-response.interceptor.ts + 90 - - - Frequently Asked Questions (FAQ) - apps/client/src/app/pages/faq/faq-page.html - 4 + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 139 - - Features + + About - apps/client/src/app/pages/features/features-page-routing.module.ts - 12 + apps/client/src/app/pages/about/about-page-routing.module.ts + 51 - - - Check out the numerous features of Ghostfolio to manage your wealth - apps/client/src/app/pages/features/features-page.html - 6 + apps/client/src/app/pages/about/about-page.component.ts + 44 - - - Stocks - apps/client/src/app/pages/features/features-page.html - 15 + apps/client/src/app/pages/about/overview/about-overview-page-routing.module.ts + 13 - - ETFs + + Changelog - apps/client/src/app/pages/features/features-page.html - 25 + apps/client/src/app/pages/about/about-page.component.ts + 49 - - - Bonds - apps/client/src/app/pages/features/features-page.html - 38 + apps/client/src/app/pages/about/changelog/changelog-page-routing.module.ts + 13 - - Cryptocurrencies + + License - apps/client/src/app/pages/features/features-page.html - 51 + apps/client/src/app/pages/about/about-page.component.ts + 54 - - - Wealth Items - apps/client/src/app/pages/features/features-page.html - 76 + apps/client/src/app/pages/about/license/license-page-routing.module.ts + 13 - - Import and Export + + Privacy Policy - apps/client/src/app/pages/features/features-page.html - 115 + apps/client/src/app/pages/about/about-page.component.ts + 62 - - - Multi-Accounts - apps/client/src/app/pages/features/features-page.html - 127 + apps/client/src/app/pages/about/privacy-policy/privacy-policy-page-routing.module.ts + 13 - - Portfolio Calculations + + Our - apps/client/src/app/pages/features/features-page.html - 141 + apps/client/src/app/pages/about/oss-friends/oss-friends-page.html + 6 - - Dark Mode + + Discover other exciting Open Source Software projects - apps/client/src/app/pages/features/features-page.html - 179 + apps/client/src/app/pages/about/oss-friends/oss-friends-page.html + 9 - - Zen Mode - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 141 - + + Visit - apps/client/src/app/pages/features/features-page.html - 192 + apps/client/src/app/pages/about/oss-friends/oss-friends-page.html + 26 - - Market Mood + + Accounts - apps/client/src/app/pages/features/features-page.html - 209 + apps/client/src/app/pages/accounts/accounts-page-routing.module.ts + 13 - - Static Analysis + + Oops, cash balance transfer has failed. - apps/client/src/app/pages/features/features-page.html - 227 + apps/client/src/app/pages/accounts/accounts-page.component.ts + 306 - - Multi-Language + + Update account - apps/client/src/app/pages/features/features-page.html - 245 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 8 - - Open Source Software + + Add account - apps/client/src/app/pages/features/features-page.html - 279 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 10 - - Get Started + + Account ID - apps/client/src/app/pages/features/features-page.html - 299 + apps/client/src/app/pages/accounts/create-or-update-account-dialog/create-or-update-account-dialog.html + 94 + + + From - apps/client/src/app/pages/public/public-page.html - 152 + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 11 - - Holdings + + To - apps/client/src/app/pages/home/home-page-routing.module.ts - 22 + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 28 + + + Transfer - apps/client/src/app/pages/home/home-page.component.ts - 38 + apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html + 64 + + + Admin Control - apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts - 12 + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 20 + + + Market Data - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 38 + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 30 - apps/client/src/app/pages/zen/zen-page.component.ts - 38 + apps/client/src/app/pages/admin/admin-page.component.ts + 37 - - Summary - - apps/client/src/app/pages/home/home-page-routing.module.ts - 27 - + + Settings - apps/client/src/app/pages/home/home-page.component.ts - 43 + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 35 - - - Markets - apps/client/src/app/pages/home/home-page-routing.module.ts + apps/client/src/app/pages/admin/admin-page.component.ts 32 - apps/client/src/app/pages/home/home-page.component.ts - 48 + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 18 - apps/client/src/app/pages/markets/markets-page-routing.module.ts - 12 + apps/client/src/app/pages/user-account/user-account-page.component.ts + 35 - - New + + Users - apps/client/src/app/pages/landing/landing-page.html - 7 + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 40 - - - Manage your wealth like a boss - apps/client/src/app/pages/landing/landing-page.html - 11 + apps/client/src/app/pages/admin/admin-page.component.ts + 47 - - Ghostfolio is a privacy-first, open source dashboard for your personal finances. Break down your asset allocation, know your net worth and make solid, data-driven investment decisions. + + Overview - apps/client/src/app/pages/landing/landing-page.html - 15 + apps/client/src/app/pages/admin/admin-page.component.ts + 27 - - - Get Started - apps/client/src/app/pages/landing/landing-page.html - 47 + apps/client/src/app/pages/home/home-page.component.ts + 34 - apps/client/src/app/pages/landing/landing-page.html - 431 + apps/client/src/app/pages/zen/zen-page-routing.module.ts + 19 - - - or - apps/client/src/app/pages/landing/landing-page.html - 52 + apps/client/src/app/pages/zen/zen-page.component.ts + 34 - - Live Demo + + Blog - apps/client/src/app/pages/landing/landing-page.html - 55 + apps/client/src/app/pages/blog/blog-page-routing.module.ts + 13 + + + Discover the latest Ghostfolio updates and insights on personal finance - apps/client/src/app/pages/landing/landing-page.html - 436 + apps/client/src/app/pages/blog/blog-page.html + 7 - - Monthly Active Users + + As you are already logged in, you cannot access the demo account. - apps/client/src/app/pages/landing/landing-page.html - 75 + apps/client/src/app/pages/demo/demo-page.component.ts + 32 - - Stars on GitHub + + Frequently Asked Questions (FAQ) - apps/client/src/app/pages/landing/landing-page.html - 93 + apps/client/src/app/pages/faq/faq-page-routing.module.ts + 34 - apps/client/src/app/pages/open/open-page.html - 103 + apps/client/src/app/pages/faq/overview/faq-overview-page-routing.module.ts + 13 - - Pulls on Docker Hub + + Frequently Asked Questions (FAQ) - apps/client/src/app/pages/landing/landing-page.html - 111 + apps/client/src/app/pages/faq/overview/faq-overview-page.html + 4 - apps/client/src/app/pages/open/open-page.html - 117 + apps/client/src/app/pages/faq/saas/saas-page.html + 4 - - - As seen in - apps/client/src/app/pages/landing/landing-page.html - 119 + apps/client/src/app/pages/faq/self-hosting/self-hosting-page.html + 4 - - Protect your assets. Refine your personal investment strategy. + + Features - apps/client/src/app/pages/landing/landing-page.html - 221 + apps/client/src/app/pages/features/features-page-routing.module.ts + 13 - - Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. + + Check out the numerous features of Ghostfolio to manage your wealth - apps/client/src/app/pages/landing/landing-page.html - 225 + apps/client/src/app/pages/features/features-page.html + 6 - - 360° View + + Stocks - apps/client/src/app/pages/landing/landing-page.html - 236 + apps/client/src/app/pages/features/features-page.html + 15 - - Get the full picture of your personal finances across multiple platforms. + + ETFs - apps/client/src/app/pages/landing/landing-page.html - 238 + apps/client/src/app/pages/features/features-page.html + 25 - - Web3 Ready + + Bonds - apps/client/src/app/pages/landing/landing-page.html - 247 + apps/client/src/app/pages/features/features-page.html + 38 - - Use Ghostfolio anonymously and own your financial data. + + Cryptocurrencies - apps/client/src/app/pages/landing/landing-page.html - 249 + apps/client/src/app/pages/features/features-page.html + 51 - - Open Source + + Wealth Items - apps/client/src/app/pages/landing/landing-page.html - 257 + apps/client/src/app/pages/features/features-page.html + 76 - - Benefit from continuous improvements through a strong community. + + Import and Export - apps/client/src/app/pages/landing/landing-page.html - 259 + apps/client/src/app/pages/features/features-page.html + 115 - - Why Ghostfolio? + + Multi-Accounts - apps/client/src/app/pages/landing/landing-page.html - 268 + apps/client/src/app/pages/features/features-page.html + 127 - - Ghostfolio is for you if you are... + + Portfolio Calculations - apps/client/src/app/pages/landing/landing-page.html - 269 + apps/client/src/app/pages/features/features-page.html + 141 - - trading stocks, ETFs or cryptocurrencies on multiple platforms + + Dark Mode - apps/client/src/app/pages/landing/landing-page.html - 276 + apps/client/src/app/pages/features/features-page.html + 177 - - pursuing a buy & hold strategy + + Market Mood - apps/client/src/app/pages/landing/landing-page.html - 282 + apps/client/src/app/pages/features/features-page.html + 205 - - interested in getting insights of your portfolio composition + + Static Analysis - apps/client/src/app/pages/landing/landing-page.html - 287 + apps/client/src/app/pages/features/features-page.html + 224 - - valuing privacy and data ownership + + Multi-Language - apps/client/src/app/pages/landing/landing-page.html - 292 + apps/client/src/app/pages/features/features-page.html + 241 - - into minimalism + + Open Source Software - apps/client/src/app/pages/landing/landing-page.html - 295 + apps/client/src/app/pages/features/features-page.html + 275 - - caring about diversifying your financial resources + + Get Started - apps/client/src/app/pages/landing/landing-page.html - 299 + apps/client/src/app/pages/features/features-page.html + 296 - - - interested in financial independence - apps/client/src/app/pages/landing/landing-page.html - 303 + apps/client/src/app/pages/public/public-page.html + 152 - - saying no to spreadsheets in + + Holdings - apps/client/src/app/pages/landing/landing-page.html - 307 + apps/client/src/app/pages/home/home-page-routing.module.ts + 23 + + + apps/client/src/app/pages/home/home-page.component.ts + 39 + + + apps/client/src/app/pages/portfolio/holdings/holdings-page-routing.module.ts + 13 + + + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 39 + + + apps/client/src/app/pages/zen/zen-page.component.ts + 39 - - still reading this list + + Summary - apps/client/src/app/pages/landing/landing-page.html - 310 + apps/client/src/app/pages/home/home-page-routing.module.ts + 28 + + + apps/client/src/app/pages/home/home-page.component.ts + 44 - - Learn more about Ghostfolio + + Markets - apps/client/src/app/pages/landing/landing-page.html - 315 + apps/client/src/app/pages/home/home-page-routing.module.ts + 33 + + + apps/client/src/app/pages/home/home-page.component.ts + 49 + + + apps/client/src/app/pages/markets/markets-page-routing.module.ts + 13 - - What our users are saying + + Ghostfolio is a personal finance dashboard to keep track of your net worth including cash, stocks, ETFs and cryptocurrencies across multiple platforms. - apps/client/src/app/pages/landing/landing-page.html - 323 + apps/client/src/app/pages/i18n/i18n-page.html + 4 - - Members from around the globe are using Ghostfolio Premium + + app, asset, cryptocurrency, dashboard, etf, finance, management, performance, portfolio, software, stock, trading, wealth, web3 - apps/client/src/app/pages/landing/landing-page.html - 358 + apps/client/src/app/pages/i18n/i18n-page.html + 9 - - How does Ghostfolio work? + + Open Source Wealth Management Software - apps/client/src/app/pages/landing/landing-page.html - 373 + apps/client/src/app/pages/i18n/i18n-page.html + 13 - - Get started in only 3 steps + + New apps/client/src/app/pages/landing/landing-page.html - 376 + 7 - - Sign up anonymously* + + Manage your wealth like a boss apps/client/src/app/pages/landing/landing-page.html - 382 + 11 - - * no e-mail address nor credit card required + + Ghostfolio is a privacy-first, open source dashboard for your personal finances. Break down your asset allocation, know your net worth and make solid, data-driven investment decisions. apps/client/src/app/pages/landing/landing-page.html - 384 + 15 - - Add any of your historical transactions + + Get Started apps/client/src/app/pages/landing/landing-page.html - 395 + 47 - - - Get valuable insights of your portfolio composition apps/client/src/app/pages/landing/landing-page.html - 407 + 424 - - Are you ready? + + or apps/client/src/app/pages/landing/landing-page.html - 419 + 52 - - Join now or check out the example account + + Live Demo apps/client/src/app/pages/landing/landing-page.html - 420 + 55 - - - At Ghostfolio, transparency is at the core of our values. We publish the source code as open source software (OSS) under the AGPL-3.0 license and we openly share aggregated key metrics of the platform’s operational status. - apps/client/src/app/pages/open/open-page.html - 6 + apps/client/src/app/pages/landing/landing-page.html + 429 - - (Last 24 hours) + + Monthly Active Users - apps/client/src/app/pages/open/open-page.html - 37 + apps/client/src/app/pages/landing/landing-page.html + 75 - - Active Users + + Stars on GitHub - apps/client/src/app/pages/open/open-page.html - 40 + apps/client/src/app/pages/landing/landing-page.html + 93 apps/client/src/app/pages/open/open-page.html - 62 + 103 - - (Last 30 days) + + Pulls on Docker Hub - apps/client/src/app/pages/open/open-page.html - 48 + apps/client/src/app/pages/landing/landing-page.html + 111 apps/client/src/app/pages/open/open-page.html - 59 + 117 - - New Users + + As seen in - apps/client/src/app/pages/open/open-page.html - 51 + apps/client/src/app/pages/landing/landing-page.html + 119 - - Users in Slack community + + Protect your assets. Refine your personal investment strategy. - apps/client/src/app/pages/open/open-page.html - 75 + apps/client/src/app/pages/landing/landing-page.html + 221 - - Contributors on GitHub + + Ghostfolio empowers busy people to keep track of stocks, ETFs or cryptocurrencies without being tracked. - apps/client/src/app/pages/open/open-page.html - 89 + apps/client/src/app/pages/landing/landing-page.html + 225 - - (Last 90 days) + + 360° View - apps/client/src/app/pages/open/open-page.html - 127 + apps/client/src/app/pages/landing/landing-page.html + 236 - - Uptime + + Get the full picture of your personal finances across multiple platforms. - apps/client/src/app/pages/open/open-page.html - 132 + apps/client/src/app/pages/landing/landing-page.html + 238 - - Activities + + Web3 Ready - apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts - 12 + apps/client/src/app/pages/landing/landing-page.html + 247 + + + Use Ghostfolio anonymously and own your financial data. - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 43 + apps/client/src/app/pages/landing/landing-page.html + 249 - - Do you really want to delete all your activities? + + Open Source - apps/client/src/app/pages/portfolio/activities/activities-page.component.ts - 140 + apps/client/src/app/pages/landing/landing-page.html + 257 - - Update activity + + Benefit from continuous improvements through a strong community. - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 7 + apps/client/src/app/pages/landing/landing-page.html + 259 - - Stocks, ETFs, bonds, cryptocurrencies, commodities + + Why Ghostfolio? - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 21 + apps/client/src/app/pages/landing/landing-page.html + 268 + + + Ghostfolio is for you if you are... - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 51 + apps/client/src/app/pages/landing/landing-page.html + 269 - - Mortgages, personal loans, credit cards + + trading stocks, ETFs or cryptocurrencies on multiple platforms - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 45 + apps/client/src/app/pages/landing/landing-page.html + 276 - - Luxury items, real estate, private companies + + pursuing a buy & hold strategy - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 57 + apps/client/src/app/pages/landing/landing-page.html + 282 - - Account + + interested in getting insights of your portfolio composition - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 69 + apps/client/src/app/pages/landing/landing-page.html + 287 + + + valuing privacy and data ownership - libs/ui/src/lib/activities-table/activities-table.component.html - 387 + apps/client/src/app/pages/landing/landing-page.html + 292 - - Update Cash Balance + + into minimalism - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 94 + apps/client/src/app/pages/landing/landing-page.html + 295 - - Unit Price + + caring about diversifying your financial resources - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 173 + apps/client/src/app/pages/landing/landing-page.html + 299 + + + interested in financial independence - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 228 + apps/client/src/app/pages/landing/landing-page.html + 303 + + + saying no to spreadsheets in - libs/ui/src/lib/activities-table/activities-table.component.html - 259 + apps/client/src/app/pages/landing/landing-page.html + 307 - - Oops! Could not get the historical exchange rate from + + still reading this list - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 258 + apps/client/src/app/pages/landing/landing-page.html + 310 - - Fee + + Learn more about Ghostfolio - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 242 + apps/client/src/app/pages/landing/landing-page.html + 315 + + + What our users are saying - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 267 + apps/client/src/app/pages/landing/landing-page.html + 323 + + + Members from around the globe are using Ghostfolio Premium - libs/ui/src/lib/activities-table/activities-table.component.html - 288 + apps/client/src/app/pages/landing/landing-page.html + 354 - - Import Activities + + How does Ghostfolio work? - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 40 + apps/client/src/app/pages/landing/landing-page.html + 366 - - Import Dividends + + Get started in only 3 steps - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 79 + apps/client/src/app/pages/landing/landing-page.html + 369 - - Importing data... + + Sign up anonymously* - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 113 + apps/client/src/app/pages/landing/landing-page.html + 375 - - Import has been completed + + * no e-mail address nor credit card required - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 121 + apps/client/src/app/pages/landing/landing-page.html + 377 - - Validating data... + + Add any of your historical transactions - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts - 224 + apps/client/src/app/pages/landing/landing-page.html + 388 - - Select Holding + + Get valuable insights of your portfolio composition - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 20 + apps/client/src/app/pages/landing/landing-page.html + 400 - - Select File + + Are you ready? - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 23 + apps/client/src/app/pages/landing/landing-page.html + 412 - - Holding + + Join now or check out the example account - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 33 + apps/client/src/app/pages/landing/landing-page.html + 413 - - Load Dividends + + At Ghostfolio, transparency is at the core of our values. We publish the source code as open source software (OSS) under the AGPL-3.0 license and we openly share aggregated key metrics of the platform’s operational status. - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 65 + apps/client/src/app/pages/open/open-page.html + 6 - - The following file formats are supported: + + (Last 24 hours) - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 91 + apps/client/src/app/pages/open/open-page.html + 37 - - Select Dividends + + Active Users - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 114 + apps/client/src/app/pages/open/open-page.html + 40 - - - Select Activities - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 117 + apps/client/src/app/pages/open/open-page.html + 62 - - Back + + (Last 30 days) - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 141 + apps/client/src/app/pages/open/open-page.html + 48 - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 178 + apps/client/src/app/pages/open/open-page.html + 59 - - Import + + New Users - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 79 + apps/client/src/app/pages/open/open-page.html + 51 + + + Users in Slack community - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 150 + apps/client/src/app/pages/open/open-page.html + 75 + + + Contributors on GitHub - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 186 + apps/client/src/app/pages/open/open-page.html + 89 - - Allocations + + (Last 90 days) - apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts - 12 + apps/client/src/app/pages/open/open-page.html + 127 + + + Uptime - apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 48 + apps/client/src/app/pages/open/open-page.html + 132 - - Filter by account or tag... + + Activities - apps/client/src/app/pages/portfolio/allocations/allocations-page.component.ts - 146 + apps/client/src/app/pages/portfolio/activities/activities-page-routing.module.ts + 13 - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 126 + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 44 - - apps/client/src/app/pages/portfolio/holdings/holdings-page.component.ts - 86 + + + Do you really want to delete all your activities? + + apps/client/src/app/pages/portfolio/activities/activities-page.component.ts + 169 + + + + Update activity + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 7 + + + + Stocks, ETFs, bonds, cryptocurrencies, commodities + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 21 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 51 + + + + One-time fee, annual account fees + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 27 + + + + Distribution of corporate earnings + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 33 + + + + Revenue for lending out money + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 39 + + + + Mortgages, personal loans, credit cards + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 45 + + + + Luxury items, real estate, private companies + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 57 + + + + Account + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 69 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 306 + + + + Update Cash Balance + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 93 + + + + Unit Price + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 172 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 227 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 208 + + + + Oops! Could not get the historical exchange rate from + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 197 + + + + Fee + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 241 + + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 266 + + + libs/ui/src/lib/activities-table/activities-table.component.html + 232 + + + + Oops! Could not get the historical exchange rate from + + apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html + 257 + + + + Import Activities + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 44 + + + + Import Dividends + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 86 + + + + Importing data... + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 120 + + + + Import has been completed + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 128 + + + + Validating data... + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.component.ts + 233 + + + + Select Holding + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 20 + + + + Select File + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 23 + + + + Holding + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 33 + + + + Load Dividends + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 65 + + + + Choose or drop a file here + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 81 + + + + The following file formats are supported: + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 87 + + + + Select Dividends + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 110 + + + + Select Activities + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 113 + + + + Back + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 140 + + + apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html + 176 + + + + Allocations + + apps/client/src/app/pages/portfolio/allocations/allocations-page-routing.module.ts + 13 + + + apps/client/src/app/pages/portfolio/portfolio-page.component.ts + 49 @@ -4299,63 +4833,63 @@ Proportion of Net Worth apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 18 + 12 By Platform apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 42 + 36 By Currency apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 61 + 55 By Asset Class apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 84 + 78 By Holding apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 107 + 101 By Sector apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 130 + 124 By Continent apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 154 + 148 By Market apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 177 + 171 Regions apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 201 + 195 apps/client/src/app/pages/public/public-page.html @@ -4366,7 +4900,7 @@ Developed Markets apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 224 + 218 apps/client/src/app/pages/public/public-page.html @@ -4377,7 +4911,7 @@ Emerging Markets apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 233 + 227 apps/client/src/app/pages/public/public-page.html @@ -4388,7 +4922,7 @@ Other Markets apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 242 + 236 apps/client/src/app/pages/public/public-page.html @@ -4399,7 +4933,7 @@ No data available apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 254 + 248 apps/client/src/app/pages/public/public-page.html @@ -4410,39 +4944,39 @@ By Account apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 266 + 260 By ETF Provider apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 286 + 280 By Country apps/client/src/app/pages/portfolio/allocations/allocations-page.html - 309 + 303 Analysis apps/client/src/app/pages/portfolio/analysis/analysis-page-routing.module.ts - 12 + 13 apps/client/src/app/pages/portfolio/portfolio-page.component.ts - 33 + 34 Dividend apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 43 + 42 libs/ui/src/lib/i18n.ts @@ -4451,14 +4985,6 @@ Deposit - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 48 - - - apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts - 60 - libs/ui/src/lib/fire-calculator/fire-calculator.component.ts 331 @@ -4489,56 +5015,56 @@ Top apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 40 + 128 Bottom apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 86 + 174 Portfolio Evolution apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 136 + 224 Investment Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 166 + 254 Current Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 187 + 275 Longest Streak apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 196 + 284 Dividend Timeline apps/client/src/app/pages/portfolio/analysis/analysis-page.html - 223 + 312 FIRE apps/client/src/app/pages/portfolio/fire/fire-page-routing.module.ts - 12 + 13 @@ -4559,18 +5085,36 @@ 4% Rule apps/client/src/app/pages/portfolio/fire/fire-page.html - 34 + 38 - - If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. + + Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. apps/client/src/app/pages/portfolio/fire/fire-page.html - 57 + 108 + + + + Currency Cluster Risks + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 132 + + + + Account Cluster Risks + + apps/client/src/app/pages/portfolio/fire/fire-page.html + 145 Holdings + + apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html + 75 + apps/client/src/app/pages/portfolio/holdings/holdings-page.html 4 @@ -4588,7 +5132,7 @@ Pricing apps/client/src/app/pages/pricing/pricing-page-routing.module.ts - 12 + 13 @@ -4623,156 +5167,153 @@ Unlimited Transactions apps/client/src/app/pages/pricing/pricing-page.html - 46 + 43 apps/client/src/app/pages/pricing/pricing-page.html - 159 + 126 apps/client/src/app/pages/pricing/pricing-page.html - 235 + 187 Unlimited Accounts apps/client/src/app/pages/pricing/pricing-page.html - 53 + 47 apps/client/src/app/pages/pricing/pricing-page.html - 166 + 130 apps/client/src/app/pages/pricing/pricing-page.html - 242 + 191 Portfolio Performance apps/client/src/app/pages/pricing/pricing-page.html - 60 + 51 apps/client/src/app/pages/pricing/pricing-page.html - 173 + 134 apps/client/src/app/pages/pricing/pricing-page.html - 249 + 195 Data Import and Export apps/client/src/app/pages/pricing/pricing-page.html - 95 + 71 apps/client/src/app/pages/pricing/pricing-page.html - 180 + 138 apps/client/src/app/pages/pricing/pricing-page.html - 284 + 215 Community Support apps/client/src/app/pages/pricing/pricing-page.html - 118 + 88 Self-hosted, update manually. apps/client/src/app/pages/pricing/pricing-page.html - 122 + 92 Free apps/client/src/app/pages/pricing/pricing-page.html - 123 + 93 apps/client/src/app/pages/pricing/pricing-page.html - 192 + 150 For new investors who are just getting started with trading. apps/client/src/app/pages/pricing/pricing-page.html - 150 + 120 Fully managed Ghostfolio cloud offering. apps/client/src/app/pages/pricing/pricing-page.html - 191 + 149 apps/client/src/app/pages/pricing/pricing-page.html - 318 + 240 For ambitious investors who need the full picture of their financial assets. apps/client/src/app/pages/pricing/pricing-page.html - 225 + 180 Email and Chat Support apps/client/src/app/pages/pricing/pricing-page.html - 314 + 236 - - per year + + Renew Plan - apps/client/src/app/components/user-account-membership/user-account-membership.html - 33 + apps/client/src/app/components/header/header.component.html + 185 - apps/client/src/app/pages/pricing/pricing-page.html - 332 + apps/client/src/app/components/user-account-membership/user-account-membership.html + 23 - - - Renew Plan apps/client/src/app/pages/pricing/pricing-page.html - 348 + 270 One-time payment, no auto-renewal. apps/client/src/app/pages/pricing/pricing-page.html - 352 + 274 Get Started apps/client/src/app/pages/pricing/pricing-page.html - 363 + 285 It’s free. apps/client/src/app/pages/pricing/pricing-page.html - 366 + 288 @@ -4807,22 +5348,7 @@ Registration apps/client/src/app/pages/register/register-page-routing.module.ts - 12 - - - - Create Account - - apps/client/src/app/app.component.html - 18 - - - apps/client/src/app/pages/register/register-page.html - 26 - - - apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 2 + 13 @@ -4850,28 +5376,28 @@ I agree to have stored my Security Token from above in a secure place. If I lose it, I cannot get my account back. apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 31 + 32 Agree and continue apps/client/src/app/pages/register/show-access-token-dialog/show-access-token-dialog.html - 44 + 45 Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 13 + 14 open-source-alternative-to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 22 + 23 apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.component.ts @@ -4882,7 +5408,7 @@ Open Source Alternative to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page-routing.module.ts - 25 + 26 @@ -4910,7 +5436,7 @@ Open Source Alternative to apps/client/src/app/pages/resources/personal-finance-tools/personal-finance-tools-page.html - 35 + 32 @@ -5103,6 +5629,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 8 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 8 + Are you looking for an open source alternative to ? Ghostfolio is a powerful portfolio management tool that provides individuals with a comprehensive platform to track, analyze, and optimize their investments. Whether you are an experienced investor or just starting out, Ghostfolio offers an intuitive user interface and a wide range of functionalities to help you make informed decisions and take control of your financial future. @@ -5294,6 +5832,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 13 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 13 + Ghostfolio is an open source software (OSS), providing a cost-effective alternative to making it particularly suitable for individuals on a tight budget, such as those pursuing Financial Independence, Retire Early (FIRE). By leveraging the collective efforts of a community of developers and personal finance enthusiasts, Ghostfolio continuously enhances its capabilities, security, and user experience. @@ -5485,6 +6035,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 26 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 26 + Let’s dive deeper into the detailed Ghostfolio vs comparison table below to gain a thorough understanding of how Ghostfolio positions itself relative to . We will explore various aspects such as features, data privacy, pricing, and more, allowing you to make a well-informed choice for your personal requirements. @@ -5676,160 +6238,387 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 37 - - - Founded apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 37 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 37 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 37 + + + Ghostfolio vs comparison table apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 67 + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 48 + + + + Founded + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 67 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -6058,6 +6847,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 72 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 72 + Region @@ -6249,6 +7050,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 77 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 77 + Available in @@ -6440,12 +7253,24 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 82 - - - ✅ Yes apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 104 + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 82 + + + + ✅ Yes + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html @@ -6631,6 +7456,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 104 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 104 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 111 @@ -6819,6 +7660,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 111 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 111 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 @@ -7007,6 +7864,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 125 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 125 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 136 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 136 @@ -7383,6 +8256,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 150 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 150 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 157 @@ -7571,6 +8460,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 157 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 157 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 169 @@ -7759,6 +8664,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 169 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 169 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 176 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 176 @@ -8138,6 +9059,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 106 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 106 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 129 @@ -8326,6 +9263,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 129 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 129 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 140 @@ -8514,6 +9467,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 140 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 140 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 152 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 152 @@ -8890,6 +9859,22 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 159 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 159 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 171 @@ -9078,6 +10063,26 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 171 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 171 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 178 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 178 @@ -9457,6 +10462,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 113 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 113 + Self-Hosting @@ -9648,6 +10665,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 118 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 118 + Use anonymously @@ -9839,6 +10868,18 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 145 + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 145 + Free Plan @@ -10030,3470 +11071,3254 @@ apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html 164 - - - Notes apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 164 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 164 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 164 + + + Starting from apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 196 + 185 - - - Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 185 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 204 + 190 - - - Ready to take your investments to the next level? apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 190 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 190 + + + year apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 217 + 186 - - - Effortlessly track, analyze, and visualize your wealth with Ghostfolio. apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 186 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 221 + 191 - - - Get Started apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 191 + + + Notes apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 226 + 196 - - - Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 196 + + + Please note that the information provided in the Ghostfolio vs comparison table is based on our independent research and analysis. This website is not affiliated with or any other product mentioned in the comparison. As the landscape of personal finance tools evolves, it is essential to verify any specific details or changes directly from the respective product page. Data needs a refresh? Help us maintain accurate data on GitHub. apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 302 + 204 - - - Switzerland - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 69 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 90 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 506 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 548 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - - - Global - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 70 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 317 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 438 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 549 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - - - United States - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 81 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 137 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 147 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 189 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 198 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 208 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 218 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 270 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 292 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 303 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 328 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 330 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 340 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 204 + + + Ready to take your investments to the next level? - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 405 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 415 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 425 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 494 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 517 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 537 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 559 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Belgium - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 167 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Germany - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 128 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 178 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 250 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 260 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 281 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 315 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 361 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Austria - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 238 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Italy - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 372 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Netherlands - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 382 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Thailand - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 394 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - New Zealand - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 436 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Czech Republic - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 447 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 484 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Resources - apps/client/src/app/pages/resources/resources-page-routing.module.ts - 12 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Guides - apps/client/src/app/pages/resources/resources-page.html - 5 - - - - Glossary - - apps/client/src/app/pages/resources/resources-page.html - 75 - - - - Grant access - - apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 7 - - - - Public - - apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html - 24 - - - - My Ghostfolio - - apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 32 - - - - Auto - - apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 31 - - - - Please enter your coupon code: - - apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 110 - - - - Could not redeem coupon code - - apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 120 - - - - Coupon code has been redeemed - - apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 132 - - - - Reload - - apps/client/src/app/components/user-account-membership/user-account-membership.component.ts - 133 - - - - Do you really want to remove this sign in method? - - apps/client/src/app/components/user-account-settings/user-account-settings.component.ts - 182 - - - - Membership - - libs/ui/src/lib/membership-card/membership-card.component.html - 18 - - - - Valid until - - libs/ui/src/lib/membership-card/membership-card.component.html - 22 - - - - Upgrade - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 18 - - - - Renew - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 21 - - - - Try Premium - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 42 - - - - Redeem Coupon - - apps/client/src/app/components/user-account-membership/user-account-membership.html - 55 - - - - Presenter View - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 7 - - - - Protection for sensitive information like absolute performances and quantity values - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 8 - - - - Base Currency - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 27 - - - - Language - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 48 - - - - Locale - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 95 - - - - Date and number format - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 97 - - - - Appearance - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 118 - - - - Auto - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 130 - - - - Light - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 131 - - - - Dark - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 132 - - - - Distraction-free experience for turbulent times - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 142 - - - - Biometric Authentication - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 158 - - - - Sign in with fingerprint - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 159 - - - - Experimental Features - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 176 - - - - Sneak peek at upcoming functionality - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 177 - - - - User ID - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 192 - - - - Export Data - - apps/client/src/app/components/user-account-settings/user-account-settings.html - 199 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Granted Access - apps/client/src/app/components/user-account-access/user-account-access.html - 5 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Oops, authentication has failed. - apps/client/src/app/pages/webauthn/webauthn-page.html - 18 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Try again - apps/client/src/app/pages/webauthn/webauthn-page.html - 26 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Go back to Home Page - apps/client/src/app/pages/webauthn/webauthn-page.html - 30 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Import Activities - libs/ui/src/lib/activities-table/activities-table.component.html - 16 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - libs/ui/src/lib/activities-table/activities-table.component.html - 453 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Import Dividends - libs/ui/src/lib/activities-table/activities-table.component.html - 35 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - libs/ui/src/lib/activities-table/activities-table.component.html - 464 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Export Activities - libs/ui/src/lib/activities-table/activities-table.component.html - 47 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - libs/ui/src/lib/activities-table/activities-table.component.html - 476 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Export Drafts as ICS - libs/ui/src/lib/activities-table/activities-table.component.html - 59 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - libs/ui/src/lib/activities-table/activities-table.component.html - 488 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Delete all Activities - libs/ui/src/lib/activities-table/activities-table.component.html - 69 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Draft - libs/ui/src/lib/activities-table/activities-table.component.html - 189 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Clone - libs/ui/src/lib/activities-table/activities-table.component.html - 513 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Export Draft as ICS - libs/ui/src/lib/activities-table/activities-table.component.html - 523 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Do you really want to delete this activity? - libs/ui/src/lib/activities-table/activities-table.component.ts - 227 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Filter by account, currency, symbol or type... - libs/ui/src/lib/activities-table/activities-table.component.ts - 427 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Index - libs/ui/src/lib/benchmark/benchmark.component.html - 3 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Change from All Time High - libs/ui/src/lib/benchmark/benchmark.component.html - 79 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - from ATH - libs/ui/src/lib/benchmark/benchmark.component.html - 81 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Market data provided by - libs/ui/src/lib/data-provider-credits/data-provider-credits.component.html - 2 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Savings Rate per Month - libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 10 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Annual Interest Rate - libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 21 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Retirement Date - libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 32 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - - Projected Total Amount - libs/ui/src/lib/fire-calculator/fire-calculator.component.html - 60 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 217 - - Interest + + Effortlessly track, analyze, and visualize your wealth with Ghostfolio. - libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 341 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - libs/ui/src/lib/i18n.ts - 33 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Savings - libs/ui/src/lib/fire-calculator/fire-calculator.component.ts - 351 - - - - Allocation - - libs/ui/src/lib/holdings-table/holdings-table.component.html - 98 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Show all - libs/ui/src/lib/holdings-table/holdings-table.component.html - 172 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Account - libs/ui/src/lib/i18n.ts - 4 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Asia-Pacific - libs/ui/src/lib/i18n.ts - 5 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Asset Class - libs/ui/src/lib/i18n.ts - 6 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Asset Sub Class - libs/ui/src/lib/i18n.ts - 7 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Core - libs/ui/src/lib/i18n.ts - 8 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Switch to Ghostfolio Premium or Ghostfolio Open Source easily - libs/ui/src/lib/i18n.ts - 9 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Switch to Ghostfolio Premium easily - libs/ui/src/lib/i18n.ts - 10 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Switch to Ghostfolio Open Source or Ghostfolio Basic easily - libs/ui/src/lib/i18n.ts - 11 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Emergency Fund - libs/ui/src/lib/i18n.ts - 12 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Grant - libs/ui/src/lib/i18n.ts - 13 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Higher Risk - libs/ui/src/lib/i18n.ts - 14 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - This activity already exists. - libs/ui/src/lib/i18n.ts - 15 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Japan - libs/ui/src/lib/i18n.ts - 16 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Lower Risk - libs/ui/src/lib/i18n.ts - 17 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Month - libs/ui/src/lib/i18n.ts - 18 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Months - libs/ui/src/lib/i18n.ts - 19 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Other - libs/ui/src/lib/i18n.ts - 20 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 384 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Preset - libs/ui/src/lib/i18n.ts - 21 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Retirement Provision - libs/ui/src/lib/i18n.ts - 22 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Satellite - libs/ui/src/lib/i18n.ts - 23 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Symbol - libs/ui/src/lib/i18n.ts - 24 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Tag - libs/ui/src/lib/i18n.ts - 25 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Year - libs/ui/src/lib/i18n.ts - 26 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Years - libs/ui/src/lib/i18n.ts - 27 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Buy - libs/ui/src/lib/i18n.ts - 30 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Valuable - libs/ui/src/lib/i18n.ts - 34 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Liability - libs/ui/src/lib/i18n.ts - 35 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Sell - libs/ui/src/lib/i18n.ts - 36 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Cash - libs/ui/src/lib/i18n.ts - 39 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Commodity - libs/ui/src/lib/i18n.ts - 40 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Equity - libs/ui/src/lib/i18n.ts - 41 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Fixed Income - libs/ui/src/lib/i18n.ts - 42 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Real Estate - libs/ui/src/lib/i18n.ts - 43 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Bond - libs/ui/src/lib/i18n.ts - 46 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Cryptocurrency - libs/ui/src/lib/i18n.ts - 47 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - ETF - libs/ui/src/lib/i18n.ts - 48 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Mutual Fund - libs/ui/src/lib/i18n.ts - 49 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Precious Metal - libs/ui/src/lib/i18n.ts - 50 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Private Equity - libs/ui/src/lib/i18n.ts - 51 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Stock - libs/ui/src/lib/i18n.ts - 52 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Africa - libs/ui/src/lib/i18n.ts - 55 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Asia - libs/ui/src/lib/i18n.ts - 56 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Europe - libs/ui/src/lib/i18n.ts - 57 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - North America - libs/ui/src/lib/i18n.ts - 58 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - - Oceania - libs/ui/src/lib/i18n.ts - 59 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 221 - - South America + + Get Started - libs/ui/src/lib/i18n.ts - 60 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Time to add your first activity. - libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html - 12 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - No data available - libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 386 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts - 399 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Choose or drop a file here - apps/client/src/app/pages/portfolio/activities/import-activities-dialog/import-activities-dialog.html - 85 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - You are using the Live Demo. - apps/client/src/app/app.component.html - 17 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Fee - libs/ui/src/lib/i18n.ts - 32 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Distribution of corporate earnings - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 33 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Oops! Could not get the historical exchange rate from - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 198 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - One-time fee, annual account fees - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 27 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Revenue for lending out money - apps/client/src/app/pages/portfolio/activities/create-or-update-activity-dialog/create-or-update-activity-dialog.html - 39 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Interest - apps/client/src/app/components/portfolio-summary/portfolio-summary.component.html - 280 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Add tag - apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 3 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Do you really want to delete this tag? - apps/client/src/app/components/admin-tag/admin-tag.component.ts - 78 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - France - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 109 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 458 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 474 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Update tag - apps/client/src/app/components/admin-tag/create-or-update-tag-dialog/create-or-update-tag-dialog.html - 2 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Add Tag - apps/client/src/app/components/admin-tag/admin-tag.component.html - 11 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Ghostfolio X-ray uses static analysis to identify potential issues and risks in your portfolio. - apps/client/src/app/pages/portfolio/fire/fire-page.html - 100 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Currency Cluster Risks - apps/client/src/app/pages/portfolio/fire/fire-page.html - 124 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Account Cluster Risks - apps/client/src/app/pages/portfolio/fire/fire-page.html - 137 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Benchmark - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html - 219 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Settings - apps/client/src/app/components/user-account-settings/user-account-settings.html - 2 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Membership - apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 22 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - apps/client/src/app/pages/user-account/user-account-page.component.ts - 39 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Find holding... - libs/ui/src/lib/assistant/assistant.component.ts - 89 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Transfer Cash Balance - apps/client/src/app/components/accounts-table/accounts-table.component.html - 9 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 7 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Access - apps/client/src/app/pages/user-account/user-account-page-routing.module.ts - 27 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - apps/client/src/app/pages/user-account/user-account-page.component.ts - 45 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - To - apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 29 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Transfer - apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 66 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Finland - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 466 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Version - apps/client/src/app/components/admin-overview/admin-overview.html - 7 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - No entries... - libs/ui/src/lib/assistant/assistant.html - 63 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - libs/ui/src/lib/assistant/assistant.html - 84 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - From - apps/client/src/app/pages/accounts/transfer-balance/transfer-balance-dialog.html - 11 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Asset Profile - apps/client/src/app/components/admin-jobs/admin-jobs.html - 31 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Last All Time High - libs/ui/src/lib/benchmark/benchmark.component.html - 63 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Add Manually - apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 19 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Do you really want to delete this asset profile? - apps/client/src/app/components/admin-market-data/admin-market-data.component.ts - 184 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Search - apps/client/src/app/components/admin-market-data/create-asset-profile-dialog/create-asset-profile-dialog.html - 16 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 + + + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Ghostfolio is a personal finance dashboard to keep track of your net worth including cash, stocks, ETFs and cryptocurrencies across multiple platforms. - apps/client/src/app/pages/i18n/i18n-page.html - 4 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - User - apps/client/src/app/components/admin-users/admin-users.html - 29 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 226 - - - Ghostfolio vs comparison table apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 226 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 226 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 226 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 226 + + + Personal Finance Tools apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 48 + 302 - - - Canada - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 529 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 - - - Open Source Wealth Management Software - apps/client/src/app/pages/i18n/i18n-page.html - 13 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 - - - app, asset, cryptocurrency, dashboard, etf, finance, management, performance, portfolio, software, stock, trading, wealth, web3 - apps/client/src/app/pages/i18n/i18n-page.html - 9 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 - - - Oops, cash balance transfer has failed. - apps/client/src/app/pages/accounts/accounts-page.component.ts - 305 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 - - - Poland - apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 119 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 - - - Extreme Fear - libs/ui/src/lib/i18n.ts - 63 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 - - - Extreme Greed - libs/ui/src/lib/i18n.ts - 64 + apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html + 302 - - Neutral + + Switzerland - libs/ui/src/lib/i18n.ts - 67 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 72 - - - South Africa apps/client/src/app/pages/resources/personal-finance-tools/products.ts - 227 + 102 - - - Oops! Could not parse historical data. - apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts - 205 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 530 - - - Do you really want to delete this system message? - apps/client/src/app/components/admin-overview/admin-overview.component.ts - 159 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 580 - - 200-Day Trend + + Global - libs/ui/src/lib/benchmark/benchmark.component.html - 39 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 73 - - - 50-Day Trend - libs/ui/src/lib/benchmark/benchmark.component.html - 15 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 341 - - - Cash Balances - apps/client/src/app/components/account-detail-dialog/account-detail-dialog.html - 88 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 462 - - - Do you really want to delete this account balance? - libs/ui/src/lib/account-balances/account-balances.component.ts - 56 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 581 - - year + + United States - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 93 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 149 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 159 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 201 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 210 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 220 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 232 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 242 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 294 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 316 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 327 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 352 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 354 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 364 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 429 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 439 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 449 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 518 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 541 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 569 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 591 + + + France - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 121 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 482 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 498 + + + Poland - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 131 + + + Germany - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 140 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 190 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 274 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 284 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 305 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 339 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 385 + + + Belgium - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 179 + + + South Africa - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 251 + + + Austria - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 262 + + + Italy - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 396 + + + Netherlands - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 406 + + + Thailand - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 418 + + + New Zealand - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 460 + + + Czech Republic - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 471 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 508 + + + Finland - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 490 + + + Canada - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/personal-finance-tools/products.ts + 561 + + + Resources - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/resources-page-routing.module.ts + 13 + + + Guides - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/resources-page.html + 5 + + + Glossary - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/resources/resources-page.html + 75 + + + Membership - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 186 + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 23 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + apps/client/src/app/pages/user-account/user-account-page.component.ts + 40 + + + Access - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 28 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + apps/client/src/app/pages/user-account/user-account-page.component.ts + 46 + + + My Ghostfolio - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + apps/client/src/app/pages/user-account/user-account-page-routing.module.ts + 33 + + + Oops, authentication has failed. - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + apps/client/src/app/pages/webauthn/webauthn-page.html + 19 + + + Try again - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + apps/client/src/app/pages/webauthn/webauthn-page.html + 27 + + + Go back to Home Page - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + apps/client/src/app/pages/webauthn/webauthn-page.html + 31 + + + Do you really want to delete this account balance? - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/account-balances/account-balances.component.ts + 57 + + + Import Activities - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.html + 9 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.html + 369 + + + Import Dividends - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.html + 29 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.html + 381 + + + Export Activities - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.html + 41 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.html + 394 + + + Export Drafts as ICS - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.html + 54 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.html + 407 + + + Delete all Activities - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.html + 65 + + + Draft - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.html + 143 + + + Clone - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.html + 434 + + + Export Draft as ICS - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.html + 444 + + + Do you really want to delete this activity? - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/activities-table/activities-table.component.ts + 175 + + + Find holding... - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/assistant/assistant.component.ts + 126 + + + No entries... - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/assistant/assistant.html + 63 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/assistant/assistant.html + 84 + + + Asset Profiles - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/assistant/assistant.html + 67 + + + Index - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/benchmark/benchmark.component.html + 3 + + + 50-Day Trend - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/benchmark/benchmark.component.html + 15 + + + 200-Day Trend - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/benchmark/benchmark.component.html + 40 + + + Last All Time High - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/benchmark/benchmark.component.html + 65 + + + Change from All Time High - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/benchmark/benchmark.component.html + 81 + + + from ATH - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/benchmark/benchmark.component.html + 83 + + + Market data provided by - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/data-provider-credits/data-provider-credits.component.html + 2 + + + Savings Rate per Month - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 10 + + + Annual Interest Rate - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 21 + + + Retirement Date - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 32 + + + Projected Total Amount - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/fire-calculator/fire-calculator.component.html + 60 + + + Interest - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/fire-calculator/fire-calculator.component.ts + 341 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/i18n.ts + 33 + + + Savings - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/fire-calculator/fire-calculator.component.ts + 351 + + + Allocation - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/holdings-table/holdings-table.component.html + 98 + + + Show all - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/holdings-table/holdings-table.component.html + 171 + + + Account - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/i18n.ts + 4 + + + Asia-Pacific - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/i18n.ts + 5 + + + Asset Class - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/i18n.ts + 6 + + + Asset Sub Class - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/i18n.ts + 7 + + + Core - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/i18n.ts + 8 + + + Switch to Ghostfolio Premium or Ghostfolio Open Source easily - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 191 + libs/ui/src/lib/i18n.ts + 9 - - Starting from + + Switch to Ghostfolio Premium easily - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 10 + + + Switch to Ghostfolio Open Source or Ghostfolio Basic easily - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 11 + + + Emergency Fund - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 12 + + + Grant - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 13 + + + Higher Risk - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 14 + + + This activity already exists. - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 15 + + + Japan - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 16 + + + Lower Risk - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 17 + + + Month - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 18 + + + Months - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 19 + + + Other - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 20 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts + 385 + + + Preset - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 21 + + + Retirement Provision - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 22 + + + Satellite - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 23 + + + Symbol - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 24 + + + Tag - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 25 + + + Year - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 26 + + + Years - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 27 + + + Buy - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 30 + + + Fee - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 32 + + + Valuable - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 34 + + + Liability - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 35 + + + Sell - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 36 + + + Cash - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 39 + + + Commodity - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 40 + + + Equity - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 41 + + + Fixed Income - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 42 + + + Real Estate - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 43 + + + Bond - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 46 + + + Cryptocurrency - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 47 + + + ETF - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 48 + + + Mutual Fund - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 49 + + + Precious Metal - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 50 + + + Private Equity - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 51 + + + Stock - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 52 + + + Africa - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 55 + + + Asia - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 56 + + + Europe - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 57 + + + North America - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 58 + + + Oceania - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 59 + + + South America - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 60 + + + Extreme Fear - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 63 + + + Extreme Greed - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 64 + + + Neutral - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/i18n.ts + 67 + + + Membership - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/membership-card/membership-card.component.html + 18 + + + Valid until - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 185 + libs/ui/src/lib/membership-card/membership-card.component.html + 23 + + + Time to add your first activity. - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html + 12 + + + No data available - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts + 387 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/portfolio-proportion-chart/portfolio-proportion-chart.component.ts + 400 + + + If a translation is missing, kindly support us in extending it here. - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/user-account-settings/user-account-settings.html + 53 + + + Date Range - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/assistant/assistant.html + 93 + + + The current market price is - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.component.ts + 318 + + + Test - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/admin-market-data/asset-profile-dialog/asset-profile-dialog.html + 259 + + + Oops! Could not grant access. - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.component.ts + 80 + + + Restricted view - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/access-table/access-table.component.html + 25 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 35 + + + Permission - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/access-table/access-table.component.html + 17 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 33 + + + Private - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 24 + + + Job Queue - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/admin/admin-page-routing.module.ts + 25 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/admin/admin-page.component.ts + 42 + + + Market data is delayed for - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.ts + 80 + + + Absolute Currency Performance - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 57 + + + Absolute Net Performance - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 88 + + + Absolute Asset Performance - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 27 + + + Investment - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 46 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/portfolio/analysis/analysis-page.component.ts + 60 + + + Asset Performance - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 42 + + + Net Performance - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 103 + + + Currency Performance - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/portfolio/analysis/analysis-page.html + 72 + + + Year to date - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/assistant/assistant.component.ts + 109 + + + Week to date - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + Month to date - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + MTD - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/assistant/assistant.component.ts + 105 + + + WTD - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/assistant/assistant.component.ts + 101 + + + Oops! A data provider is experiencing the hiccups. - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/portfolio-performance/portfolio-performance.component.html + 8 + + + View - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/access-table/access-table.component.html + 22 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/user-account-access/create-or-update-access-dialog/create-or-update-access-dialog.html + 37 + + + Reset Filters - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/assistant/assistant.html + 155 + + + If you retire today, you would be able to withdraw per year or per month, based on your total assets of and a withdrawal rate of 4%. - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/portfolio/fire/fire-page.html + 65 + + + year - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/assistant/assistant.component.ts + 112 + + + years - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/assistant/assistant.component.ts + 114 + + + Apply Filters - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/assistant/assistant.html + 165 + + + Asset Classes - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + libs/ui/src/lib/assistant/assistant.html + 138 + + + self-hosting - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/faq/faq-page.component.ts + 48 + + + FAQ - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + Self-Hosting - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/faq/faq-page.component.ts + 47 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/faq/self-hosting/self-hosting-page-routing.module.ts + 13 + + + Data Gathering - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/components/admin-overview/admin-overview.html + 132 + + + General - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/faq/faq-page.component.ts + 36 + + + Cloud - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/faq/faq-page.component.ts + 41 - apps/client/src/app/pages/resources/personal-finance-tools/product-page-template.html - 190 + apps/client/src/app/pages/faq/saas/saas-page-routing.module.ts + 13 diff --git a/apps/client/src/main.ts b/apps/client/src/main.ts index 0c9453676..9f89777aa 100644 --- a/apps/client/src/main.ts +++ b/apps/client/src/main.ts @@ -1,10 +1,11 @@ -import { enableProdMode } from '@angular/core'; -import { LOCALE_ID } from '@angular/core'; -import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; import { locale } from '@ghostfolio/common/config'; import { InfoItem } from '@ghostfolio/common/interfaces'; import { filterGlobalPermissions } from '@ghostfolio/common/permissions'; +import { enableProdMode } from '@angular/core'; +import { LOCALE_ID } from '@angular/core'; +import { platformBrowserDynamic } from '@angular/platform-browser-dynamic'; + import { AppModule } from './app/app.module'; import { environment } from './environments/environment'; diff --git a/apps/client/src/styles.scss b/apps/client/src/styles.scss index fbcc5e73f..f4a50549b 100644 --- a/apps/client/src/styles.scss +++ b/apps/client/src/styles.scss @@ -379,13 +379,17 @@ ngx-skeleton-loader { cursor: pointer; } +.gf-spacer { + flex: 1 1 auto; +} + .gf-table { @include gf-table; } .has-info-message { .page.has-tabs { - height: calc(100vh - 2 * var(--mat-toolbar-standard-height)); + height: calc(100svh - 2 * var(--mat-toolbar-standard-height)); } } @@ -505,6 +509,8 @@ ngx-skeleton-loader { display: flex; flex-direction: column; overflow-y: auto; + padding-bottom: env(safe-area-inset-bottom); + padding-bottom: constant(safe-area-inset-bottom); .fab-container { bottom: 2rem; @@ -520,9 +526,7 @@ ngx-skeleton-loader { } &.has-tabs { - height: calc(100vh - var(--mat-toolbar-standard-height)); - padding-bottom: env(safe-area-inset-bottom); - padding-bottom: constant(safe-area-inset-bottom); + height: calc(100svh - var(--mat-toolbar-standard-height)); .fab-container { @media (max-width: 575.98px) { diff --git a/apps/ui-e2e/src/support/index.ts b/apps/ui-e2e/src/support/index.ts index 3d469a6b6..fad130159 100644 --- a/apps/ui-e2e/src/support/index.ts +++ b/apps/ui-e2e/src/support/index.ts @@ -12,6 +12,5 @@ // You can read more here: // https://on.cypress.io/configuration // *********************************************************** - // Import commands.js using ES2015 syntax: import './commands'; diff --git a/docker/docker-compose.build.yml b/docker/docker-compose.build.yml index 6bb158ddd..2ac90b7c1 100644 --- a/docker/docker-compose.build.yml +++ b/docker/docker-compose.build.yml @@ -16,6 +16,11 @@ services: condition: service_healthy redis: condition: service_healthy + healthcheck: + test: ['CMD-SHELL', 'curl -f http://localhost:3333/api/v1/health'] + interval: 10s + timeout: 5s + retries: 5 postgres: image: postgres:15 env_file: @@ -29,8 +34,11 @@ services: - postgres:/var/lib/postgresql/data redis: image: redis:alpine + env_file: + - ../.env + command: ['redis-server', '--requirepass', $REDIS_PASSWORD] healthcheck: - test: ['CMD-SHELL', 'redis-cli ping | grep PONG'] + test: ['CMD-SHELL', 'redis-cli --pass $REDIS_PASSWORD ping | grep PONG'] interval: 10s timeout: 5s retries: 5 diff --git a/docker/docker-compose.dev.yml b/docker/docker-compose.dev.yml index 7c6e5e28a..a61359a53 100644 --- a/docker/docker-compose.dev.yml +++ b/docker/docker-compose.dev.yml @@ -14,6 +14,9 @@ services: image: redis:alpine container_name: redis restart: unless-stopped + env_file: + - ../.env + command: ['redis-server', '--requirepass', $REDIS_PASSWORD] ports: - ${REDIS_PORT:-6379}:6379 diff --git a/docker/docker-compose.yml b/docker/docker-compose.yml index d0be3965d..007a46883 100644 --- a/docker/docker-compose.yml +++ b/docker/docker-compose.yml @@ -16,6 +16,11 @@ services: condition: service_healthy redis: condition: service_healthy + healthcheck: + test: ['CMD-SHELL', 'curl -f http://localhost:3333/api/v1/health'] + interval: 10s + timeout: 5s + retries: 5 postgres: image: postgres:15 env_file: @@ -29,8 +34,11 @@ services: - postgres:/var/lib/postgresql/data redis: image: redis:alpine + env_file: + - ../.env + command: ['redis-server', '--requirepass', $REDIS_PASSWORD] healthcheck: - test: ['CMD-SHELL', 'redis-cli ping | grep PONG'] + test: ['CMD-SHELL', 'redis-cli --pass $REDIS_PASSWORD ping | grep PONG'] interval: 10s timeout: 5s retries: 5 diff --git a/git-hooks/pre-commit b/git-hooks/pre-commit new file mode 100644 index 000000000..673b3ba68 --- /dev/null +++ b/git-hooks/pre-commit @@ -0,0 +1,26 @@ +#!/bin/bash + +# Will check if "yarn format" is run before executing. +# Called by "git commit" with no arguments. The hook should +# exit with non-zero status after issuing an appropriate message if +# it wants to stop the commit. + +echo "Running yarn format" + +# Run the command and loop over its output +FILES_TO_STAGE="" +i=0 +while IFS= read -r line; do + # Process each line here + ((i++)) + if [ $i -le 2 ]; then + continue + fi + if [[ $line == Done* ]]; then + break + fi + FILES_TO_STAGE="$FILES_TO_STAGE $line" + +done < <(yarn format ) +git add $FILES_TO_STAGE +echo "Files formatted. Committing..." diff --git a/libs/common/src/lib/config.ts b/libs/common/src/lib/config.ts index b8369d60a..3bbe0ff8c 100644 --- a/libs/common/src/lib/config.ts +++ b/libs/common/src/lib/config.ts @@ -39,9 +39,27 @@ export const DEFAULT_CURRENCY = 'USD'; export const DEFAULT_DATE_FORMAT_MONTH_YEAR = 'MMM yyyy'; export const DEFAULT_LANGUAGE_CODE = 'en'; export const DEFAULT_PAGE_SIZE = 50; -export const DEFAULT_REQUEST_TIMEOUT = ms('2 seconds'); export const DEFAULT_ROOT_URL = 'http://localhost:4200'; +// USX is handled separately +export const DERIVED_CURRENCIES = [ + { + currency: 'GBp', + factor: 100, + rootCurrency: 'GBP' + }, + { + currency: 'ILA', + factor: 100, + rootCurrency: 'ILS' + }, + { + currency: 'ZAc', + factor: 100, + rootCurrency: 'ZAR' + } +]; + export const EMERGENCY_FUND_TAG_ID = '4452656d-9fa4-4bd0-ba38-70492e31d180'; export const GATHER_ASSET_PROFILE_PROCESS = 'GATHER_ASSET_PROFILE'; @@ -79,6 +97,7 @@ export const PROPERTY_COUPONS = 'COUPONS'; export const PROPERTY_CURRENCIES = 'CURRENCIES'; export const PROPERTY_DATA_SOURCE_MAPPING = 'DATA_SOURCE_MAPPING'; export const PROPERTY_DEMO_USER_ID = 'DEMO_USER_ID'; +export const PROPERTY_IS_DATA_GATHERING_ENABLED = 'IS_DATA_GATHERING_ENABLED'; export const PROPERTY_IS_READ_ONLY_MODE = 'IS_READ_ONLY_MODE'; export const PROPERTY_IS_USER_SIGNUP_ENABLED = 'IS_USER_SIGNUP_ENABLED'; export const PROPERTY_SLACK_COMMUNITY_USERS = 'SLACK_COMMUNITY_USERS'; @@ -94,6 +113,21 @@ export const QUEUE_JOB_STATUS_LIST = [ 'waiting' ]; +export const REPLACE_NAME_PARTS = [ + 'Amundi Index Solutions -', + 'iShares ETF (CH) -', + 'iShares III Public Limited Company -', + 'iShares V PLC -', + 'iShares VI Public Limited Company -', + 'iShares VII PLC -', + 'Multi Units Luxembourg -', + 'VanEck ETFs N.V. -', + 'Vaneck Vectors Ucits Etfs Plc -', + 'Vanguard Funds Public Limited Company -', + 'Vanguard Index Funds -', + 'Xtrackers (IE) Plc -' +]; + export const SUPPORTED_LANGUAGE_CODES = [ 'de', 'en', diff --git a/libs/common/src/lib/helper.spec.ts b/libs/common/src/lib/helper.spec.ts new file mode 100644 index 000000000..22a171168 --- /dev/null +++ b/libs/common/src/lib/helper.spec.ts @@ -0,0 +1,39 @@ +import { extractNumberFromString } from '@ghostfolio/common/helper'; + +describe('Helper', () => { + describe('Extract number from string', () => { + it('Get decimal number', async () => { + expect(extractNumberFromString({ value: '999.99' })).toEqual(999.99); + }); + + it('Get decimal number (with spaces)', async () => { + expect(extractNumberFromString({ value: ' 999.99 ' })).toEqual(999.99); + }); + + it('Get decimal number (with currency)', async () => { + expect(extractNumberFromString({ value: '999.99 CHF' })).toEqual(999.99); + }); + + it('Get decimal number (comma notation)', async () => { + expect( + extractNumberFromString({ locale: 'de-DE', value: '999,99' }) + ).toEqual(999.99); + }); + + it('Get decimal number with group (dot notation)', async () => { + expect( + extractNumberFromString({ locale: 'de-CH', value: '99’999.99' }) + ).toEqual(99999.99); + }); + + it('Get decimal number with group (comma notation)', async () => { + expect( + extractNumberFromString({ locale: 'de-DE', value: '99.999,99' }) + ).toEqual(99999.99); + }); + + it('Not a number', async () => { + expect(extractNumberFromString({ value: 'X' })).toEqual(NaN); + }); + }); +}); diff --git a/libs/common/src/lib/helper.ts b/libs/common/src/lib/helper.ts index 16d5d041b..6afecc398 100644 --- a/libs/common/src/lib/helper.ts +++ b/libs/common/src/lib/helper.ts @@ -1,4 +1,5 @@ import * as currencies from '@dinero.js/currencies'; +import { NumberParser } from '@internationalized/number'; import { DataSource, MarketData } from '@prisma/client'; import Big from 'big.js'; import { @@ -20,8 +21,6 @@ export const DATE_FORMAT = 'yyyy-MM-dd'; export const DATE_FORMAT_MONTHLY = 'MMMM yyyy'; export const DATE_FORMAT_YEARLY = 'yyyy'; -const NUMERIC_REGEXP = /[-]{0,1}[\d]*[.,]{0,1}[\d]+/g; - export function calculateBenchmarkTrend({ days, historicalData @@ -120,10 +119,20 @@ export function encodeDataSource(aDataSource: DataSource) { return undefined; } -export function extractNumberFromString(aString: string): number { +export function extractNumberFromString({ + locale = 'en-US', + value +}: { + locale?: string; + value: string; +}): number { try { - const [numberString] = aString.match(NUMERIC_REGEXP); - return parseFloat(numberString.trim()); + // Remove non-numeric characters (excluding international formatting characters) + const numericValue = value.replace(/[^\d.,'’\s]/g, ''); + + let parser = new NumberParser(locale); + + return parser.parse(numericValue); } catch { return undefined; } diff --git a/libs/common/src/lib/interfaces/access.interface.ts b/libs/common/src/lib/interfaces/access.interface.ts index 27503c872..7736a71ab 100644 --- a/libs/common/src/lib/interfaces/access.interface.ts +++ b/libs/common/src/lib/interfaces/access.interface.ts @@ -1,6 +1,11 @@ +import { AccessType } from '@ghostfolio/common/types'; + +import { AccessPermission } from '@prisma/client'; + export interface Access { alias?: string; - grantee: string; + grantee?: string; id: string; - type: 'PUBLIC' | 'RESTRICTED_VIEW'; + permissions: AccessPermission[]; + type: AccessType; } diff --git a/libs/common/src/lib/interfaces/admin-market-data.interface.ts b/libs/common/src/lib/interfaces/admin-market-data.interface.ts index 08838d4bc..8b20017c5 100644 --- a/libs/common/src/lib/interfaces/admin-market-data.interface.ts +++ b/libs/common/src/lib/interfaces/admin-market-data.interface.ts @@ -6,6 +6,7 @@ export interface AdminMarketData { } export interface AdminMarketDataItem { + activitiesCount?: number; assetClass?: AssetClass; assetSubClass?: AssetSubClass; countriesCount: number; diff --git a/libs/common/src/lib/interfaces/data-provider-info.interface.ts b/libs/common/src/lib/interfaces/data-provider-info.interface.ts index 59f3a0b69..79d7d6940 100644 --- a/libs/common/src/lib/interfaces/data-provider-info.interface.ts +++ b/libs/common/src/lib/interfaces/data-provider-info.interface.ts @@ -1,4 +1,5 @@ export interface DataProviderInfo { - name: string; - url: string; + isPremium: boolean; + name?: string; + url?: string; } diff --git a/libs/common/src/lib/interfaces/export.interface.ts b/libs/common/src/lib/interfaces/export.interface.ts index 60fdd93e0..b142cb2f8 100644 --- a/libs/common/src/lib/interfaces/export.interface.ts +++ b/libs/common/src/lib/interfaces/export.interface.ts @@ -5,10 +5,7 @@ export interface Export { date: string; version: string; }; - accounts: Omit< - Account, - 'accountType' | 'createdAt' | 'isDefault' | 'updatedAt' | 'userId' - >[]; + accounts: Omit[]; activities: (Omit< Order, | 'accountUserId' diff --git a/libs/common/src/lib/interfaces/historical-data-item.interface.ts b/libs/common/src/lib/interfaces/historical-data-item.interface.ts index b348e33aa..0b45cf0b7 100644 --- a/libs/common/src/lib/interfaces/historical-data-item.interface.ts +++ b/libs/common/src/lib/interfaces/historical-data-item.interface.ts @@ -2,14 +2,19 @@ export interface HistoricalDataItem { averagePrice?: number; date: string; grossPerformancePercent?: number; + investmentValueWithCurrencyEffect?: number; marketPrice?: number; netPerformance?: number; netPerformanceInPercentage?: number; + netPerformanceInPercentageWithCurrencyEffect?: number; + netPerformanceWithCurrencyEffect?: number; netWorth?: number; netWorthInPercentage?: number; quantity?: number; totalAccountBalance?: number; totalInvestment?: number; + totalInvestmentValueWithCurrencyEffect?: number; value?: number; valueInPercentage?: number; + valueWithCurrencyEffect?: number; } diff --git a/libs/common/src/lib/interfaces/index.ts b/libs/common/src/lib/interfaces/index.ts index 7d76c419e..7d77826d0 100644 --- a/libs/common/src/lib/interfaces/index.ts +++ b/libs/common/src/lib/interfaces/index.ts @@ -11,6 +11,7 @@ import type { BenchmarkMarketDataDetails } from './benchmark-market-data-details import type { BenchmarkProperty } from './benchmark-property.interface'; import type { Benchmark } from './benchmark.interface'; import type { Coupon } from './coupon.interface'; +import type { Currency } from './currency.interface'; import type { DataProviderInfo } from './data-provider-info.interface'; import type { EnhancedSymbolProfile } from './enhanced-symbol-profile.interface'; import type { Export } from './export.interface'; @@ -18,6 +19,7 @@ import type { FilterGroup } from './filter-group.interface'; import type { Filter } from './filter.interface'; import type { HistoricalDataItem } from './historical-data-item.interface'; import type { InfoItem } from './info-item.interface'; +import type { InvestmentItem } from './investment-item.interface'; import type { LineChartItem } from './line-chart-item.interface'; import type { PortfolioChart } from './portfolio-chart.interface'; import type { PortfolioDetails } from './portfolio-details.interface'; @@ -42,8 +44,9 @@ import type { PortfolioPerformanceResponse } from './responses/portfolio-perform import type { ScraperConfiguration } from './scraper-configuration.interface'; import type { Statistics } from './statistics.interface'; import type { Subscription } from './subscription.interface'; -import { SystemMessage } from './system-message.interface'; -import { TabConfiguration } from './tab-configuration.interface'; +import type { SymbolMetrics } from './symbol-metrics.interface'; +import type { SystemMessage } from './system-message.interface'; +import type { TabConfiguration } from './tab-configuration.interface'; import type { TimelinePosition } from './timeline-position.interface'; import type { UniqueAsset } from './unique-asset.interface'; import type { UserSettings } from './user-settings.interface'; @@ -63,6 +66,7 @@ export { BenchmarkProperty, BenchmarkResponse, Coupon, + Currency, DataProviderInfo, EnhancedSymbolProfile, Export, @@ -71,6 +75,7 @@ export { HistoricalDataItem, ImportResponse, InfoItem, + InvestmentItem, LineChartItem, OAuthResponse, PortfolioChart, @@ -93,6 +98,7 @@ export { Statistics, SystemMessage, Subscription, + SymbolMetrics, TabConfiguration, TimelinePosition, UniqueAsset, diff --git a/libs/common/src/lib/interfaces/info-item.interface.ts b/libs/common/src/lib/interfaces/info-item.interface.ts index 1d3624e24..d279c74a4 100644 --- a/libs/common/src/lib/interfaces/info-item.interface.ts +++ b/libs/common/src/lib/interfaces/info-item.interface.ts @@ -1,4 +1,5 @@ import { SubscriptionOffer } from '@ghostfolio/common/types'; + import { Platform, SymbolProfile, Tag } from '@prisma/client'; import { Statistics } from './statistics.interface'; @@ -12,6 +13,7 @@ export interface InfoItem { demoAuthToken: string; fearAndGreedDataSource?: string; globalPermissions: string[]; + isDataGatheringEnabled?: string; isReadOnlyMode?: boolean; platforms: Platform[]; statistics: Statistics; diff --git a/libs/common/src/lib/interfaces/portfolio-performance.interface.ts b/libs/common/src/lib/interfaces/portfolio-performance.interface.ts index 0343ef338..1c6f50b30 100644 --- a/libs/common/src/lib/interfaces/portfolio-performance.interface.ts +++ b/libs/common/src/lib/interfaces/portfolio-performance.interface.ts @@ -2,8 +2,12 @@ export interface PortfolioPerformance { annualizedPerformancePercent?: number; currentGrossPerformance: number; currentGrossPerformancePercent: number; + currentGrossPerformancePercentWithCurrencyEffect: number; + currentGrossPerformanceWithCurrencyEffect: number; currentNetPerformance: number; currentNetPerformancePercent: number; + currentNetPerformancePercentWithCurrencyEffect: number; + currentNetPerformanceWithCurrencyEffect: number; currentNetWorth: number; currentValue: number; totalInvestment: number; diff --git a/libs/common/src/lib/interfaces/position.interface.ts b/libs/common/src/lib/interfaces/position.interface.ts index 1df07e0ce..2a7c4a3c0 100644 --- a/libs/common/src/lib/interfaces/position.interface.ts +++ b/libs/common/src/lib/interfaces/position.interface.ts @@ -1,4 +1,5 @@ import { MarketState } from '@ghostfolio/common/types'; + import { AssetClass, AssetSubClass, DataSource } from '@prisma/client'; export interface Position { diff --git a/libs/common/src/lib/interfaces/scraper-configuration.interface.ts b/libs/common/src/lib/interfaces/scraper-configuration.interface.ts index 0446459ad..ef5506328 100644 --- a/libs/common/src/lib/interfaces/scraper-configuration.interface.ts +++ b/libs/common/src/lib/interfaces/scraper-configuration.interface.ts @@ -1,6 +1,7 @@ export interface ScraperConfiguration { defaultMarketPrice?: number; headers?: { [key: string]: string }; + locale?: string; selector: string; url: string; } diff --git a/libs/common/src/lib/interfaces/symbol-metrics.interface.ts b/libs/common/src/lib/interfaces/symbol-metrics.interface.ts new file mode 100644 index 000000000..e7cbf7460 --- /dev/null +++ b/libs/common/src/lib/interfaces/symbol-metrics.interface.ts @@ -0,0 +1,44 @@ +import Big from 'big.js'; + +export interface SymbolMetrics { + currentValues: { + [date: string]: Big; + }; + currentValuesWithCurrencyEffect: { + [date: string]: Big; + }; + grossPerformance: Big; + grossPerformancePercentage: Big; + grossPerformancePercentageWithCurrencyEffect: Big; + grossPerformanceWithCurrencyEffect: Big; + hasErrors: boolean; + initialValue: Big; + initialValueWithCurrencyEffect: Big; + investmentValuesAccumulated: { + [date: string]: Big; + }; + investmentValuesAccumulatedWithCurrencyEffect: { + [date: string]: Big; + }; + investmentValuesWithCurrencyEffect: { + [date: string]: Big; + }; + netPerformance: Big; + netPerformancePercentage: Big; + netPerformancePercentageWithCurrencyEffect: Big; + netPerformanceValues: { + [date: string]: Big; + }; + netPerformanceValuesWithCurrencyEffect: { [date: string]: Big }; + netPerformanceWithCurrencyEffect: Big; + timeWeightedInvestment: Big; + timeWeightedInvestmentValues: { + [date: string]: Big; + }; + timeWeightedInvestmentValuesWithCurrencyEffect: { + [date: string]: Big; + }; + timeWeightedInvestmentWithCurrencyEffect: Big; + totalInvestment: Big; + totalInvestmentWithCurrencyEffect: Big; +} diff --git a/libs/common/src/lib/interfaces/timeline-position.interface.ts b/libs/common/src/lib/interfaces/timeline-position.interface.ts index 1b27de8dc..220a0aa8f 100644 --- a/libs/common/src/lib/interfaces/timeline-position.interface.ts +++ b/libs/common/src/lib/interfaces/timeline-position.interface.ts @@ -9,13 +9,20 @@ export interface TimelinePosition { firstBuyDate: string; grossPerformance: Big; grossPerformancePercentage: Big; + grossPerformancePercentageWithCurrencyEffect: Big; + grossPerformanceWithCurrencyEffect: Big; investment: Big; + investmentWithCurrencyEffect: Big; marketPrice: number; + marketPriceInBaseCurrency: number; netPerformance: Big; netPerformancePercentage: Big; + netPerformancePercentageWithCurrencyEffect: Big; + netPerformanceWithCurrencyEffect: Big; quantity: Big; symbol: string; tags?: Tag[]; timeWeightedInvestment: Big; + timeWeightedInvestmentWithCurrencyEffect: Big; transactionCount: number; } diff --git a/libs/common/src/lib/interfaces/user-settings.interface.ts b/libs/common/src/lib/interfaces/user-settings.interface.ts index d3864ab64..a0599d132 100644 --- a/libs/common/src/lib/interfaces/user-settings.interface.ts +++ b/libs/common/src/lib/interfaces/user-settings.interface.ts @@ -7,6 +7,8 @@ export interface UserSettings { colorScheme?: ColorScheme; dateRange?: DateRange; emergencyFund?: number; + 'filters.accounts'?: string[]; + 'filters.tags'?: string[]; isExperimentalFeatures?: boolean; isRestrictedView?: boolean; language?: string; diff --git a/libs/common/src/lib/interfaces/user.interface.ts b/libs/common/src/lib/interfaces/user.interface.ts index a88dd2d72..16893de6d 100644 --- a/libs/common/src/lib/interfaces/user.interface.ts +++ b/libs/common/src/lib/interfaces/user.interface.ts @@ -1,5 +1,6 @@ import { SubscriptionOffer } from '@ghostfolio/common/types'; import { SubscriptionType } from '@ghostfolio/common/types/subscription-type.type'; + import { Account, Tag } from '@prisma/client'; import { SystemMessage } from './system-message.interface'; diff --git a/libs/common/src/lib/permissions.ts b/libs/common/src/lib/permissions.ts index 51b653f3f..09bbfa1bd 100644 --- a/libs/common/src/lib/permissions.ts +++ b/libs/common/src/lib/permissions.ts @@ -1,4 +1,5 @@ import { UserWithSettings } from '@ghostfolio/common/types'; + import { Role } from '@prisma/client'; export const permissions = { diff --git a/libs/common/src/lib/types/access-type.type.ts b/libs/common/src/lib/types/access-type.type.ts new file mode 100644 index 000000000..fa8e966aa --- /dev/null +++ b/libs/common/src/lib/types/access-type.type.ts @@ -0,0 +1 @@ +export type AccessType = 'PRIVATE' | 'PUBLIC'; diff --git a/libs/common/src/lib/types/date-range.type.ts b/libs/common/src/lib/types/date-range.type.ts index afee7b100..41aa877de 100644 --- a/libs/common/src/lib/types/date-range.type.ts +++ b/libs/common/src/lib/types/date-range.type.ts @@ -1 +1 @@ -export type DateRange = '1d' | '1y' | '5y' | 'max' | 'ytd'; +export type DateRange = '1d' | '1y' | '5y' | 'max' | 'mtd' | 'wtd' | 'ytd'; diff --git a/libs/common/src/lib/types/index.ts b/libs/common/src/lib/types/index.ts index e99bd50b6..f1ea770d2 100644 --- a/libs/common/src/lib/types/index.ts +++ b/libs/common/src/lib/types/index.ts @@ -1,3 +1,4 @@ +import type { AccessType } from './access-type.type'; import type { AccessWithGranteeUser } from './access-with-grantee-user.type'; import type { AccountWithPlatform } from './account-with-platform.type'; import type { AccountWithValue } from './account-with-value.type'; @@ -18,6 +19,7 @@ import type { UserWithSettings } from './user-with-settings.type'; import type { ViewMode } from './view-mode.type'; export type { + AccessType, AccessWithGranteeUser, AccountWithPlatform, AccountWithValue, diff --git a/libs/common/src/lib/types/subscription-offer.type.ts b/libs/common/src/lib/types/subscription-offer.type.ts index b7b2760ec..180088b1e 100644 --- a/libs/common/src/lib/types/subscription-offer.type.ts +++ b/libs/common/src/lib/types/subscription-offer.type.ts @@ -1 +1 @@ -export type SubscriptionOffer = 'default' | 'renewal'; +export type SubscriptionOffer = 'default' | 'renewal' | 'renewal-early-bird'; diff --git a/libs/common/src/lib/types/user-with-settings.type.ts b/libs/common/src/lib/types/user-with-settings.type.ts index c1ec630de..59e9f142d 100644 --- a/libs/common/src/lib/types/user-with-settings.type.ts +++ b/libs/common/src/lib/types/user-with-settings.type.ts @@ -1,10 +1,12 @@ import { UserSettings } from '@ghostfolio/common/interfaces'; import { SubscriptionOffer } from '@ghostfolio/common/types'; import { SubscriptionType } from '@ghostfolio/common/types/subscription-type.type'; -import { Account, Settings, User } from '@prisma/client'; + +import { Access, Account, Settings, User } from '@prisma/client'; // TODO: Compare with User interface export type UserWithSettings = User & { + Access: Access[]; Account: Account[]; activityCount: number; permissions?: string[]; diff --git a/libs/ui/src/lib/account-balances/account-balances.component.html b/libs/ui/src/lib/account-balances/account-balances.component.html index 5c0c6b2a1..0d1a79f41 100644 --- a/libs/ui/src/lib/account-balances/account-balances.component.html +++ b/libs/ui/src/lib/account-balances/account-balances.component.html @@ -26,7 +26,7 @@ [locale]="locale" [unit]="element?.Account?.currency" [value]="element?.value" - > + />
        @@ -34,19 +34,20 @@
    @@ -40,16 +41,17 @@ @@ -99,13 +101,11 @@ diff --git a/libs/ui/src/lib/benchmark/benchmark.component.ts b/libs/ui/src/lib/benchmark/benchmark.component.ts index 215cc15c6..69c939d31 100644 --- a/libs/ui/src/lib/benchmark/benchmark.component.ts +++ b/libs/ui/src/lib/benchmark/benchmark.component.ts @@ -1,11 +1,12 @@ +import { resolveMarketCondition } from '@ghostfolio/common/helper'; +import { Benchmark, User } from '@ghostfolio/common/interfaces'; + import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core'; -import { resolveMarketCondition } from '@ghostfolio/common/helper'; -import { Benchmark, User } from '@ghostfolio/common/interfaces'; @Component({ selector: 'gf-benchmark', diff --git a/libs/ui/src/lib/carousel/carousel.component.html b/libs/ui/src/lib/carousel/carousel.component.html index 97f2e1b6e..27d94dfd5 100644 --- a/libs/ui/src/lib/carousel/carousel.component.html +++ b/libs/ui/src/lib/carousel/carousel.component.html @@ -1,14 +1,15 @@ - +@if (this.showPrevArrow) { + +}
    - +@if (this.showNextArrow) { + +} diff --git a/libs/ui/src/lib/currency-selector/currency-selector.component.html b/libs/ui/src/lib/currency-selector/currency-selector.component.html index 38fc6c43e..76fe8fef0 100644 --- a/libs/ui/src/lib/currency-selector/currency-selector.component.html +++ b/libs/ui/src/lib/currency-selector/currency-selector.component.html @@ -11,11 +11,9 @@ [displayWith]="displayFn" (optionSelected)="onUpdateCurrency($event)" > - - {{ currencyItem.label }} - + @for (currencyItem of filteredCurrencies; track currencyItem) { + + {{ currencyItem.label }} + + } diff --git a/libs/ui/src/lib/currency-selector/currency-selector.component.ts b/libs/ui/src/lib/currency-selector/currency-selector.component.ts index f75b684dd..620f0d3eb 100644 --- a/libs/ui/src/lib/currency-selector/currency-selector.component.ts +++ b/libs/ui/src/lib/currency-selector/currency-selector.component.ts @@ -1,3 +1,6 @@ +import { Currency } from '@ghostfolio/common/interfaces'; +import { AbstractMatFormField } from '@ghostfolio/ui/shared/abstract-mat-form-field'; + import { FocusMonitor } from '@angular/cdk/a11y'; import { ChangeDetectionStrategy, @@ -16,10 +19,9 @@ import { } from '@angular/material/autocomplete'; import { MatFormFieldControl } from '@angular/material/form-field'; import { MatInput } from '@angular/material/input'; -import { Currency } from '@ghostfolio/common/interfaces/currency.interface'; -import { AbstractMatFormField } from '@ghostfolio/ui/shared/abstract-mat-form-field'; import { Subject } from 'rxjs'; import { map, startWith, takeUntil } from 'rxjs/operators'; + @Component({ changeDetection: ChangeDetectionStrategy.OnPush, host: { diff --git a/libs/ui/src/lib/data-provider-credits/data-provider-credits.component.ts b/libs/ui/src/lib/data-provider-credits/data-provider-credits.component.ts index 1da2fcfc9..afdcb969a 100644 --- a/libs/ui/src/lib/data-provider-credits/data-provider-credits.component.ts +++ b/libs/ui/src/lib/data-provider-credits/data-provider-credits.component.ts @@ -1,6 +1,7 @@ -import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { DataProviderInfo } from '@ghostfolio/common/interfaces'; +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + @Component({ changeDetection: ChangeDetectionStrategy.OnPush, selector: 'gf-data-provider-credits', diff --git a/libs/ui/src/lib/fire-calculator/fire-calculator.component.html b/libs/ui/src/lib/fire-calculator/fire-calculator.component.html index 17f1f623a..46cd0999f 100644 --- a/libs/ui/src/lib/fire-calculator/fire-calculator.component.html +++ b/libs/ui/src/lib/fire-calculator/fire-calculator.component.html @@ -46,7 +46,7 @@ matIconSuffix [disabled]="hasPermissionToUpdateUserSettings !== true" [for]="datepicker" - > + />
    - + @if (isLoading) { + + } + /> @@ -30,9 +30,9 @@
    @@ -83,7 +83,7 @@ [isCurrency]="true" [locale]="locale" [value]="isLoading ? undefined : element.valueInBaseCurrency" - > + /> @@ -104,7 +104,7 @@ [isPercent]="true" [locale]="locale" [value]="isLoading ? undefined : element.allocationInPercentage" - > + /> @@ -126,7 +126,7 @@ [isPercent]="true" [locale]="locale" [value]="isLoading ? undefined : element.netPerformancePercent" - > + /> @@ -152,34 +152,31 @@
    - + {{ exchangeRate.label1 }} = {{ exchangeRate.label2 }} @@ -62,7 +59,7 @@ [matMenuTriggerFor]="exchangeRateActionsMenu" (click)="$event.stopPropagation()" > - + - + Edit @@ -92,10 +86,7 @@ (click)="onDeleteCurrency(exchangeRate.label2)" > - + Delete @@ -109,7 +100,7 @@ mat-flat-button (click)="onAddCurrency()" > - + Add Currency @@ -123,7 +114,7 @@ hideIcon="true" [checked]="info.globalPermissions.includes(permissions.createUserAccount)" (change)="onEnableUserSignupModeChange($event)" - > + />
    @@ -134,7 +125,18 @@ hideIcon="true" [checked]="info?.isReadOnlyMode" (change)="onReadOnlyModeChange($event)" - > + /> +
    + +
    +
    Data Gathering
    +
    +
    @@ -147,7 +149,7 @@ mat-button (click)="onDeleteSystemMessage()" > - +
    @@ -182,7 +181,7 @@ [matMenuTriggerFor]="couponActionsMenu" (click)="$event.stopPropagation()" > - + - + Delete @@ -240,7 +236,7 @@
    Housekeeping
    diff --git a/apps/client/src/app/components/admin-overview/admin-overview.module.ts b/apps/client/src/app/components/admin-overview/admin-overview.module.ts index d0762e79f..a5a0a35e7 100644 --- a/apps/client/src/app/components/admin-overview/admin-overview.module.ts +++ b/apps/client/src/app/components/admin-overview/admin-overview.module.ts @@ -1,3 +1,6 @@ +import { CacheService } from '@ghostfolio/client/services/cache.service'; +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; @@ -7,8 +10,6 @@ import { MatMenuModule } from '@angular/material/menu'; import { MatSelectModule } from '@angular/material/select'; import { MatSlideToggleModule } from '@angular/material/slide-toggle'; import { RouterModule } from '@angular/router'; -import { CacheService } from '@ghostfolio/client/services/cache.service'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { AdminOverviewComponent } from './admin-overview.component'; diff --git a/apps/client/src/app/components/admin-platform/admin-platform.component.html b/apps/client/src/app/components/admin-platform/admin-platform.component.html index 6d5c84b0f..bd7e82560 100644 --- a/apps/client/src/app/components/admin-platform/admin-platform.component.html +++ b/apps/client/src/app/components/admin-platform/admin-platform.component.html @@ -35,7 +35,7 @@ class="d-inline mr-1" [tooltip]="element.name" [url]="element.url" - > + /> {{ element.name }}
    - + @if (showActions) { + + } 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 4bcf7b26a..c4d808aaf 100644 --- a/libs/ui/src/lib/account-balances/account-balances.component.ts +++ b/libs/ui/src/lib/account-balances/account-balances.component.ts @@ -1,3 +1,5 @@ +import { AccountBalancesResponse } from '@ghostfolio/common/interfaces'; + import { ChangeDetectionStrategy, Component, @@ -11,7 +13,6 @@ import { } from '@angular/core'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; -import { AccountBalancesResponse } from '@ghostfolio/common/interfaces'; import { get } from 'lodash'; import { Subject } from 'rxjs'; diff --git a/libs/ui/src/lib/account-balances/account-balances.module.ts b/libs/ui/src/lib/account-balances/account-balances.module.ts index 210151cb2..a789dcc39 100644 --- a/libs/ui/src/lib/account-balances/account-balances.module.ts +++ b/libs/ui/src/lib/account-balances/account-balances.module.ts @@ -1,10 +1,11 @@ +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; import { MatMenuModule } from '@angular/material/menu'; import { MatSortModule } from '@angular/material/sort'; import { MatTableModule } from '@angular/material/table'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { AccountBalancesComponent } from './account-balances.component'; diff --git a/libs/ui/src/lib/activities-filter/activities-filter.component.html b/libs/ui/src/lib/activities-filter/activities-filter.component.html index 56540c5e3..fd22ed351 100644 --- a/libs/ui/src/lib/activities-filter/activities-filter.component.html +++ b/libs/ui/src/lib/activities-filter/activities-filter.component.html @@ -1,20 +1,21 @@ - - {{ filter.label | gfSymbol }} - - + @for (filter of selectedFilters; track filter) { + + {{ filter.label | gfSymbol }} + + + } - - - {{ filter.label | gfSymbol }} - - + @for (filterGroup of filterGroups$ | async; track filterGroup) { + + @for (filter of filterGroup.filters; track filter) { + + {{ filter.label | gfSymbol }} + + } + + } diff --git a/libs/ui/src/lib/activities-filter/activities-filter.component.ts b/libs/ui/src/lib/activities-filter/activities-filter.component.ts index de7318f8b..ee6f4230a 100644 --- a/libs/ui/src/lib/activities-filter/activities-filter.component.ts +++ b/libs/ui/src/lib/activities-filter/activities-filter.component.ts @@ -1,3 +1,6 @@ +import { Filter, FilterGroup } from '@ghostfolio/common/interfaces'; +import { translate } from '@ghostfolio/ui/i18n'; + import { COMMA, ENTER } from '@angular/cdk/keycodes'; import { ChangeDetectionStrategy, @@ -17,8 +20,6 @@ import { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete'; import { MatChipInputEvent } from '@angular/material/chips'; -import { Filter, FilterGroup } from '@ghostfolio/common/interfaces'; -import { translate } from '@ghostfolio/ui/i18n'; import { groupBy } from 'lodash'; import { BehaviorSubject, Observable, Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; diff --git a/libs/ui/src/lib/activities-filter/activities-filter.module.ts b/libs/ui/src/lib/activities-filter/activities-filter.module.ts index b85bdcb81..56f082e7b 100644 --- a/libs/ui/src/lib/activities-filter/activities-filter.module.ts +++ b/libs/ui/src/lib/activities-filter/activities-filter.module.ts @@ -1,3 +1,5 @@ +import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { ReactiveFormsModule } from '@angular/forms'; @@ -6,7 +8,6 @@ import { MatButtonModule } from '@angular/material/button'; import { MatChipsModule } from '@angular/material/chips'; import { MatInputModule } from '@angular/material/input'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; -import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; import { ActivitiesFilterComponent } from './activities-filter.component'; diff --git a/libs/ui/src/lib/activities-table-lazy/activities-table-lazy.component.html b/libs/ui/src/lib/activities-table-lazy/activities-table-lazy.component.html deleted file mode 100644 index ffa32c981..000000000 --- a/libs/ui/src/lib/activities-table-lazy/activities-table-lazy.component.html +++ /dev/null @@ -1,492 +0,0 @@ -
    - - - - - - - - -
    - -
    - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
    - - - - - - -
    - -
    -
    - -
    {{ element.dataSource }}
    -
    - Name - -
    -
    - {{ element.SymbolProfile?.name }} - Draft -
    -
    -
    - {{ - element.SymbolProfile?.symbol | gfSymbol - }} -
    -
    - Type - - - - Date - -
    - {{ element.date | date: defaultDateFormat }} -
    -
    - Quantity - -
    - -
    -
    - Unit Price - -
    - -
    -
    - Fee - -
    - -
    -
    - Value - -
    - -
    -
    - Currency - - {{ element.SymbolProfile?.currency }} - - Value - -
    - -
    -
    - Account - -
    - - {{ element.Account?.name }} -
    -
    - - - - - - - - - - - - - - - - - -
    -
    - - - - - -
    - -
    diff --git a/libs/ui/src/lib/activities-table-lazy/activities-table-lazy.component.scss b/libs/ui/src/lib/activities-table-lazy/activities-table-lazy.component.scss deleted file mode 100644 index 003303f95..000000000 --- a/libs/ui/src/lib/activities-table-lazy/activities-table-lazy.component.scss +++ /dev/null @@ -1,9 +0,0 @@ -@import 'apps/client/src/styles/ghostfolio-style'; - -:host { - display: block; - - .activities { - overflow-x: auto; - } -} diff --git a/libs/ui/src/lib/activities-table-lazy/activities-table-lazy.component.ts b/libs/ui/src/lib/activities-table-lazy/activities-table-lazy.component.ts deleted file mode 100644 index 950df149b..000000000 --- a/libs/ui/src/lib/activities-table-lazy/activities-table-lazy.component.ts +++ /dev/null @@ -1,250 +0,0 @@ -import { SelectionModel } from '@angular/cdk/collections'; -import { - AfterViewInit, - ChangeDetectionStrategy, - Component, - EventEmitter, - Input, - OnChanges, - OnDestroy, - OnInit, - Output, - ViewChild -} from '@angular/core'; -import { MatPaginator, PageEvent } from '@angular/material/paginator'; -import { MatSort, Sort, SortDirection } from '@angular/material/sort'; -import { MatTableDataSource } from '@angular/material/table'; -import { Router } from '@angular/router'; -import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; -import { DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config'; -import { getDateFormatString } from '@ghostfolio/common/helper'; -import { UniqueAsset } from '@ghostfolio/common/interfaces'; -import { OrderWithAccount } from '@ghostfolio/common/types'; -import { isUUID } from 'class-validator'; -import { endOfToday, isAfter } from 'date-fns'; -import { Subject, Subscription, takeUntil } from 'rxjs'; - -@Component({ - changeDetection: ChangeDetectionStrategy.OnPush, - selector: 'gf-activities-table-lazy', - styleUrls: ['./activities-table-lazy.component.scss'], - templateUrl: './activities-table-lazy.component.html' -}) -export class ActivitiesTableLazyComponent - implements AfterViewInit, OnChanges, OnDestroy, OnInit -{ - @Input() baseCurrency: string; - @Input() dataSource: MatTableDataSource; - @Input() deviceType: string; - @Input() hasPermissionToCreateActivity: boolean; - @Input() hasPermissionToExportActivities: boolean; - @Input() hasPermissionToOpenDetails = true; - @Input() locale: string; - @Input() pageIndex: number; - @Input() pageSize = DEFAULT_PAGE_SIZE; - @Input() showActions = true; - @Input() showCheckbox = false; - @Input() showFooter = true; - @Input() showNameColumn = true; - @Input() sortColumn: string; - @Input() sortDirection: SortDirection; - @Input() sortDisabled = false; - @Input() totalItems = Number.MAX_SAFE_INTEGER; - - @Output() activityDeleted = new EventEmitter(); - @Output() activityToClone = new EventEmitter(); - @Output() activityToUpdate = new EventEmitter(); - @Output() deleteAllActivities = new EventEmitter(); - @Output() export = new EventEmitter(); - @Output() exportDrafts = new EventEmitter(); - @Output() import = new EventEmitter(); - @Output() importDividends = new EventEmitter(); - @Output() pageChanged = new EventEmitter(); - @Output() selectedActivities = new EventEmitter(); - @Output() sortChanged = new EventEmitter(); - - @ViewChild(MatPaginator) paginator: MatPaginator; - @ViewChild(MatSort) sort: MatSort; - - public defaultDateFormat: string; - public displayedColumns = []; - public endOfToday = endOfToday(); - public hasDrafts = false; - public hasErrors = false; - public isAfter = isAfter; - public isLoading = true; - public isUUID = isUUID; - public routeQueryParams: Subscription; - public searchKeywords: string[] = []; - public selectedRows = new SelectionModel(true, []); - - private unsubscribeSubject = new Subject(); - - public constructor(private router: Router) {} - - public ngOnInit() { - if (this.showCheckbox) { - this.toggleAllRows(); - this.selectedRows.changed - .pipe(takeUntil(this.unsubscribeSubject)) - .subscribe((selectedRows) => { - this.selectedActivities.emit(selectedRows.source.selected); - }); - } - } - - public ngAfterViewInit() { - this.sort.sortChange.subscribe((value: Sort) => { - this.sortChanged.emit(value); - }); - } - - public areAllRowsSelected() { - const numSelectedRows = this.selectedRows.selected.length; - const numTotalRows = this.dataSource.data.length; - return numSelectedRows === numTotalRows; - } - - public ngOnChanges() { - this.defaultDateFormat = getDateFormatString(this.locale); - - this.displayedColumns = [ - 'select', - 'importStatus', - 'icon', - 'nameWithSymbol', - 'type', - 'date', - 'quantity', - 'unitPrice', - 'fee', - 'value', - 'currency', - 'valueInBaseCurrency', - 'account', - 'comment', - 'actions' - ]; - - if (!this.showCheckbox) { - this.displayedColumns = this.displayedColumns.filter((column) => { - return column !== 'importStatus' && column !== 'select'; - }); - } - - if (!this.showNameColumn) { - this.displayedColumns = this.displayedColumns.filter((column) => { - return column !== 'nameWithSymbol'; - }); - } - - if (this.dataSource) { - this.isLoading = false; - } - } - - public onChangePage(page: PageEvent) { - this.pageChanged.emit(page); - } - - public onClickActivity(activity: Activity) { - if (this.showCheckbox) { - if (!activity.error) { - this.selectedRows.toggle(activity); - } - } else if ( - this.hasPermissionToOpenDetails && - !activity.isDraft && - activity.type !== 'FEE' && - activity.type !== 'INTEREST' && - activity.type !== 'ITEM' && - activity.type !== 'LIABILITY' - ) { - this.onOpenPositionDialog({ - dataSource: activity.SymbolProfile.dataSource, - symbol: activity.SymbolProfile.symbol - }); - } - } - - public onCloneActivity(aActivity: OrderWithAccount) { - this.activityToClone.emit(aActivity); - } - - public onDeleteActivity(aId: string) { - const confirmation = confirm( - $localize`Do you really want to delete this activity?` - ); - - if (confirmation) { - this.activityDeleted.emit(aId); - } - } - - public onExport() { - if (this.searchKeywords.length > 0) { - this.export.emit( - this.dataSource.filteredData.map((activity) => { - return activity.id; - }) - ); - } else { - this.export.emit(); - } - } - - public onExportDraft(aActivityId: string) { - this.exportDrafts.emit([aActivityId]); - } - - public onExportDrafts() { - this.exportDrafts.emit( - this.dataSource.filteredData - .filter((activity) => { - return activity.isDraft; - }) - .map((activity) => { - return activity.id; - }) - ); - } - - public onDeleteAllActivities() { - this.deleteAllActivities.emit(); - } - - public onImport() { - this.import.emit(); - } - - public onImportDividends() { - this.importDividends.emit(); - } - - public onOpenComment(aComment: string) { - alert(aComment); - } - - public onOpenPositionDialog({ dataSource, symbol }: UniqueAsset): void { - this.router.navigate([], { - queryParams: { dataSource, symbol, positionDetailDialog: true } - }); - } - - public onUpdateActivity(aActivity: OrderWithAccount) { - this.activityToUpdate.emit(aActivity); - } - - public toggleAllRows() { - this.areAllRowsSelected() - ? this.selectedRows.clear() - : this.dataSource.data.forEach((row) => this.selectedRows.select(row)); - - this.selectedActivities.emit(this.selectedRows.selected); - } - - public ngOnDestroy() { - this.unsubscribeSubject.next(); - this.unsubscribeSubject.complete(); - } -} diff --git a/libs/ui/src/lib/activities-table-lazy/activities-table-lazy.module.ts b/libs/ui/src/lib/activities-table-lazy/activities-table-lazy.module.ts deleted file mode 100644 index 22c9f6354..000000000 --- a/libs/ui/src/lib/activities-table-lazy/activities-table-lazy.module.ts +++ /dev/null @@ -1,42 +0,0 @@ -import { CommonModule } from '@angular/common'; -import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; -import { MatButtonModule } from '@angular/material/button'; -import { MatCheckboxModule } from '@angular/material/checkbox'; -import { MatMenuModule } from '@angular/material/menu'; -import { MatPaginatorModule } from '@angular/material/paginator'; -import { MatSortModule } from '@angular/material/sort'; -import { MatTableModule } from '@angular/material/table'; -import { MatTooltipModule } from '@angular/material/tooltip'; -import { RouterModule } from '@angular/router'; -import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; -import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; -import { GfActivityTypeModule } from '@ghostfolio/ui/activity-type'; -import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; -import { GfValueModule } from '@ghostfolio/ui/value'; -import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; - -import { ActivitiesTableLazyComponent } from './activities-table-lazy.component'; - -@NgModule({ - declarations: [ActivitiesTableLazyComponent], - exports: [ActivitiesTableLazyComponent], - imports: [ - CommonModule, - GfActivityTypeModule, - GfNoTransactionsInfoModule, - GfSymbolIconModule, - GfSymbolModule, - GfValueModule, - MatButtonModule, - MatCheckboxModule, - MatMenuModule, - MatPaginatorModule, - MatSortModule, - MatTableModule, - MatTooltipModule, - NgxSkeletonLoaderModule, - RouterModule - ], - schemas: [CUSTOM_ELEMENTS_SCHEMA] -}) -export class GfActivitiesTableLazyModule {} diff --git a/libs/ui/src/lib/activities-table/activities-table.component.html b/libs/ui/src/lib/activities-table/activities-table.component.html index 18d918006..626af4519 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.html +++ b/libs/ui/src/lib/activities-table/activities-table.component.html @@ -1,87 +1,85 @@ - - -
    - - - - +@if (hasPermissionToCreateActivity) { +
    - - - -
    + @if (hasPermissionToExportActivities) { + + } + + + @if (hasPermissionToExportActivities) { + + } + @if (hasPermissionToExportActivities) { + + } + + +
    +}
    - + - @@ -110,53 +107,51 @@ - - - - + - - - - @@ -164,60 +159,19 @@ Type - - - - - - - - - - - @@ -239,14 +193,9 @@ [isCurrency]="true" [locale]="locale" [value]="isLoading ? undefined : element.quantity" - > + /> - @@ -268,14 +217,9 @@ [isCurrency]="true" [locale]="locale" [value]="isLoading ? undefined : element.unitPrice" - > + /> - @@ -297,16 +241,7 @@ [isCurrency]="true" [locale]="locale" [value]="isLoading ? undefined : element.fee" - > - - - @@ -316,7 +251,6 @@ *matHeaderCellDef class="d-none d-lg-table-cell justify-content-end px-1" mat-header-cell - mat-sort-header > Value @@ -330,19 +264,21 @@ [isCurrency]="true" [locale]="locale" [value]="isLoading ? undefined : element.value" - > + /> - + @@ -351,7 +287,6 @@ *matHeaderCellDef class="d-lg-none d-xl-none justify-content-end px-1" mat-header-cell - mat-sort-header > Value @@ -361,43 +296,27 @@ [isCurrency]="true" [locale]="locale" [value]="isLoading ? undefined : element.valueInBaseCurrency" - > - - - - - @@ -411,105 +330,107 @@ class="d-none d-lg-table-cell px-1" mat-cell > - + @if (element.comment) { + + } - - @@ -549,45 +469,35 @@ }" (click)="onClickActivity(row)" > -
    + /> + /> -
    - -
    + @if (element.error) { +
    + +
    + }
    - {{ - dataSource.data.length > pageSize - ? dataSource.data.length - pageSize * pageIndex - i - : dataSource.data.length - i - }} + + + +
    {{ element.dataSource }}
    - Date + + + Name -
    - {{ element.date | date: defaultDateFormat }} +
    +
    + {{ element.SymbolProfile?.name }} + @if (element.isDraft) { + Draft + } +
    + @if (!isUUID(element.SymbolProfile?.symbol)) { +
    + {{ + element.SymbolProfile?.symbol | gfSymbol + }} +
    + }
    Total - + - Name + + + Date -
    -
    - {{ element.SymbolProfile?.name }} - Draft -
    -
    -
    - {{ - element.SymbolProfile?.symbol | gfSymbol - }} +
    +
    + {{ element.date | date: defaultDateFormat }}
    - Currency - - {{ element.SymbolProfile?.currency }} - - {{ baseCurrency }} - -
    - + />
    -
    - -
    + + + +
    + Currency + + {{ element.SymbolProfile?.currency }} -
    - + />
    + Account
    - + @if (element.Account?.Platform?.url) { + + } {{ element.Account?.name }}
    - - + @if ( + !hasPermissionToCreateActivity && hasPermissionToExportActivities + ) { - - - + } + + @if (hasPermissionToCreateActivity) { + + } + @if (hasPermissionToCreateActivity) { + + } + @if (hasPermissionToExportActivities) { + + } + @if (hasPermissionToExportActivities) { + + } - + @if (showActions) { + + } @@ -519,19 +440,18 @@ (click)="onExportDraft(element.id)" > - + Export Draft as ICS
    +@if (isLoading) { + +} + +/> - - -
    - -
    +@if ( + dataSource?.data.length === 0 && hasPermissionToCreateActivity && !isLoading +) { +
    + +
    +} diff --git a/libs/ui/src/lib/activities-table/activities-table.component.scss b/libs/ui/src/lib/activities-table/activities-table.component.scss index ea3dad292..003303f95 100644 --- a/libs/ui/src/lib/activities-table/activities-table.component.scss +++ b/libs/ui/src/lib/activities-table/activities-table.component.scss @@ -5,15 +5,5 @@ .activities { overflow-x: auto; - - .mat-mdc-table { - th { - ::ng-deep { - .mat-sort-header-container { - justify-content: inherit; - } - } - } - } } } 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 66c065709..760737036 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,12 @@ +import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; +import { DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config'; +import { getDateFormatString } from '@ghostfolio/common/helper'; +import { UniqueAsset } from '@ghostfolio/common/interfaces'; +import { OrderWithAccount } from '@ghostfolio/common/types'; + import { SelectionModel } from '@angular/cdk/collections'; import { + AfterViewInit, ChangeDetectionStrategy, Component, EventEmitter, @@ -11,20 +18,12 @@ import { ViewChild } from '@angular/core'; import { MatPaginator, PageEvent } from '@angular/material/paginator'; -import { MatSort } from '@angular/material/sort'; +import { MatSort, Sort, SortDirection } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { Router } from '@angular/router'; -import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; -import { DEFAULT_PAGE_SIZE } from '@ghostfolio/common/config'; -import { getDateFormatString } from '@ghostfolio/common/helper'; -import { Filter, UniqueAsset } from '@ghostfolio/common/interfaces'; -import { OrderWithAccount } from '@ghostfolio/common/types'; -import { translate } from '@ghostfolio/ui/i18n'; -import Big from 'big.js'; import { isUUID } from 'class-validator'; -import { endOfToday, format, isAfter } from 'date-fns'; -import { get, isNumber } from 'lodash'; -import { Subject, Subscription, distinctUntilChanged, takeUntil } from 'rxjs'; +import { endOfToday, isAfter } from 'date-fns'; +import { Subject, Subscription, takeUntil } from 'rxjs'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, @@ -32,63 +31,55 @@ import { Subject, Subscription, distinctUntilChanged, takeUntil } from 'rxjs'; styleUrls: ['./activities-table.component.scss'], templateUrl: './activities-table.component.html' }) -export class ActivitiesTableComponent implements OnChanges, OnDestroy, OnInit { - @Input() activities: Activity[]; +export class ActivitiesTableComponent + implements AfterViewInit, OnChanges, OnDestroy, OnInit +{ @Input() baseCurrency: string; + @Input() dataSource: MatTableDataSource; @Input() deviceType: string; @Input() hasPermissionToCreateActivity: boolean; @Input() hasPermissionToExportActivities: boolean; - @Input() hasPermissionToFilter = true; @Input() hasPermissionToOpenDetails = true; @Input() locale: string; + @Input() pageIndex: number; @Input() pageSize = DEFAULT_PAGE_SIZE; @Input() showActions = true; @Input() showCheckbox = false; - @Input() showFooter = true; @Input() showNameColumn = true; + @Input() sortColumn: string; + @Input() sortDirection: SortDirection; + @Input() sortDisabled = false; + @Input() totalItems = Number.MAX_SAFE_INTEGER; @Output() activityDeleted = new EventEmitter(); @Output() activityToClone = new EventEmitter(); @Output() activityToUpdate = new EventEmitter(); @Output() deleteAllActivities = new EventEmitter(); - @Output() export = new EventEmitter(); + @Output() export = new EventEmitter(); @Output() exportDrafts = new EventEmitter(); @Output() import = new EventEmitter(); @Output() importDividends = new EventEmitter(); + @Output() pageChanged = new EventEmitter(); @Output() selectedActivities = new EventEmitter(); + @Output() sortChanged = new EventEmitter(); @ViewChild(MatPaginator) paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; - public allFilters: Filter[]; - public dataSource: MatTableDataSource = new MatTableDataSource(); public defaultDateFormat: string; public displayedColumns = []; public endOfToday = endOfToday(); - public filters$ = new Subject(); public hasDrafts = false; public hasErrors = false; public isAfter = isAfter; public isLoading = true; public isUUID = isUUID; - public pageIndex = 0; - public placeholder = ''; public routeQueryParams: Subscription; - public searchKeywords: string[] = []; public selectedRows = new SelectionModel(true, []); - public totalFees: number; - public totalValue: number; - private readonly SEARCH_STRING_SEPARATOR = ','; private unsubscribeSubject = new Subject(); - public constructor(private router: Router) { - this.filters$ - .pipe(distinctUntilChanged(), takeUntil(this.unsubscribeSubject)) - .subscribe((filters) => { - this.updateFilters(filters); - }); - } + public constructor(private router: Router) {} public ngOnInit() { if (this.showCheckbox) { @@ -101,6 +92,12 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy, OnInit { } } + public ngAfterViewInit() { + this.sort.sortChange.subscribe((value: Sort) => { + this.sortChanged.emit(value); + }); + } + public areAllRowsSelected() { const numSelectedRows = this.selectedRows.selected.length; const numTotalRows = this.dataSource.data.length; @@ -108,13 +105,15 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy, OnInit { } public ngOnChanges() { + this.defaultDateFormat = getDateFormatString(this.locale); + this.displayedColumns = [ 'select', 'importStatus', - 'count', - 'date', - 'type', + 'icon', 'nameWithSymbol', + 'type', + 'date', 'quantity', 'unitPrice', 'fee', @@ -126,11 +125,7 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy, OnInit { 'actions' ]; - if (this.showCheckbox) { - this.displayedColumns = this.displayedColumns.filter((column) => { - return column !== 'count'; - }); - } else { + if (!this.showCheckbox) { this.displayedColumns = this.displayedColumns.filter((column) => { return column !== 'importStatus' && column !== 'select'; }); @@ -142,60 +137,13 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy, OnInit { }); } - this.defaultDateFormat = getDateFormatString(this.locale); - - if (this.activities) { - this.activities = this.activities.map((activity) => { - return { - ...activity, - error: activity.error - ? { - ...activity.error, - message: translate( - `IMPORT_ACTIVITY_ERROR_${activity.error.code}` - ) - } - : undefined - }; - }); - - this.allFilters = this.getSearchableFieldValues(this.activities); - - this.dataSource = new MatTableDataSource(this.activities); - this.dataSource.filterPredicate = (data, filter) => { - const filterableLabels = this.getFilterableValues(data).map( - ({ label }) => { - return label.toLowerCase(); - } - ); - - let includes = true; - for (const singleFilter of filter.split(this.SEARCH_STRING_SEPARATOR)) { - includes = - includes && - filterableLabels.includes(singleFilter.trim().toLowerCase()); - } - return includes; - }; - this.dataSource.paginator = this.paginator; - this.dataSource.sort = this.sort; - this.dataSource.sortingDataAccessor = get; - - this.updateFilters(); - - this.hasErrors = this.activities.some(({ error }) => { - return !!error; - }); - } else { - this.hasErrors = false; + if (this.dataSource) { + this.isLoading = false; } } public onChangePage(page: PageEvent) { - this.pageIndex = page.pageIndex; - - this.totalFees = this.getTotalFees(); - this.totalValue = this.getTotalValue(); + this.pageChanged.emit(page); } public onClickActivity(activity: Activity) { @@ -233,15 +181,7 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy, OnInit { } public onExport() { - if (this.searchKeywords.length > 0) { - this.export.emit( - this.dataSource.filteredData.map((activity) => { - return activity.id; - }) - ); - } else { - this.export.emit(); - } + this.export.emit(); } public onExportDraft(aActivityId: string) { @@ -298,145 +238,4 @@ export class ActivitiesTableComponent implements OnChanges, OnDestroy, OnInit { this.unsubscribeSubject.next(); this.unsubscribeSubject.complete(); } - - private getFilterableValues( - activity: OrderWithAccount, - fieldValueMap: { [id: string]: Filter } = {} - ): Filter[] { - if (activity.Account?.id) { - fieldValueMap[activity.Account.id] = { - id: activity.Account.id, - label: activity.Account.name, - type: 'ACCOUNT' - }; - } - - if (activity.SymbolProfile?.currency) { - fieldValueMap[activity.SymbolProfile.currency] = { - id: activity.SymbolProfile.currency, - label: activity.SymbolProfile.currency, - type: 'TAG' - }; - } - - if ( - activity.SymbolProfile?.symbol && - !isUUID(activity.SymbolProfile.symbol) - ) { - fieldValueMap[activity.SymbolProfile.symbol] = { - id: activity.SymbolProfile.symbol, - label: activity.SymbolProfile.symbol, - type: 'SYMBOL' - }; - } - - fieldValueMap[activity.type] = { - id: activity.type, - label: activity.type, - type: 'TAG' - }; - - fieldValueMap[format(new Date(activity.date), 'yyyy')] = { - id: format(new Date(activity.date), 'yyyy'), - label: format(new Date(activity.date), 'yyyy'), - type: 'TAG' - }; - - return Object.values(fieldValueMap); - } - - private getPaginatedData() { - if (this.dataSource.data.length > this.pageSize) { - const sortedData = this.dataSource.sortData( - this.dataSource.filteredData, - this.dataSource.sort - ); - - return sortedData.slice( - this.pageIndex * this.pageSize, - (this.pageIndex + 1) * this.pageSize - ); - } - return this.dataSource.filteredData; - } - - private getSearchableFieldValues(activities: OrderWithAccount[]): Filter[] { - const fieldValueMap: { [id: string]: Filter } = {}; - - for (const activity of activities) { - this.getFilterableValues(activity, fieldValueMap); - } - - return Object.values(fieldValueMap); - } - - private getTotalFees() { - let totalFees = new Big(0); - const paginatedData = this.getPaginatedData(); - for (const activity of paginatedData) { - if (isNumber(activity.feeInBaseCurrency)) { - totalFees = totalFees.plus(activity.feeInBaseCurrency); - } else { - return null; - } - } - - return totalFees.toNumber(); - } - - private getTotalValue() { - const paginatedData = this.getPaginatedData(); - let totalValue = new Big(0); - - for (const { type, valueInBaseCurrency } of paginatedData) { - if (isNumber(valueInBaseCurrency)) { - if (type === 'BUY' || type === 'ITEM') { - totalValue = totalValue.plus(valueInBaseCurrency); - } else if ( - type === 'DIVIDEND' || - type === 'FEE' || - type === 'INTEREST' || - type === 'LIABILITY' || - type === 'SELL' - ) { - return null; - } - } else { - return null; - } - } - - return totalValue.toNumber(); - } - - private updateFilters(filters: Filter[] = []) { - this.isLoading = true; - - this.dataSource.filter = filters - .map((filter) => { - return filter.label; - }) - .join(this.SEARCH_STRING_SEPARATOR); - - const lowercaseSearchKeywords = filters.map((filter) => { - return filter.label.trim().toLowerCase(); - }); - - this.placeholder = - lowercaseSearchKeywords.length <= 0 - ? $localize`Filter by account, currency, symbol or type...` - : ''; - - this.searchKeywords = filters.map((filter) => { - return filter.label; - }); - - this.hasDrafts = this.dataSource.filteredData.some((activity) => { - return activity.isDraft === true; - }); - this.totalFees = this.getTotalFees(); - this.totalValue = this.getTotalValue(); - - this.isLoading = false; - } } diff --git a/libs/ui/src/lib/activities-table/activities-table.module.ts b/libs/ui/src/lib/activities-table/activities-table.module.ts index ae35b902f..589761cdf 100644 --- a/libs/ui/src/lib/activities-table/activities-table.module.ts +++ b/libs/ui/src/lib/activities-table/activities-table.module.ts @@ -1,3 +1,9 @@ +import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; +import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; +import { GfActivityTypeModule } from '@ghostfolio/ui/activity-type'; +import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -8,12 +14,6 @@ import { MatSortModule } from '@angular/material/sort'; import { MatTableModule } from '@angular/material/table'; import { MatTooltipModule } from '@angular/material/tooltip'; import { RouterModule } from '@angular/router'; -import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; -import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; -import { GfActivitiesFilterModule } from '@ghostfolio/ui/activities-filter/activities-filter.module'; -import { GfActivityTypeModule } from '@ghostfolio/ui/activity-type'; -import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { ActivitiesTableComponent } from './activities-table.component'; @@ -23,7 +23,6 @@ import { ActivitiesTableComponent } from './activities-table.component'; exports: [ActivitiesTableComponent], imports: [ CommonModule, - GfActivitiesFilterModule, GfActivityTypeModule, GfNoTransactionsInfoModule, GfSymbolIconModule, diff --git a/libs/ui/src/lib/activity-type/activity-type.component.html b/libs/ui/src/lib/activity-type/activity-type.component.html index b5c0ad060..78eb2f17b 100644 --- a/libs/ui/src/lib/activity-type/activity-type.component.html +++ b/libs/ui/src/lib/activity-type/activity-type.component.html @@ -10,23 +10,18 @@ sell: activityType === 'SELL' }" > - - - - - - + @if (activityType === 'BUY') { + + } @else if (activityType === 'DIVIDEND' || activityType === 'INTEREST') { + + } @else if (activityType === 'FEE') { + + } @else if (activityType === 'ITEM') { + + } @else if (activityType === 'LIABILITY') { + + } @else if (activityType === 'SELL') { + + } {{ activityTypeLabel }} diff --git a/libs/ui/src/lib/activity-type/activity-type.component.ts b/libs/ui/src/lib/activity-type/activity-type.component.ts index 3c98dd8e3..bf7621882 100644 --- a/libs/ui/src/lib/activity-type/activity-type.component.ts +++ b/libs/ui/src/lib/activity-type/activity-type.component.ts @@ -1,10 +1,11 @@ +import { translate } from '@ghostfolio/ui/i18n'; + import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core'; -import { translate } from '@ghostfolio/ui/i18n'; import { Type as ActivityType } from '@prisma/client'; @Component({ diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts index d00977c18..bb67b16c5 100644 --- a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts +++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.component.ts @@ -1,3 +1,5 @@ +import { ISearchResultItem } from '@ghostfolio/ui/assistant/interfaces/interfaces'; + import { FocusableOption } from '@angular/cdk/a11y'; import { ChangeDetectionStrategy, @@ -12,7 +14,6 @@ import { ViewChild } from '@angular/core'; import { Params } from '@angular/router'; -import { ISearchResultItem } from '@ghostfolio/ui/assistant/interfaces/interfaces'; @Component({ changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.module.ts b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.module.ts index 0c2e89726..fb512ee5e 100644 --- a/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.module.ts +++ b/libs/ui/src/lib/assistant/assistant-list-item/assistant-list-item.module.ts @@ -1,7 +1,8 @@ +import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; + import { CommonModule } from '@angular/common'; import { NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; -import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; import { AssistantListItemComponent } from './assistant-list-item.component'; diff --git a/libs/ui/src/lib/assistant/assistant.component.ts b/libs/ui/src/lib/assistant/assistant.component.ts index 2cfd9eff2..f4f9beea1 100644 --- a/libs/ui/src/lib/assistant/assistant.component.ts +++ b/libs/ui/src/lib/assistant/assistant.component.ts @@ -1,3 +1,9 @@ +import { AdminService } from '@ghostfolio/client/services/admin.service'; +import { DataService } from '@ghostfolio/client/services/data.service'; +import { Filter, User } from '@ghostfolio/common/interfaces'; +import { DateRange } from '@ghostfolio/common/types'; +import { translate } from '@ghostfolio/ui/i18n'; + import { FocusKeyManager } from '@angular/cdk/a11y'; import { ChangeDetectionStrategy, @@ -7,6 +13,7 @@ import { EventEmitter, HostListener, Input, + OnChanges, OnDestroy, OnInit, Output, @@ -14,11 +21,9 @@ import { ViewChild, ViewChildren } from '@angular/core'; -import { FormControl } from '@angular/forms'; +import { FormBuilder, FormControl } from '@angular/forms'; import { MatMenuTrigger } from '@angular/material/menu'; -import { AdminService } from '@ghostfolio/client/services/admin.service'; -import { DataService } from '@ghostfolio/client/services/data.service'; -import { translate } from '@ghostfolio/ui/i18n'; +import { Account, AssetClass } from '@prisma/client'; import { EMPTY, Observable, Subject, lastValueFrom } from 'rxjs'; import { catchError, @@ -38,7 +43,7 @@ import { ISearchResultItem, ISearchResults } from './interfaces/interfaces'; styleUrls: ['./assistant.scss'], templateUrl: './assistant.html' }) -export class AssistantComponent implements OnDestroy, OnInit { +export class AssistantComponent implements OnChanges, OnDestroy, OnInit { @HostListener('document:keydown', ['$event']) onKeydown( event: KeyboardEvent ) { @@ -73,8 +78,11 @@ export class AssistantComponent implements OnDestroy, OnInit { @Input() deviceType: string; @Input() hasPermissionToAccessAdminControl: boolean; + @Input() user: User; @Output() closed = new EventEmitter(); + @Output() dateRangeChanged = new EventEmitter(); + @Output() filtersChanged = new EventEmitter(); @ViewChild('menuTrigger') menuTriggerElement: MatMenuTrigger; @ViewChild('search', { static: true }) searchElement: ElementRef; @@ -84,6 +92,35 @@ export class AssistantComponent implements OnDestroy, OnInit { public static readonly SEARCH_RESULTS_DEFAULT_LIMIT = 5; + public accounts: Account[] = []; + public assetClasses: Filter[] = []; + public dateRangeFormControl = new FormControl(undefined); + public readonly dateRangeOptions = [ + { label: $localize`Today`, value: '1d' }, + { + label: $localize`Week to date` + ' (' + $localize`WTD` + ')', + value: 'wtd' + }, + { + label: $localize`Month to date` + ' (' + $localize`MTD` + ')', + value: 'mtd' + }, + { + label: $localize`Year to date` + ' (' + $localize`YTD` + ')', + value: 'ytd' + }, + { label: '1 ' + $localize`year` + ' (' + $localize`1Y` + ')', value: '1y' }, + { + label: '5 ' + $localize`years` + ' (' + $localize`5Y` + ')', + value: '5y' + }, + { label: $localize`Max`, value: 'max' } + ]; + public filterForm = this.formBuilder.group({ + account: new FormControl(undefined), + assetClass: new FormControl(undefined), + tag: new FormControl(undefined) + }); public isLoading = false; public isOpen = false; public placeholder = $localize`Find holding...`; @@ -92,17 +129,36 @@ export class AssistantComponent implements OnDestroy, OnInit { assetProfiles: [], holdings: [] }; + public tags: Filter[] = []; + private filterTypes: Filter['type'][] = ['ACCOUNT', 'ASSET_CLASS', 'TAG']; private keyManager: FocusKeyManager; private unsubscribeSubject = new Subject(); public constructor( private adminService: AdminService, private changeDetectorRef: ChangeDetectorRef, - private dataService: DataService + private dataService: DataService, + private formBuilder: FormBuilder ) {} public ngOnInit() { + this.accounts = this.user?.accounts; + this.assetClasses = Object.keys(AssetClass).map((assetClass) => { + return { + id: assetClass, + label: translate(assetClass), + type: 'ASSET_CLASS' + }; + }); + this.tags = this.user?.tags.map(({ id, name }) => { + return { + id, + label: translate(name), + type: 'TAG' + }; + }); + this.searchFormControl.valueChanges .pipe( map((searchTerm) => { @@ -142,6 +198,27 @@ export class AssistantComponent implements OnDestroy, OnInit { }); } + public ngOnChanges() { + this.dateRangeFormControl.setValue(this.user?.settings?.dateRange ?? null); + + this.filterForm.setValue( + { + account: this.user?.settings?.['filters.accounts']?.[0] ?? null, + assetClass: this.user?.settings?.['filters.assetClasses']?.[0] ?? null, + tag: this.user?.settings?.['filters.tags']?.[0] ?? null + }, + { + emitEvent: false + } + ); + } + + public hasFilter(aFormValue: { [key: string]: string }) { + return Object.values(aFormValue).some((value) => { + return !!value; + }); + } + public async initialize() { this.isLoading = true; this.keyManager = new FocusKeyManager(this.assistantListItems).withWrap(); @@ -165,12 +242,48 @@ export class AssistantComponent implements OnDestroy, OnInit { this.changeDetectorRef.markForCheck(); } + public onApplyFilters() { + this.filtersChanged.emit([ + { + id: this.filterForm.get('account').value, + type: 'ACCOUNT' + }, + { + id: this.filterForm.get('assetClass').value, + type: 'ASSET_CLASS' + }, + { + id: this.filterForm.get('tag').value, + type: 'TAG' + } + ]); + + this.onCloseAssistant(); + } + + public onChangeDateRange(dateRangeString: string) { + this.dateRangeChanged.emit(dateRangeString as DateRange); + } + public onCloseAssistant() { this.setIsOpen(false); this.closed.emit(); } + public onResetFilters() { + this.filtersChanged.emit( + this.filterTypes.map((type) => { + return { + type, + id: null + }; + }) + ); + + this.onCloseAssistant(); + } + public setIsOpen(aIsOpen: boolean) { this.isOpen = aIsOpen; } diff --git a/libs/ui/src/lib/assistant/assistant.html b/libs/ui/src/lib/assistant/assistant.html index 0644c945e..073833475 100644 --- a/libs/ui/src/lib/assistant/assistant.html +++ b/libs/ui/src/lib/assistant/assistant.html @@ -1,88 +1,172 @@ -
    -
    - - -
    - / -
    - - -
    +
    -
    -
    Holdings
    - + + - - + / +
    + + +
    +
    +
    +
    Holdings
    + + + -
    No entries...
    -
    -
    -
    -
    Asset Profiles
    - - - No entries...
    + +
    +
    +
    Asset Profiles
    + + + -
    No entries...
    -
    + /> +
    No entries...
    + +
    +
    + +
    + + Date Range + + @for (range of dateRangeOptions; track range) { + {{ range.label }} + } + + +
    +
    +
    + + Accounts + + + @for (account of accounts; track account.id) { + +
    + {{ account.name }} +
    +
    + } +
    +
    +
    +
    + + Tags + + + @for (tag of tags; track tag.id) { + {{ tag.label }} + } + + +
    +
    + + Asset Classes + + + @for (assetClass of assetClasses; track assetClass.id) { + {{ assetClass.label }} + } + + +
    +
    + + + +
    +
    +
    +
    diff --git a/libs/ui/src/lib/assistant/assistant.module.ts b/libs/ui/src/lib/assistant/assistant.module.ts index e4f48e8f3..6177531b8 100644 --- a/libs/ui/src/lib/assistant/assistant.module.ts +++ b/libs/ui/src/lib/assistant/assistant.module.ts @@ -1,7 +1,11 @@ +import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; import { MatButtonModule } from '@angular/material/button'; +import { MatFormFieldModule } from '@angular/material/form-field'; +import { MatSelectModule } from '@angular/material/select'; import { RouterModule } from '@angular/router'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; @@ -15,7 +19,10 @@ import { AssistantComponent } from './assistant.component'; CommonModule, FormsModule, GfAssistantListItemModule, + GfSymbolIconModule, MatButtonModule, + MatFormFieldModule, + MatSelectModule, NgxSkeletonLoaderModule, ReactiveFormsModule, RouterModule diff --git a/libs/ui/src/lib/assistant/assistant.scss b/libs/ui/src/lib/assistant/assistant.scss index 3339009d4..6ed02f658 100644 --- a/libs/ui/src/lib/assistant/assistant.scss +++ b/libs/ui/src/lib/assistant/assistant.scss @@ -1,6 +1,10 @@ :host { display: block; + .date-range-selector-container { + border-bottom: 1px solid rgba(var(--dark-dividers)); + } + .result-container { max-height: 15rem; } @@ -23,6 +27,10 @@ } :host-context(.is-dark-theme) { + .date-range-selector-container { + border-color: rgba(var(--light-dividers)); + } + .search-container { border-color: rgba(var(--light-dividers)); diff --git a/libs/ui/src/lib/benchmark/benchmark.component.html b/libs/ui/src/lib/benchmark/benchmark.component.html index c0fdbf956..2e5c819e7 100644 --- a/libs/ui/src/lib/benchmark/benchmark.component.html +++ b/libs/ui/src/lib/benchmark/benchmark.component.html @@ -16,16 +16,17 @@
    - + @if (element?.trend50d !== 'UNKNOWN') { + + }
    - + @if (element?.trend200d !== 'UNKNOWN') { + + }
    -
    - {{ resolveMarketCondition(element.marketCondition).emoji }} -
    + @if (element?.marketCondition) { +
    + {{ resolveMarketCondition(element.marketCondition).emoji }} +
    + }
    {{ element.name }} - ({{ element.assetSubClassLabel }}) + @if (element.name === element.symbol) { + ({{ element.assetSubClassLabel }}) + }
    {{ element.symbol }} @@ -59,7 +59,7 @@ [isDate]="element.dateOfFirstActivity ? true : false" [locale]="locale" [value]="element.dateOfFirstActivity ?? ''" - > + />
    - + - +@if (isLoading) { + +} -
    - -
    +@if (dataSource.data.length > pageSize && !isLoading) { +
    + +
    +} -
    - -
    +@if ( + dataSource.data.length === 0 && hasPermissionToCreateActivity && !isLoading +) { +
    + +
    +} diff --git a/libs/ui/src/lib/holdings-table/holdings-table.component.ts b/libs/ui/src/lib/holdings-table/holdings-table.component.ts index e341e21b2..94516b715 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.component.ts +++ b/libs/ui/src/lib/holdings-table/holdings-table.component.ts @@ -1,20 +1,19 @@ +import { PortfolioPosition, UniqueAsset } from '@ghostfolio/common/interfaces'; + import { ChangeDetectionStrategy, Component, - EventEmitter, Input, OnChanges, OnDestroy, OnInit, - Output, ViewChild } from '@angular/core'; import { MatPaginator } from '@angular/material/paginator'; import { MatSort } from '@angular/material/sort'; import { MatTableDataSource } from '@angular/material/table'; import { Router } from '@angular/router'; -import { PortfolioPosition, UniqueAsset } from '@ghostfolio/common/interfaces'; -import { AssetClass, Order as OrderModel } from '@prisma/client'; +import { AssetClass } from '@prisma/client'; import { Subject, Subscription } from 'rxjs'; @Component({ @@ -28,12 +27,9 @@ export class HoldingsTableComponent implements OnChanges, OnDestroy, OnInit { @Input() deviceType: string; @Input() hasPermissionToCreateActivity: boolean; @Input() hasPermissionToShowValues = true; + @Input() holdings: PortfolioPosition[]; @Input() locale: string; @Input() pageSize = Number.MAX_SAFE_INTEGER; - @Input() positions: PortfolioPosition[]; - - @Output() transactionDeleted = new EventEmitter(); - @Output() transactionToUpdate = new EventEmitter(); @ViewChild(MatPaginator) paginator: MatPaginator; @ViewChild(MatSort) sort: MatSort; @@ -63,11 +59,11 @@ export class HoldingsTableComponent implements OnChanges, OnDestroy, OnInit { this.isLoading = true; - if (this.positions) { - this.dataSource = new MatTableDataSource(this.positions); - this.dataSource.paginator = this.paginator; - this.dataSource.sort = this.sort; + this.dataSource = new MatTableDataSource(this.holdings); + this.dataSource.paginator = this.paginator; + this.dataSource.sort = this.sort; + if (this.holdings) { this.isLoading = false; } } diff --git a/libs/ui/src/lib/holdings-table/holdings-table.module.ts b/libs/ui/src/lib/holdings-table/holdings-table.module.ts index 507c45594..916489573 100644 --- a/libs/ui/src/lib/holdings-table/holdings-table.module.ts +++ b/libs/ui/src/lib/holdings-table/holdings-table.module.ts @@ -1,3 +1,9 @@ +import { GfPositionDetailDialogModule } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.module'; +import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; +import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; +import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; +import { GfValueModule } from '@ghostfolio/ui/value'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { MatButtonModule } from '@angular/material/button'; @@ -6,11 +12,6 @@ import { MatPaginatorModule } from '@angular/material/paginator'; import { MatSortModule } from '@angular/material/sort'; import { MatTableModule } from '@angular/material/table'; import { RouterModule } from '@angular/router'; -import { GfPositionDetailDialogModule } from '@ghostfolio/client/components/position/position-detail-dialog/position-detail-dialog.module'; -import { GfSymbolIconModule } from '@ghostfolio/client/components/symbol-icon/symbol-icon.module'; -import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; -import { GfNoTransactionsInfoModule } from '@ghostfolio/ui/no-transactions-info'; -import { GfValueModule } from '@ghostfolio/ui/value'; import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; import { HoldingsTableComponent } from './holdings-table.component'; diff --git a/libs/ui/src/lib/line-chart/line-chart.component.html b/libs/ui/src/lib/line-chart/line-chart.component.html index 577920888..e9a5bbbe0 100644 --- a/libs/ui/src/lib/line-chart/line-chart.component.html +++ b/libs/ui/src/lib/line-chart/line-chart.component.html @@ -1,11 +1,12 @@ - +@if (isLoading && showLoader) { + +} - {{ label ?? 'Ghostfolio' }} + @if (showLabel) { + {{ label ?? 'Ghostfolio' }} + } + diff --git a/libs/ui/src/lib/membership-card/membership-card.component.html b/libs/ui/src/lib/membership-card/membership-card.component.html index d069274ca..02a4a03f7 100644 --- a/libs/ui/src/lib/membership-card/membership-card.component.html +++ b/libs/ui/src/lib/membership-card/membership-card.component.html @@ -18,12 +18,14 @@
    Membership
    {{ name }}
    -
    -
    Valid until
    -
    - {{ expiresAt }} + @if (expiresAt) { +
    +
    Valid until
    +
    + {{ expiresAt }} +
    -
    + }
    diff --git a/libs/ui/src/lib/membership-card/membership-card.module.ts b/libs/ui/src/lib/membership-card/membership-card.module.ts index 4f51cc756..564308e29 100644 --- a/libs/ui/src/lib/membership-card/membership-card.module.ts +++ b/libs/ui/src/lib/membership-card/membership-card.module.ts @@ -1,7 +1,8 @@ +import { GfLogoModule } from '@ghostfolio/ui/logo'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { RouterModule } from '@angular/router'; -import { GfLogoModule } from '@ghostfolio/ui/logo'; import { MembershipCardComponent } from './membership-card.component'; diff --git a/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html b/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html index 103b21078..9e31ffabf 100644 --- a/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html +++ b/libs/ui/src/lib/no-transactions-info/no-transactions-info.component.html @@ -1,6 +1,6 @@
    - +
    +@if (isLoading) { + +} + > diff --git a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html index bc6a6dcc3..2a2f98d7d 100644 --- a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html +++ b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.html @@ -11,27 +11,30 @@ [displayWith]="displayFn" (optionSelected)="onUpdateSymbol($event)" > - - - {{ lookupItem.name }} -
    - {{ lookupItem.symbol | gfSymbol }} · {{ lookupItem.currency - }} - · {{ lookupItem.assetSubClassString }} -
    -
    + {{ lookupItem.name }} + @if (lookupItem.dataProviderInfo.isPremium) { + + } + + {{ lookupItem.symbol | gfSymbol }} · {{ lookupItem.currency }} + @if (lookupItem.assetSubClass) { + · {{ lookupItem.assetSubClassString }} + } + + + } + } - + +@if (isLoading) { + +} diff --git a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts index 17cdb853d..d25a15a28 100644 --- a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts +++ b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.component.ts @@ -1,3 +1,8 @@ +import { LookupItem } from '@ghostfolio/api/app/symbol/interfaces/lookup-item.interface'; +import { DataService } from '@ghostfolio/client/services/data.service'; +import { translate } from '@ghostfolio/ui/i18n'; +import { AbstractMatFormField } from '@ghostfolio/ui/shared/abstract-mat-form-field'; + import { FocusMonitor } from '@angular/cdk/a11y'; import { ChangeDetectionStrategy, @@ -16,10 +21,6 @@ import { } from '@angular/material/autocomplete'; import { MatFormFieldControl } from '@angular/material/form-field'; import { MatInput } from '@angular/material/input'; -import { LookupItem } from '@ghostfolio/api/app/symbol/interfaces/lookup-item.interface'; -import { DataService } from '@ghostfolio/client/services/data.service'; -import { translate } from '@ghostfolio/ui/i18n'; -import { AbstractMatFormField } from '@ghostfolio/ui/shared/abstract-mat-form-field'; import { isString } from 'lodash'; import { Subject, tap } from 'rxjs'; import { diff --git a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.module.ts b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.module.ts index d7b1ed2f8..cdb6cc97a 100644 --- a/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.module.ts +++ b/libs/ui/src/lib/symbol-autocomplete/symbol-autocomplete.module.ts @@ -1,3 +1,7 @@ +import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; +import { GfPremiumIndicatorModule } from '@ghostfolio/ui/premium-indicator'; +import { SymbolAutocompleteComponent } from '@ghostfolio/ui/symbol-autocomplete/symbol-autocomplete.component'; + import { CommonModule } from '@angular/common'; import { CUSTOM_ELEMENTS_SCHEMA, NgModule } from '@angular/core'; import { FormsModule, ReactiveFormsModule } from '@angular/forms'; @@ -5,8 +9,6 @@ import { MatAutocompleteModule } from '@angular/material/autocomplete'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { MatProgressSpinnerModule } from '@angular/material/progress-spinner'; -import { GfSymbolModule } from '@ghostfolio/client/pipes/symbol/symbol.module'; -import { SymbolAutocompleteComponent } from '@ghostfolio/ui/symbol-autocomplete/symbol-autocomplete.component'; @NgModule({ declarations: [SymbolAutocompleteComponent], @@ -14,6 +16,7 @@ import { SymbolAutocompleteComponent } from '@ghostfolio/ui/symbol-autocomplete/ imports: [ CommonModule, FormsModule, + GfPremiumIndicatorModule, GfSymbolModule, MatAutocompleteModule, MatFormFieldModule, diff --git a/libs/ui/src/lib/trend-indicator/trend-indicator.component.html b/libs/ui/src/lib/trend-indicator/trend-indicator.component.html index d6180cba7..81ce57bfc 100644 --- a/libs/ui/src/lib/trend-indicator/trend-indicator.component.html +++ b/libs/ui/src/lib/trend-indicator/trend-indicator.component.html @@ -6,7 +6,7 @@ height: '1.8rem', width: '1.8rem' }" -> +/> - + /> - + /> @@ -33,20 +31,20 @@ name="arrow-down-circle-outline" [ngClass]="{ 'rotate-45-down': value > -0.01 }" [size]="size" - >
    + /> + /> + /> diff --git a/libs/ui/src/lib/trend-indicator/trend-indicator.component.ts b/libs/ui/src/lib/trend-indicator/trend-indicator.component.ts index e9152f8a0..fafe6e0f3 100644 --- a/libs/ui/src/lib/trend-indicator/trend-indicator.component.ts +++ b/libs/ui/src/lib/trend-indicator/trend-indicator.component.ts @@ -1,6 +1,7 @@ -import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; import { DateRange, MarketState } from '@ghostfolio/common/types'; +import { ChangeDetectionStrategy, Component, Input } from '@angular/core'; + @Component({ selector: 'gf-trend-indicator', changeDetection: ChangeDetectionStrategy.OnPush, diff --git a/libs/ui/src/lib/value/value.component.html b/libs/ui/src/lib/value/value.component.html index bcefeac85..07c4616df 100644 --- a/libs/ui/src/lib/value/value.component.html +++ b/libs/ui/src/lib/value/value.component.html @@ -1,5 +1,5 @@
    - +
    @@ -32,7 +32,7 @@ }" > - *** + ***** {{ formattedValue }} @@ -67,7 +67,7 @@ size === 'large' ? '2rem' : size === 'medium' ? '1.8rem' : '1.5rem', width: '5rem' }" - > + />
    diff --git a/libs/ui/src/lib/value/value.component.ts b/libs/ui/src/lib/value/value.component.ts index d35c2d1b0..eb1536aa0 100644 --- a/libs/ui/src/lib/value/value.component.ts +++ b/libs/ui/src/lib/value/value.component.ts @@ -1,10 +1,11 @@ +import { getLocale } from '@ghostfolio/common/helper'; + import { ChangeDetectionStrategy, Component, Input, OnChanges } from '@angular/core'; -import { getLocale } from '@ghostfolio/common/helper'; import { isNumber } from 'lodash'; @Component({ diff --git a/package.json b/package.json index aa3b8c913..25f1a87ea 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ghostfolio", - "version": "2.32.0", + "version": "2.52.0", "homepage": "https://ghostfol.io", "license": "AGPL-3.0", "repository": "https://github.com/ghostfolio/ghostfolio", @@ -33,7 +33,6 @@ "format:check": "nx format:check", "format:write": "nx format:write", "help": "nx help", - "import-sort": "import-sort --write '{apps,libs}/**/*.ts'", "lint": "nx lint", "ng": "nx", "nx": "nx", @@ -44,7 +43,9 @@ "start:production": "yarn database:migrate && yarn database:seed && node main", "start:server": "nx run api:serve --watch", "start:storybook": "nx run ui:storybook", - "test": "npx dotenv-cli -e .env.example -- nx test", + "test": "yarn test:api && yarn test:common", + "test:api": "npx dotenv-cli -e .env.example -- nx test api", + "test:common": "npx dotenv-cli -e .env.example -- nx test common", "test:single": "nx run api:test --test-file portfolio-calculator-novn-buy-and-sell.spec.ts", "ts-node": "ts-node", "update": "nx migrate latest", @@ -53,17 +54,17 @@ "workspace-generator": "nx workspace-generator" }, "dependencies": { - "@angular/animations": "17.0.7", - "@angular/cdk": "17.0.4", - "@angular/common": "17.0.7", - "@angular/compiler": "17.0.7", - "@angular/core": "17.0.7", - "@angular/forms": "17.0.7", - "@angular/material": "17.0.4", - "@angular/platform-browser": "17.0.7", - "@angular/platform-browser-dynamic": "17.0.7", - "@angular/router": "17.0.7", - "@angular/service-worker": "17.0.7", + "@angular/animations": "17.1.3", + "@angular/cdk": "17.1.2", + "@angular/common": "17.1.3", + "@angular/compiler": "17.1.3", + "@angular/core": "17.1.3", + "@angular/forms": "17.1.3", + "@angular/material": "17.1.2", + "@angular/platform-browser": "17.1.3", + "@angular/platform-browser-dynamic": "17.1.3", + "@angular/router": "17.1.3", + "@angular/service-worker": "17.1.3", "@codewithdan/observable-store": "2.2.15", "@dfinity/agent": "0.15.7", "@dfinity/auth-client": "0.15.7", @@ -71,6 +72,7 @@ "@dfinity/identity": "0.15.7", "@dfinity/principal": "0.15.7", "@dinero.js/currencies": "2.0.0-alpha.8", + "@internationalized/number": "3.5.0", "@nestjs/bull": "10.0.1", "@nestjs/cache-manager": "2.1.0", "@nestjs/common": "10.1.3", @@ -81,7 +83,7 @@ "@nestjs/platform-express": "10.1.3", "@nestjs/schedule": "3.0.2", "@nestjs/serve-static": "4.0.0", - "@prisma/client": "5.7.1", + "@prisma/client": "5.9.1", "@simplewebauthn/browser": "8.3.1", "@simplewebauthn/server": "8.3.2", "@stripe/stripe-js": "1.47.0", @@ -110,10 +112,11 @@ "helmet": "7.0.0", "http-status-codes": "2.3.0", "ionicons": "7.1.0", + "jsonpath": "1.1.1", "lodash": "4.17.21", "marked": "9.1.6", "ms": "3.0.0-canary.1", - "ng-extract-i18n-merge": "2.9.0", + "ng-extract-i18n-merge": "2.10.0", "ngx-device-detector": "5.0.1", "ngx-markdown": "17.1.1", "ngx-skeleton-loader": "7.0.0", @@ -122,45 +125,46 @@ "passport": "0.6.0", "passport-google-oauth20": "2.0.0", "passport-jwt": "4.0.0", - "prisma": "5.7.1", + "prisma": "5.9.1", "reflect-metadata": "0.1.13", "rxjs": "7.5.6", "stripe": "11.12.0", "svgmap": "2.6.0", "twitter-api-v2": "1.14.2", "uuid": "9.0.1", - "yahoo-finance2": "2.9.0", - "zone.js": "0.14.2" + "yahoo-finance2": "2.9.1", + "zone.js": "0.14.3" }, "devDependencies": { - "@angular-devkit/build-angular": "17.0.7", - "@angular-devkit/core": "17.0.7", - "@angular-devkit/schematics": "17.0.7", - "@angular-eslint/eslint-plugin": "17.1.1", - "@angular-eslint/eslint-plugin-template": "17.1.1", - "@angular-eslint/template-parser": "17.1.1", - "@angular/cli": "17.0.7", - "@angular/compiler-cli": "17.0.7", - "@angular/language-service": "17.0.7", - "@angular/localize": "17.0.7", - "@angular/pwa": "17.0.7", + "@angular-devkit/build-angular": "17.1.3", + "@angular-devkit/core": "17.1.3", + "@angular-devkit/schematics": "17.1.3", + "@angular-eslint/eslint-plugin": "17.2.1", + "@angular-eslint/eslint-plugin-template": "17.2.1", + "@angular-eslint/template-parser": "17.2.1", + "@angular/cli": "17.1.3", + "@angular/compiler-cli": "17.1.3", + "@angular/language-service": "17.1.3", + "@angular/localize": "17.1.3", + "@angular/pwa": "17.1.3", "@nestjs/schematics": "10.0.1", "@nestjs/testing": "10.1.3", - "@nx/angular": "17.2.7", - "@nx/cypress": "17.2.7", - "@nx/eslint-plugin": "17.2.7", - "@nx/jest": "17.2.7", - "@nx/js": "17.2.7", - "@nx/nest": "17.2.7", - "@nx/node": "17.2.7", - "@nx/storybook": "17.2.7", - "@nx/web": "17.2.7", - "@nx/workspace": "17.2.7", - "@schematics/angular": "17.0.0", + "@nx/angular": "18.0.4", + "@nx/cypress": "18.0.4", + "@nx/eslint-plugin": "18.0.4", + "@nx/jest": "18.0.4", + "@nx/js": "18.0.4", + "@nx/nest": "18.0.4", + "@nx/node": "18.0.4", + "@nx/storybook": "18.0.4", + "@nx/web": "18.0.4", + "@nx/workspace": "18.0.4", + "@schematics/angular": "17.1.3", "@simplewebauthn/typescript-types": "8.0.0", "@storybook/addon-essentials": "7.6.5", "@storybook/angular": "7.6.5", "@storybook/core-server": "7.6.5", + "@trivago/prettier-plugin-sort-imports": "4.3.0", "@types/big.js": "6.1.6", "@types/body-parser": "1.19.2", "@types/cache-manager": "3.4.2", @@ -171,23 +175,20 @@ "@types/node": "18.16.9", "@types/papaparse": "5.3.7", "@types/passport-google-oauth20": "2.0.11", - "@typescript-eslint/eslint-plugin": "5.51.0", - "@typescript-eslint/parser": "5.51.0", + "@typescript-eslint/eslint-plugin": "6.21.0", + "@typescript-eslint/parser": "6.21.0", "codelyzer": "6.0.1", "cypress": "6.2.1", - "eslint": "8.33.0", - "eslint-config-prettier": "9.0.0", - "eslint-plugin-cypress": "2.14.0", - "eslint-plugin-import": "2.27.5", - "eslint-plugin-storybook": "0.6.12", - "import-sort-cli": "6.0.0", - "import-sort-parser-typescript": "6.0.0", - "import-sort-style-module": "6.0.0", + "eslint": "8.56.0", + "eslint-config-prettier": "9.1.0", + "eslint-plugin-cypress": "2.15.1", + "eslint-plugin-import": "2.29.1", + "eslint-plugin-storybook": "0.6.15", "jest": "29.4.3", "jest-environment-jsdom": "29.4.3", "jest-preset-angular": "13.1.4", - "nx": "17.2.7", - "prettier": "3.1.1", + "nx": "18.0.4", + "prettier": "3.2.5", "prettier-plugin-organize-attributes": "1.0.0", "react": "18.2.0", "react-dom": "18.2.0", @@ -197,17 +198,11 @@ "ts-jest": "29.1.0", "ts-node": "10.9.1", "tslib": "2.6.0", - "typescript": "5.2.2" + "typescript": "5.3.3" }, "engines": { "node": ">=18" }, - "importSort": { - ".ts": { - "parser": "typescript", - "style": "module" - } - }, "prisma": { "seed": "node prisma/seed.js" }, diff --git a/prisma/migrations/20240106124731_removed_account_type_enum/migration.sql b/prisma/migrations/20240106124731_removed_account_type_enum/migration.sql new file mode 100644 index 000000000..e655463be --- /dev/null +++ b/prisma/migrations/20240106124731_removed_account_type_enum/migration.sql @@ -0,0 +1,2 @@ +-- DropEnum +DROP TYPE "AccountType"; diff --git a/prisma/migrations/20240106131428_added_permissions_to_access/migration.sql b/prisma/migrations/20240106131428_added_permissions_to_access/migration.sql new file mode 100644 index 000000000..75fb777d4 --- /dev/null +++ b/prisma/migrations/20240106131428_added_permissions_to_access/migration.sql @@ -0,0 +1,5 @@ +-- CreateEnum +CREATE TYPE "AccessPermission" AS ENUM ('READ', 'READ_RESTRICTED'); + +-- AlterTable +ALTER TABLE "Access" ADD COLUMN "permissions" "AccessPermission"[] DEFAULT ARRAY['READ_RESTRICTED']::"AccessPermission"[]; diff --git a/prisma/schema.prisma b/prisma/schema.prisma index a7db0ceee..a5a57d8c0 100644 --- a/prisma/schema.prisma +++ b/prisma/schema.prisma @@ -11,31 +11,32 @@ datasource db { model Access { alias String? - createdAt DateTime @default(now()) + createdAt DateTime @default(now()) granteeUserId String? - id String @id @default(uuid()) - updatedAt DateTime @updatedAt + id String @id @default(uuid()) + permissions AccessPermission[] @default([READ_RESTRICTED]) + updatedAt DateTime @updatedAt userId String - GranteeUser User? @relation("accessGet", fields: [granteeUserId], references: [id]) - User User @relation("accessGive", fields: [userId], references: [id]) + GranteeUser User? @relation("accessGet", fields: [granteeUserId], references: [id]) + User User @relation("accessGive", fields: [userId], references: [id]) } model Account { - balance Float @default(0) - balances AccountBalance[] - comment String? - createdAt DateTime @default(now()) - currency String? - id String @default(uuid()) - isDefault Boolean @default(false) - isExcluded Boolean @default(false) - name String? - platformId String? - updatedAt DateTime @updatedAt - userId String - Platform Platform? @relation(fields: [platformId], references: [id]) - User User @relation(fields: [userId], references: [id]) - Order Order[] + balance Float @default(0) + balances AccountBalance[] + comment String? + createdAt DateTime @default(now()) + currency String? + id String @default(uuid()) + isDefault Boolean @default(false) + isExcluded Boolean @default(false) + name String? + platformId String? + updatedAt DateTime @updatedAt + userId String + Platform Platform? @relation(fields: [platformId], references: [id]) + User User @relation(fields: [userId], references: [id]) + Order Order[] @@id([id, userId]) } @@ -196,9 +197,9 @@ model User { Subscription Subscription[] } -enum AccountType { - CASH - SECURITIES +enum AccessPermission { + READ + READ_RESTRICTED } enum AssetClass { diff --git a/yarn.lock b/yarn.lock index c78d70302..dfba804f5 100644 --- a/yarn.lock +++ b/yarn.lock @@ -20,12 +20,12 @@ "@jridgewell/gen-mapping" "^0.3.0" "@jridgewell/trace-mapping" "^0.3.9" -"@angular-devkit/architect@0.1700.7": - version "0.1700.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1700.7.tgz#6137deee169704de6c675023cddb3f4e1d6ae2e9" - integrity sha512-32uitQKsYLGXAKoXBsmOnPsTt9pS+b9cnFI9ZvBFVhJ31I2EOM7vGcMFalhTxdB/DkVHk4TyO78efV0V26DwCA== +"@angular-devkit/architect@0.1701.3": + version "0.1701.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/architect/-/architect-0.1701.3.tgz#974cc8680baa5b8440cfc8039bbc4c46008e80bf" + integrity sha512-K5rvhslbXNwx04cCLviEJCA27MwoJRMMzALFXySi9BqjZnZUOtZnOBuuCdrTPaRmFaYqGO4Im5GNzpbb/NB8zg== dependencies: - "@angular-devkit/core" "17.0.7" + "@angular-devkit/core" "17.1.3" rxjs "7.8.1" "@angular-devkit/architect@^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0": @@ -36,42 +36,40 @@ "@angular-devkit/core" "17.0.0" rxjs "7.8.1" -"@angular-devkit/build-angular@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-17.0.7.tgz#0edbda90050efe7e0c9d9500144af05eebfc347b" - integrity sha512-AtEzLk6n6BXqQzk0Bsupe6GV0IgUe7RbpBfqROi+NZqMA7OUAHCX3xA6M68Qu+5KxBtW7T5lHeZZ7iP/y39wtQ== +"@angular-devkit/build-angular@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-angular/-/build-angular-17.1.3.tgz#05634e6a81ade1eb4e12844e37cbf636bf949bc4" + integrity sha512-pusFVSWMnrm2GrF3+Fw19OhA2rNw4WkfTMUruhaKAjW5QIvZ3wHYf+pH//1Ud+tuhFBi9BH7UALP2vnJMu1ehw== dependencies: "@ampproject/remapping" "2.2.1" - "@angular-devkit/architect" "0.1700.7" - "@angular-devkit/build-webpack" "0.1700.7" - "@angular-devkit/core" "17.0.7" - "@babel/core" "7.23.2" - "@babel/generator" "7.23.0" + "@angular-devkit/architect" "0.1701.3" + "@angular-devkit/build-webpack" "0.1701.3" + "@angular-devkit/core" "17.1.3" + "@babel/core" "7.23.7" + "@babel/generator" "7.23.6" "@babel/helper-annotate-as-pure" "7.22.5" "@babel/helper-split-export-declaration" "7.22.6" - "@babel/plugin-transform-async-generator-functions" "7.23.2" - "@babel/plugin-transform-async-to-generator" "7.22.5" - "@babel/plugin-transform-runtime" "7.23.2" - "@babel/preset-env" "7.23.2" - "@babel/runtime" "7.23.2" + "@babel/plugin-transform-async-generator-functions" "7.23.7" + "@babel/plugin-transform-async-to-generator" "7.23.3" + "@babel/plugin-transform-runtime" "7.23.7" + "@babel/preset-env" "7.23.7" + "@babel/runtime" "7.23.7" "@discoveryjs/json-ext" "0.5.7" - "@ngtools/webpack" "17.0.7" - "@vitejs/plugin-basic-ssl" "1.0.1" + "@ngtools/webpack" "17.1.3" + "@vitejs/plugin-basic-ssl" "1.0.2" ansi-colors "4.1.3" autoprefixer "10.4.16" babel-loader "9.1.3" babel-plugin-istanbul "6.1.1" - browser-sync "2.29.3" browserslist "^4.21.5" - chokidar "3.5.3" copy-webpack-plugin "11.0.0" critters "0.0.20" css-loader "6.8.1" - esbuild-wasm "0.19.5" - fast-glob "3.3.1" + esbuild-wasm "0.19.11" + fast-glob "3.3.2" http-proxy-middleware "2.0.6" https-proxy-agent "7.0.2" - inquirer "9.2.11" + inquirer "9.2.12" jsonc-parser "3.2.0" karma-source-map-support "1.4.0" less "4.2.0" @@ -80,41 +78,42 @@ loader-utils "3.2.1" magic-string "0.30.5" mini-css-extract-plugin "2.7.6" - mrmime "1.0.1" + mrmime "2.0.0" open "8.4.2" ora "5.4.1" parse5-html-rewriting-stream "7.0.0" picomatch "3.0.1" - piscina "4.1.0" - postcss "8.4.31" - postcss-loader "7.3.3" + piscina "4.2.1" + postcss "8.4.33" + postcss-loader "7.3.4" resolve-url-loader "5.0.0" rxjs "7.8.1" - sass "1.69.5" - sass-loader "13.3.2" + sass "1.69.7" + sass-loader "13.3.3" semver "7.5.4" - source-map-loader "4.0.1" + source-map-loader "5.0.0" source-map-support "0.5.21" - terser "5.24.0" + terser "5.26.0" text-table "0.2.0" tree-kill "1.2.2" tslib "2.6.2" - undici "5.27.2" - vite "4.5.1" + undici "6.2.1" + vite "5.0.12" + watchpack "2.4.0" webpack "5.89.0" webpack-dev-middleware "6.1.1" webpack-dev-server "4.15.1" webpack-merge "5.10.0" webpack-subresource-integrity "5.1.0" optionalDependencies: - esbuild "0.19.5" + esbuild "0.19.11" -"@angular-devkit/build-webpack@0.1700.7": - version "0.1700.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1700.7.tgz#896520220b5b09f8e9a9c617ee0d9caabb489766" - integrity sha512-B9Mg/qYDpE5my8PJ3VPQyRSUV0Oq1bFUzU8s0ZpqEZl1URKc04pm0LtLmebrMIcUZgDiGk0RHaD+O1E9IV/bdQ== +"@angular-devkit/build-webpack@0.1701.3": + version "0.1701.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/build-webpack/-/build-webpack-0.1701.3.tgz#584275d98be9e76d5db3d870ff37c57175d04a45" + integrity sha512-fpZtJf6yvXM7mX1T83caeYpa0e3zPv7sgKmx0ZIJKGL8+DETgNcCCeCTgui7HMBcHGCD8yj72DZ8xMMBWwVBIA== dependencies: - "@angular-devkit/architect" "0.1700.7" + "@angular-devkit/architect" "0.1701.3" rxjs "7.8.1" "@angular-devkit/core@16.0.1": @@ -151,10 +150,10 @@ rxjs "7.8.1" source-map "0.7.4" -"@angular-devkit/core@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-17.0.7.tgz#a11b04b4d51103ce456c49739a34d129e34a9dc5" - integrity sha512-vATobHo5O5tJba424hJfQWLb40GzvZPNsI74dcgSUTgrDph8ksmk5xB9OvEvf0INorQZ2IMphj/VIWj4/+JqSA== +"@angular-devkit/core@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/core/-/core-17.1.3.tgz#d3b2212f9fa753506b1ccab24ee34edcdcd02e63" + integrity sha512-iuVK4hyW3YhusxIi8zGBvvVA9pWtDT3H6LQbWdVk9D3jXCZBIrEMklvAiJErqficKnUurf6gtFOeA8Fop6GotA== dependencies: ajv "8.12.0" ajv-formats "2.1.1" @@ -196,109 +195,109 @@ ora "5.4.1" rxjs "7.8.1" -"@angular-devkit/schematics@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-17.0.7.tgz#35f085d5b3da249c3d8513be5613d02219fedb2e" - integrity sha512-BY11OkJkM3xyXcvyD7x5kGY/c8Ufd4AfPvI0D9imhVxbns45Q48b1DlvCQvSnCJ/s+OwnkrYb/Efa70ZiaGu8A== +"@angular-devkit/schematics@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular-devkit/schematics/-/schematics-17.1.3.tgz#9fc4c82f64af9375249910d26093e449a73f0166" + integrity sha512-zKoWG1hDfvi1vR9Hqoca9hWo9vDg8evmQvGcBW5jXR5ndZi5Oit/uDcGdA8WUKvBd1EG7WMqp0FgcDR9EA9WCw== dependencies: - "@angular-devkit/core" "17.0.7" + "@angular-devkit/core" "17.1.3" jsonc-parser "3.2.0" magic-string "0.30.5" ora "5.4.1" rxjs "7.8.1" -"@angular-eslint/bundled-angular-compiler@17.1.1": - version "17.1.1" - resolved "https://registry.yarnpkg.com/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.1.1.tgz#fdd9c0b7497efc6ee918502dd008290625afb903" - integrity sha512-xRlSh9qjdUdUKAy/0UQsxX7wf1tHApAsHsfismebPriqfmVAPyEg4HBrM8ImWaZxiqaTGC1AyHsUBQD5FK8o6w== +"@angular-eslint/bundled-angular-compiler@17.2.1": + version "17.2.1" + resolved "https://registry.yarnpkg.com/@angular-eslint/bundled-angular-compiler/-/bundled-angular-compiler-17.2.1.tgz#d849b0845371b41856b9f598af81ce5bf799bca0" + integrity sha512-puC0itsZv2QlrDOCcWtq1KZH+DvfrpV+mV78HHhi6+h25R5iIhr8ARKcl3EQxFjvrFq34jhG8pSupxKvFbHVfA== -"@angular-eslint/eslint-plugin-template@17.1.1": - version "17.1.1" - resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.1.1.tgz#18862e2c5361a8ba885e975e8fd6706e63420f09" - integrity sha512-unZ6QNwtxuB8Eni7UPdw7uK6iZipZUXIsH+ZuLMOxwFgGMqeRnpv8SW0212rto3d/Ec0jESzVHKcwZ9pT+jxgw== +"@angular-eslint/eslint-plugin-template@17.2.1": + version "17.2.1" + resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin-template/-/eslint-plugin-template-17.2.1.tgz#226a623219375a2344112c1c896fefef0dae4df6" + integrity sha512-hl1hcHtcm90wyVL1OQGTz16oA0KHon+FFb3Qg0fLXObaXxA495Ecefd9ub5Xxg4JEOPRDi29bF1Y3YKpwflgeg== dependencies: - "@angular-eslint/bundled-angular-compiler" "17.1.1" - "@angular-eslint/utils" "17.1.1" - "@typescript-eslint/type-utils" "6.13.1" - "@typescript-eslint/utils" "6.13.1" + "@angular-eslint/bundled-angular-compiler" "17.2.1" + "@angular-eslint/utils" "17.2.1" + "@typescript-eslint/type-utils" "6.19.0" + "@typescript-eslint/utils" "6.19.0" aria-query "5.3.0" axobject-query "4.0.0" -"@angular-eslint/eslint-plugin@17.1.1": - version "17.1.1" - resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin/-/eslint-plugin-17.1.1.tgz#d17cec6d7a4575d0c6bc6a306e4b7b57b64c23e4" - integrity sha512-fFOBlCOVObVu3gjLj+0BypqO1ZR/0bfJnDElqMdYwJG7zRaFT8NNQbrOo/q/GQoqOFoNna6mw3teTGsd5JnL2A== +"@angular-eslint/eslint-plugin@17.2.1": + version "17.2.1" + resolved "https://registry.yarnpkg.com/@angular-eslint/eslint-plugin/-/eslint-plugin-17.2.1.tgz#2be51ead1785950feb8351001e0683eae42f4c29" + integrity sha512-9yA81BHpsaCUKRBtHGN3ieAy8HpIoffzPQMu34lYqZFT4yGHGhYmhQjNSQGBRbV2LD9dVv2U35rMHNmUcozXpw== dependencies: - "@angular-eslint/utils" "17.1.1" - "@typescript-eslint/utils" "6.13.1" + "@angular-eslint/utils" "17.2.1" + "@typescript-eslint/utils" "6.19.0" -"@angular-eslint/template-parser@17.1.1": - version "17.1.1" - resolved "https://registry.yarnpkg.com/@angular-eslint/template-parser/-/template-parser-17.1.1.tgz#a3a52d18cae276c9d1d67a69a663dd0b404ffaf5" - integrity sha512-ofL46rNhRVeSxrSQF0vwhKMco+vJuo+ZGjSOzFmT9N3KAMB0j+WXTbpyGGMy0gQSBc4W6p+j+zxGa2CR2xb6wA== +"@angular-eslint/template-parser@17.2.1": + version "17.2.1" + resolved "https://registry.yarnpkg.com/@angular-eslint/template-parser/-/template-parser-17.2.1.tgz#005f997346eb17c6dbca5fffc41da51b7e755013" + integrity sha512-WPQYFvRju0tCDXQ/pwrzC911pE07JvpeDgcN2elhzV6lxDHJEZpA5O9pnW9qgNA6J6XM9Q7dBkJ22ztAzC4WFw== dependencies: - "@angular-eslint/bundled-angular-compiler" "17.1.1" - eslint-scope "^7.0.0" + "@angular-eslint/bundled-angular-compiler" "17.2.1" + eslint-scope "^8.0.0" -"@angular-eslint/utils@17.1.1": - version "17.1.1" - resolved "https://registry.yarnpkg.com/@angular-eslint/utils/-/utils-17.1.1.tgz#e24a01a797285c4bac468cfbc3fd862b480652b6" - integrity sha512-CTNPOb05S/DII/Fm8JYUvKo+B4u/ctHjGJ0X1YXUR0q31oaGqTE3KePGq76+Y6swRDf9NjUIcfcnZp3u3j4CBQ== +"@angular-eslint/utils@17.2.1": + version "17.2.1" + resolved "https://registry.yarnpkg.com/@angular-eslint/utils/-/utils-17.2.1.tgz#3d4217775d86479348fdd0e1ad83014c9d8339f2" + integrity sha512-qQYTBXy90dWM7fhhpa5i9lTtqqhJisvRa+naCrQx9kBgR458JScLdkVIdcZ9D/rPiDCmKiVUfgcDISnjUeqTqg== dependencies: - "@angular-eslint/bundled-angular-compiler" "17.1.1" - "@typescript-eslint/utils" "6.13.1" + "@angular-eslint/bundled-angular-compiler" "17.2.1" + "@typescript-eslint/utils" "6.19.0" -"@angular/animations@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-17.0.7.tgz#0a9f212ea615014c0e646978fd8a5a52cb85a179" - integrity sha512-IjZjPGMxvi2a9o7fzjwNO44FvhTZlVSgcPtqM6Glq0+WVeQcnZxf1Onj68M/FGx2AunS8elRbrgPxTexVeSo7A== +"@angular/animations@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/animations/-/animations-17.1.3.tgz#be67fc479cfc700d7c1270222003c6d2bc622194" + integrity sha512-AS9CHOjjKqkuAzlKEMJfAkZfkIdSoagB3D8HwvH+ZHo6GVJc9KbtLQn/okNijFK+Fg7QK/hYbQ3lJhjgk0GQDA== dependencies: tslib "^2.3.0" -"@angular/cdk@17.0.4": - version "17.0.4" - resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-17.0.4.tgz#02ea9ae9b85d29b6eb1ac4c63a3fc175767b4d59" - integrity sha512-mh/EuIR0NPfpNqAXBSZWuJeBMXUvUDYdKhiFWZet5NLO1bDgFe1MGLBjtW4us95k4BZsMLbCKNxJgc+4JqwUvg== +"@angular/cdk@17.1.2": + version "17.1.2" + resolved "https://registry.yarnpkg.com/@angular/cdk/-/cdk-17.1.2.tgz#f79bbf57fbbd0cf59ed9a1611c2c5ffacea11628" + integrity sha512-eu9D60RQv213qi7oh6ae9Z+d6+AG/aqi0y70Ag9BjwqTiatDiYvSySxswxYYKdzPp0hx0ZUTGi16LqtT6pyj6Q== dependencies: tslib "^2.3.0" optionalDependencies: parse5 "^7.1.2" -"@angular/cli@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-17.0.7.tgz#ecdcbf4cd3400d56871b64b644195a4a2a6cb580" - integrity sha512-oSa0GVAQNA7wFbLJYeaO3kV4iUcbKEqXDLxcIE8s1GfHddBOlXH2P1T4fXonCBl5qvV+joP0G0+fs7I0w2utZQ== +"@angular/cli@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/cli/-/cli-17.1.3.tgz#45af3e5041f3df14ff10dc48ee64960f575d5aac" + integrity sha512-ysPWDdqo2cwfeskKVAg8p4C8xuezWcIWyW/ACSjWw6yp4OZvyVd6cGZrc0POVZzAPtTOYJSgWOpF/DCHQFluSg== dependencies: - "@angular-devkit/architect" "0.1700.7" - "@angular-devkit/core" "17.0.7" - "@angular-devkit/schematics" "17.0.7" - "@schematics/angular" "17.0.7" + "@angular-devkit/architect" "0.1701.3" + "@angular-devkit/core" "17.1.3" + "@angular-devkit/schematics" "17.1.3" + "@schematics/angular" "17.1.3" "@yarnpkg/lockfile" "1.1.0" ansi-colors "4.1.3" ini "4.1.1" - inquirer "9.2.11" + inquirer "9.2.12" jsonc-parser "3.2.0" npm-package-arg "11.0.1" npm-pick-manifest "9.0.0" open "8.4.2" ora "5.4.1" - pacote "17.0.4" + pacote "17.0.5" resolve "1.22.8" semver "7.5.4" symbol-observable "4.0.0" yargs "17.7.2" -"@angular/common@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/common/-/common-17.0.7.tgz#8222a94f3ffae119920c0857118d8fa01cc89740" - integrity sha512-bPPL6x0KOAOTxKSE2j4EWmEUOnqZYzOYiHzroa5b9UEyA9NvGkd9bm3zIxw8xcndRj1Ehcmvpi6KBLcYBBbWfg== +"@angular/common@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/common/-/common-17.1.3.tgz#d8411db80510a99a23ad01a56264c3594625936a" + integrity sha512-AzLzoNSeRSNGBQk0K+iG0XdYG36SDeJqYqE8rfoiWuv1NDFLL05UJM2/fQfaMNg0oX5bHOlHUqHFj3sFR/NVpw== dependencies: tslib "^2.3.0" -"@angular/compiler-cli@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-17.0.7.tgz#7fa39624bbc2e5b2311087ecffdc83aed5d84f1b" - integrity sha512-YnL38idjIYtl3BXYpv+sVJKWGbUjHT6eyQSQVAfO/1AwWqVa21K9hnE+Q37VmUKEcKFMnQembeuErA+KVsGI6A== +"@angular/compiler-cli@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/compiler-cli/-/compiler-cli-17.1.3.tgz#f1cbb68eb089c7aa161bab315cdc1a0004fac768" + integrity sha512-bNDHXo3Twub0BZK9OmXly+0REs0RuR1SUXlTAeq+0XubCvnBDvpg9peL7UTTGS5YRo9sUTBnR6faSUA1F5objQ== dependencies: "@babel/core" "7.23.2" "@jridgewell/sourcemap-codec" "^1.4.14" @@ -309,10 +308,10 @@ tslib "^2.3.0" yargs "^17.2.1" -"@angular/compiler@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-17.0.7.tgz#cb695fccaa5dbb51f380f835d81dddb9039d8bcb" - integrity sha512-QHPuLti2c2tGZmOGZ0cfCHo4LxiHUkC27I0aZFDyQSSQqEI5obQGVlEREHysw0nsS3sYIcLvqcwcKcRtXlXtxQ== +"@angular/compiler@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-17.1.3.tgz#157e834eb4b0cb4f339bc8a0da8dcb438e92034a" + integrity sha512-k/s21gPPKStxVOLr6l4Y145OIxyBY7BhTPVOl/qEAgE+IcZ9vkiA8dYl8yjL884Kl1ZKPmFA3AofMJjWjZGNag== dependencies: tslib "^2.3.0" @@ -321,10 +320,10 @@ resolved "https://registry.yarnpkg.com/@angular/compiler/-/compiler-9.0.0.tgz#87e0bef4c369b6cadae07e3a4295778fc93799d5" integrity sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ== -"@angular/core@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/core/-/core-17.0.7.tgz#ab1a38824d60fd07e533c0f03386c4a5a84f3749" - integrity sha512-mEkelXkzEi6+A9GjdKOSGGzQAfo1iAjVTn6YsplNUeGE5JgDZYZ7sXGQqs0Lin7dzJxnPAgGjCOl7SpWLXIPSQ== +"@angular/core@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/core/-/core-17.1.3.tgz#12f4adb8d1037ba1572c7531997d82a82fbe8fc1" + integrity sha512-2lZ4DRHN8KJ/aQads+YXIcx5Ri9yyeFIlw69m5Pn7wAi/+Rakg7IsclgLaWs7aBtWwMHG7LnqFKxAVq7CjXKtA== dependencies: tslib "^2.3.0" @@ -333,115 +332,116 @@ resolved "https://registry.yarnpkg.com/@angular/core/-/core-9.0.0.tgz#227dc53e1ac81824f998c6e76000b7efc522641e" integrity sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w== -"@angular/forms@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-17.0.7.tgz#b8d1ffbe565567c529b0b9ac3e9f7cb51f24c655" - integrity sha512-28BxRxEmgZIofGwVp6s2v3ri/kuWW+/EY/ZXhavlWKJEh4ATJl72k0RkRWNcQi4wnvn0Qb8tFdnVJnvRZvvKEw== +"@angular/forms@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/forms/-/forms-17.1.3.tgz#1e87b39e237a1d6f7cc2f78ad8d6b597b5ef08aa" + integrity sha512-aNa0jGLT5d+hnKVrSo8tk3TRo/NLNu1RxLNx8RhIczKAeCK3eD8SvTMy27iJtyXmNG2GWN7QPiDeGepd75nbxQ== dependencies: tslib "^2.3.0" -"@angular/language-service@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-17.0.7.tgz#2bc73f177bfe90b79d3011964633364b0670f21f" - integrity sha512-03EXeBZgyGNnEDLiABwEw0lpAcqLxSgl+bXQahOO4OnBSYQWGEiqfs3ymNbNj0chUfQVadG4FWghwGTGbj77Iw== +"@angular/language-service@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/language-service/-/language-service-17.1.3.tgz#40ec52fa58ee67624ebf8a2eaf20dab04c2a01fb" + integrity sha512-SO1xXfLwfTvPzxzJoan/sx5Agt1k3WlpEO9siPlZdNsD6zCkRziS0DotWIblGFtxCPUA4x205V3ihx+gaFi3DA== -"@angular/localize@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-17.0.7.tgz#46b6623734c7e46070125f5ff29bf34dc83cad36" - integrity sha512-avYYQ8zin2thzvsH2YP3WxlwkvOzjNEXxjv4yyZBx6wul68e/753kQK/0RmSUYaBpDTUEZYzrPpDay00TKwBOA== +"@angular/localize@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/localize/-/localize-17.1.3.tgz#626564dcd89a3f5d26cd31eb2fcdc848e01898ad" + integrity sha512-Jdz5FWcaQLRhEhUHJk0iyMOT1ts4HHcY9B20mBmAd7u3kqEoBc57N8hOX0vHjU4/rk1tGqIvzfhJJf6zqIWcZQ== dependencies: "@babel/core" "7.23.2" + "@types/babel__core" "7.20.2" fast-glob "3.3.1" yargs "^17.2.1" -"@angular/material@17.0.4": - version "17.0.4" - resolved "https://registry.yarnpkg.com/@angular/material/-/material-17.0.4.tgz#d3d7b093ae09662f18b04a27cfccfab8f4182895" - integrity sha512-IKkys4EavE1TMHApPMbFLvJU4pP8S8XNfY2eS7/kFwW7eyTcz0zV/IKeBbxkpej19MaouozU+KWeRJtxHg6x8g== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/auto-init" "15.0.0-canary.a246a4439.0" - "@material/banner" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/button" "15.0.0-canary.a246a4439.0" - "@material/card" "15.0.0-canary.a246a4439.0" - "@material/checkbox" "15.0.0-canary.a246a4439.0" - "@material/chips" "15.0.0-canary.a246a4439.0" - "@material/circular-progress" "15.0.0-canary.a246a4439.0" - "@material/data-table" "15.0.0-canary.a246a4439.0" - "@material/density" "15.0.0-canary.a246a4439.0" - "@material/dialog" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/drawer" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/fab" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/floating-label" "15.0.0-canary.a246a4439.0" - "@material/form-field" "15.0.0-canary.a246a4439.0" - "@material/icon-button" "15.0.0-canary.a246a4439.0" - "@material/image-list" "15.0.0-canary.a246a4439.0" - "@material/layout-grid" "15.0.0-canary.a246a4439.0" - "@material/line-ripple" "15.0.0-canary.a246a4439.0" - "@material/linear-progress" "15.0.0-canary.a246a4439.0" - "@material/list" "15.0.0-canary.a246a4439.0" - "@material/menu" "15.0.0-canary.a246a4439.0" - "@material/menu-surface" "15.0.0-canary.a246a4439.0" - "@material/notched-outline" "15.0.0-canary.a246a4439.0" - "@material/radio" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/segmented-button" "15.0.0-canary.a246a4439.0" - "@material/select" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/slider" "15.0.0-canary.a246a4439.0" - "@material/snackbar" "15.0.0-canary.a246a4439.0" - "@material/switch" "15.0.0-canary.a246a4439.0" - "@material/tab" "15.0.0-canary.a246a4439.0" - "@material/tab-bar" "15.0.0-canary.a246a4439.0" - "@material/tab-indicator" "15.0.0-canary.a246a4439.0" - "@material/tab-scroller" "15.0.0-canary.a246a4439.0" - "@material/textfield" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tooltip" "15.0.0-canary.a246a4439.0" - "@material/top-app-bar" "15.0.0-canary.a246a4439.0" - "@material/touch-target" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@angular/material@17.1.2": + version "17.1.2" + resolved "https://registry.yarnpkg.com/@angular/material/-/material-17.1.2.tgz#cc58d155c76e358e7a9bd07750789b001385deb6" + integrity sha512-50n7JDWtWGCxfrMKVKZ2wqkdozukA3IWeypQgXxzZc+4jqgT6Vj8/U4xNvcO9OgPLMOaTvktfT+wzUmCKJ0sng== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/auto-init" "15.0.0-canary.7f224ddd4.0" + "@material/banner" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/button" "15.0.0-canary.7f224ddd4.0" + "@material/card" "15.0.0-canary.7f224ddd4.0" + "@material/checkbox" "15.0.0-canary.7f224ddd4.0" + "@material/chips" "15.0.0-canary.7f224ddd4.0" + "@material/circular-progress" "15.0.0-canary.7f224ddd4.0" + "@material/data-table" "15.0.0-canary.7f224ddd4.0" + "@material/density" "15.0.0-canary.7f224ddd4.0" + "@material/dialog" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/drawer" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/fab" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/floating-label" "15.0.0-canary.7f224ddd4.0" + "@material/form-field" "15.0.0-canary.7f224ddd4.0" + "@material/icon-button" "15.0.0-canary.7f224ddd4.0" + "@material/image-list" "15.0.0-canary.7f224ddd4.0" + "@material/layout-grid" "15.0.0-canary.7f224ddd4.0" + "@material/line-ripple" "15.0.0-canary.7f224ddd4.0" + "@material/linear-progress" "15.0.0-canary.7f224ddd4.0" + "@material/list" "15.0.0-canary.7f224ddd4.0" + "@material/menu" "15.0.0-canary.7f224ddd4.0" + "@material/menu-surface" "15.0.0-canary.7f224ddd4.0" + "@material/notched-outline" "15.0.0-canary.7f224ddd4.0" + "@material/radio" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/segmented-button" "15.0.0-canary.7f224ddd4.0" + "@material/select" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/slider" "15.0.0-canary.7f224ddd4.0" + "@material/snackbar" "15.0.0-canary.7f224ddd4.0" + "@material/switch" "15.0.0-canary.7f224ddd4.0" + "@material/tab" "15.0.0-canary.7f224ddd4.0" + "@material/tab-bar" "15.0.0-canary.7f224ddd4.0" + "@material/tab-indicator" "15.0.0-canary.7f224ddd4.0" + "@material/tab-scroller" "15.0.0-canary.7f224ddd4.0" + "@material/textfield" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tooltip" "15.0.0-canary.7f224ddd4.0" + "@material/top-app-bar" "15.0.0-canary.7f224ddd4.0" + "@material/touch-target" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.3.0" -"@angular/platform-browser-dynamic@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.0.7.tgz#a2404d4625f17078c6de595bbddb6011eda2f74a" - integrity sha512-OquwUX9fLWA2JUZW5Jm6atk0CPt0sA7Tg24eGLsr6g1XfTS7jRZprlGaa72NgPLnQVV6m84o/ZiNYS6yPmq1Gg== +"@angular/platform-browser-dynamic@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/platform-browser-dynamic/-/platform-browser-dynamic-17.1.3.tgz#7391d547a22b85e95de8ee1f16faf6b876f26ae1" + integrity sha512-0lFhcFJfDzCSSVe8l8OY+UgUiwUwcbxwpvLod3XWBpf1iEUlr5720FIMA3VJYwpW3Oj4Uey3nVm13EMtRqpqdA== dependencies: tslib "^2.3.0" -"@angular/platform-browser@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-17.0.7.tgz#9f7f048be9b584254d468cc4d1be772ff2b08288" - integrity sha512-bm9/wt51nc/MPjft/FlRNIgFSeLjDtfJOT7M32Rt6kOHhNKSK7ZTPWdMe9ahuHSbAhLzd0G/4NsT5sKrWSeVZg== +"@angular/platform-browser@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/platform-browser/-/platform-browser-17.1.3.tgz#3883cf089f2e5bd24b99df1e7c2cdd3df3d97514" + integrity sha512-onPCvdk9f/6OhOo2zP6nfGKpzLma1QIxpFqD3jymbmIJTcVMOOQDMYW3eLtY+uSX8ribcJ7GQcbDGIM4rliTFg== dependencies: tslib "^2.3.0" -"@angular/pwa@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/pwa/-/pwa-17.0.7.tgz#45ddec964364e6c6dd0f765351b31d7aef215d10" - integrity sha512-VY5uuoC/NWpoFVSfoTYduQlMxdMLCJConPmK39NxOkhMW7KSphNwwY8tYjoDEUZwyhAooBT7QMi6EnSOrEi9Bg== +"@angular/pwa@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/pwa/-/pwa-17.1.3.tgz#55dd8d5bd53d12765300d9ce4ae29030e4216cf7" + integrity sha512-2wHu9GvFjGSYbMZuaD9NBtgwdZxDtwc3WTpDbOStp0kdaDwYV+wI/YWqc4lxKy1FCMJZ/zFBW7Ha0bDHbJHTRw== dependencies: - "@angular-devkit/schematics" "17.0.7" - "@schematics/angular" "17.0.7" + "@angular-devkit/schematics" "17.1.3" + "@schematics/angular" "17.1.3" parse5-html-rewriting-stream "7.0.0" -"@angular/router@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/router/-/router-17.0.7.tgz#a1bc4f49ad2f0bb1f6e1ab0a0e63d92836d7cbea" - integrity sha512-rUFPe1uDlYYw6+3Gq68czW7WxBH7zT/D3UsT1otqwUV4RnQQsVze4fIit9FqJh7tuP4y3WpB4XBNf7p7Oi6TJw== +"@angular/router@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/router/-/router-17.1.3.tgz#30d12b43079f44fda2ab968cde41da3548450d9e" + integrity sha512-6HigdtFjm+76UU2hiLGLE2SpOecQhD6TnAVTocDuRitpN5m0dyiffBrqxarfNwoZuMdIiXyqClJR4JRo1rJjoQ== dependencies: tslib "^2.3.0" -"@angular/service-worker@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-17.0.7.tgz#3d0e26f04b61af9e0360d1ead50335d11bee69f8" - integrity sha512-R/KDgnq5gV9XRv1B8zQqWz64pJ3fb0oFwCkB+w07llbxC9KDUS4MLbMmN3q/TSLOshGzs4sszNVyWGKAiTP13g== +"@angular/service-worker@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@angular/service-worker/-/service-worker-17.1.3.tgz#1222de7a4752b6f8dc7bbb5dcc6015db13346b45" + integrity sha512-DSndSwNvNnETiqtFAt/jPUMBUUfAxot7IhEUp19KFbS4HhasSZ+QxkNECN9bT6SUWjeaN7wvPcvR4gdSkQs3Pg== dependencies: tslib "^2.3.0" @@ -490,7 +490,7 @@ resolved "https://registry.yarnpkg.com/@babel/compat-data/-/compat-data-7.23.5.tgz#ffb878728bb6bdcb6f4510aa51b1be9afb8cfd98" integrity sha512-uU27kfDRlhfKl+w1U6vp16IuvSLtjAxdArVXPa9BvLkrr7CYIsxH5adpHObeAGY/41+syctUWOZ140a2Rvkgjw== -"@babel/core@7.23.2", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.2.2", "@babel/core@^7.20.2", "@babel/core@^7.22.9": +"@babel/core@7.23.2", "@babel/core@^7.11.6", "@babel/core@^7.12.3", "@babel/core@^7.13.16", "@babel/core@^7.20.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.2.tgz#ed10df0d580fff67c5f3ee70fd22e2e4c90a9f94" integrity sha512-n7s51eWdaWZ3vGT2tD4T7J6eJs3QoBXydv7vkUM06Bf1cbVD2Kc2UrkzhiQwobfV7NwOnQXYL7UBJ5VPU+RGoQ== @@ -511,6 +511,27 @@ json5 "^2.2.3" semver "^6.3.1" +"@babel/core@7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.7.tgz#4d8016e06a14b5f92530a13ed0561730b5c6483f" + integrity sha512-+UpDgowcmqe36d4NwqvKsyPMlOLNGMsfMmQ5WGCu+siCe3t3dfe9njrzGfdN4qq+bcNUt0+Vw6haRxBOycs4dw== + dependencies: + "@ampproject/remapping" "^2.2.0" + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-module-transforms" "^7.23.3" + "@babel/helpers" "^7.23.7" + "@babel/parser" "^7.23.6" + "@babel/template" "^7.22.15" + "@babel/traverse" "^7.23.7" + "@babel/types" "^7.23.6" + convert-source-map "^2.0.0" + debug "^4.1.0" + gensync "^1.0.0-beta.2" + json5 "^2.2.3" + semver "^6.3.1" + "@babel/core@^7.23.0", "@babel/core@^7.23.2": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/core/-/core-7.23.6.tgz#8be77cd77c55baadcc1eae1c33df90ab6d2151d4" @@ -553,17 +574,16 @@ json5 "^2.2.2" semver "^6.3.0" -"@babel/generator@7.23.0", "@babel/generator@^7.21.5", "@babel/generator@^7.23.0", "@babel/generator@^7.7.2": - version "7.23.0" - resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" - integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== +"@babel/generator@7.17.7": + version "7.17.7" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.17.7.tgz#8da2599beb4a86194a3b24df6c085931d9ee45ad" + integrity sha512-oLcVCTeIFadUoArDTwpluncplrYBmTCCZZgXCbgNGvOBBiSDDK3eWO4b/+eOTli5tKv1lg+a5/NAXg+nTcei1w== dependencies: - "@babel/types" "^7.23.0" - "@jridgewell/gen-mapping" "^0.3.2" - "@jridgewell/trace-mapping" "^0.3.17" + "@babel/types" "^7.17.0" jsesc "^2.5.1" + source-map "^0.5.0" -"@babel/generator@^7.23.6": +"@babel/generator@7.23.6", "@babel/generator@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.6.tgz#9e1fca4811c77a10580d17d26b57b036133f3c2e" integrity sha512-qrSfCYxYQB5owCmGLbl8XRpX1ytXlpueOb0N0UmQwA073KZxejgQTzAmJezxvpwQD9uGtK2shHdi55QT+MbjIw== @@ -573,6 +593,16 @@ "@jridgewell/trace-mapping" "^0.3.17" jsesc "^2.5.1" +"@babel/generator@^7.21.5", "@babel/generator@^7.23.0", "@babel/generator@^7.7.2": + version "7.23.0" + resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.23.0.tgz#df5c386e2218be505b34837acbcb874d7a983420" + integrity sha512-lN85QRR+5IbYrMWM6Y4pE/noaQtg4pNiqeNGX60eqOfo6gtEj6uw/JagelB8vVztSd7R6M5n1+PQkDbHbBRU4g== + dependencies: + "@babel/types" "^7.23.0" + "@jridgewell/gen-mapping" "^0.3.2" + "@jridgewell/trace-mapping" "^0.3.17" + jsesc "^2.5.1" + "@babel/generator@~7.21.1": version "7.21.9" resolved "https://registry.yarnpkg.com/@babel/generator/-/generator-7.21.9.tgz#3a1b706e07d836e204aee0650e8ee878d3aaa241" @@ -681,6 +711,28 @@ lodash.debounce "^4.0.8" resolve "^1.14.2" +"@babel/helper-define-polyfill-provider@^0.4.4": + version "0.4.4" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.4.4.tgz#64df615451cb30e94b59a9696022cffac9a10088" + integrity sha512-QcJMILQCu2jm5TFPGA3lCpJJTeEP+mqeXooG/NZbg/h5FTFi6V0+99ahlRsW8/kRLyb24LZVCCiclDedhLKcBA== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + +"@babel/helper-define-polyfill-provider@^0.5.0": + version "0.5.0" + resolved "https://registry.yarnpkg.com/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.5.0.tgz#465805b7361f461e86c680f1de21eaf88c25901b" + integrity sha512-NovQquuQLAQ5HuyjCz7WQP9MjRj7dx++yspwiyUiGl9ZyadHRSql1HZh5ogRd8W8w6YM6EQ/NTB8rgjLt5W65Q== + dependencies: + "@babel/helper-compilation-targets" "^7.22.6" + "@babel/helper-plugin-utils" "^7.22.5" + debug "^4.1.1" + lodash.debounce "^4.0.8" + resolve "^1.14.2" + "@babel/helper-environment-visitor@^7.18.9", "@babel/helper-environment-visitor@^7.21.5", "@babel/helper-environment-visitor@^7.22.20", "@babel/helper-environment-visitor@^7.22.5": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-environment-visitor/-/helper-environment-visitor-7.22.20.tgz#96159db61d34a29dba454c959f5ae4a649ba9167" @@ -798,7 +850,7 @@ resolved "https://registry.yarnpkg.com/@babel/helper-string-parser/-/helper-string-parser-7.23.4.tgz#9478c707febcbbe1ddb38a3d91a2e054ae622d83" integrity sha512-803gmbQdqwdf4olxrX4AJyFBV/RTr3rSmOj0rKwesmzlfhYNDEs+/iOcznzpNWlJlIlTJC2QfPFcHB6DlzdVLQ== -"@babel/helper-validator-identifier@^7.19.1", "@babel/helper-validator-identifier@^7.22.20": +"@babel/helper-validator-identifier@^7.16.7", "@babel/helper-validator-identifier@^7.19.1", "@babel/helper-validator-identifier@^7.22.20": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/helper-validator-identifier/-/helper-validator-identifier-7.22.20.tgz#c4ae002c61d2879e724581d96665583dbc1dc0e0" integrity sha512-Y4OZ+ytlatR8AI+8KZfKuL5urKp7qey08ha31L8b3BwewJAoJamTzyvxPR/5D+KkdJCGPq/+8TukHBlY10FX9A== @@ -840,6 +892,15 @@ "@babel/traverse" "^7.23.6" "@babel/types" "^7.23.6" +"@babel/helpers@^7.23.7": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/helpers/-/helpers-7.23.9.tgz#c3e20bbe7f7a7e10cb9b178384b4affdf5995c7d" + integrity sha512-87ICKgU5t5SzOT7sBMfCOZQ2rHjRU+Pcb9BoILMYz600W6DkVRLFBPwQ18gwUVvggqXivaUakpnxWQGbpywbBQ== + dependencies: + "@babel/template" "^7.23.9" + "@babel/traverse" "^7.23.9" + "@babel/types" "^7.23.9" + "@babel/highlight@^7.22.13": version "7.22.20" resolved "https://registry.yarnpkg.com/@babel/highlight/-/highlight-7.22.20.tgz#4ca92b71d80554b01427815e06f2df965b9c1f54" @@ -858,16 +919,21 @@ chalk "^2.4.2" js-tokens "^4.0.0" -"@babel/parser@^7.0.0-beta.54", "@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0": +"@babel/parser@^7.1.0", "@babel/parser@^7.13.16", "@babel/parser@^7.14.7", "@babel/parser@^7.20.7", "@babel/parser@^7.21.5", "@babel/parser@^7.21.8", "@babel/parser@^7.22.15", "@babel/parser@^7.23.0": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.0.tgz#da950e622420bf96ca0d0f2909cdddac3acd8719" integrity sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw== -"@babel/parser@^7.23.6": +"@babel/parser@^7.20.5", "@babel/parser@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.6.tgz#ba1c9e512bda72a47e285ae42aff9d2a635a9e3b" integrity sha512-Z2uID7YJ7oNvAI20O9X0bblw7Qqs8Q2hFy0R9tAfnfLkp5MW0UH9eUvnDSnFwKZ0AvgS1ucqR4KzvVHgnke1VQ== +"@babel/parser@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.23.9.tgz#7b903b6149b0f8fa7ad564af646c4c38a77fc44b" + integrity sha512-9tcKgqKbs3xGJ+NtKF2ndOBBLVwPjl1SHxPQkd36r3Dlirw3xWUeGaTbqr7uGZcTaxkVNwc+03SVP7aCdWrTlA== + "@babel/parser@~7.21.2": version "7.21.9" resolved "https://registry.yarnpkg.com/@babel/parser/-/parser-7.21.9.tgz#ab18ea3b85b4bc33ba98a8d4c2032c557d23cf14" @@ -913,6 +979,14 @@ "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" +"@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly@^7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly/-/plugin-bugfix-v8-static-class-fields-redefine-readonly-7.23.7.tgz#516462a95d10a9618f197d39ad291a9b47ae1d7b" + integrity sha512-LlRT7HgaifEpQA1ZgLVOIJZZFVPWN5iReq/7/JixwBtwcoeVGDBD53ZV28rrsLYOZs1Y/EHhA8N/Z6aazHR8cw== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/plugin-proposal-async-generator-functions@^7.20.7": version "7.20.7" resolved "https://registry.yarnpkg.com/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.20.7.tgz#bfb7276d2d573cb67ba379984a2334e262ba5326" @@ -1269,7 +1343,17 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-async-generator-functions@7.23.2", "@babel/plugin-transform-async-generator-functions@^7.23.2": +"@babel/plugin-transform-async-generator-functions@7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.7.tgz#3aa0b4f2fa3788b5226ef9346cf6d16ec61f99cd" + integrity sha512-PdxEpL71bJp1byMG0va5gwQcXHxuEYC/BgI/e88mGTtohbZN28O5Yit0Plkkm/dBzCF/BxmbNcses1RH1T+urA== + dependencies: + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" + +"@babel/plugin-transform-async-generator-functions@^7.23.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.2.tgz#054afe290d64c6f576f371ccc321772c8ea87ebb" integrity sha512-BBYVGxbDVHfoeXbOwcagAkOQAm9NxoTdMGfTqghu1GrvadSaw6iW3Je6IcL5PNOw8VwjxqBECXy50/iCQSY/lQ== @@ -1289,16 +1373,17 @@ "@babel/helper-remap-async-to-generator" "^7.22.20" "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@7.22.5", "@babel/plugin-transform-async-to-generator@^7.20.7", "@babel/plugin-transform-async-to-generator@^7.22.5": - version "7.22.5" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" - integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== +"@babel/plugin-transform-async-generator-functions@^7.23.7": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-generator-functions/-/plugin-transform-async-generator-functions-7.23.9.tgz#9adaeb66fc9634a586c5df139c6240d41ed801ce" + integrity sha512-8Q3veQEDGe14dTYuwagbRtwxQDnytyg1JFu4/HwEMETeofocrB0U0ejBJIXoeG/t2oXZ8kzCyI0ZZfbT80VFNQ== dependencies: - "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-environment-visitor" "^7.22.20" "@babel/helper-plugin-utils" "^7.22.5" - "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.20" + "@babel/plugin-syntax-async-generators" "^7.8.4" -"@babel/plugin-transform-async-to-generator@^7.23.3": +"@babel/plugin-transform-async-to-generator@7.23.3", "@babel/plugin-transform-async-to-generator@^7.23.3": version "7.23.3" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.23.3.tgz#d1f513c7a8a506d43f47df2bf25f9254b0b051fa" integrity sha512-A7LFsKi4U4fomjqXJlZg/u0ft/n8/7n7lpffUP/ZULx/DtV9SGlNKZolHH6PE8Xl1ngCc0M11OaeZptXVkfKSw== @@ -1307,6 +1392,15 @@ "@babel/helper-plugin-utils" "^7.22.5" "@babel/helper-remap-async-to-generator" "^7.22.20" +"@babel/plugin-transform-async-to-generator@^7.20.7", "@babel/plugin-transform-async-to-generator@^7.22.5": + version "7.22.5" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.22.5.tgz#c7a85f44e46f8952f6d27fe57c2ed3cc084c3775" + integrity sha512-b1A8D8ZzE/VhNDoV1MSJTnpKkCG5bJo+19R4o4oy03zM7ws8yEMK755j61Dc3EyvdysbqH5BOOTquJ7ZX9C6vQ== + dependencies: + "@babel/helper-module-imports" "^7.22.5" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-remap-async-to-generator" "^7.22.5" + "@babel/plugin-transform-block-scoped-functions@^7.18.6", "@babel/plugin-transform-block-scoped-functions@^7.22.5": version "7.22.5" resolved "https://registry.yarnpkg.com/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.22.5.tgz#27978075bfaeb9fa586d3cb63a3d30c1de580024" @@ -1906,16 +2000,28 @@ dependencies: "@babel/helper-plugin-utils" "^7.22.5" -"@babel/plugin-transform-runtime@7.23.2", "@babel/plugin-transform-runtime@^7.22.9": - version "7.23.2" - resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.2.tgz#c956a3f8d1aa50816ff6c30c6288d66635c12990" - integrity sha512-XOntj6icgzMS58jPVtQpiuF6ZFWxQiJavISGx5KGjRj+3gqZr8+N6Kx+N9BApWzgS+DOjIZfXXj0ZesenOWDyA== +"@babel/plugin-transform-runtime@7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.7.tgz#52bbd20054855beb9deae3bee9ceb05289c343e6" + integrity sha512-fa0hnfmiXc9fq/weK34MUV0drz2pOL/vfKWvN7Qw127hiUPabFCUMgAbYWcchRzMJit4o5ARsK/s+5h0249pLw== dependencies: "@babel/helper-module-imports" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" - babel-plugin-polyfill-corejs2 "^0.4.6" - babel-plugin-polyfill-corejs3 "^0.8.5" - babel-plugin-polyfill-regenerator "^0.5.3" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" + semver "^6.3.1" + +"@babel/plugin-transform-runtime@^7.23.2": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.23.9.tgz#2c64d0680fc8e09e1dfe8fd5c646fe72abd82004" + integrity sha512-A7clW3a0aSjm3ONU9o2HAILSegJCYlEZmOhmBRReVtIpY/Z/p7yIZ+wR41Z+UipwdGuqwtID/V/dOdZXjwi9gQ== + dependencies: + "@babel/helper-module-imports" "^7.22.15" + "@babel/helper-plugin-utils" "^7.22.5" + babel-plugin-polyfill-corejs2 "^0.4.8" + babel-plugin-polyfill-corejs3 "^0.9.0" + babel-plugin-polyfill-regenerator "^0.5.5" semver "^6.3.1" "@babel/plugin-transform-shorthand-properties@^7.18.6", "@babel/plugin-transform-shorthand-properties@^7.22.5": @@ -2072,7 +2178,93 @@ "@babel/helper-create-regexp-features-plugin" "^7.22.15" "@babel/helper-plugin-utils" "^7.22.5" -"@babel/preset-env@7.23.2", "@babel/preset-env@^7.20.2", "@babel/preset-env@^7.22.9": +"@babel/preset-env@7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.7.tgz#e5d69b9f14db8a13bae4d8e5ce7f360973626241" + integrity sha512-SY27X/GtTz/L4UryMNJ6p4fH4nsgWbz84y9FE0bQeWJP6O5BhgVCt53CotQKHCOeXJel8VyhlhujhlltKms/CA== + dependencies: + "@babel/compat-data" "^7.23.5" + "@babel/helper-compilation-targets" "^7.23.6" + "@babel/helper-plugin-utils" "^7.22.5" + "@babel/helper-validator-option" "^7.23.5" + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression" "^7.23.3" + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining" "^7.23.3" + "@babel/plugin-bugfix-v8-static-class-fields-redefine-readonly" "^7.23.7" + "@babel/plugin-proposal-private-property-in-object" "7.21.0-placeholder-for-preset-env.2" + "@babel/plugin-syntax-async-generators" "^7.8.4" + "@babel/plugin-syntax-class-properties" "^7.12.13" + "@babel/plugin-syntax-class-static-block" "^7.14.5" + "@babel/plugin-syntax-dynamic-import" "^7.8.3" + "@babel/plugin-syntax-export-namespace-from" "^7.8.3" + "@babel/plugin-syntax-import-assertions" "^7.23.3" + "@babel/plugin-syntax-import-attributes" "^7.23.3" + "@babel/plugin-syntax-import-meta" "^7.10.4" + "@babel/plugin-syntax-json-strings" "^7.8.3" + "@babel/plugin-syntax-logical-assignment-operators" "^7.10.4" + "@babel/plugin-syntax-nullish-coalescing-operator" "^7.8.3" + "@babel/plugin-syntax-numeric-separator" "^7.10.4" + "@babel/plugin-syntax-object-rest-spread" "^7.8.3" + "@babel/plugin-syntax-optional-catch-binding" "^7.8.3" + "@babel/plugin-syntax-optional-chaining" "^7.8.3" + "@babel/plugin-syntax-private-property-in-object" "^7.14.5" + "@babel/plugin-syntax-top-level-await" "^7.14.5" + "@babel/plugin-syntax-unicode-sets-regex" "^7.18.6" + "@babel/plugin-transform-arrow-functions" "^7.23.3" + "@babel/plugin-transform-async-generator-functions" "^7.23.7" + "@babel/plugin-transform-async-to-generator" "^7.23.3" + "@babel/plugin-transform-block-scoped-functions" "^7.23.3" + "@babel/plugin-transform-block-scoping" "^7.23.4" + "@babel/plugin-transform-class-properties" "^7.23.3" + "@babel/plugin-transform-class-static-block" "^7.23.4" + "@babel/plugin-transform-classes" "^7.23.5" + "@babel/plugin-transform-computed-properties" "^7.23.3" + "@babel/plugin-transform-destructuring" "^7.23.3" + "@babel/plugin-transform-dotall-regex" "^7.23.3" + "@babel/plugin-transform-duplicate-keys" "^7.23.3" + "@babel/plugin-transform-dynamic-import" "^7.23.4" + "@babel/plugin-transform-exponentiation-operator" "^7.23.3" + "@babel/plugin-transform-export-namespace-from" "^7.23.4" + "@babel/plugin-transform-for-of" "^7.23.6" + "@babel/plugin-transform-function-name" "^7.23.3" + "@babel/plugin-transform-json-strings" "^7.23.4" + "@babel/plugin-transform-literals" "^7.23.3" + "@babel/plugin-transform-logical-assignment-operators" "^7.23.4" + "@babel/plugin-transform-member-expression-literals" "^7.23.3" + "@babel/plugin-transform-modules-amd" "^7.23.3" + "@babel/plugin-transform-modules-commonjs" "^7.23.3" + "@babel/plugin-transform-modules-systemjs" "^7.23.3" + "@babel/plugin-transform-modules-umd" "^7.23.3" + "@babel/plugin-transform-named-capturing-groups-regex" "^7.22.5" + "@babel/plugin-transform-new-target" "^7.23.3" + "@babel/plugin-transform-nullish-coalescing-operator" "^7.23.4" + "@babel/plugin-transform-numeric-separator" "^7.23.4" + "@babel/plugin-transform-object-rest-spread" "^7.23.4" + "@babel/plugin-transform-object-super" "^7.23.3" + "@babel/plugin-transform-optional-catch-binding" "^7.23.4" + "@babel/plugin-transform-optional-chaining" "^7.23.4" + "@babel/plugin-transform-parameters" "^7.23.3" + "@babel/plugin-transform-private-methods" "^7.23.3" + "@babel/plugin-transform-private-property-in-object" "^7.23.4" + "@babel/plugin-transform-property-literals" "^7.23.3" + "@babel/plugin-transform-regenerator" "^7.23.3" + "@babel/plugin-transform-reserved-words" "^7.23.3" + "@babel/plugin-transform-shorthand-properties" "^7.23.3" + "@babel/plugin-transform-spread" "^7.23.3" + "@babel/plugin-transform-sticky-regex" "^7.23.3" + "@babel/plugin-transform-template-literals" "^7.23.3" + "@babel/plugin-transform-typeof-symbol" "^7.23.3" + "@babel/plugin-transform-unicode-escapes" "^7.23.3" + "@babel/plugin-transform-unicode-property-regex" "^7.23.3" + "@babel/plugin-transform-unicode-regex" "^7.23.3" + "@babel/plugin-transform-unicode-sets-regex" "^7.23.3" + "@babel/preset-modules" "0.1.6-no-external-plugins" + babel-plugin-polyfill-corejs2 "^0.4.7" + babel-plugin-polyfill-corejs3 "^0.8.7" + babel-plugin-polyfill-regenerator "^0.5.4" + core-js-compat "^3.31.0" + semver "^6.3.1" + +"@babel/preset-env@^7.20.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/preset-env/-/preset-env-7.23.2.tgz#1f22be0ff0e121113260337dbc3e58fafce8d059" integrity sha512-BW3gsuDD+rvHL2VO2SjAUNTBe5YrjsTiDyqamPDWY723na3/yPQ65X5oQkFVJZ0o50/2d+svm1rkPoJeR1KxVQ== @@ -2402,7 +2594,14 @@ resolved "https://registry.yarnpkg.com/@babel/regjsgen/-/regjsgen-0.8.0.tgz#f0ba69b075e1f05fb2825b7fad991e7adbb18310" integrity sha512-x/rqGMdzj+fWZvCOYForTghzbtqPDZ5gPwaoNGHdgDfF2QA/XZbCBp4Moo5scrkAMPhB7z26XM/AaHuIJdgauA== -"@babel/runtime@7.23.2", "@babel/runtime@^7.13.10", "@babel/runtime@^7.17.8", "@babel/runtime@^7.22.6", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": +"@babel/runtime@7.23.7": + version "7.23.7" + resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.7.tgz#dd7c88deeb218a0f8bd34d5db1aa242e0f203193" + integrity sha512-w06OXVOFso7LcbzMiDGt+3X7Rh7Ho8MmgPoWU3rarH+8upf+wSU/grlGbWzQyr3DkdN6ZeuMFjpdwW0Q+HxobA== + dependencies: + regenerator-runtime "^0.14.0" + +"@babel/runtime@^7.13.10", "@babel/runtime@^7.17.8", "@babel/runtime@^7.22.6", "@babel/runtime@^7.7.2", "@babel/runtime@^7.8.4": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/runtime/-/runtime-7.23.2.tgz#062b0ac103261d68a966c4c7baf2ae3e62ec3885" integrity sha512-mM8eg4yl5D6i3lu2QKPuPH4FArvJ8KhTofbE7jwMUv9KX5mBvwPAqnV3MlyBNqdp9RyRKP6Yck8TrfYrPvX3bg== @@ -2418,7 +2617,16 @@ "@babel/parser" "^7.22.15" "@babel/types" "^7.22.15" -"@babel/traverse@^7.0.0-beta.54", "@babel/traverse@^7.16.0", "@babel/traverse@^7.21.5", "@babel/traverse@^7.23.2": +"@babel/template@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/template/-/template-7.23.9.tgz#f881d0487cba2828d3259dcb9ef5005a9731011a" + integrity sha512-+xrD2BWLpvHKNmX2QbpdpsBaWnRxahMwJjO+KZk2JOElj5nSmKezyS1B4u+QbHMTX69t4ukm6hh9lsYQ7GHCKA== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/parser" "^7.23.9" + "@babel/types" "^7.23.9" + +"@babel/traverse@7.23.2", "@babel/traverse@^7.16.0", "@babel/traverse@^7.21.5", "@babel/traverse@^7.23.2": version "7.23.2" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.2.tgz#329c7a06735e144a506bdb2cad0268b7f46f4ad8" integrity sha512-azpe59SQ48qG6nu2CzcMLbxUudtN+dOM9kDbUqGq3HXUJRlo7i8fvPoxQUzYgLZ4cMVmuZgm8vvBpNeRhd6XSw== @@ -2450,6 +2658,22 @@ debug "^4.3.1" globals "^11.1.0" +"@babel/traverse@^7.23.7", "@babel/traverse@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.23.9.tgz#2f9d6aead6b564669394c5ce0f9302bb65b9d950" + integrity sha512-I/4UJ9vs90OkBtY6iiiTORVMyIhJ4kAVmsKo9KFc8UOxMeUfi2hvtIBsET5u9GizXE6/GFSuKCTNfgCswuEjRg== + dependencies: + "@babel/code-frame" "^7.23.5" + "@babel/generator" "^7.23.6" + "@babel/helper-environment-visitor" "^7.22.20" + "@babel/helper-function-name" "^7.23.0" + "@babel/helper-hoist-variables" "^7.22.5" + "@babel/helper-split-export-declaration" "^7.22.6" + "@babel/parser" "^7.23.9" + "@babel/types" "^7.23.9" + debug "^4.3.1" + globals "^11.1.0" + "@babel/traverse@~7.21.2": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/traverse/-/traverse-7.21.5.tgz#ad22361d352a5154b498299d523cf72998a4b133" @@ -2466,7 +2690,15 @@ debug "^4.1.0" globals "^11.1.0" -"@babel/types@^7.0.0", "@babel/types@^7.0.0-beta.54", "@babel/types@^7.20.7", "@babel/types@^7.21.5", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": +"@babel/types@7.17.0": + version "7.17.0" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.17.0.tgz#a826e368bccb6b3d84acd76acad5c0d87342390b" + integrity sha512-TmKSNO4D5rzhL5bjWFcVHHLETzfQ/AmbKpKPOSjlP0WoHZ6L911fgoOKY4Alp/emzG4cHJdyN49zpgkbXFEHHw== + dependencies: + "@babel/helper-validator-identifier" "^7.16.7" + to-fast-properties "^2.0.0" + +"@babel/types@^7.0.0", "@babel/types@^7.20.7", "@babel/types@^7.21.5", "@babel/types@^7.22.15", "@babel/types@^7.22.19", "@babel/types@^7.22.5", "@babel/types@^7.23.0", "@babel/types@^7.3.3", "@babel/types@^7.4.4": version "7.23.0" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.0.tgz#8c1f020c9df0e737e4e247c0619f58c68458aaeb" integrity sha512-0oIyUfKoI3mSqMvsxBdclDwxXKXAUA8v/apZbc+iSyARYou1o8ZGDxbUYyLFoW2arqS2jDGqJuZvv1d/io1axg== @@ -2475,7 +2707,7 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" -"@babel/types@^7.23.6": +"@babel/types@^7.17.0", "@babel/types@^7.23.6": version "7.23.6" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.6.tgz#be33fdb151e1f5a56877d704492c240fc71c7ccd" integrity sha512-+uarb83brBzPKN38NX1MkB6vb6+mwvR6amUulqAE7ccQw1pEl+bCia9TbdG1lsnFP7lZySvUn37CHyXQdfTwzg== @@ -2484,6 +2716,15 @@ "@babel/helper-validator-identifier" "^7.22.20" to-fast-properties "^2.0.0" +"@babel/types@^7.23.9": + version "7.23.9" + resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.23.9.tgz#1dd7b59a9a2b5c87f8b41e52770b5ecbf492e002" + integrity sha512-dQjSq/7HaSjRM43FFGnv5keM2HsxpmyV1PfaSVm0nzzjwwTmjOe6J4bC8e3+pTEIgHaHj+1ZlLThRJ2auc/w1Q== + dependencies: + "@babel/helper-string-parser" "^7.23.4" + "@babel/helper-validator-identifier" "^7.22.20" + to-fast-properties "^2.0.0" + "@babel/types@~7.21.2": version "7.21.5" resolved "https://registry.yarnpkg.com/@babel/types/-/types-7.21.5.tgz#18dfbd47c39d3904d5db3d3dc2cc80bedb60e5b6" @@ -2650,6 +2891,16 @@ resolved "https://registry.yarnpkg.com/@emotion/use-insertion-effect-with-fallbacks/-/use-insertion-effect-with-fallbacks-1.0.1.tgz#08de79f54eb3406f9daaf77c76e35313da963963" integrity sha512-jT/qyKZ9rzLErtrjGgdkMBn2OP8wl0G3sQlBb3YPryvKHsjvINUhVaPFfP+fpBcOkmrVOVEEHQFJ7nbj2TH2gw== +"@esbuild/aix-ppc64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.11.tgz#2acd20be6d4f0458bc8c784103495ff24f13b1d3" + integrity sha512-FnzU0LyE3ySQk7UntJO4+qIiQgI7KoODnZg5xzXIrFJlKd2P2gwHsHY4927xj9y5PJmJSzULiUCWmv7iWnNa7g== + +"@esbuild/aix-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/aix-ppc64/-/aix-ppc64-0.19.12.tgz#d1bc06aedb6936b3b6d313bf809a5a40387d2b7f" + integrity sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA== + "@esbuild/android-arm64@0.17.19": version "0.17.19" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.17.19.tgz#bafb75234a5d3d1b690e7c2956a599345e84a2fd" @@ -2660,6 +2911,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.18.20.tgz#984b4f9c8d0377443cc2dfcef266d02244593622" integrity sha512-Nz4rJcchGDtENV0eMKUNa6L12zz2zBDXuhj/Vjh18zGqB44Bi7MBMSXjgunJgjRhCmKOjnPuZp4Mb6OKqtMHLQ== +"@esbuild/android-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.11.tgz#b45d000017385c9051a4f03e17078abb935be220" + integrity sha512-aiu7K/5JnLj//KOnOfEZ0D90obUkRzDMyqd/wNAUQ34m4YUPVhRZpnqKV9uqDGxT7cToSDnIHsGooyIczu9T+Q== + +"@esbuild/android-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.12.tgz#7ad65a36cfdb7e0d429c353e00f680d737c2aed4" + integrity sha512-P0UVNGIienjZv3f5zq0DP3Nt2IE/3plFzuaS96vihvD0Hd6H/q4WXUGpCxD/E8YrSXfNyRPbpTq+T8ZQioSuPA== + "@esbuild/android-arm64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/android-arm64/-/android-arm64-0.19.5.tgz#276c5f99604054d3dbb733577e09adae944baa90" @@ -2675,6 +2936,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.18.20.tgz#fedb265bc3a589c84cc11f810804f234947c3682" integrity sha512-fyi7TDI/ijKKNZTUJAQqiG5T7YjJXgnzkURqmGj13C6dCqckZBLdl4h7bkhHt/t0WP+zO9/zwroDvANaOqO5Sw== +"@esbuild/android-arm@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.11.tgz#f46f55414e1c3614ac682b29977792131238164c" + integrity sha512-5OVapq0ClabvKvQ58Bws8+wkLCV+Rxg7tUVbo9xu034Nm536QTII4YzhaFriQ7rMrorfnFKUsArD2lqKbFY4vw== + +"@esbuild/android-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.12.tgz#b0c26536f37776162ca8bde25e42040c203f2824" + integrity sha512-qg/Lj1mu3CdQlDEEiWrlC4eaPZ1KztwGJ9B6J+/6G+/4ewxJg7gqj8eVYWvao1bXrqGiW2rsBZFSX3q2lcW05w== + "@esbuild/android-arm@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/android-arm/-/android-arm-0.19.5.tgz#4a3cbf14758166abaae8ba9c01a80e68342a4eec" @@ -2690,6 +2961,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.18.20.tgz#35cf419c4cfc8babe8893d296cd990e9e9f756f2" integrity sha512-8GDdlePJA8D6zlZYJV/jnrRAi6rOiNaCC/JclcXpB+KIuvfBN4owLtgzY2bsxnx666XjJx2kDPUmnTtR8qKQUg== +"@esbuild/android-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.11.tgz#bfc01e91740b82011ef503c48f548950824922b2" + integrity sha512-eccxjlfGw43WYoY9QgB82SgGgDbibcqyDTlk3l3C0jOVHKxrjdc9CTwDUQd0vkvYg5um0OH+GpxYvp39r+IPOg== + +"@esbuild/android-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.12.tgz#cb13e2211282012194d89bf3bfe7721273473b3d" + integrity sha512-3k7ZoUW6Q6YqhdhIaq/WZ7HwBpnFBlW905Fa4s4qWJyiNOgT1dOqDiVAQFwBH7gBRZr17gLrlFCRzF6jFh7Kew== + "@esbuild/android-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/android-x64/-/android-x64-0.19.5.tgz#21a3d11cd4613d2d3c5ccb9e746c254eb9265b0a" @@ -2705,6 +2986,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.18.20.tgz#08172cbeccf95fbc383399a7f39cfbddaeb0d7c1" integrity sha512-bxRHW5kHU38zS2lPTPOyuyTm+S+eobPUnTNkdJEfAddYgEcll4xkT8DB9d2008DtTbl7uJag2HuE5NZAZgnNEA== +"@esbuild/darwin-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.11.tgz#533fb7f5a08c37121d82c66198263dcc1bed29bf" + integrity sha512-ETp87DRWuSt9KdDVkqSoKoLFHYTrkyz2+65fj9nfXsaV3bMhTCjtQfw3y+um88vGRKRiF7erPrh/ZuIdLUIVxQ== + +"@esbuild/darwin-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.12.tgz#cbee41e988020d4b516e9d9e44dd29200996275e" + integrity sha512-B6IeSgZgtEzGC42jsI+YYu9Z3HKRxp8ZT3cqhvliEHovq8HSX2YX8lNocDn79gCKJXOSaEot9MVYky7AKjCs8g== + "@esbuild/darwin-arm64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/darwin-arm64/-/darwin-arm64-0.19.5.tgz#714cb839f467d6a67b151ee8255886498e2b9bf6" @@ -2720,6 +3011,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.18.20.tgz#d70d5790d8bf475556b67d0f8b7c5bdff053d85d" integrity sha512-pc5gxlMDxzm513qPGbCbDukOdsGtKhfxD1zJKXjCCcU7ju50O7MeAZ8c4krSJcOIJGFR+qx21yMMVYwiQvyTyQ== +"@esbuild/darwin-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.11.tgz#62f3819eff7e4ddc656b7c6815a31cf9a1e7d98e" + integrity sha512-fkFUiS6IUK9WYUO/+22omwetaSNl5/A8giXvQlcinLIjVkxwTLSktbF5f/kJMftM2MJp9+fXqZ5ezS7+SALp4g== + +"@esbuild/darwin-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.12.tgz#e37d9633246d52aecf491ee916ece709f9d5f4cd" + integrity sha512-hKoVkKzFiToTgn+41qGhsUJXFlIjxI/jSYeZf3ugemDYZldIXIxhvwN6erJGlX4t5h417iFuheZ7l+YVn05N3A== + "@esbuild/darwin-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/darwin-x64/-/darwin-x64-0.19.5.tgz#2c553e97a6d2b4ae76a884e35e6cbab85a990bbf" @@ -2735,6 +3036,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.18.20.tgz#98755cd12707f93f210e2494d6a4b51b96977f54" integrity sha512-yqDQHy4QHevpMAaxhhIwYPMv1NECwOvIpGCZkECn8w2WFHXjEwrBn3CeNIYsibZ/iZEUemj++M26W3cNR5h+Tw== +"@esbuild/freebsd-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.11.tgz#d478b4195aa3ca44160272dab85ef8baf4175b4a" + integrity sha512-lhoSp5K6bxKRNdXUtHoNc5HhbXVCS8V0iZmDvyWvYq9S5WSfTIHU2UGjcGt7UeS6iEYp9eeymIl5mJBn0yiuxA== + +"@esbuild/freebsd-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.12.tgz#1ee4d8b682ed363b08af74d1ea2b2b4dbba76487" + integrity sha512-4aRvFIXmwAcDBw9AueDQ2YnGmz5L6obe5kmPT8Vd+/+x/JMVKCgdcRwH6APrbpNXsPz+K653Qg8HB/oXvXVukA== + "@esbuild/freebsd-arm64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-arm64/-/freebsd-arm64-0.19.5.tgz#d554f556718adb31917a0da24277bf84b6ee87f3" @@ -2750,6 +3061,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.18.20.tgz#c1eb2bff03915f87c29cece4c1a7fa1f423b066e" integrity sha512-tgWRPPuQsd3RmBZwarGVHZQvtzfEBOreNuxEMKFcd5DaDn2PbBxfwLcj4+aenoh7ctXcbXmOQIn8HI6mCSw5MQ== +"@esbuild/freebsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.11.tgz#7bdcc1917409178257ca6a1a27fe06e797ec18a2" + integrity sha512-JkUqn44AffGXitVI6/AbQdoYAq0TEullFdqcMY/PCUZ36xJ9ZJRtQabzMA+Vi7r78+25ZIBosLTOKnUXBSi1Kw== + +"@esbuild/freebsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.12.tgz#37a693553d42ff77cd7126764b535fb6cc28a11c" + integrity sha512-EYoXZ4d8xtBoVN7CEwWY2IN4ho76xjYXqSXMNccFSx2lgqOG/1TBPW0yPx1bJZk94qu3tX0fycJeeQsKovA8gg== + "@esbuild/freebsd-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/freebsd-x64/-/freebsd-x64-0.19.5.tgz#288f7358a3bb15d99e73c65c9adaa3dabb497432" @@ -2765,6 +3086,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.18.20.tgz#bad4238bd8f4fc25b5a021280c770ab5fc3a02a0" integrity sha512-2YbscF+UL7SQAVIpnWvYwM+3LskyDmPhe31pE7/aoTMFKKzIc9lLbyGUpmmb8a8AixOL61sQ/mFh3jEjHYFvdA== +"@esbuild/linux-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.11.tgz#58ad4ff11685fcc735d7ff4ca759ab18fcfe4545" + integrity sha512-LneLg3ypEeveBSMuoa0kwMpCGmpu8XQUh+mL8XXwoYZ6Be2qBnVtcDI5azSvh7vioMDhoJFZzp9GWp9IWpYoUg== + +"@esbuild/linux-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.12.tgz#be9b145985ec6c57470e0e051d887b09dddb2d4b" + integrity sha512-EoTjyYyLuVPfdPLsGVVVC8a0p1BFFvtpQDB/YLEhaXyf/5bczaGeN15QkR+O4S5LeJ92Tqotve7i1jn35qwvdA== + "@esbuild/linux-arm64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm64/-/linux-arm64-0.19.5.tgz#95933ae86325c93cb6b5e8333d22120ecfdc901b" @@ -2780,6 +3111,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.18.20.tgz#3e617c61f33508a27150ee417543c8ab5acc73b0" integrity sha512-/5bHkMWnq1EgKr1V+Ybz3s1hWXok7mDFUMQ4cG10AfW3wL02PSZi5kFpYKrptDsgb2WAJIvRcDm+qIvXf/apvg== +"@esbuild/linux-arm@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.11.tgz#ce82246d873b5534d34de1e5c1b33026f35e60e3" + integrity sha512-3CRkr9+vCV2XJbjwgzjPtO8T0SZUmRZla+UL1jw+XqHZPkPgZiyWvbDvl9rqAN8Zl7qJF0O/9ycMtjU67HN9/Q== + +"@esbuild/linux-arm@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.12.tgz#207ecd982a8db95f7b5279207d0ff2331acf5eef" + integrity sha512-J5jPms//KhSNv+LO1S1TX1UWp1ucM6N6XuL6ITdKWElCu8wXP72l9MM0zDTzzeikVyqFE6U8YAV9/tFyj0ti+w== + "@esbuild/linux-arm@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-arm/-/linux-arm-0.19.5.tgz#0acef93aa3e0579e46d33b666627bddb06636664" @@ -2795,6 +3136,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.18.20.tgz#699391cccba9aee6019b7f9892eb99219f1570a7" integrity sha512-P4etWwq6IsReT0E1KHU40bOnzMHoH73aXp96Fs8TIT6z9Hu8G6+0SHSw9i2isWrD2nbx2qo5yUqACgdfVGx7TA== +"@esbuild/linux-ia32@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.11.tgz#cbae1f313209affc74b80f4390c4c35c6ab83fa4" + integrity sha512-caHy++CsD8Bgq2V5CodbJjFPEiDPq8JJmBdeyZ8GWVQMjRD0sU548nNdwPNvKjVpamYYVL40AORekgfIubwHoA== + +"@esbuild/linux-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.12.tgz#d0d86b5ca1562523dc284a6723293a52d5860601" + integrity sha512-Thsa42rrP1+UIGaWz47uydHSBOgTUnwBwNq59khgIwktK6x60Hivfbux9iNR0eHCHzOLjLMLfUMLCypBkZXMHA== + "@esbuild/linux-ia32@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-ia32/-/linux-ia32-0.19.5.tgz#b6e5c9e80b42131cbd6b1ddaa48c92835f1ed67f" @@ -2810,6 +3161,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.18.20.tgz#e6fccb7aac178dd2ffb9860465ac89d7f23b977d" integrity sha512-nXW8nqBTrOpDLPgPY9uV+/1DjxoQ7DoB2N8eocyq8I9XuqJ7BiAMDMf9n1xZM9TgW0J8zrquIb/A7s3BJv7rjg== +"@esbuild/linux-loong64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.11.tgz#5f32aead1c3ec8f4cccdb7ed08b166224d4e9121" + integrity sha512-ppZSSLVpPrwHccvC6nQVZaSHlFsvCQyjnvirnVjbKSHuE5N24Yl8F3UwYUUR1UEPaFObGD2tSvVKbvR+uT1Nrg== + +"@esbuild/linux-loong64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.12.tgz#9a37f87fec4b8408e682b528391fa22afd952299" + integrity sha512-LiXdXA0s3IqRRjm6rV6XaWATScKAXjI4R4LoDlvO7+yQqFdlr1Bax62sRwkVvRIrwXxvtYEHHI4dm50jAXkuAA== + "@esbuild/linux-loong64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-loong64/-/linux-loong64-0.19.5.tgz#e5f0cf95a180158b01ff5f417da796a1c09dfbea" @@ -2825,6 +3186,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.18.20.tgz#eeff3a937de9c2310de30622a957ad1bd9183231" integrity sha512-d5NeaXZcHp8PzYy5VnXV3VSd2D328Zb+9dEq5HE6bw6+N86JVPExrA6O68OPwobntbNJ0pzCpUFZTo3w0GyetQ== +"@esbuild/linux-mips64el@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.11.tgz#38eecf1cbb8c36a616261de858b3c10d03419af9" + integrity sha512-B5x9j0OgjG+v1dF2DkH34lr+7Gmv0kzX6/V0afF41FkPMMqaQ77pH7CrhWeR22aEeHKaeZVtZ6yFwlxOKPVFyg== + +"@esbuild/linux-mips64el@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.12.tgz#4ddebd4e6eeba20b509d8e74c8e30d8ace0b89ec" + integrity sha512-fEnAuj5VGTanfJ07ff0gOA6IPsvrVHLVb6Lyd1g2/ed67oU1eFzL0r9WL7ZzscD+/N6i3dWumGE1Un4f7Amf+w== + "@esbuild/linux-mips64el@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-mips64el/-/linux-mips64el-0.19.5.tgz#ae36fb86c7d5f641f3a0c8472e83dcb6ea36a408" @@ -2840,6 +3211,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.18.20.tgz#2f7156bde20b01527993e6881435ad79ba9599fb" integrity sha512-WHPyeScRNcmANnLQkq6AfyXRFr5D6N2sKgkFo2FqguP44Nw2eyDlbTdZwd9GYk98DZG9QItIiTlFLHJHjxP3FA== +"@esbuild/linux-ppc64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.11.tgz#9c5725a94e6ec15b93195e5a6afb821628afd912" + integrity sha512-MHrZYLeCG8vXblMetWyttkdVRjQlQUb/oMgBNurVEnhj4YWOr4G5lmBfZjHYQHHN0g6yDmCAQRR8MUHldvvRDA== + +"@esbuild/linux-ppc64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.12.tgz#adb67dadb73656849f63cd522f5ecb351dd8dee8" + integrity sha512-nYJA2/QPimDQOh1rKWedNOe3Gfc8PabU7HT3iXWtNUbRzXS9+vgB0Fjaqr//XNbd82mCxHzik2qotuI89cfixg== + "@esbuild/linux-ppc64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-ppc64/-/linux-ppc64-0.19.5.tgz#7960cb1666f0340ddd9eef7b26dcea3835d472d0" @@ -2855,6 +3236,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.18.20.tgz#6628389f210123d8b4743045af8caa7d4ddfc7a6" integrity sha512-WSxo6h5ecI5XH34KC7w5veNnKkju3zBRLEQNY7mv5mtBmrP/MjNBCAlsM2u5hDBlS3NGcTQpoBvRzqBcRtpq1A== +"@esbuild/linux-riscv64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.11.tgz#2dc4486d474a2a62bbe5870522a9a600e2acb916" + integrity sha512-f3DY++t94uVg141dozDu4CCUkYW+09rWtaWfnb3bqe4w5NqmZd6nPVBm+qbz7WaHZCoqXqHz5p6CM6qv3qnSSQ== + +"@esbuild/linux-riscv64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.12.tgz#11bc0698bf0a2abf8727f1c7ace2112612c15adf" + integrity sha512-2MueBrlPQCw5dVJJpQdUYgeqIzDQgw3QtiAHUC4RBz9FXPrskyyU3VI1hw7C0BSKB9OduwSJ79FTCqtGMWqJHg== + "@esbuild/linux-riscv64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-riscv64/-/linux-riscv64-0.19.5.tgz#32207df26af60a3a9feea1783fc21b9817bade19" @@ -2870,6 +3261,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.18.20.tgz#255e81fb289b101026131858ab99fba63dcf0071" integrity sha512-+8231GMs3mAEth6Ja1iK0a1sQ3ohfcpzpRLH8uuc5/KVDFneH6jtAJLFGafpzpMRO6DzJ6AvXKze9LfFMrIHVQ== +"@esbuild/linux-s390x@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.11.tgz#4ad8567df48f7dd4c71ec5b1753b6f37561a65a8" + integrity sha512-A5xdUoyWJHMMlcSMcPGVLzYzpcY8QP1RtYzX5/bS4dvjBGVxdhuiYyFwp7z74ocV7WDc0n1harxmpq2ePOjI0Q== + +"@esbuild/linux-s390x@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.12.tgz#e86fb8ffba7c5c92ba91fc3b27ed5a70196c3cc8" + integrity sha512-+Pil1Nv3Umes4m3AZKqA2anfhJiVmNCYkPchwFJNEJN5QxmTs1uzyy4TvmDrCRNT2ApwSari7ZIgrPeUx4UZDg== + "@esbuild/linux-s390x@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-s390x/-/linux-s390x-0.19.5.tgz#b38d5681db89a3723862dfa792812397b1510a7d" @@ -2885,6 +3286,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.18.20.tgz#c7690b3417af318a9b6f96df3031a8865176d338" integrity sha512-UYqiqemphJcNsFEskc73jQ7B9jgwjWrSayxawS6UVFZGWrAAtkzjxSqnoclCXxWtfwLdzU+vTpcNYhpn43uP1w== +"@esbuild/linux-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.11.tgz#b7390c4d5184f203ebe7ddaedf073df82a658766" + integrity sha512-grbyMlVCvJSfxFQUndw5mCtWs5LO1gUlwP4CDi4iJBbVpZcqLVT29FxgGuBJGSzyOxotFG4LoO5X+M1350zmPA== + +"@esbuild/linux-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.12.tgz#5f37cfdc705aea687dfe5dfbec086a05acfe9c78" + integrity sha512-B71g1QpxfwBvNrfyJdVDexenDIt1CiDN1TIXLbhOw0KhJzE78KIFGX6OJ9MrtC0oOqMWf+0xop4qEU8JrJTwCg== + "@esbuild/linux-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/linux-x64/-/linux-x64-0.19.5.tgz#46feba2ad041a241379d150f415b472fe3885075" @@ -2900,6 +3311,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.18.20.tgz#30e8cd8a3dded63975e2df2438ca109601ebe0d1" integrity sha512-iO1c++VP6xUBUmltHZoMtCUdPlnPGdBom6IrO4gyKPFFVBKioIImVooR5I83nTew5UOYrk3gIJhbZh8X44y06A== +"@esbuild/netbsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.11.tgz#d633c09492a1721377f3bccedb2d821b911e813d" + integrity sha512-13jvrQZJc3P230OhU8xgwUnDeuC/9egsjTkXN49b3GcS5BKvJqZn86aGM8W9pd14Kd+u7HuFBMVtrNGhh6fHEQ== + +"@esbuild/netbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.12.tgz#29da566a75324e0d0dd7e47519ba2f7ef168657b" + integrity sha512-3ltjQ7n1owJgFbuC61Oj++XhtzmymoCihNFgT84UAmJnxJfm4sYCiSLTXZtE00VWYpPMYc+ZQmB6xbSdVh0JWA== + "@esbuild/netbsd-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/netbsd-x64/-/netbsd-x64-0.19.5.tgz#3b5c1fb068f26bfc681d31f682adf1bea4ef0702" @@ -2915,6 +3336,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.18.20.tgz#7812af31b205055874c8082ea9cf9ab0da6217ae" integrity sha512-e5e4YSsuQfX4cxcygw/UCPIEP6wbIL+se3sxPdCiMbFLBWu0eiZOJ7WoD+ptCLrmjZBK1Wk7I6D/I3NglUGOxg== +"@esbuild/openbsd-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.11.tgz#17388c76e2f01125bf831a68c03a7ffccb65d1a2" + integrity sha512-ysyOGZuTp6SNKPE11INDUeFVVQFrhcNDVUgSQVDzqsqX38DjhPEPATpid04LCoUr2WXhQTEZ8ct/EgJCUDpyNw== + +"@esbuild/openbsd-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.12.tgz#306c0acbdb5a99c95be98bdd1d47c916e7dc3ff0" + integrity sha512-RbrfTB9SWsr0kWmb9srfF+L933uMDdu9BIzdA7os2t0TXhCRjrQyCeOt6wVxr79CKD4c+p+YhCj31HBkYcXebw== + "@esbuild/openbsd-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/openbsd-x64/-/openbsd-x64-0.19.5.tgz#ca6830316ca68056c5c88a875f103ad3235e00db" @@ -2930,6 +3361,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.18.20.tgz#d5c275c3b4e73c9b0ecd38d1ca62c020f887ab9d" integrity sha512-kDbFRFp0YpTQVVrqUd5FTYmWo45zGaXe0X8E1G/LKFC0v8x0vWrhOWSLITcCn63lmZIxfOMXtCfti/RxN/0wnQ== +"@esbuild/sunos-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.11.tgz#e320636f00bb9f4fdf3a80e548cb743370d41767" + integrity sha512-Hf+Sad9nVwvtxy4DXCZQqLpgmRTQqyFyhT3bZ4F2XlJCjxGmRFF0Shwn9rzhOYRB61w9VMXUkxlBy56dk9JJiQ== + +"@esbuild/sunos-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.12.tgz#0933eaab9af8b9b2c930236f62aae3fc593faf30" + integrity sha512-HKjJwRrW8uWtCQnQOz9qcU3mUZhTUQvi56Q8DPTLLB+DawoiQdjsYq+j+D3s9I8VFtDr+F9CjgXKKC4ss89IeA== + "@esbuild/sunos-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/sunos-x64/-/sunos-x64-0.19.5.tgz#9efc4eb9539a7be7d5a05ada52ee43cda0d8e2dd" @@ -2945,6 +3386,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.18.20.tgz#73bc7f5a9f8a77805f357fab97f290d0e4820ac9" integrity sha512-ddYFR6ItYgoaq4v4JmQQaAI5s7npztfV4Ag6NrhiaW0RrnOXqBkgwZLofVTlq1daVTQNhtI5oieTvkRPfZrePg== +"@esbuild/win32-arm64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.11.tgz#c778b45a496e90b6fc373e2a2bb072f1441fe0ee" + integrity sha512-0P58Sbi0LctOMOQbpEOvOL44Ne0sqbS0XWHMvvrg6NE5jQ1xguCSSw9jQeUk2lfrXYsKDdOe6K+oZiwKPilYPQ== + +"@esbuild/win32-arm64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.12.tgz#773bdbaa1971b36db2f6560088639ccd1e6773ae" + integrity sha512-URgtR1dJnmGvX864pn1B2YUYNzjmXkuJOIqG2HdU62MVS4EHpU2946OZoTMnRUHklGtJdJZ33QfzdjGACXhn1A== + "@esbuild/win32-arm64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/win32-arm64/-/win32-arm64-0.19.5.tgz#29f8184afa7a02a956ebda4ed638099f4b8ff198" @@ -2960,6 +3411,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.18.20.tgz#ec93cbf0ef1085cc12e71e0d661d20569ff42102" integrity sha512-Wv7QBi3ID/rROT08SABTS7eV4hX26sVduqDOTe1MvGMjNd3EjOz4b7zeexIR62GTIEKrfJXKL9LFxTYgkyeu7g== +"@esbuild/win32-ia32@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.11.tgz#481a65fee2e5cce74ec44823e6b09ecedcc5194c" + integrity sha512-6YOrWS+sDJDmshdBIQU+Uoyh7pQKrdykdefC1avn76ss5c+RN6gut3LZA4E2cH5xUEp5/cA0+YxRaVtRAb0xBg== + +"@esbuild/win32-ia32@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.12.tgz#000516cad06354cc84a73f0943a4aa690ef6fd67" + integrity sha512-+ZOE6pUkMOJfmxmBZElNOx72NKpIa/HFOMGzu8fqzQJ5kgf6aTGrcJaFsNiVMH4JKpMipyK+7k0n2UXN7a8YKQ== + "@esbuild/win32-ia32@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/win32-ia32/-/win32-ia32-0.19.5.tgz#f3de07afb292ecad651ae4bb8727789de2d95b05" @@ -2975,6 +3436,16 @@ resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.18.20.tgz#786c5f41f043b07afb1af37683d7c33668858f6d" integrity sha512-kTdfRcSiDfQca/y9QIkng02avJ+NCaQvrMejlsB3RRv5sE9rRoeBPISaZpKxHELzRxZyLvNts1P27W3wV+8geQ== +"@esbuild/win32-x64@0.19.11": + version "0.19.11" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.11.tgz#a5d300008960bb39677c46bf16f53ec70d8dee04" + integrity sha512-vfkhltrjCAb603XaFhqhAF4LGDi2M4OrCRrFusyQ+iTLQ/o60QQXxc9cZC/FFpihBI9N1Grn6SMKVJ4KP7Fuiw== + +"@esbuild/win32-x64@0.19.12": + version "0.19.12" + resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.12.tgz#c57c8afbb4054a3ab8317591a0b7320360b444ae" + integrity sha512-T1QyPSDCyMXaO3pzBkF96E8xMkiRYbUEZADd29SyPGabqxMViNoii+NcK7eWJAEoU6RZyEm5lVSIjTmcdoB9HA== + "@esbuild/win32-x64@0.19.5": version "0.19.5" resolved "https://registry.yarnpkg.com/@esbuild/win32-x64/-/win32-x64-0.19.5.tgz#faad84c41ba12e3a0acb52571df9bff37bee75f6" @@ -2987,14 +3458,19 @@ dependencies: eslint-visitor-keys "^3.3.0" -"@eslint/eslintrc@^1.4.1": - version "1.4.1" - resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-1.4.1.tgz#af58772019a2d271b7e2d4c23ff4ddcba3ccfb3e" - integrity sha512-XXrH9Uarn0stsyldqDYq8r++mROmWRI1xKMXa640Bb//SY1+ECYX6VzT6Lcx5frD0V30XieqJ0oX9I2Xj5aoMA== +"@eslint-community/regexpp@^4.5.1", "@eslint-community/regexpp@^4.6.1": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.10.0.tgz#548f6de556857c8bb73bbee70c35dc82a2e74d63" + integrity sha512-Cu96Sd2By9mCNTx2iyKOmq10v22jUVQv0lQnlGNy16oE9589yE+QADPbrMGCkA51cKZSg3Pu/aTJVTGfL/qjUA== + +"@eslint/eslintrc@^2.1.4": + version "2.1.4" + resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.4.tgz#388a269f0f25c1b6adc317b5a2c55714894c70ad" + integrity sha512-269Z39MS6wVJtsoUl10L60WdkhJVdPG24Q4eZTH3nnF6lpvSShEK3wQjDX9JRWAUPvPh7COouPpU9IrqaZFvtQ== dependencies: ajv "^6.12.4" debug "^4.3.2" - espree "^9.4.0" + espree "^9.6.0" globals "^13.19.0" ignore "^5.2.0" import-fresh "^3.2.1" @@ -3002,6 +3478,11 @@ minimatch "^3.1.2" strip-json-comments "^3.1.1" +"@eslint/js@8.56.0": + version "8.56.0" + resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.56.0.tgz#ef20350fec605a7f7035a01764731b2de0f3782b" + integrity sha512-gMsVel9D7f2HLkBma9VbtzZRehRogVRfbr++f06nL2vnCGCNlzOD+/MUov/F4p8myyAHspEhVobgjpX64q5m6A== + "@fal-works/esbuild-plugin-global-externals@^2.1.2": version "2.1.2" resolved "https://registry.yarnpkg.com/@fal-works/esbuild-plugin-global-externals/-/esbuild-plugin-global-externals-2.1.2.tgz#c05ed35ad82df8e6ac616c68b92c2282bd083ba4" @@ -3044,13 +3525,13 @@ resolved "https://registry.yarnpkg.com/@hexagon/base64/-/base64-1.1.28.tgz#7d306a97f1423829be5b27c9d388fe50e3099d48" integrity sha512-lhqDEAvWixy3bZ+UOYbPwUbBkwBq5C1LAJ/xPC8Oi+lL54oyakv/npbA0aU2hgCsx/1NUd4IBvV03+aUBWxerw== -"@humanwhocodes/config-array@^0.11.8": - version "0.11.13" - resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.13.tgz#075dc9684f40a531d9b26b0822153c1e832ee297" - integrity sha512-JSBDMiDKSzQVngfRjOdFXgFfklaXI4K9nLF49Auh21lmBWRLIK3+xTErTWD4KU54pb6coM6ESE7Awz/FNU3zgQ== +"@humanwhocodes/config-array@^0.11.13": + version "0.11.14" + resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.14.tgz#d78e481a039f7566ecc9660b4ea7fe6b1fec442b" + integrity sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg== dependencies: - "@humanwhocodes/object-schema" "^2.0.1" - debug "^4.1.1" + "@humanwhocodes/object-schema" "^2.0.2" + debug "^4.3.1" minimatch "^3.0.5" "@humanwhocodes/module-importer@^1.0.1": @@ -3058,10 +3539,17 @@ resolved "https://registry.yarnpkg.com/@humanwhocodes/module-importer/-/module-importer-1.0.1.tgz#af5b2691a22b44be847b0ca81641c5fb6ad0172c" integrity sha512-bxveV4V8v5Yb4ncFTT3rPSgZBOpCkjfK0y4oVVVJwIuDVBRMDXrPyXRL988i5ap9m9bnyEEjWfm5WkBmtffLfA== -"@humanwhocodes/object-schema@^2.0.1": - version "2.0.1" - resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.1.tgz#e5211452df060fa8522b55c7b3c0c4d1981cb044" - integrity sha512-dvuCeX5fC9dXgJn9t+X5atfmgQAzUOWqS1254Gh0m6i8wKd10ebXkfNKiRK+1GWi/yTvvLDHpoxLr0xxxeslWw== +"@humanwhocodes/object-schema@^2.0.2": + version "2.0.2" + resolved "https://registry.yarnpkg.com/@humanwhocodes/object-schema/-/object-schema-2.0.2.tgz#d9fae00a2d5cb40f92cfe64b47ad749fbc38f917" + integrity sha512-6EwiSjwWYP7pTckG6I5eyFANjPhmPjUX9JRLUSfNPC7FX7zK9gyZAfUEaECL6ALTpGX5AjnBq3C9XmVWPitNpw== + +"@internationalized/number@3.5.0": + version "3.5.0" + resolved "https://registry.yarnpkg.com/@internationalized/number/-/number-3.5.0.tgz#9de6018424b441a6545f209afa286ad7df4a2906" + integrity sha512-ZY1BW8HT9WKYvaubbuqXbbDdHhOUMfE2zHHFJeTppid0S+pc8HtdIxFxaYMsGjCb4UsF+MEJ4n2TfU7iHnUK8w== + dependencies: + "@swc/helpers" "^0.5.0" "@ioredis/commands@^1.1.1": version "1.2.0" @@ -3351,718 +3839,718 @@ resolved "https://registry.yarnpkg.com/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz#b2ac626d6cb9c8718ab459166d4bb405b8ffa78b" integrity sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A== -"@ljharb/through@^2.3.9": - version "2.3.11" - resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.11.tgz#783600ff12c06f21a76cc26e33abd0b1595092f9" - integrity sha512-ccfcIDlogiXNq5KcbAwbaO7lMh3Tm1i3khMPYpxlK8hH/W53zN81KM9coerRLOnTGu3nfXIniAmQbRI9OxbC0w== +"@ljharb/through@^2.3.11": + version "2.3.12" + resolved "https://registry.yarnpkg.com/@ljharb/through/-/through-2.3.12.tgz#c418c43060eee193adce48b15c2206096a28e9ea" + integrity sha512-ajo/heTlG3QgC8EGP6APIejksVAYt4ayz4tqoP3MolFELzcH1x1fzwEYRJTPO0IELutZ5HQ0c26/GqAYy79u3g== dependencies: - call-bind "^1.0.2" + call-bind "^1.0.5" "@lukeed/csprng@^1.0.0": version "1.1.0" resolved "https://registry.yarnpkg.com/@lukeed/csprng/-/csprng-1.1.0.tgz#1e3e4bd05c1cc7a0b2ddbd8a03f39f6e4b5e6cfe" integrity sha512-Z7C/xXCiGWsg0KuKsHTKJxbWhpI3Vs5GwLfOean7MGyVFGqdRgBbAjOCh6u4bbjPc/8MJ2pZmK/0DLdCbivLDA== -"@material/animation@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/animation/-/animation-15.0.0-canary.a246a4439.0.tgz#bb7a8dc450e99be4f3c3ef4ace206b44ee1a9162" - integrity sha512-0eV06UGYeuFwC/4t+yjg3LCRGRLq72ybBtJYzcBDpP4ASTjie0WmpAOFJYXRq2U5X/yxLviDMhpRemoSUjgZ0Q== +"@material/animation@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/animation/-/animation-15.0.0-canary.7f224ddd4.0.tgz#14b4f80718f9d405953dfca4376f9bcef609adc6" + integrity sha512-1GSJaPKef+7HRuV+HusVZHps64cmZuOItDbt40tjJVaikcaZvwmHlcTxRIqzcRoCdt5ZKHh3NoO7GB9Khg4Jnw== dependencies: tslib "^2.1.0" -"@material/auto-init@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/auto-init/-/auto-init-15.0.0-canary.a246a4439.0.tgz#b5235074cd8ec08a2c28f2b2be1a452a173c4e98" - integrity sha512-0QfmjT5elQ10hCxToVgq/WaC3301tVH1sJaO3O2yocVzr7s6iWm8/zch16V5hcHzQHbtcT3Rf4y1ZzmdNys2Iw== +"@material/auto-init@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/auto-init/-/auto-init-15.0.0-canary.7f224ddd4.0.tgz#9d1b6ed5d27e0c4c037a0cdc14e73729282d718d" + integrity sha512-t7ZGpRJ3ec0QDUO0nJu/SMgLW7qcuG2KqIsEYD1Ej8qhI2xpdR2ydSDQOkVEitXmKoGol1oq4nYSBjTlB65GqA== dependencies: - "@material/base" "15.0.0-canary.a246a4439.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/banner@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/banner/-/banner-15.0.0-canary.a246a4439.0.tgz#0e9dfb1063b9746b5420579c7a1cc736c589aba9" - integrity sha512-PBLgH7JEbEpTkLy33oyWXUhIFmSsdOrR6Gn6qIgQRo1qrnk5RSBGW2gEq4Z6793vjxM107gKudDb23E4Fcu4vg== - dependencies: - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/button" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/banner@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/banner/-/banner-15.0.0-canary.7f224ddd4.0.tgz#2cf24525e3dd1104f8c311d63c71f2e6200de1fb" + integrity sha512-g9wBUZzYBizyBcBQXTIafnRUUPi7efU9gPJfzeGgkynXiccP/vh5XMmH+PBxl5v+4MlP/d4cZ2NUYoAN7UTqSA== + dependencies: + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/button" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/base@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/base/-/base-15.0.0-canary.a246a4439.0.tgz#a4b013e184d60969c3d27d04925f8a4dbd4a6683" - integrity sha512-/ob3v3IFU8q2gGdVNWw5kNPjW2mRTeBIz1YdhGWUmRxKn2Kl8bdLOvrAmZtQMmPn/4cGXvinxpec/zVBWQKDkA== +"@material/base@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/base/-/base-15.0.0-canary.7f224ddd4.0.tgz#4960bef078e0c092f5293eb331f732d8e8e9265e" + integrity sha512-I9KQOKXpLfJkP8MqZyr8wZIzdPHrwPjFvGd9zSK91/vPyE4hzHRJc/0njsh9g8Lm9PRYLbifXX+719uTbHxx+A== dependencies: tslib "^2.1.0" -"@material/button@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/button/-/button-15.0.0-canary.a246a4439.0.tgz#84676925fe6da5367b759c4ce9a585f7cbc96416" - integrity sha512-rGpVRde0Aqhv2t9QvT8Zl3HvG89BeUNPOpgfpaLBZ4SGGAO4rIrckl/eCENibKgmmdCKcYZlG9gc5abQVPfUvw== - dependencies: - "@material/density" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/focus-ring" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/touch-target" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/button@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/button/-/button-15.0.0-canary.7f224ddd4.0.tgz#8de20a17fa75529f65553d9fb6c4af5d2743fa94" + integrity sha512-BHB7iyHgRVH+JF16+iscR+Qaic+p7LU1FOLgP8KucRlpF9tTwIxQA6mJwGRi5gUtcG+vyCmzVS+hIQ6DqT/7BA== + dependencies: + "@material/density" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/focus-ring" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/touch-target" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/card@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/card/-/card-15.0.0-canary.a246a4439.0.tgz#b195e66485fb450668eec12c3ad68404d659be5a" - integrity sha512-+rYUnBPgv5QVF6BeUs3toIRdSwFVohGmjk2ptTXMZkKxqAJt7Nr9Znbm3Ym2hD8GUHJeh3pyGFvEs6rG6JMYAw== - dependencies: - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" +"@material/card@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/card/-/card-15.0.0-canary.7f224ddd4.0.tgz#3ac82035f7260ce8b8337402d2102bc254169dff" + integrity sha512-kt7y9/IWOtJTr3Z/AoWJT3ZLN7CLlzXhx2udCLP9ootZU2bfGK0lzNwmo80bv/pJfrY9ihQKCtuGTtNxUy+vIw== + dependencies: + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/checkbox@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/checkbox/-/checkbox-15.0.0-canary.a246a4439.0.tgz#9b38a2fcff58f31adb2dcd22e6d6a0095fdf9250" - integrity sha512-sQwHzm1TSxHUoPrqplWTk/BhyzdDhzcwlbucwJK9W0o9WXMDk+d9PvcCxpP/9sAnVqZk42BfE89Y0T1DHglZ9A== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/density" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/focus-ring" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/touch-target" "15.0.0-canary.a246a4439.0" +"@material/checkbox@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/checkbox/-/checkbox-15.0.0-canary.7f224ddd4.0.tgz#a8223914b244cd7a23d9279b9fce3197a9473e69" + integrity sha512-rURcrL5O1u6hzWR+dNgiQ/n89vk6tdmdP3mZgnxJx61q4I/k1yijKqNJSLrkXH7Rto3bM5NRKMOlgvMvVd7UMQ== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/density" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/focus-ring" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/touch-target" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/chips@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/chips/-/chips-15.0.0-canary.a246a4439.0.tgz#2d73b4c7b5326ee6a160db01b84ad2a893b1cb53" - integrity sha512-TiV9WJ5taEHPGWPhXbxJvUJhLzThg+VpK7aAlvL4RurtmJ7pURuEdRS4Z6o0OEqi3wKQ4z/+K44kZUn/+9HALg== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/checkbox" "15.0.0-canary.a246a4439.0" - "@material/density" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/focus-ring" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/touch-target" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/chips@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/chips/-/chips-15.0.0-canary.7f224ddd4.0.tgz#e5f44ba72100188e49075fc701d187ef3e75ba82" + integrity sha512-AYAivV3GSk/T/nRIpH27sOHFPaSMrE3L0WYbnb5Wa93FgY8a0fbsFYtSH2QmtwnzXveg+B1zGTt7/xIIcynKdQ== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/checkbox" "15.0.0-canary.7f224ddd4.0" + "@material/density" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/focus-ring" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/touch-target" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" safevalues "^0.3.4" tslib "^2.1.0" -"@material/circular-progress@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/circular-progress/-/circular-progress-15.0.0-canary.a246a4439.0.tgz#c5d850525d69852526925db21d40c05de516685a" - integrity sha512-+QTfyExPWzgm2tqMInd32qQOftsC1b8MUhAhZSfuecYBfqAc7KZkQEKa2nm4y8EHKMFWe8/DcxLV6IxMBLgHwA== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/progress-indicator" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" +"@material/circular-progress@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/circular-progress/-/circular-progress-15.0.0-canary.7f224ddd4.0.tgz#0ee8de2cc989007a6029e60f6c7fb36af222a0ac" + integrity sha512-DJrqCKb+LuGtjNvKl8XigvyK02y36GRkfhMUYTcJEi3PrOE00bwXtyj7ilhzEVshQiXg6AHGWXtf5UqwNrx3Ow== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/progress-indicator" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/data-table@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/data-table/-/data-table-15.0.0-canary.a246a4439.0.tgz#f0bc21c00b19ae2a1e93cb51de975c7d6c17ca76" - integrity sha512-89qVOjR7gqby6fsmh7tKj29SjQ2sGLXu2IzCeX3Vni4mz+xxo5dv11jxYNADvdgJDfhyDJFPh1FlqAH7O09nFA== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/checkbox" "15.0.0-canary.a246a4439.0" - "@material/density" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/icon-button" "15.0.0-canary.a246a4439.0" - "@material/linear-progress" "15.0.0-canary.a246a4439.0" - "@material/list" "15.0.0-canary.a246a4439.0" - "@material/menu" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/select" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/touch-target" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/data-table@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/data-table/-/data-table-15.0.0-canary.7f224ddd4.0.tgz#fc5417a3e476896e92b8ada4804ef82d373831fa" + integrity sha512-/2WZsuBIq9z9RWYF5Jo6b7P6u0fwit+29/mN7rmAZ6akqUR54nXyNfoSNiyydMkzPlZZsep5KrSHododDhBZbA== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/checkbox" "15.0.0-canary.7f224ddd4.0" + "@material/density" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/icon-button" "15.0.0-canary.7f224ddd4.0" + "@material/linear-progress" "15.0.0-canary.7f224ddd4.0" + "@material/list" "15.0.0-canary.7f224ddd4.0" + "@material/menu" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/select" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/touch-target" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/density@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/density/-/density-15.0.0-canary.a246a4439.0.tgz#459282080188a6fc056ba903c5a156599c2e5813" - integrity sha512-h8BJVCWkPR97WeWCN6/atVbSOP8J4+ZbbssidcwsnX7b3+3IaWdtBxGii25dsILX8pUVwwqxVis24y211b+8rg== +"@material/density@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/density/-/density-15.0.0-canary.7f224ddd4.0.tgz#3fd8625b734597556c2bf18362a709485b4d1899" + integrity sha512-o9EXmGKVpiQ6mHhyV3oDDzc78Ow3E7v8dlaOhgaDSXgmqaE8v5sIlLNa/LKSyUga83/fpGk3QViSGXotpQx0jA== dependencies: tslib "^2.1.0" -"@material/dialog@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/dialog/-/dialog-15.0.0-canary.a246a4439.0.tgz#3f89a19028edd942804dcb66945ae6024357b6a4" - integrity sha512-4lyxd+5ccOEMUGKzZcssaYyzkCsYTpYCSQSANR0toQPLv3voDwKMfA709uZI6+nL7Re6Xdf7jx8qe+QpTTjVcw== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/button" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/icon-button" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/touch-target" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/dialog@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/dialog/-/dialog-15.0.0-canary.7f224ddd4.0.tgz#13b414c6afa6e015845d1bbf09337d8eb1270465" + integrity sha512-u0XpTlv1JqWC/bQ3DavJ1JguofTelLT2wloj59l3/1b60jv42JQ6Am7jU3I8/SIUB1MKaW7dYocXjDWtWJakLA== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/button" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/icon-button" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/touch-target" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/dom@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/dom/-/dom-15.0.0-canary.a246a4439.0.tgz#040dbc4c2e75ed99cfc4a51e0e5ce75851dd304b" - integrity sha512-AftSOGQoQg/Ys2kOVjZzvqWmsnhg3Kam/2UC4Gj0DMMCu36J4MAoD+3PpnOd1aG3wiJKtUXR2vPIwE8I/PM9yg== +"@material/dom@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/dom/-/dom-15.0.0-canary.7f224ddd4.0.tgz#4650cdc01439d033073bca09bbe94e5cbdc1a70e" + integrity sha512-mQ1HT186GPQSkRg5S18i70typ5ZytfjL09R0gJ2Qg5/G+MLCGi7TAjZZSH65tuD/QGOjel4rDdWOTmYbPYV6HA== dependencies: - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/drawer@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/drawer/-/drawer-15.0.0-canary.a246a4439.0.tgz#791e4b776049efc7294a0a9a761c009f0f65fc88" - integrity sha512-/JUmbzRBaikdbZ250yA9ZTPqp2W5nGvvuHYoNVAAmtOmxuwGvvNNpWiVZy2lIYeYcf1hA7hJ5mEQxs0aSD7iWQ== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/list" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/drawer@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/drawer/-/drawer-15.0.0-canary.7f224ddd4.0.tgz#089efcc9ba1622c6f6acb5e292f2edd9b2482558" + integrity sha512-qyO0W0KBftfH8dlLR0gVAgv7ZHNvU8ae11Ao6zJif/YxcvK4+gph1z8AO4H410YmC2kZiwpSKyxM1iQCCzbb4g== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/list" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/elevation@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/elevation/-/elevation-15.0.0-canary.a246a4439.0.tgz#1d41b571cd655947b5dcc6a0cb53e114bf9d39a1" - integrity sha512-lwPIOb8fHyOljIWYcVLPT73dPIEOKat/CXu6gqYIVMQgZQIksQNUA7z1O3l7apkRSuYUOYSXqrgU7AnWP4KcJg== +"@material/elevation@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/elevation/-/elevation-15.0.0-canary.7f224ddd4.0.tgz#b8fdde1b096dd8352440fc7a616c137d18e9c687" + integrity sha512-tV6s4/pUBECedaI36Yj18KmRCk1vfue/JP/5yYRlFNnLMRVISePbZaKkn/BHXVf+26I3W879+XqIGlDVdmOoMA== dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/fab@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/fab/-/fab-15.0.0-canary.a246a4439.0.tgz#f37666a4f40b80a79e36f2b2e369a5f4b792bd85" - integrity sha512-XUex3FNqxPD1i/4jITucB/RWTNkkdv52mbNmwrvbuThZlhuhyH9GzOQYTDop/b2783TPcv++xr8UUbuh8GWYzA== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/focus-ring" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/touch-target" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/fab@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/fab/-/fab-15.0.0-canary.7f224ddd4.0.tgz#e99acd7dc990e81ccb0deb834e6b6c3bd1747ea8" + integrity sha512-4h76QrzfZTcPdd+awDPZ4Q0YdSqsXQnS540TPtyXUJ/5G99V6VwGpjMPIxAsW0y+pmI9UkLL/srrMaJec+7r4Q== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/focus-ring" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/touch-target" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/feature-targeting@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/feature-targeting/-/feature-targeting-15.0.0-canary.a246a4439.0.tgz#ea6410861bc847f8315b163333147d7d7c82782b" - integrity sha512-/SU9X5y8CRp6RS9qnjnM/N5qfsJ8bYILpR841eZmN6DLqMupaM9Yy7Mx8+v/QvpBLLhk+jmu79nFzwkwW54d6Q== +"@material/feature-targeting@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/feature-targeting/-/feature-targeting-15.0.0-canary.7f224ddd4.0.tgz#bb1a326dad1cfd113459d7cb0096c0ab7ce0c951" + integrity sha512-SAjtxYh6YlKZriU83diDEQ7jNSP2MnxKsER0TvFeyG1vX/DWsUyYDOIJTOEa9K1N+fgJEBkNK8hY55QhQaspew== dependencies: tslib "^2.1.0" -"@material/floating-label@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/floating-label/-/floating-label-15.0.0-canary.a246a4439.0.tgz#6156b0192ac95c61dea705c4c1c6305be84acc22" - integrity sha512-832qZ/qxKx0KUatoeVY3Q2NmboVgiWBG0/1VsbJyodHrgQWfnBOHgLE+M322o6uM3OhvO+kWm4iYbvwhmLZGsw== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/floating-label@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/floating-label/-/floating-label-15.0.0-canary.7f224ddd4.0.tgz#c47c9df4424bfdcb824ba91096b130bc574c7127" + integrity sha512-0KMo5ijjYaEHPiZ2pCVIcbaTS2LycvH9zEhEMKwPPGssBCX7iz5ffYQFk7e5yrQand1r3jnQQgYfHAwtykArnQ== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/focus-ring@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/focus-ring/-/focus-ring-15.0.0-canary.a246a4439.0.tgz#b4aad6f3eb8f3eef07da1f3302e291c02b3a992f" - integrity sha512-ar0BtACFS3K14k/enAg0ePeEA/f/RJY4Ji4L/00Dw/B3XVpNRbqLH49jkcbtcQjdTS0FEyk2sWSNMZl6wVi0/A== - dependencies: - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - -"@material/form-field@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/form-field/-/form-field-15.0.0-canary.a246a4439.0.tgz#a3f4deccba0dafa0eefa7c82b9f9b21bec871607" - integrity sha512-Q/+ErgtAUFUPPUmWA1m5IP5voiN8XjPRwyoAlFxSTa/4t+EA5B18Z8Bsn9b6I0AC8RHke06H7UWrKz8XUDIFpw== - dependencies: - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/focus-ring@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/focus-ring/-/focus-ring-15.0.0-canary.7f224ddd4.0.tgz#b1822b45a99009e9854a9e6c9f013708d159039d" + integrity sha512-Jmg1nltq4J6S6A10EGMZnvufrvU3YTi+8R8ZD9lkSbun0Fm2TVdICQt/Auyi6An9zP66oQN6c31eqO6KfIPsDg== + dependencies: + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + +"@material/form-field@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/form-field/-/form-field-15.0.0-canary.7f224ddd4.0.tgz#0f3c332361ca5e00fdafb9f854cc5cebe445a340" + integrity sha512-fEPWgDQEPJ6WF7hNnIStxucHR9LE4DoDSMqCsGWS2Yu+NLZYLuCEecgR0UqQsl1EQdNRaFh8VH93KuxGd2hiPg== + dependencies: + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/icon-button@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/icon-button/-/icon-button-15.0.0-canary.a246a4439.0.tgz#6d0121dd8ab97b024dcd36eee620b61fe8bbc8a8" - integrity sha512-Igyo94rkIlqC91BR1Tv+WLTz1ZWcZZjl1xU7Vsx8mbWA1PnaRDUTNVV5LFi4e0ORp6GSblFTImpHngEy4agMEg== - dependencies: - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/density" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/focus-ring" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/touch-target" "15.0.0-canary.a246a4439.0" +"@material/icon-button@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/icon-button/-/icon-button-15.0.0-canary.7f224ddd4.0.tgz#75a31e0b1287f98fba4355554725248340521c04" + integrity sha512-DcK7IL4ICY/DW+48YQZZs9g0U1kRaW0Wb0BxhvppDMYziHo/CTpFdle4gjyuTyRxPOdHQz5a97ru48Z9O4muTw== + dependencies: + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/density" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/focus-ring" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/touch-target" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/image-list@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/image-list/-/image-list-15.0.0-canary.a246a4439.0.tgz#ecf3fa191d4e1b1b64050583abb9aa5b08f4e7b7" - integrity sha512-Rcj3q7Tp7Nwbe5ht6ptTc3zqK8TSDJHaPDBf+kzi0kkh6MAB4qoHPgn+HnA+zIZ79CScU56bN7zjA6XYaZvsLw== +"@material/image-list@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/image-list/-/image-list-15.0.0-canary.7f224ddd4.0.tgz#36bb04e6cf16a293dfb850d0fce585b1d2c724c3" + integrity sha512-voMjG2p80XbjL1B2lmF65zO5gEgJOVKClLdqh4wbYzYfwY/SR9c8eLvlYG7DLdFaFBl/7gGxD8TvvZ329HUFPw== dependencies: - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/layout-grid@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/layout-grid/-/layout-grid-15.0.0-canary.a246a4439.0.tgz#65ad68bab019d92fc047bfd00a8ad2c654ad59f3" - integrity sha512-bkfxZuVzgtjEJgR3n8pvDQbe88ffULDJ5d2DF34IR8SOiRmQcj7UzqAt95XwIUcWlfisLCoIryP4U8XSpFb1EQ== +"@material/layout-grid@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/layout-grid/-/layout-grid-15.0.0-canary.7f224ddd4.0.tgz#656c39a44a715331ce11fe0aea281bc0e6c793aa" + integrity sha512-veDABLxMn2RmvfnUO2RUmC1OFfWr4cU+MrxKPoDD2hl3l3eDYv5fxws6r5T1JoSyXoaN+oEZpheS0+M9Ure8Pg== dependencies: tslib "^2.1.0" -"@material/line-ripple@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/line-ripple/-/line-ripple-15.0.0-canary.a246a4439.0.tgz#b38d7b59507067622825f31e7663301cd18ba240" - integrity sha512-20WmwRrejmtOdI37+959UqEVIjbMtAXlkDOkfCIA3OUhp+oZSjVkCqKxI16jxxVlnzJ353fy8xeSKzOHe4sExQ== +"@material/line-ripple@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/line-ripple/-/line-ripple-15.0.0-canary.7f224ddd4.0.tgz#66487ff758834306180a7449ce4487103bcfe1d8" + integrity sha512-f60hVJhIU6I3/17Tqqzch1emUKEcfVVgHVqADbU14JD+oEIz429ZX9ksZ3VChoU3+eejFl+jVdZMLE/LrAuwpg== dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/linear-progress@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/linear-progress/-/linear-progress-15.0.0-canary.a246a4439.0.tgz#534d36d41e1c05d965fe2b0fe087ca76f15d282c" - integrity sha512-IcCd4476pXHloTYadHDJ+2c2lntoVigeNnQEiD/ASQTKqKrJqkIdvvczFm9Ryu+V2+TKhp7vvQGFLUMaLPcmhw== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/progress-indicator" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" +"@material/linear-progress@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/linear-progress/-/linear-progress-15.0.0-canary.7f224ddd4.0.tgz#b18179c6790db14870505e4362184d01ee3b9cb3" + integrity sha512-pRDEwPQielDiC9Sc5XhCXrGxP8wWOnAO8sQlMebfBYHYqy5hhiIzibezS8CSaW4MFQFyXmCmpmqWlbqGYRmiyg== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/progress-indicator" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/list@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/list/-/list-15.0.0-canary.a246a4439.0.tgz#530f76da6324f8d4d3b6f9545e1cb53b4dfd2d25" - integrity sha512-4H5dKIjCUGIPmKjfcegV0SBybD5NNdHp26OU6sovvWIvxSGQtDJr6z9I7i+0vF/HIS5ScbHD2+9/txtL80iqCA== - dependencies: - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/density" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/list@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/list/-/list-15.0.0-canary.7f224ddd4.0.tgz#e096d903ddbf06dd0177a317953d902133395b5e" + integrity sha512-Is0NV91sJlXF5pOebYAtWLF4wU2MJDbYqztML/zQNENkQxDOvEXu3nWNb3YScMIYJJXvARO0Liur5K4yPagS1Q== + dependencies: + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/density" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/menu-surface@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/menu-surface/-/menu-surface-15.0.0-canary.a246a4439.0.tgz#e03cf761cfe331af3498bcbb5cd1601f83e9849e" - integrity sha512-4h4wZ0Rs7qBg1Otldw8ljp+LCULNL42pqbqcTXhKAkJM7pHcSw4k7IfoThSRLU3+V8T3/+qiAXyeQix2OGHzwg== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" +"@material/menu-surface@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/menu-surface/-/menu-surface-15.0.0-canary.7f224ddd4.0.tgz#80678f927beec0ec22e68cb05b9242dc0b99543a" + integrity sha512-7RZHvw0gbwppaAJ/Oh5SWmfAKJ62aw1IMB3+3MRwsb5PLoV666wInYa+zJfE4i7qBeOn904xqT2Nko5hY0ssrg== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/menu@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/menu/-/menu-15.0.0-canary.a246a4439.0.tgz#f8725573ff1296c7b1d6539675243a64b96b4957" - integrity sha512-2HOHQAIdWQtXjSvEIrW3lnbcIwFf5XaQhFzCEZ04FcSGApc4iLwsmRFVW3PzWx+mVrUrEfO/K42DVULIX9J1Pg== - dependencies: - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/list" "15.0.0-canary.a246a4439.0" - "@material/menu-surface" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" +"@material/menu@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/menu/-/menu-15.0.0-canary.7f224ddd4.0.tgz#f7a2fc94640afae6e816a75abf5dfc77d0bf9920" + integrity sha512-D11QU1dXqLbh5X1zKlEhS3QWh0b5BPNXlafc5MXfkdJHhOiieb7LC9hMJhbrHtj24FadJ7evaFW/T2ugJbJNnQ== + dependencies: + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/list" "15.0.0-canary.7f224ddd4.0" + "@material/menu-surface" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/notched-outline@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/notched-outline/-/notched-outline-15.0.0-canary.a246a4439.0.tgz#4d183b37014a3aacf961ee9630848e3b9a530a06" - integrity sha512-zmRZHJ+5cOWsBatRyK50wuht78olXySyKOJIIEmy8lxSMZefI1764u0mr8tS1KYF8vSAl5cUlwCC3/2Njz1FPg== - dependencies: - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/floating-label" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" +"@material/notched-outline@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/notched-outline/-/notched-outline-15.0.0-canary.7f224ddd4.0.tgz#d13391d4e211c077980e2fed81d81cc81a6a84fa" + integrity sha512-Yg2usuKB2DKlKIBISbie9BFsOVuffF71xjbxPbybvqemxqUBd+bD5/t6H1fLE+F8/NCu5JMigho4ewUU+0RCiw== + dependencies: + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/floating-label" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/progress-indicator@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/progress-indicator/-/progress-indicator-15.0.0-canary.a246a4439.0.tgz#8b4136e887dbf700fc17f1480eec91ced326c275" - integrity sha512-92HM5niUnqG5Y3M/xkscBD+2lkaWPDcIRPo0RHPYcyldL+EhWRv/sdQpfdiXw/h3uvKSowKxBMCHm8krAyf+sQ== +"@material/progress-indicator@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/progress-indicator/-/progress-indicator-15.0.0-canary.7f224ddd4.0.tgz#6d70bf1ecf406c1da317402021a2970506921077" + integrity sha512-UPbDjE5CqT+SqTs0mNFG6uFEw7wBlgYmh+noSkQ6ty/EURm8lF125dmi4dv4kW0+octonMXqkGtAoZwLIHKf/w== dependencies: tslib "^2.1.0" -"@material/radio@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/radio/-/radio-15.0.0-canary.a246a4439.0.tgz#3fe24387017bf312b0092eec65ccc2c531b10ca5" - integrity sha512-on8EVztWXc/ajcaowFZ31ClGADYxQrhj4ulMne0NxdHHWQ44ttf5aXOVqtv5mxeOzrRACOkQyTUXBG07yTWCEQ== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/density" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/focus-ring" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/touch-target" "15.0.0-canary.a246a4439.0" +"@material/radio@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/radio/-/radio-15.0.0-canary.7f224ddd4.0.tgz#57834ac2d3441d1036041a94fe00b80c44d26b56" + integrity sha512-wR1X0Sr0KmQLu6+YOFKAI84G3L6psqd7Kys5kfb8WKBM36zxO5HQXC5nJm/Y0rdn22ixzsIz2GBo0MNU4V4k1A== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/density" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/focus-ring" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/touch-target" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/ripple@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/ripple/-/ripple-15.0.0-canary.a246a4439.0.tgz#cc280802f29d9e230c2460f790f2adf90fe354a4" - integrity sha512-Vl615/PIBpBD+IOI9Xypz0SV3RsmYJYSNx890Rih7irhUOaPsOUBmTYOWF5AsGBynqLcXoTNVhK92drYLKtJwQ== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" +"@material/ripple@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/ripple/-/ripple-15.0.0-canary.7f224ddd4.0.tgz#5ce82710d337314f343d0b80e39f33a109e42801" + integrity sha512-JqOsWM1f4aGdotP0rh1vZlPZTg6lZgh39FIYHFMfOwfhR+LAikUJ+37ciqZuewgzXB6iiRO6a8aUH6HR5SJYPg== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/rtl@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/rtl/-/rtl-15.0.0-canary.a246a4439.0.tgz#31ef4971ad1b82c791acf62b412206e093048351" - integrity sha512-pgJFw8ZRpWGpwv7ZuBTJ+WdNmFBKoLVoMbbxKQWTHXVwhAqn3aoIq95o62T5QeEG/+sguNShdquG45CpAMmSRw== +"@material/rtl@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/rtl/-/rtl-15.0.0-canary.7f224ddd4.0.tgz#25cf5447c2f59eea80bdb83a71ab19f15ff32e3d" + integrity sha512-UVf14qAtmPiaaZjuJtmN36HETyoKWmsZM/qn1L5ciR2URb8O035dFWnz4ZWFMmAYBno/L7JiZaCkPurv2ZNrGA== dependencies: - "@material/theme" "15.0.0-canary.a246a4439.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/segmented-button@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/segmented-button/-/segmented-button-15.0.0-canary.a246a4439.0.tgz#cdd13b33901c20459105c3120b0d3e02380fe930" - integrity sha512-oqGHs2C7C+yJW/xZf/wP8jBGLs6HcerhM3CsorLAEMH3MGuIlVC17WcisBewEWucsILYEWbySXy/7T4h6/psZA== - dependencies: - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/touch-target" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/segmented-button@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/segmented-button/-/segmented-button-15.0.0-canary.7f224ddd4.0.tgz#c36ca64ea8dfeb73bfdfdddb08b436e6c29f7071" + integrity sha512-LCnVRUSAhELTKI/9hSvyvIvQIpPpqF29BV+O9yM4WoNNmNWqTulvuiv7grHZl6Z+kJuxSg4BGbsPxxb9dXozPg== + dependencies: + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/touch-target" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/select@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/select/-/select-15.0.0-canary.a246a4439.0.tgz#0a480c12a09b9fb5e99da94ad5a9aa0c5d26a805" - integrity sha512-odoNLiVOgdwbEeePkjHtlr43pjskDwyO8hi4z3jcud1Rg1czk5zoJ2mUI0+olOJjBQ26PGocwrSLqf3qaThbIA== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/density" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/floating-label" "15.0.0-canary.a246a4439.0" - "@material/line-ripple" "15.0.0-canary.a246a4439.0" - "@material/list" "15.0.0-canary.a246a4439.0" - "@material/menu" "15.0.0-canary.a246a4439.0" - "@material/menu-surface" "15.0.0-canary.a246a4439.0" - "@material/notched-outline" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/select@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/select/-/select-15.0.0-canary.7f224ddd4.0.tgz#cf7fe97b9e4b47d1a53ee5fa1d21c3fe2245361c" + integrity sha512-WioZtQEXRpglum0cMSzSqocnhsGRr+ZIhvKb3FlaNrTaK8H3Y4QA7rVjv3emRtrLOOjaT6/RiIaUMTo9AGzWQQ== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/density" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/floating-label" "15.0.0-canary.7f224ddd4.0" + "@material/line-ripple" "15.0.0-canary.7f224ddd4.0" + "@material/list" "15.0.0-canary.7f224ddd4.0" + "@material/menu" "15.0.0-canary.7f224ddd4.0" + "@material/menu-surface" "15.0.0-canary.7f224ddd4.0" + "@material/notched-outline" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/shape@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/shape/-/shape-15.0.0-canary.a246a4439.0.tgz#15ea064ada9d057400f9600bad385b49529f407d" - integrity sha512-rcWPlCoHyP79ozeEKk73KWt9WTWdh6R68+n75l08TSTvnWZB5RRTmsI9BMkz55O9OJD/8H8ZsOxBe4x2QXUT7w== +"@material/shape@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/shape/-/shape-15.0.0-canary.7f224ddd4.0.tgz#f4cb9f8f779449b12d69d8a303bab54211db7e52" + integrity sha512-8z8l1W3+cymObunJoRhwFPKZ+FyECfJ4MJykNiaZq7XJFZkV6xNmqAVrrbQj93FtLsECn9g4PjjIomguVn/OEw== dependencies: - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/slider@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/slider/-/slider-15.0.0-canary.a246a4439.0.tgz#ae6506a049ea9b18dc781dec5117a723cad408b0" - integrity sha512-is1BSBpxaXBBv+wSVpe9WGWmWl59yJEeDNubTES2UFD0er3BmA+PdKkL09vvytDnBcbKf77TbxaRiUSGVaKUQA== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/slider@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/slider/-/slider-15.0.0-canary.7f224ddd4.0.tgz#beba0d242fd110f063422fba40be3850cda01e44" + integrity sha512-QU/WSaSWlLKQRqOhJrPgm29wqvvzRusMqwAcrCh1JTrCl+xwJ43q5WLDfjYhubeKtrEEgGu9tekkAiYfMG7EBw== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/snackbar@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/snackbar/-/snackbar-15.0.0-canary.a246a4439.0.tgz#201b417a0e0d674d09c68e6b43668c3ad9b18346" - integrity sha512-2NAtC1qozR/uajszZnPy08Ej8HNnpgvCjNCBerDN4SLH2Q0/aWrVrUjqRCp2ayAvsX+szoroGbCboMhaWRzDuQ== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/button" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/icon-button" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/snackbar@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/snackbar/-/snackbar-15.0.0-canary.7f224ddd4.0.tgz#55765e8755d031186954fed98c2fb6209e82bce0" + integrity sha512-sm7EbVKddaXpT/aXAYBdPoN0k8yeg9+dprgBUkrdqGzWJAeCkxb4fv2B3He88YiCtvkTz2KLY4CThPQBSEsMFQ== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/button" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/icon-button" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/switch@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/switch/-/switch-15.0.0-canary.a246a4439.0.tgz#3f3c1a1b17a51f971cc6356b7120daac163654c1" - integrity sha512-o0wcbYgm2yRs4een5uxT4RJnJ003DxXe33rk8vTBG2o7cdiSR3X7GJQxeIK3D9wPgWCAwBLhNYSzXrlTL5pkMw== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/density" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/focus-ring" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" +"@material/switch@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/switch/-/switch-15.0.0-canary.7f224ddd4.0.tgz#71fa2bd8819917dae6991e118aef819d780d690e" + integrity sha512-lEDJfRvkVyyeHWIBfoxYjJVl+WlEAE2kZ/+6OqB1FW0OV8ftTODZGhHRSzjVBA1/p4FPuhAtKtoK9jTpa4AZjA== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/density" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/focus-ring" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" safevalues "^0.3.4" tslib "^2.1.0" -"@material/tab-bar@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/tab-bar/-/tab-bar-15.0.0-canary.a246a4439.0.tgz#548c79f54c5ad912157eab95d2ede6b96bdd8697" - integrity sha512-dMQb1vXsBchQXcjbwgJZIGqTZHngm+3QGSOSb4LWjqHIgC5+w2RRrHsIAjNTyRhKssJ9nKKrbpM/Yz5vTPWH6w== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/density" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/tab" "15.0.0-canary.a246a4439.0" - "@material/tab-indicator" "15.0.0-canary.a246a4439.0" - "@material/tab-scroller" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/tab-bar@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/tab-bar/-/tab-bar-15.0.0-canary.7f224ddd4.0.tgz#34fb2585163c4da265ce6ca318e6bf6efd7caf1b" + integrity sha512-p1Asb2NzrcECvAQU3b2SYrpyJGyJLQWR+nXTYzDKE8WOpLIRCXap2audNqD7fvN/A20UJ1J8U01ptrvCkwJ4eA== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/density" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/tab" "15.0.0-canary.7f224ddd4.0" + "@material/tab-indicator" "15.0.0-canary.7f224ddd4.0" + "@material/tab-scroller" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/tab-indicator@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/tab-indicator/-/tab-indicator-15.0.0-canary.a246a4439.0.tgz#ed9a9cf50d7175edf32b94d9a199a75656ed5c58" - integrity sha512-gG2BgHT+ggKnUOaT8LjmH/+9nknRLh8v9qemrhUkDuCtZ8inlaC33OVbbxfrpQW3J+UzBh5YCUSC+2KrN39uUA== +"@material/tab-indicator@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/tab-indicator/-/tab-indicator-15.0.0-canary.7f224ddd4.0.tgz#85f91e23142249d18379cf6415d3b2385ccdee0e" + integrity sha512-h9Td3MPqbs33spcPS7ecByRHraYgU4tNCZpZzZXw31RypjKvISDv/PS5wcA4RmWqNGih78T7xg4QIGsZg4Pk4w== dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/tab-scroller@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/tab-scroller/-/tab-scroller-15.0.0-canary.a246a4439.0.tgz#353927782e309ee1d3b18871b6665a6bca0970d9" - integrity sha512-6KvBpalc4SwLbHFm0rnuIE64VffUj7AKhnPc+mqM6VmxOvDzQ/ZSYga0rWlUfM4mCDFX3ZkSxim+iNzVF+Ejaw== +"@material/tab-scroller@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/tab-scroller/-/tab-scroller-15.0.0-canary.7f224ddd4.0.tgz#f0fc898fc8f3ca293676d04179ed2b1d03cb38a1" + integrity sha512-LFeYNjQpdXecwECd8UaqHYbhscDCwhGln5Yh+3ctvcEgvmDPNjhKn/DL3sWprWvG8NAhP6sHMrsGhQFVdCWtTg== dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/tab" "15.0.0-canary.a246a4439.0" + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/tab" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/tab@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/tab/-/tab-15.0.0-canary.a246a4439.0.tgz#7b3629d4259006042c846e77e60fa892f86ef999" - integrity sha512-HGLK774uMeLnhbjDJBOjft7S6SurZnKb+6Und88OMDUVUEG6MkFBAKQQr09iBIeLE2sUAiGQhBVQtb7LJKwolQ== - dependencies: - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/focus-ring" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/tab-indicator" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/tab@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/tab/-/tab-15.0.0-canary.7f224ddd4.0.tgz#77950384cbf0a418dc59352e244c0c3ec0ee83cb" + integrity sha512-E1xGACImyCLurhnizyOTCgOiVezce4HlBFAI6YhJo/AyVwjN2Dtas4ZLQMvvWWqpyhITNkeYdOchwCC1mrz3AQ== + dependencies: + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/focus-ring" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/tab-indicator" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/textfield@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/textfield/-/textfield-15.0.0-canary.a246a4439.0.tgz#fa8b5c9ff15d44d98d223b1b658114c72f258591" - integrity sha512-4BW5bUERPlIeiPnLSby21h1/xDmySuAG9Ucn1LM801a0+5mK3IwWb8031AP3filKZZqTx5JJvOJYZd6/OWBJVA== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/density" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/floating-label" "15.0.0-canary.a246a4439.0" - "@material/line-ripple" "15.0.0-canary.a246a4439.0" - "@material/notched-outline" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/textfield@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/textfield/-/textfield-15.0.0-canary.7f224ddd4.0.tgz#db502c644180f31afc6060bc5baaafab303d6608" + integrity sha512-AExmFvgE5nNF0UA4l2cSzPghtxSUQeeoyRjFLHLy+oAaE4eKZFrSy0zEpqPeWPQpEMDZk+6Y+6T3cOFYBeSvsw== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/density" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/floating-label" "15.0.0-canary.7f224ddd4.0" + "@material/line-ripple" "15.0.0-canary.7f224ddd4.0" + "@material/notched-outline" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/theme@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/theme/-/theme-15.0.0-canary.a246a4439.0.tgz#02d6f1ba7a7d6948d25b5f328f0381eb414fd081" - integrity sha512-HWxC5Nhz8JZKTLTVmAsNxIGB3Kzr53+YFMg327S8/XuEDmI0RFHFvtwM9rADmyrHFBmUaVhV4iELyxFdi67c9w== +"@material/theme@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/theme/-/theme-15.0.0-canary.7f224ddd4.0.tgz#7523997eb51a21bffd598aa84fd1e76b7a0bb980" + integrity sha512-hs45hJoE9yVnoVOcsN1jklyOa51U4lzWsEnQEuJTPOk2+0HqCQ0yv/q0InpSnm2i69fNSyZC60+8HADZGF8ugQ== dependencies: - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/tokens@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/tokens/-/tokens-15.0.0-canary.a246a4439.0.tgz#93cf05d49bdbc8b494b21fc3159f1bf9274983fa" - integrity sha512-+5iGfQ51YSb0Qau8uC6/jHXCSC3enKaQKDf/iPHfuXAe04UznW3tmm1/Ju227aZXNISTJcnQYa2rpm1M14MeUg== - dependencies: - "@material/elevation" "15.0.0-canary.a246a4439.0" - -"@material/tooltip@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/tooltip/-/tooltip-15.0.0-canary.a246a4439.0.tgz#96d0818b141f4aa4b58f499ab37c02d29a2b5b6b" - integrity sha512-Ja2Z4aZQkYWD6InXA+MG4M9zdKR6dYsXXlYzQppYpfcQzXylZqh5Y7WBLulG5fA2o83pHVwILfwFZM7j7ht08Q== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/button" "15.0.0-canary.a246a4439.0" - "@material/dom" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/tokens" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/tokens@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/tokens/-/tokens-15.0.0-canary.7f224ddd4.0.tgz#4ae8b300fc3ea5b9a6e53c3257a5aa0efd3442a3" + integrity sha512-r9TDoicmcT7FhUXC4eYMFnt9TZsz0G8T3wXvkKncLppYvZ517gPyD/1+yhuGfGOxAzxTrM66S/oEc1fFE2q4hw== + dependencies: + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + +"@material/tooltip@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/tooltip/-/tooltip-15.0.0-canary.7f224ddd4.0.tgz#78bf4353b426030071944cdef45f1c2a023537f6" + integrity sha512-8qNk3pmPLTnam3XYC1sZuplQXW9xLn4Z4MI3D+U17Q7pfNZfoOugGr+d2cLA9yWAEjVJYB0mj8Yu86+udo4N9w== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/button" "15.0.0-canary.7f224ddd4.0" + "@material/dom" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/tokens" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" safevalues "^0.3.4" tslib "^2.1.0" -"@material/top-app-bar@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/top-app-bar/-/top-app-bar-15.0.0-canary.a246a4439.0.tgz#5ca10581940fec75c0da84bb232dc6bb421a3ab2" - integrity sha512-twQchmCa1In/FFrALPYojgeM8vmV7KH96wRY9NmPSJ046ANgPCicLBgLuSzrLETCFqAwbztqzxSG4xMBL81rYg== - dependencies: - "@material/animation" "15.0.0-canary.a246a4439.0" - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/elevation" "15.0.0-canary.a246a4439.0" - "@material/ripple" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/shape" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" - "@material/typography" "15.0.0-canary.a246a4439.0" +"@material/top-app-bar@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/top-app-bar/-/top-app-bar-15.0.0-canary.7f224ddd4.0.tgz#ac042d558f0763e8e9f8e48504eac7062882f353" + integrity sha512-SARR5/ClYT4CLe9qAXakbr0i0cMY0V3V4pe3ElIJPfL2Z2c4wGR1mTR8m2LxU1MfGKK8aRoUdtfKaxWejp+eNA== + dependencies: + "@material/animation" "15.0.0-canary.7f224ddd4.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/elevation" "15.0.0-canary.7f224ddd4.0" + "@material/ripple" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/shape" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" + "@material/typography" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/touch-target@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/touch-target/-/touch-target-15.0.0-canary.a246a4439.0.tgz#1e9d7105ee985fe8b89370e00120d75a3518b78c" - integrity sha512-ubyD1TUjZnRPEdDnk6Lrcm2ZsjnU7CV5y7IX8pj9IPawiM6bx4FkjZBxUvclbv3WiTGk5UOnwPOySYAJYAMQ1w== +"@material/touch-target@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/touch-target/-/touch-target-15.0.0-canary.7f224ddd4.0.tgz#ab80eeec967fa1444dc5d0198c4c826916a9ff86" + integrity sha512-BJo/wFKHPYLGsRaIpd7vsQwKr02LtO2e89Psv0on/p0OephlNIgeB9dD9W+bQmaeZsZ6liKSKRl6wJWDiK71PA== dependencies: - "@material/base" "15.0.0-canary.a246a4439.0" - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/rtl" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" + "@material/base" "15.0.0-canary.7f224ddd4.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/rtl" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" -"@material/typography@15.0.0-canary.a246a4439.0": - version "15.0.0-canary.a246a4439.0" - resolved "https://registry.yarnpkg.com/@material/typography/-/typography-15.0.0-canary.a246a4439.0.tgz#0d1387bc273511534d37cc6784b4ae1c4f70aeaf" - integrity sha512-eXzBl9ROzWZ+41nan5pCrn1C/Zq3o/VsrLFaGv8fdRmhRR6/wHMeuvCCwGf5VtEmWdAE9FpJzRU/4ZPiJCJUyg== +"@material/typography@15.0.0-canary.7f224ddd4.0": + version "15.0.0-canary.7f224ddd4.0" + resolved "https://registry.yarnpkg.com/@material/typography/-/typography-15.0.0-canary.7f224ddd4.0.tgz#1191633c70ad0ee0e162feacb5e6efaf42a52cef" + integrity sha512-kBaZeCGD50iq1DeRRH5OM5Jl7Gdk+/NOfKArkY4ksBZvJiStJ7ACAhpvb8MEGm4s3jvDInQFLsDq3hL+SA79sQ== dependencies: - "@material/feature-targeting" "15.0.0-canary.a246a4439.0" - "@material/theme" "15.0.0-canary.a246a4439.0" + "@material/feature-targeting" "15.0.0-canary.7f224ddd4.0" + "@material/theme" "15.0.0-canary.7f224ddd4.0" tslib "^2.1.0" "@mdx-js/react@^2.1.5": @@ -4073,14 +4561,6 @@ "@types/mdx" "^2.0.0" "@types/react" ">=16" -"@mrmlnc/readdir-enhanced@^2.2.1": - version "2.2.1" - resolved "https://registry.yarnpkg.com/@mrmlnc/readdir-enhanced/-/readdir-enhanced-2.2.1.tgz#524af240d1a360527b730475ecfa1344aa540dde" - integrity sha512-bPHp6Ji8b41szTOcaP63VlnbbO5Ny6dwAATtY6JTjh5N2OLrb5Qk/Th5cRkRQhkWCt+EJsYrNB0MiL+Gpn6e3g== - dependencies: - call-me-maybe "^1.0.1" - glob-to-regexp "^0.3.0" - "@msgpackr-extract/msgpackr-extract-darwin-arm64@3.0.2": version "3.0.2" resolved "https://registry.yarnpkg.com/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.2.tgz#44d752c1a2dc113f15f781b7cc4f53a307e3fa38" @@ -4238,10 +4718,10 @@ dependencies: tslib "2.6.1" -"@ngtools/webpack@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-17.0.7.tgz#21e457c8ac9645990589df2ed9e536bde58697e6" - integrity sha512-gwhUhpwXn0trwwKdSu9WlJbEcLt+s/2fPwoD9lZ0y3wXfrOogsfcNBJKeO5BZf1h+A3AWt7ePmgrZXSJM+865Q== +"@ngtools/webpack@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@ngtools/webpack/-/webpack-17.1.3.tgz#510c5f6f6bf9ae470b0e43d4560cfc4ffc3a5ed5" + integrity sha512-mszRSb7aMNKHnkh3Jrfo83KVOguX/cUamJJcGIYe9o7tnLGRIoMp4vP0fx6Og4J0/CGDRhSDG4IiJ29aOU7K8A== "@nodelib/fs.scandir@2.1.5": version "2.1.5" @@ -4256,11 +4736,6 @@ resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz#5bd262af94e9d25bd1e71b05deed44876a222e8b" integrity sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A== -"@nodelib/fs.stat@^1.1.2": - version "1.1.3" - resolved "https://registry.yarnpkg.com/@nodelib/fs.stat/-/fs.stat-1.1.3.tgz#2b5a3ab3f918cca48a8c754c08168e3f03eba61b" - integrity sha512-shAmDyaQC4H92APFoIaVDHCx5bStIocgvbwQyxPRrbUY20V1EYTbSDchWbuwlMG3V17cprZhA6+78JfB+3DTPw== - "@nodelib/fs.walk@^1.2.3", "@nodelib/fs.walk@^1.2.8": version "1.2.8" resolved "https://registry.yarnpkg.com/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz#e95737e8bb6746ddedf69c556953494f196fe69a" @@ -4332,98 +4807,98 @@ read-package-json-fast "^3.0.0" which "^4.0.0" -"@nrwl/angular@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/angular/-/angular-17.2.7.tgz#7cb7b98216288176ea6fd5407fb2d2a500f608bf" - integrity sha512-DjEpECm0ipw7q9xhj+pX1y9Gc3J64gLBCUVf1ib+h3g2Y3tFbC+RLlQGwmAqU8WelAdJHrPqPtAYHKf4vqqgbQ== +"@nrwl/angular@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/angular/-/angular-18.0.4.tgz#a231cbe7931d75e3d38de5c086676598d0f87c5c" + integrity sha512-bcwFDzX2f34LZz+RVCp3pbwVQAHzgpWfwCp6I40A3cjDjDpUhPAfZvaQxf5MjpPATlBJVhrh7bJPOJv/Kxat7g== dependencies: - "@nx/angular" "17.2.7" + "@nx/angular" "18.0.4" tslib "^2.3.0" -"@nrwl/cypress@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/cypress/-/cypress-17.2.7.tgz#5cdd37f52c48f823f358b571afc9040353884241" - integrity sha512-Av89Er9r0kMf8YL9dNSTkHohYhAKYmxAB3Q8eVv8NmSb7FZXvY065HIoFby+6VtQnBFP+sT1YSQL/Tp+h4Bwfw== +"@nrwl/cypress@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/cypress/-/cypress-18.0.4.tgz#a70aacee9dffe14637840016c3a136e6abe43f05" + integrity sha512-X7ZORP9Xt3lB+7goAb5JcBfVl6FQx8BPNv6TFi9ZiKayUqovgCMPOlmL2BDizsladv+7iacnTZTdo2X/4aunJA== dependencies: - "@nx/cypress" "17.2.7" + "@nx/cypress" "18.0.4" -"@nrwl/devkit@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-17.2.7.tgz#20c5fd8e0a2813940fdfb34523d4d77788b524ff" - integrity sha512-TISLlIH3xSWre2NLg0aMUBmTvMus+xUicaMeg8DWvwSXJJIMC5QFlB1hjw0VkyLsSraHpd5PWtyDqldHWRfKUQ== +"@nrwl/devkit@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/devkit/-/devkit-18.0.4.tgz#5135f2f27218ca34d7b93f95f9967f75320ce75a" + integrity sha512-fKHnjg4/9MdFd2U4e8p6ja9fRa864DCyF70kB4YUB9NuUIgWLQ15Uj6wXC3xjdXmxQRyHDa7ORodVoFzdo4UCg== dependencies: - "@nx/devkit" "17.2.7" + "@nx/devkit" "18.0.4" -"@nrwl/eslint-plugin-nx@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-17.2.7.tgz#5762b3dce6acb806c8c95bfa0610e79a0e74ecc7" - integrity sha512-YGH3FL4Dz+a9r2xmZx/SMUFOUl/An6IsZeTqkG5gC+ErejX9nT1KWOXMNh5bkl+jz0b4NvkiVvgQw+W4q2K9sg== +"@nrwl/eslint-plugin-nx@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/eslint-plugin-nx/-/eslint-plugin-nx-18.0.4.tgz#b9cef2b6f0075a17e93f11f99301b0c44f3e06d3" + integrity sha512-j+5d7+ANY4E7Xn0CUXi+U8DRtv1WKYfI5dxL8JF5EPAfRl7xcX9VVPA9/R5dc/PHXIPeJMIg2CEH1TetH7O6Vw== dependencies: - "@nx/eslint-plugin" "17.2.7" + "@nx/eslint-plugin" "18.0.4" -"@nrwl/jest@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/jest/-/jest-17.2.7.tgz#acd89e1cd3d99ae75431c60216b4e7b1d9bb35e6" - integrity sha512-jYeBQbS9iaybLxmxFv6N9qftRHyRpG3YlDxiHXXmWPX0OrgDjNSY3QCCReM8iqADk2TaxoIw1WDKp4tKzft2xA== +"@nrwl/jest@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/jest/-/jest-18.0.4.tgz#7d139d92ff98767ee3556e586d6ebc5ee18d0f4b" + integrity sha512-oe4qfnXc1WUPPmd9ua4mtgiqwXY+2XPz6zSkWghrrvc5wXu15tPvrBxHeU+KEXWu+rVy3iGLU2s5AivdXxEbIA== dependencies: - "@nx/jest" "17.2.7" + "@nx/jest" "18.0.4" -"@nrwl/js@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/js/-/js-17.2.7.tgz#b791009476584ae0a6665a5e6fafccbe7fe6b29f" - integrity sha512-8AAUmqESQ89Cbark8DlkElINMmDpEJLivan6RPksUUEK6lrZQwVnHf4eWLQzN2/C4i5XkfdxavzluuDPCqHQSQ== +"@nrwl/js@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/js/-/js-18.0.4.tgz#0bb7fa6198037921072f8bc2285f4b6bb25fbb9d" + integrity sha512-7aY6vjHHD99MMF+WtHSdmA7sxLmMNhbd12CQ6lXmSK41Yj82mBgQMwV/Ed+UT10XEh5uMes/iODL460SzwPMZA== dependencies: - "@nx/js" "17.2.7" + "@nx/js" "18.0.4" -"@nrwl/nest@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/nest/-/nest-17.2.7.tgz#442443b59a02ddbaaafbc8b91caa11bb9b286583" - integrity sha512-BbJMdB5+PKPhrYW78jvNizipcUya2DlXNddwruW6GZ8QAYMRaVg9xFxbX7nMO4rRBBqCqmE00Two3aGiMm5L2Q== +"@nrwl/nest@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/nest/-/nest-18.0.4.tgz#ccf141bb33a4865e6c93450cc225106c5ade1b42" + integrity sha512-tLlHOhV/8fFf5IhYyXekF4y7xVvbM5gK+IGKUTVQKZW2GMSXO3DQmjQyrUEzuEk9O/WAujhXsHURd4fX06+zVg== dependencies: - "@nx/nest" "17.2.7" + "@nx/nest" "18.0.4" -"@nrwl/node@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/node/-/node-17.2.7.tgz#a68616fdfdb67a7227a70c1841c6b6f5a3f9ef2b" - integrity sha512-tWc9tFnQ2ue0Wv2NcMV3fJD1Kqh/vHeV/81ppeLtoYa5GBXViRJPdUinGlez0qiYegEdUbieWjDp255GIEifTw== +"@nrwl/node@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/node/-/node-18.0.4.tgz#c792107bbd0833dc894c52759ab5efaadfbb0377" + integrity sha512-e7kpWUazYmiiFUTdzvOUeSMukolS0TEgfEqFdPjb+L3QaN58KdrsBAiMlY1GVX2VR019nJKBJXGXn6LOYfDxUg== dependencies: - "@nx/node" "17.2.7" + "@nx/node" "18.0.4" -"@nrwl/storybook@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/storybook/-/storybook-17.2.7.tgz#289b3b6e1f1b3f6d5ad6594729e70373051d01fa" - integrity sha512-LGIJfg4JCHQa7ttjlxnBOCLWWYNhBWwZerpnwCgWYWus4w/56hXUd21yN19XVDbABpxOV50HTWXmpHkCU6iiuQ== +"@nrwl/storybook@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/storybook/-/storybook-18.0.4.tgz#edf2c7f4722ae99abb03c0240d67f069a7975661" + integrity sha512-s9ksmNGRly34nR6ATexiKGEeu2hGDvwSXCm8EPQ/7zVcwYsRXl9fOa7d5tiI1iz3cuu++iVJvOF8eQT9ODJ7rg== dependencies: - "@nx/storybook" "17.2.7" + "@nx/storybook" "18.0.4" -"@nrwl/tao@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-17.2.7.tgz#a4df2089559bce0af66fbe785324c1f8abe752ec" - integrity sha512-06YYR1Ndb+nAJaQuvi2J3bX7i2dStQvDHkT+qprUXKxOrggFcPcs+7e2LwNWKDGdCu4r0qFHPlamj7y5d6qM2Q== +"@nrwl/tao@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/tao/-/tao-18.0.4.tgz#a74933a4c7d1b7c6467a526e9ac524f3b8edd212" + integrity sha512-/PzGOJevlDQnp5RPXF3WDe+w1cdohGkY+mbJUgDVA4Q5JEPT1DtE10h9GgdHdzkPjVPNYsaI4Vs/53NUdlVHHA== dependencies: - nx "17.2.7" + nx "18.0.4" tslib "^2.3.0" -"@nrwl/web@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/web/-/web-17.2.7.tgz#82a3b8e053edbb2be1ec99f6d5e03a854069b9e5" - integrity sha512-ZlGkmth0qqqQ0WyV6JhdNswSbgOEiDR0G8XJXeoHkDFeThlaU20JyMrqTGNDpQ04d9EpvItvv+bAueg/BLASOw== +"@nrwl/web@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/web/-/web-18.0.4.tgz#75158c7c7acfe75d4dd47f6097e8df78fb3373d9" + integrity sha512-NJSWj4pH/CWCFj3liOg3ExskfWqynjpGNsPS7zmkM6isbFHRXx7+s+eAVIQJtk5AttKOGeCUkUAaA91SaaTxKg== dependencies: - "@nx/web" "17.2.7" + "@nx/web" "18.0.4" -"@nrwl/webpack@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/webpack/-/webpack-17.2.7.tgz#9afa4a12d440515cdbec8555aceba8df1644dce1" - integrity sha512-Ornp2N/cdUNnht0ojjQrtE3ko+JpvAvWvStdZCVfXULMzy96CpGjPzRBkrX+iNee1GYEJXiHFUZhA+n6NlKB3A== +"@nrwl/webpack@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/webpack/-/webpack-18.0.4.tgz#efedbd097eebc27847006175585a0b9c3f40e8bc" + integrity sha512-5GP8leMQHjyvEEflkuOGIDZhZ3kteYME0sKSAmpdD7jMnR9D1OLpRbq0V2WbyhMCCCuC6ae0ihzGZy8n8VhmuQ== dependencies: - "@nx/webpack" "17.2.7" + "@nx/webpack" "18.0.4" -"@nrwl/workspace@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-17.2.7.tgz#7494d6774e45b1b9f2bf57b2fafa33ad3cd2c2db" - integrity sha512-qYb2iLliBfS4IwS1aGqeXgyFzdEcXvu+4jxZpROTcg4THJLYni3XhI/Y8gfi4OVzzCadKILMxiOukZKjjIDPlA== +"@nrwl/workspace@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nrwl/workspace/-/workspace-18.0.4.tgz#f1772cee1d3310b25a91d17bf303cc1e255f3e82" + integrity sha512-UFD96NeEeHLKADLBDfF2U5rFOhyMjCwYzpA+D3Yp3X25aB7D89Kan4spq9ZC/Zxethz3911nNaYy+I+L5WlDoA== dependencies: - "@nx/workspace" "17.2.7" + "@nx/workspace" "18.0.4" "@nuxtjs/opencollective@0.3.2": version "0.3.2" @@ -4434,120 +4909,124 @@ consola "^2.15.0" node-fetch "^2.6.1" -"@nx/angular@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/angular/-/angular-17.2.7.tgz#495fe00f01d7c4c9980f2b62851d42b832c45277" - integrity sha512-zRJZa4BqKuXbn9nPgoL/WxXmKSl7iK8v9wGD5jU8eGQk2AZ96rr/yOZZlGZECfKE5ygim6xoM83mW5Ly1z8J+w== - dependencies: - "@nrwl/angular" "17.2.7" - "@nx/cypress" "17.2.7" - "@nx/devkit" "17.2.7" - "@nx/eslint" "17.2.7" - "@nx/jest" "17.2.7" - "@nx/js" "17.2.7" - "@nx/web" "17.2.7" - "@nx/webpack" "17.2.7" - "@nx/workspace" "17.2.7" +"@nx/angular@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/angular/-/angular-18.0.4.tgz#b4c9d3a84bf0450554468b648f7237ed44615b21" + integrity sha512-3Mr4/+U/qV7dXrL+68W8bVU+sB4i7eH2GsX4ixNMm5d6qY0/rJdV7OYOSsuL7zVfD5q0Eu2HvgZeA61ADpUx+w== + dependencies: + "@nrwl/angular" "18.0.4" + "@nx/cypress" "18.0.4" + "@nx/devkit" "18.0.4" + "@nx/eslint" "18.0.4" + "@nx/jest" "18.0.4" + "@nx/js" "18.0.4" + "@nx/web" "18.0.4" + "@nx/webpack" "18.0.4" + "@nx/workspace" "18.0.4" "@phenomnomnominal/tsquery" "~5.0.1" "@typescript-eslint/type-utils" "^6.9.1" chalk "^4.1.0" find-cache-dir "^3.3.2" ignore "^5.0.4" magic-string "~0.30.2" - minimatch "3.0.5" - semver "7.5.3" + minimatch "9.0.3" + piscina "^4.2.1" + semver "^7.5.3" tslib "^2.3.0" webpack "^5.80.0" webpack-merge "^5.8.0" -"@nx/cypress@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/cypress/-/cypress-17.2.7.tgz#ccbc2c960e428936e4bbfc7cc9d37470028f5c58" - integrity sha512-MwzaWrIsMxjRPg5DQSBFNM+dNGru0jNjqGyMNlhAM0LPMB34I2bw5Sl6zE6GY2hm05oiFb5AbiSvc1M3ptfzmw== +"@nx/cypress@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/cypress/-/cypress-18.0.4.tgz#7ab91a192bcd09b674a491e4c798dcef29e2b866" + integrity sha512-G/t83/SSYNIor8aGE+u9nNbCrqcsbG4EnhESP0eXwk5k6ycW6eVGMuSlLkRe7debosL/RhGLwcw491alQug7PQ== dependencies: - "@nrwl/cypress" "17.2.7" - "@nx/devkit" "17.2.7" - "@nx/eslint" "17.2.7" - "@nx/js" "17.2.7" + "@nrwl/cypress" "18.0.4" + "@nx/devkit" "18.0.4" + "@nx/eslint" "18.0.4" + "@nx/js" "18.0.4" "@phenomnomnominal/tsquery" "~5.0.1" detect-port "^1.5.1" - semver "7.5.3" + semver "^7.5.3" tslib "^2.3.0" -"@nx/devkit@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-17.2.7.tgz#aa5d2352a963a613e415b1d3167a5b87937b6fcb" - integrity sha512-RyJyFO5PkNhMrebpv93Bci6pRkrw6guyfX7Esl/5+O6UfN0ytnmaRIrbiVwftTQ6m/T08OWrJQHZMuByP0WWHQ== +"@nx/devkit@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/devkit/-/devkit-18.0.4.tgz#fec28139ef5d078933c5f1b5a7e0a585672dbdd6" + integrity sha512-Vs1AXgOjMJyaWpKopD04dy0FwQ22n5ZR1bFf98Ab4Ht0WJwJE90IpUVAkwI03n5BYxAKOlQnFltsB4gu6Y8mZQ== dependencies: - "@nrwl/devkit" "17.2.7" + "@nrwl/devkit" "18.0.4" ejs "^3.1.7" enquirer "~2.3.6" ignore "^5.0.4" - semver "7.5.3" + semver "^7.5.3" tmp "~0.2.1" tslib "^2.3.0" + yargs-parser "21.1.1" -"@nx/eslint-plugin@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/eslint-plugin/-/eslint-plugin-17.2.7.tgz#749938e202b546efb9ae23df79ec2c065b8e7f88" - integrity sha512-emKsCaWDOPekCJvuE6QE6CHwSR4RKULdOHotnSaE3J65cgair9djsR8SNUELsqpTSfEmtfB53Z0oZYw4zdeiFQ== +"@nx/eslint-plugin@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/eslint-plugin/-/eslint-plugin-18.0.4.tgz#5c74debdde3966201daa8314d72265c759ed4eed" + integrity sha512-9QdhPO7r8tv6edInHzLSvimOxshZ5swkooqf/K/83RJ+2KfN/GLEIbLWx59xcqyYxc0D0W7y2XbhjL4XZJZPbw== dependencies: - "@nrwl/eslint-plugin-nx" "17.2.7" - "@nx/devkit" "17.2.7" - "@nx/js" "17.2.7" - "@typescript-eslint/type-utils" "^6.9.1" - "@typescript-eslint/utils" "^6.9.1" + "@nrwl/eslint-plugin-nx" "18.0.4" + "@nx/devkit" "18.0.4" + "@nx/js" "18.0.4" + "@typescript-eslint/type-utils" "^6.13.2" + "@typescript-eslint/utils" "^6.13.2" chalk "^4.1.0" confusing-browser-globals "^1.0.9" jsonc-eslint-parser "^2.1.0" - semver "7.5.3" + semver "^7.5.3" tslib "^2.3.0" -"@nx/eslint@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/eslint/-/eslint-17.2.7.tgz#26a4ea6f074d1442e6868dc46b2366166c1a83b9" - integrity sha512-A/+J9rcb9FUwGpEc5yFjFWcoF36PfXc6twOGLceFwj+oOG65h7kUnpuJgWK8gTIh911lij3TdmE6MiqSXPu3tQ== +"@nx/eslint@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/eslint/-/eslint-18.0.4.tgz#5078d8f1d5ec25726709dd4478da275c9accab54" + integrity sha512-6mjtPjXkS0aUWfF17D+PZI+Hhn+Cvm2yWTiDoVANsqt9rTOmlCa4fr01OcSyuaWFtkUlbKiKdQ1YYFyLD8zm7A== dependencies: - "@nx/devkit" "17.2.7" - "@nx/js" "17.2.7" - "@nx/linter" "17.2.7" + "@nx/devkit" "18.0.4" + "@nx/js" "18.0.4" + "@nx/linter" "18.0.4" + eslint "^8.0.0" tslib "^2.3.0" - typescript "~5.2.2" + typescript "~5.3.2" -"@nx/jest@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/jest/-/jest-17.2.7.tgz#2d24fc70ac093e01f233aadf594ad36d4f5860f0" - integrity sha512-lfUBZ1eCdO2ML2AdPiuXkMcQvuHaevYHB4wrRoUEQp/jui8m8ZQtIaihEy+8nmnSQTSGpCxlILRLpaNQ8gqCoQ== +"@nx/jest@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/jest/-/jest-18.0.4.tgz#cb294c6a3c17eea63ab828185fd926c5b6390b19" + integrity sha512-A114oLtWCK99CaY/hUR00/1RISf77jqEgduDFsiaoe8fpr74HN3E8Z/NWW6gG9rkB8ymnvJMJGfbrN+2/Vv75Q== dependencies: "@jest/reporters" "^29.4.1" "@jest/test-result" "^29.4.1" - "@nrwl/jest" "17.2.7" - "@nx/devkit" "17.2.7" - "@nx/js" "17.2.7" + "@nrwl/jest" "18.0.4" + "@nx/devkit" "18.0.4" + "@nx/js" "18.0.4" "@phenomnomnominal/tsquery" "~5.0.1" chalk "^4.1.0" identity-obj-proxy "3.0.0" jest-config "^29.4.1" jest-resolve "^29.4.1" jest-util "^29.4.1" + minimatch "9.0.3" resolve.exports "1.1.0" tslib "^2.3.0" -"@nx/js@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/js/-/js-17.2.7.tgz#f2f14bdcf5cd96e23dd2689641d8ce42e9c0b187" - integrity sha512-IghIrp26b9TprxDzJlqH1ZLer+dNmnSDjoT1jviQWcjNY/8wUxe3avd7niMCpfYD6+r7sSGPZ+KVQSRwT3L09g== +"@nx/js@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/js/-/js-18.0.4.tgz#7df0f30f858c1c9af2326aaeb1f67b8eb54369c5" + integrity sha512-ma8QMTHZm0LzGYZ1xdVfSUONKb1S5qbiI1DHxhztrsSo3jARZfSAMKM3Bm7ag9MBitpDsoUlgy7JCPmGCAcxAw== dependencies: - "@babel/core" "^7.22.9" + "@babel/core" "^7.23.2" "@babel/plugin-proposal-decorators" "^7.22.7" "@babel/plugin-transform-class-properties" "^7.22.5" - "@babel/plugin-transform-runtime" "^7.22.9" - "@babel/preset-env" "^7.22.9" + "@babel/plugin-transform-runtime" "^7.23.2" + "@babel/preset-env" "^7.23.2" "@babel/preset-typescript" "^7.22.5" "@babel/runtime" "^7.22.6" - "@nrwl/js" "17.2.7" - "@nx/devkit" "17.2.7" - "@nx/workspace" "17.2.7" + "@nrwl/js" "18.0.4" + "@nx/devkit" "18.0.4" + "@nx/workspace" "18.0.4" "@phenomnomnominal/tsquery" "~5.0.1" babel-plugin-const-enum "^1.0.1" babel-plugin-macros "^2.8.0" @@ -4559,135 +5038,136 @@ fs-extra "^11.1.0" ignore "^5.0.4" js-tokens "^4.0.0" - minimatch "3.0.5" + minimatch "9.0.3" npm-package-arg "11.0.1" npm-run-path "^4.0.1" ora "5.3.0" - semver "7.5.3" + semver "^7.5.3" source-map-support "0.5.19" ts-node "10.9.1" tsconfig-paths "^4.1.2" tslib "^2.3.0" -"@nx/linter@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/linter/-/linter-17.2.7.tgz#38364de5966bd8637ca830808c00fc8b7ab8406d" - integrity sha512-t85R1r+fiEV8wwU6mAD9kKq+YqAxwzBDp3Dx42cX5uokp2jsUKcTHYsibTJ7SVgViJicDLoVDonlJc8SxA0cfQ== +"@nx/linter@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/linter/-/linter-18.0.4.tgz#1526321b553ee175357025ccda836788c6411488" + integrity sha512-yCg7H63eWkjReQUagAFAoICD53ByYZDyRqlkarZe9AGRWJM4GYKhJntihsk1mUOO7Sz0a907BMaWk8Wn5HbHEA== dependencies: - "@nx/eslint" "17.2.7" + "@nx/eslint" "18.0.4" -"@nx/nest@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/nest/-/nest-17.2.7.tgz#1f2a1ad3a7a15b147601e427cd2d554cd75a20eb" - integrity sha512-Gjam5Bciq1AUv8VGtL56SeKv2NgZBgojSU85xJAfGbAUoOxgmiS2hbtORlScE0G22BU+mUFy0J7l9tlslq2amQ== +"@nx/nest@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/nest/-/nest-18.0.4.tgz#ecdd7843b38263406d9d916a0a3c700cf24efb44" + integrity sha512-6rUZhDD+q7TYrITphQTovT4YPa5wPpWdnE62A5+FEF+w5Yj4/5w01jNFrH2p/Ix1relfEUP7+vulCb7hxRNLFg== dependencies: "@nestjs/schematics" "^9.1.0" - "@nrwl/nest" "17.2.7" - "@nx/devkit" "17.2.7" - "@nx/eslint" "17.2.7" - "@nx/js" "17.2.7" - "@nx/node" "17.2.7" + "@nrwl/nest" "18.0.4" + "@nx/devkit" "18.0.4" + "@nx/eslint" "18.0.4" + "@nx/js" "18.0.4" + "@nx/node" "18.0.4" "@phenomnomnominal/tsquery" "~5.0.1" tslib "^2.3.0" -"@nx/node@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/node/-/node-17.2.7.tgz#930897cdef951ce83ba698617fa6dc83750c9668" - integrity sha512-u3mChRmUliQENH4wBYNfqx/0Cfzj6PB9Eaj7lvOwwdquLgUgGgkFXFfYTLjHuIClYhyn2ATR84LZ+NLMaLCvdA== +"@nx/node@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/node/-/node-18.0.4.tgz#00d5890cba68df2f7f317e1ecbc909821f4e9ae7" + integrity sha512-syjRRex+QuNTnDkIBG4z4Osu7vC5eYeb/nBZX6zmo/4H8y//tbBEjYRV2Yw4wpQp/gCA6fc+WFB9JkdfrMOwrA== dependencies: - "@nrwl/node" "17.2.7" - "@nx/devkit" "17.2.7" - "@nx/eslint" "17.2.7" - "@nx/jest" "17.2.7" - "@nx/js" "17.2.7" + "@nrwl/node" "18.0.4" + "@nx/devkit" "18.0.4" + "@nx/eslint" "18.0.4" + "@nx/jest" "18.0.4" + "@nx/js" "18.0.4" tslib "^2.3.0" -"@nx/nx-darwin-arm64@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-17.2.7.tgz#8399b96591757367c45b5c8ee5725dcbe60007e2" - integrity sha512-d534L13VUlnSW61rabBl3TTuSpzHxtqy8eF5vsYkFSMonBDjqqNR6+vFfQEa7PW/3Qfeuw4MpmojtamCYLd/TA== - -"@nx/nx-darwin-x64@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-17.2.7.tgz#1b9cf367cfa035f1443ac0e78f8e60968ab4775f" - integrity sha512-K1pHWiSiYTJqk//ZJylvuQcNZR9HUKvOxuh2540+6X9ThQ7kzkC1abXJ4c9wwH3fYDwL29m7glh3AueJvyaXJA== - -"@nx/nx-freebsd-x64@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-17.2.7.tgz#731e7f8f311e6fdf50b8a8b2b060b322a9e92ad4" - integrity sha512-VyouszZjV7Ew4qNrNfG8JApm7/UcreRuC+W/YZ2ORGzM0KUnB/D4rXGmeTp1Ff+L5WUhoomwEnaBkbgqu+2wjA== - -"@nx/nx-linux-arm-gnueabihf@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-17.2.7.tgz#a1db4a4898e0bb1e77bdf8dbf0959ca9d073dc23" - integrity sha512-YfwW8NYi33Li1Q7BDUusNlfpJNWfXOnHt6JKvQGc8fy8StmWq13zNnU0IxPQyqCDK5Ymx95IoctFrMLpeXPAwQ== - -"@nx/nx-linux-arm64-gnu@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-17.2.7.tgz#7abd71cc615f4ec93fabc31ad410bd7d8eb9e668" - integrity sha512-oJyEf2q+5jj6ci6WEXvRUoU2Sj0Mo+J/0NwtPY6sRIhqgPwpmxc6Pja4zmB16iQ5ap48zstB9glfJ6qtr3iU0Q== - -"@nx/nx-linux-arm64-musl@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-17.2.7.tgz#938ed7504ad1d0f305304250a71b8cf18bc10533" - integrity sha512-IzsCJgJCM61THBMDghz+EY5aCeO7wBWOWq2sTDek1ve67qZtu/E/Z5qBp93JRAvNYgQT7KbC40WhaXuE/NpWEA== - -"@nx/nx-linux-x64-gnu@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-17.2.7.tgz#8a39bfdfc990a2fb4f1679f68195e8cea97d8c99" - integrity sha512-CCY3o9zs9ypsT40GyRGQMfl63Wy3Spu21ULcteoLTI2/py601XIdhv6zclzBqeYIWPVxMoGGlIq10m2rdEeAOA== - -"@nx/nx-linux-x64-musl@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-17.2.7.tgz#0dac2eff58d11524192b2a8a36d70d7c2547e39e" - integrity sha512-hBzrXpoDg1OJBl/Ja5nU3oYTBk/FW6J+jTJM1zmXJOJ8Z7NR26I783qlVLQFDYkMynwGBE3kI4a7L87p633BRw== - -"@nx/nx-win32-arm64-msvc@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-17.2.7.tgz#f004b2fa0fe1af256c60ddfd90fe28348f1ed4e3" - integrity sha512-imLrVpeBXQwcYDUujBZRE9YG9lqM7F8Qw51JxmCxG2twijlVeofGWw0uVHM16t95cuizt/Ho+bTfNukV7Oza3g== - -"@nx/nx-win32-x64-msvc@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-17.2.7.tgz#5af5b3e6fe41f432831e809ba7efc02826af8ebe" - integrity sha512-MBQxvEE1sz47prRCid+axKwb6zqcbR4XBKj+l9V5NA7/0Rw5PHjrEfWv5Lr5TckYAdIZ1PVgPHlril6hX89evw== - -"@nx/storybook@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/storybook/-/storybook-17.2.7.tgz#1c43c0e1ed234c0c9f40406fc753321e869eab72" - integrity sha512-kDbk6oIWR/6ZesmJ2/cQQHz0fxG+4WBPHkbda4v8QevuGauPwaxoMXTqRTI0qtRK5nksAnfNIuvGgRfWqmBhpg== - dependencies: - "@nrwl/storybook" "17.2.7" - "@nx/cypress" "17.2.7" - "@nx/devkit" "17.2.7" - "@nx/eslint" "17.2.7" - "@nx/js" "17.2.7" +"@nx/nx-darwin-arm64@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-arm64/-/nx-darwin-arm64-18.0.4.tgz#c199b44ee21699acb14f6ecbada56ed19af936a3" + integrity sha512-9KJVONxUwdnFHHRNocsg7q5pliOTTfbjlr3rvhLuroV5HeTJFhUipKCQrVEhLy8e4auRdLuSz/HsgpJat3Z2cg== + +"@nx/nx-darwin-x64@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/nx-darwin-x64/-/nx-darwin-x64-18.0.4.tgz#859896881930d346afd6397b593f8d436722b80d" + integrity sha512-rFKHjeU0Ngz1R7UJAsbncpqwuFDjUdpcvI783r6s2eP7JoiiwtDBXvDcHiy8Odk0lPYmwDELaFZBhvdENqaDNA== + +"@nx/nx-freebsd-x64@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/nx-freebsd-x64/-/nx-freebsd-x64-18.0.4.tgz#2f295ff841e38f720aa9761e2c9eda90e372b380" + integrity sha512-jJx47wgRoUxVpQ+WG5+yLdxtJVuVgjphiTMRc0LOfUwKQaEHWyCA0hMK5fNmo0FAHIhGVCb/j2j9FxnCWTWpkg== + +"@nx/nx-linux-arm-gnueabihf@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm-gnueabihf/-/nx-linux-arm-gnueabihf-18.0.4.tgz#7ceb5531887996f4cf5e9ebda8dab34421d3a061" + integrity sha512-C3qWbFhEMIdTzvAHlIUHecZN3YBu7bx3S0p3gPNGmEMUMbYHP2zMlimBrZIbAxzntyGqWCqhXiFB21QhJ0t1Dw== + +"@nx/nx-linux-arm64-gnu@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-gnu/-/nx-linux-arm64-gnu-18.0.4.tgz#cfda70cedab2f3a7c5a9bb11ad4be180993b68c8" + integrity sha512-PxVMh9ikp8Q3hKagb66FAsek8O/08GcMF5dXBH7xc5AiQMaZ6Az/gAXOeHp274nmu3StQEpl9Il/YH6Z9f4V0w== + +"@nx/nx-linux-arm64-musl@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-arm64-musl/-/nx-linux-arm64-musl-18.0.4.tgz#1ce43e4803d3d5b3aeefa43ec54df7501b04a0b7" + integrity sha512-Iz7Z4h2/dXJJvBcyeRHa+d3Ncc4Qz+OiGm6iRDXv4zjFm5EyC1tkSZIFNlNiRjmTToNHFr4savrCjCh8wRYejw== + +"@nx/nx-linux-x64-gnu@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-gnu/-/nx-linux-x64-gnu-18.0.4.tgz#0981787e067d6dd7e3f4f457eb3e24c9b12dccaa" + integrity sha512-BVLkegIwxHnEB64VBraBxyC01D3C3dVNxq2b4iNaqr4mpWNmos+G/mvcTU3NS7W8ZjpBjlXgdEkpgkl2hMKTEA== + +"@nx/nx-linux-x64-musl@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/nx-linux-x64-musl/-/nx-linux-x64-musl-18.0.4.tgz#d2857870922ee76ed9f50763ec8bd3c6244c998a" + integrity sha512-WgVy41psjCE9uxjFi4P62UrWyKQ1e2IN2FZaIuwXEB9h8OU/+g9PFpL1Cs1llNoEKnapKXX4+9b5FHF9i7EKQw== + +"@nx/nx-win32-arm64-msvc@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-arm64-msvc/-/nx-win32-arm64-msvc-18.0.4.tgz#92c76b7b0e1616c273a231afc0f23f1a5e68f655" + integrity sha512-YoxhOrVKnS+kcNTnCg9M61cbigzGErYgnlI8kdZzH2ArD7mhv8bfZnSZUInf5Y8oDBVpKusel7AkCSofzSwigA== + +"@nx/nx-win32-x64-msvc@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/nx-win32-x64-msvc/-/nx-win32-x64-msvc-18.0.4.tgz#c57cbb5e42b10322cb966270a32a2f7869634186" + integrity sha512-FdAdl5buvtUXp8hZVRkK0AZeiCu35l0u+yHsulNViYdh3OXRT1hYJ0CeqpxlLfvbHqB9JzDPtJtG0dpKHH/O0Q== + +"@nx/storybook@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/storybook/-/storybook-18.0.4.tgz#5ffda43c41b1ba2f667463af047b78ae7207676c" + integrity sha512-tmKDAkuoQAxUzw9KLDQW8lnf1PHTo2JIjn+UFBs/MtT4M1YoT7z0ak4VsjxWzLOiGojwtd/cbXbLITxBRRtyaw== + dependencies: + "@nrwl/storybook" "18.0.4" + "@nx/cypress" "18.0.4" + "@nx/devkit" "18.0.4" + "@nx/eslint" "18.0.4" + "@nx/js" "18.0.4" "@phenomnomnominal/tsquery" "~5.0.1" - semver "7.5.3" + semver "^7.5.3" tslib "^2.3.0" -"@nx/web@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/web/-/web-17.2.7.tgz#d571950ecc4c261879a4fa0430477ebb942ecfe9" - integrity sha512-UhLD84jCLNwY/dC32v3Q5gAkBuj1p6a0h1ihcXqZdMUYbV6sjJhDAnjnfHyPJWgjaoI5t6VNSTJOaMZM9EMfzg== +"@nx/web@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/web/-/web-18.0.4.tgz#cea98618d4e5832e67c8d3aac09715f6e62d3702" + integrity sha512-lcZjFEUjFly/+C4dFMLNEk9mnlolKGPrd4Z5tly0iEZCJ1tSuOYfxPraZZJFeYO88Eh10lW28aGdiHote/PLXQ== dependencies: - "@nrwl/web" "17.2.7" - "@nx/devkit" "17.2.7" - "@nx/js" "17.2.7" + "@nrwl/web" "18.0.4" + "@nx/devkit" "18.0.4" + "@nx/js" "18.0.4" chalk "^4.1.0" detect-port "^1.5.1" http-server "^14.1.0" tslib "^2.3.0" -"@nx/webpack@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/webpack/-/webpack-17.2.7.tgz#5c849942616c8f0ff60edbcc47b55b5bd65e051e" - integrity sha512-OUxUNxgzEyrn36V4+1T3oQNKyukJphgb+DBNc6NWA9dEWf3U48KdfJuALeKoRZ5J+/lS95L8b/2ygSyu0EdpLw== +"@nx/webpack@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/webpack/-/webpack-18.0.4.tgz#9f0985c4e55736a26aeb26e1cc5bbfc1b4887be2" + integrity sha512-ugac88EiCDtt/WVeuR596FJanN6J4Y8EPNxO/4+Odh6+yumgQdi0Bg6OLsvmZn6M+v+Qwaqyjo5RIFMk/3pDLQ== dependencies: - "@babel/core" "^7.22.9" - "@nrwl/webpack" "17.2.7" - "@nx/devkit" "17.2.7" - "@nx/js" "17.2.7" + "@babel/core" "^7.23.2" + "@nrwl/webpack" "18.0.4" + "@nx/devkit" "18.0.4" + "@nx/js" "18.0.4" + ajv "^8.12.0" autoprefixer "^10.4.9" babel-loader "^9.1.2" browserslist "^4.21.4" @@ -4721,16 +5201,16 @@ webpack-node-externals "^3.0.0" webpack-subresource-integrity "^5.1.0" -"@nx/workspace@17.2.7": - version "17.2.7" - resolved "https://registry.yarnpkg.com/@nx/workspace/-/workspace-17.2.7.tgz#1c930feceb3ca20750124afc03ea71b5fee7de9e" - integrity sha512-/4xrFEc6Hjl9KaB+e/RSaQ/6vHWGP1MmhdX+TRvdjNIMbZ6kdDixBjusJ6WoHXm3KhP95cSt2xmwCQNUzVn+vw== +"@nx/workspace@18.0.4": + version "18.0.4" + resolved "https://registry.yarnpkg.com/@nx/workspace/-/workspace-18.0.4.tgz#e7b0b598ce7e60ee125b584135d6b76c8f99616a" + integrity sha512-0w7czYCU6+QczvdRN8HnKRU24xnam5Gf12mfw+uuU6ybslOQuRoKW+oUROwyck5P4I27XzgxcqnMTCxNDcQGWQ== dependencies: - "@nrwl/workspace" "17.2.7" - "@nx/devkit" "17.2.7" + "@nrwl/workspace" "18.0.4" + "@nx/devkit" "18.0.4" chalk "^4.1.0" enquirer "~2.3.6" - nx "17.2.7" + nx "18.0.4" tslib "^2.3.0" yargs-parser "21.1.1" @@ -4795,46 +5275,46 @@ resolved "https://registry.yarnpkg.com/@pkgjs/parseargs/-/parseargs-0.11.0.tgz#a77ea742fab25775145434eb1d2328cf5013ac33" integrity sha512-+1VkjdD0QBLPodGrJUeqarH8VAIvQODIbwh9XpP5Syisf7YoQgsJKPNFoqqLQlu+VQ/tVSshMR6loPMn8U+dPg== -"@prisma/client@5.7.1": - version "5.7.1" - resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.7.1.tgz#a124afd05663267f7255a639a81d28303684a063" - integrity sha512-TUSa4nUcC4nf/e7X3jyO1pEd6XcI/TLRCA0KjkA46RDIpxUaRsBYEOqITwXRW2c0bMFyKcCRXrH4f7h4q9oOlg== +"@prisma/client@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/client/-/client-5.9.1.tgz#d92bd2f7f006e0316cb4fda9d73f235965cf2c64" + integrity sha512-caSOnG4kxcSkhqC/2ShV7rEoWwd3XrftokxJqOCMVvia4NYV/TPtJlS9C2os3Igxw/Qyxumj9GBQzcStzECvtQ== -"@prisma/debug@5.7.1": - version "5.7.1" - resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.7.1.tgz#064177066e630beb43492ffa608acc21a118e2ce" - integrity sha512-yrVSO/YZOxdeIxcBtZ5BaNqUfPrZkNsAKQIQg36cJKMxj/VYK3Vk5jMKkI+gQLl0KReo1YvX8GWKfV788SELjw== +"@prisma/debug@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/debug/-/debug-5.9.1.tgz#906274e73d3267f88b69459199fa3c51cd9511a3" + integrity sha512-yAHFSFCg8KVoL0oRUno3m60GAjsUKYUDkQ+9BA2X2JfVR3kRVSJFc/GpQ2fSORi4pSHZR9orfM4UC9OVXIFFTA== -"@prisma/engines-version@5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5": - version "5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5" - resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5.tgz#b7845425313e5395a3a3e64f3e0d04c1f320fa92" - integrity sha512-dIR5IQK/ZxEoWRBDOHF87r1Jy+m2ih3Joi4vzJRP+FOj5yxCwS2pS5SBR3TWoVnEK1zxtLI/3N7BjHyGF84fgw== +"@prisma/engines-version@5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64": + version "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64" + resolved "https://registry.yarnpkg.com/@prisma/engines-version/-/engines-version-5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64.tgz#54d2164f28d23e09d41cf9eb0bddbbe7f3aaa660" + integrity sha512-HFl7275yF0FWbdcNvcSRbbu9JCBSLMcurYwvWc8WGDnpu7APxQo2ONtZrUggU3WxLxUJ2uBX+0GOFIcJeVeOOQ== -"@prisma/engines@5.7.1": - version "5.7.1" - resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.7.1.tgz#631c27daa326bbacd5d7119446e0d3f15c0f274c" - integrity sha512-R+Pqbra8tpLP2cvyiUpx+SIKglav3nTCpA+rn6826CThviQ8yvbNG0s8jNpo51vS9FuZO3pOkARqG062vKX7uA== +"@prisma/engines@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/engines/-/engines-5.9.1.tgz#767539afc6f193a182d0495b30b027f61f279073" + integrity sha512-gkdXmjxQ5jktxWNdDA5aZZ6R8rH74JkoKq6LD5mACSvxd2vbqWeWIOV0Py5wFC8vofOYShbt6XUeCIUmrOzOnQ== dependencies: - "@prisma/debug" "5.7.1" - "@prisma/engines-version" "5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5" - "@prisma/fetch-engine" "5.7.1" - "@prisma/get-platform" "5.7.1" + "@prisma/debug" "5.9.1" + "@prisma/engines-version" "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64" + "@prisma/fetch-engine" "5.9.1" + "@prisma/get-platform" "5.9.1" -"@prisma/fetch-engine@5.7.1": - version "5.7.1" - resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.7.1.tgz#d7baa3493867c6f7cedfc41df477cfd0963059ca" - integrity sha512-9ELauIEBkIaEUpMIYPRlh5QELfoC6pyHolHVQgbNxglaINikZ9w9X7r1TIePAcm05pCNp2XPY1ObQIJW5nYfBQ== +"@prisma/fetch-engine@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/fetch-engine/-/fetch-engine-5.9.1.tgz#5d3b2c9af54a242e37b3f9561b59ab72f8e92818" + integrity sha512-l0goQOMcNVOJs1kAcwqpKq3ylvkD9F04Ioe1oJoCqmz05mw22bNAKKGWuDd3zTUoUZr97va0c/UfLNru+PDmNA== dependencies: - "@prisma/debug" "5.7.1" - "@prisma/engines-version" "5.7.1-1.0ca5ccbcfa6bdc81c003cf549abe4269f59c41e5" - "@prisma/get-platform" "5.7.1" + "@prisma/debug" "5.9.1" + "@prisma/engines-version" "5.9.0-32.23fdc5965b1e05fc54e5f26ed3de66776b93de64" + "@prisma/get-platform" "5.9.1" -"@prisma/get-platform@5.7.1": - version "5.7.1" - resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.7.1.tgz#bc2fe43838c7d47b321aa4728a0f60990d02bc9e" - integrity sha512-eDlswr3a1m5z9D/55Iyt/nZqS5UpD+DZ9MooBB3hvrcPhDQrcf9m4Tl7buy4mvAtrubQ626ECtb8c6L/f7rGSQ== +"@prisma/get-platform@5.9.1": + version "5.9.1" + resolved "https://registry.yarnpkg.com/@prisma/get-platform/-/get-platform-5.9.1.tgz#a66bb46ab4d30db786c84150ef074ab0aad4549e" + integrity sha512-6OQsNxTyhvG+T2Ksr8FPFpuPeL4r9u0JF0OZHUBI/Uy9SS43sPyAIutt4ZEAyqWQt104ERh70EZedkHZKsnNbg== dependencies: - "@prisma/debug" "5.7.1" + "@prisma/debug" "5.9.1" "@radix-ui/number@1.0.1": version "1.0.1" @@ -5126,6 +5606,71 @@ dependencies: "@babel/runtime" "^7.13.10" +"@rollup/rollup-android-arm-eabi@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm-eabi/-/rollup-android-arm-eabi-4.10.0.tgz#786eaf6372be2fc209cc957c14aa9d3ff8fefe6a" + integrity sha512-/MeDQmcD96nVoRumKUljsYOLqfv1YFJps+0pTrb2Z9Nl/w5qNUysMaWQsrd1mvAlNT4yza1iVyIu4Q4AgF6V3A== + +"@rollup/rollup-android-arm64@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-android-arm64/-/rollup-android-arm64-4.10.0.tgz#0114a042fd6396f4f3233e6171fd5b61a36ed539" + integrity sha512-lvu0jK97mZDJdpZKDnZI93I0Om8lSDaiPx3OiCk0RXn3E8CMPJNS/wxjAvSJJzhhZpfjXsjLWL8LnS6qET4VNQ== + +"@rollup/rollup-darwin-arm64@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-arm64/-/rollup-darwin-arm64-4.10.0.tgz#944d007c1dc71a8c9174d11671c0c34bd74a2c81" + integrity sha512-uFpayx8I8tyOvDkD7X6n0PriDRWxcqEjqgtlxnUA/G9oS93ur9aZ8c8BEpzFmsed1TH5WZNG5IONB8IiW90TQg== + +"@rollup/rollup-darwin-x64@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-darwin-x64/-/rollup-darwin-x64-4.10.0.tgz#1d08cb4521a058d7736ab1c7fe988daf034a2598" + integrity sha512-nIdCX03qFKoR/MwQegQBK+qZoSpO3LESurVAC6s6jazLA1Mpmgzo3Nj3H1vydXp/JM29bkCiuF7tDuToj4+U9Q== + +"@rollup/rollup-linux-arm-gnueabihf@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm-gnueabihf/-/rollup-linux-arm-gnueabihf-4.10.0.tgz#4763eec1591bf0e99a54ad3d1ef39cb268ed7b19" + integrity sha512-Fz7a+y5sYhYZMQFRkOyCs4PLhICAnxRX/GnWYReaAoruUzuRtcf+Qnw+T0CoAWbHCuz2gBUwmWnUgQ67fb3FYw== + +"@rollup/rollup-linux-arm64-gnu@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-gnu/-/rollup-linux-arm64-gnu-4.10.0.tgz#e6dae70c53ace836973526c41803b877cffc6f7b" + integrity sha512-yPtF9jIix88orwfTi0lJiqINnlWo6p93MtZEoaehZnmCzEmLL0eqjA3eGVeyQhMtxdV+Mlsgfwhh0+M/k1/V7Q== + +"@rollup/rollup-linux-arm64-musl@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-arm64-musl/-/rollup-linux-arm64-musl-4.10.0.tgz#5692e1a0feba0cc4a933864961afc3211177d242" + integrity sha512-9GW9yA30ib+vfFiwjX+N7PnjTnCMiUffhWj4vkG4ukYv1kJ4T9gHNg8zw+ChsOccM27G9yXrEtMScf1LaCuoWQ== + +"@rollup/rollup-linux-riscv64-gnu@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-riscv64-gnu/-/rollup-linux-riscv64-gnu-4.10.0.tgz#fbe3d80f7a7ac54a8847f5bddd1bc6f7b9ccb65f" + integrity sha512-X1ES+V4bMq2ws5fF4zHornxebNxMXye0ZZjUrzOrf7UMx1d6wMQtfcchZ8SqUnQPPHdOyOLW6fTcUiFgHFadRA== + +"@rollup/rollup-linux-x64-gnu@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-gnu/-/rollup-linux-x64-gnu-4.10.0.tgz#3f06b55ccf173446d390d0306643dff62ec99807" + integrity sha512-w/5OpT2EnI/Xvypw4FIhV34jmNqU5PZjZue2l2Y3ty1Ootm3SqhI+AmfhlUYGBTd9JnpneZCDnt3uNOiOBkMyw== + +"@rollup/rollup-linux-x64-musl@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-linux-x64-musl/-/rollup-linux-x64-musl-4.10.0.tgz#e4ac9b27041c83d7faab6205f62763103eb317ba" + integrity sha512-q/meftEe3QlwQiGYxD9rWwB21DoKQ9Q8wA40of/of6yGHhZuGfZO0c3WYkN9dNlopHlNT3mf5BPsUSxoPuVQaw== + +"@rollup/rollup-win32-arm64-msvc@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-arm64-msvc/-/rollup-win32-arm64-msvc-4.10.0.tgz#6ad0d4fb0066f240778ee3f61eecf7aa0357f883" + integrity sha512-NrR6667wlUfP0BHaEIKgYM/2va+Oj+RjZSASbBMnszM9k+1AmliRjHc3lJIiOehtSSjqYiO7R6KLNrWOX+YNSQ== + +"@rollup/rollup-win32-ia32-msvc@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-ia32-msvc/-/rollup-win32-ia32-msvc-4.10.0.tgz#29d50292381311cc8d3623e73b427b7e2e40a653" + integrity sha512-FV0Tpt84LPYDduIDcXvEC7HKtyXxdvhdAOvOeWMWbQNulxViH2O07QXkT/FffX4FqEI02jEbCJbr+YcuKdyyMg== + +"@rollup/rollup-win32-x64-msvc@4.10.0": + version "4.10.0" + resolved "https://registry.yarnpkg.com/@rollup/rollup-win32-x64-msvc/-/rollup-win32-x64-msvc-4.10.0.tgz#4eedd01af3a82c1acb0fe6d837ebf339c4cbf839" + integrity sha512-OZoJd+o5TaTSQeFFQ6WjFCiltiYVjIdsXxwu/XZ8qRpsvMQr4UsVrE5UyT9RIvsnuF47DqkJKhhVZ2Q9YW9IpQ== + "@samverschueren/stream-to-observable@^0.3.0": version "0.3.1" resolved "https://registry.yarnpkg.com/@samverschueren/stream-to-observable/-/stream-to-observable-0.3.1.tgz#a21117b19ee9be70c379ec1877537ef2e1c63301" @@ -5133,7 +5678,16 @@ dependencies: any-observable "^0.3.0" -"@schematics/angular@17.0.0", "@schematics/angular@^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0": +"@schematics/angular@17.1.3": + version "17.1.3" + resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-17.1.3.tgz#3c3e0f67985ed500d9d3b66fdb63387cc775e9a9" + integrity sha512-hmeasOvzmniy6urtzUKhEqGO67iPuLX/dVtkF4nWp2NTtcEKlvcJobNDMc+CTlX4+ZMPVOvmhDMQqrlfekZ+NQ== + dependencies: + "@angular-devkit/core" "17.1.3" + "@angular-devkit/schematics" "17.1.3" + jsonc-parser "3.2.0" + +"@schematics/angular@^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0": version "17.0.0" resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-17.0.0.tgz#63ddf8bfbb3b117fe7a355bd22b43d2c9ff7f0ee" integrity sha512-9jKU5x/WzaBsfSkUowK1X74FqtMXa6+A60XgW4ACO8i6fwKfPeS+tIrAieeYOX80/njBh7I5CvcpHmWA2SbcXQ== @@ -5142,15 +5696,6 @@ "@angular-devkit/schematics" "17.0.0" jsonc-parser "3.2.0" -"@schematics/angular@17.0.7": - version "17.0.7" - resolved "https://registry.yarnpkg.com/@schematics/angular/-/angular-17.0.7.tgz#7e4e411f523413a6a80aad1309b5e278a2baca7b" - integrity sha512-d7QKmcKrM4owb/2bR7Ipf23roiNbvbD/x7reNhQAtKAPLSHJ3Ulkf1+Yv+dj+9f+K7y9SBviEUSrD27BQ9WaxQ== - dependencies: - "@angular-devkit/core" "17.0.7" - "@angular-devkit/schematics" "17.0.7" - jsonc-parser "3.2.0" - "@sigstore/bundle@^2.1.0": version "2.1.0" resolved "https://registry.yarnpkg.com/@sigstore/bundle/-/bundle-2.1.0.tgz#c6140ca97b68815edf7c4fb7bdbf58d656525c39" @@ -5236,11 +5781,6 @@ dependencies: "@sinonjs/commons" "^3.0.0" -"@socket.io/component-emitter@~3.1.0": - version "3.1.0" - resolved "https://registry.yarnpkg.com/@socket.io/component-emitter/-/component-emitter-3.1.0.tgz#96116f2a912e0c02817345b3c10751069920d553" - integrity sha512-+9jVqKhRSpsc591z5vX+X5Yyw+he/HCB4iQ/RYxw35CEPaY1gnsNE43nf9n9AaYjAQrTiI/mOwKUKdUs9vf7Xg== - "@stencil/core@^2.18.0": version "2.22.3" resolved "https://registry.yarnpkg.com/@stencil/core/-/core-2.22.3.tgz#83987e20bba855c450f6d6780e3a20192603f13f" @@ -6201,6 +6741,13 @@ resolved "https://registry.yarnpkg.com/@swc/counter/-/counter-0.1.2.tgz#bf06d0770e47c6f1102270b744e17b934586985e" integrity sha512-9F4ys4C74eSTEUNndnER3VJ15oru2NumfQxS8geE+f3eB5xvfxpWyqE5XlVnxb/R14uoXi6SLbBwwiDSkv+XEw== +"@swc/helpers@^0.5.0": + version "0.5.3" + resolved "https://registry.yarnpkg.com/@swc/helpers/-/helpers-0.5.3.tgz#98c6da1e196f5f08f977658b80d6bd941b5f294f" + integrity sha512-FaruWX6KdudYloq1AHD/4nU+UsMTdNE8CKyrseXWEcgjDAbvkwJg2QGPAnfIJLIWsjZOSPLOAykK6fuYp4vp4A== + dependencies: + tslib "^2.4.0" + "@swc/types@^0.1.5": version "0.1.5" resolved "https://registry.yarnpkg.com/@swc/types/-/types-0.1.5.tgz#043b731d4f56a79b4897a3de1af35e75d56bc63a" @@ -6218,6 +6765,18 @@ resolved "https://registry.yarnpkg.com/@tootallnate/once/-/once-2.0.0.tgz#f544a148d3ab35801c1f633a7441fd87c2e484bf" integrity sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A== +"@trivago/prettier-plugin-sort-imports@4.3.0": + version "4.3.0" + resolved "https://registry.yarnpkg.com/@trivago/prettier-plugin-sort-imports/-/prettier-plugin-sort-imports-4.3.0.tgz#725f411646b3942193a37041c84e0b2116339789" + integrity sha512-r3n0onD3BTOVUNPhR4lhVK4/pABGpbA7bW3eumZnYdKaHkf1qEC+Mag6DPbGNuuh0eG8AaYj+YqmVHSiGslaTQ== + dependencies: + "@babel/generator" "7.17.7" + "@babel/parser" "^7.20.5" + "@babel/traverse" "7.23.2" + "@babel/types" "7.17.0" + javascript-natural-sort "0.7.1" + lodash "^4.17.21" + "@trysound/sax@0.2.0": version "0.2.0" resolved "https://registry.yarnpkg.com/@trysound/sax/-/sax-0.2.0.tgz#cccaab758af56761eb7bf37af6f03f326dd798ad" @@ -6256,6 +6815,17 @@ "@tufjs/canonical-json" "2.0.0" minimatch "^9.0.3" +"@types/babel__core@7.20.2": + version "7.20.2" + resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.2.tgz#215db4f4a35d710256579784a548907237728756" + integrity sha512-pNpr1T1xLUc2l3xJKuPtsEky3ybxN3m4fJkknfIpTCTfIZCDW57oAg+EfCgIIp2rvCe0Wn++/FfodDS4YXxBwA== + dependencies: + "@babel/parser" "^7.20.7" + "@babel/types" "^7.20.7" + "@types/babel__generator" "*" + "@types/babel__template" "*" + "@types/babel__traverse" "*" + "@types/babel__core@^7.0.0", "@types/babel__core@^7.1.14": version "7.20.3" resolved "https://registry.yarnpkg.com/@types/babel__core/-/babel__core-7.20.3.tgz#d5625a50b6f18244425a1359a858c73d70340778" @@ -6366,18 +6936,6 @@ dependencies: "@types/node" "*" -"@types/cookie@^0.4.1": - version "0.4.1" - resolved "https://registry.yarnpkg.com/@types/cookie/-/cookie-0.4.1.tgz#bfd02c1f2224567676c1545199f87c3a861d878d" - integrity sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q== - -"@types/cors@^2.8.12": - version "2.8.16" - resolved "https://registry.yarnpkg.com/@types/cors/-/cors-2.8.16.tgz#a24bf65acd216c078890ca6ceb91e672adb158e7" - integrity sha512-Trx5or1Nyg1Fq138PCuWqoApzvoSLWzZ25ORBiHMbbUT42g578lH1GT4TwYDbiUOLFuDsCkfLneT2105fsFWGg== - dependencies: - "@types/node" "*" - "@types/cross-spawn@^6.0.2": version "6.0.4" resolved "https://registry.yarnpkg.com/@types/cross-spawn/-/cross-spawn-6.0.4.tgz#e658d29e2308a01f48b7b30fd8cdf07aeb2e5a82" @@ -6450,6 +7008,11 @@ resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.3.tgz#2be19e759a3dd18c79f9f436bd7363556c1a73dd" integrity sha512-CS2rOaoQ/eAgAfcTfq6amKG7bsN+EMcgGY4FAFQdvSj2y1ixvOZTUA9mOtCai7E1SYu283XNw7urKK30nP3wkQ== +"@types/estree@1.0.5": + version "1.0.5" + resolved "https://registry.yarnpkg.com/@types/estree/-/estree-1.0.5.tgz#a6ce3e556e00fd9895dd872dd172ad0d4bd687f4" + integrity sha512-/kYRxGDLWzHOB7q+wtSUQlFrtcdUccpfy+X+9iMBpHK8QLLhx2wIPYuS5DYtR9Wa/YlZAbIovy7qVdB1Aq6Lyw== + "@types/express-serve-static-core@*", "@types/express-serve-static-core@^4.17.33": version "4.17.39" resolved "https://registry.yarnpkg.com/@types/express-serve-static-core/-/express-serve-static-core-4.17.39.tgz#2107afc0a4b035e6cb00accac3bdf2d76ae408c8" @@ -6483,14 +7046,6 @@ "@types/jsonfile" "*" "@types/node" "*" -"@types/glob@^7.1.1": - version "7.2.0" - resolved "https://registry.yarnpkg.com/@types/glob/-/glob-7.2.0.tgz#bc1b5bf3aa92f25bd5dd39f35c57361bdce5b2eb" - integrity sha512-ZUxbzKl0IfJILTS6t7ip5fQQM/J3TJYubDm3nMbgubNNYS62eXeUpoLUC8/7fJNiFYHTrGPQn7hspDUzIHX3UA== - dependencies: - "@types/minimatch" "*" - "@types/node" "*" - "@types/glob@^8.0.0": version "8.1.0" resolved "https://registry.yarnpkg.com/@types/glob/-/glob-8.1.0.tgz#b63e70155391b0584dce44e7ea25190bbc38f2fc" @@ -6642,7 +7197,7 @@ resolved "https://registry.yarnpkg.com/@types/mime/-/mime-1.3.4.tgz#a4ed836e069491414bab92c31fdea9e557aca0d9" integrity sha512-1Gjee59G25MrQGk8bsNvC6fxNiRgUlGn2wlhGf95a59DrprnnHk80FIMMFG9XHMdrfsuA119ht06QPDXA1Z7tw== -"@types/minimatch@*", "@types/minimatch@^5.1.2": +"@types/minimatch@^5.1.2": version "5.1.2" resolved "https://registry.yarnpkg.com/@types/minimatch/-/minimatch-5.1.2.tgz#07508b45797cb81ec3f273011b054cd0755eddca" integrity sha512-K0VQKziLUWkVKiRVrx4a40iPaxTUefQmjtkQofBkYRcoaaL/8rhwDWww9qWbrgicNOgnpIsMxyNIUM4+n6dUIA== @@ -6679,13 +7234,6 @@ resolved "https://registry.yarnpkg.com/@types/node/-/node-18.16.9.tgz#e79416d778a8714597342bb87efb5a6e914f7a73" integrity sha512-IeB32oIV4oGArLrd7znD2rkHQ6EDCM+2Sr76dJnrHwv9OHBTTM6nuDLK9bmikXzPa0ZlWMWtRGo/Uw4mrzQedA== -"@types/node@>=10.0.0": - version "20.9.0" - resolved "https://registry.yarnpkg.com/@types/node/-/node-20.9.0.tgz#bfcdc230583aeb891cf51e73cfdaacdd8deae298" - integrity sha512-nekiGu2NDb1BcVofVcEKMIwzlx4NjHlcjhoxxKBNLtz15Y1z7MYf549DFvkHSId02Ax6kGwWntIBPC3l/JZcmw== - dependencies: - undici-types "~5.26.4" - "@types/node@^16.0.0": version "16.18.59" resolved "https://registry.yarnpkg.com/@types/node/-/node-16.18.59.tgz#4cdbd631be6d9be266a96fb17b5d0d7ad6bbe26c" @@ -6928,40 +7476,34 @@ dependencies: "@types/yargs-parser" "*" -"@typescript-eslint/eslint-plugin@5.51.0": - version "5.51.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-5.51.0.tgz#da3f2819633061ced84bb82c53bba45a6fe9963a" - integrity sha512-wcAwhEWm1RgNd7dxD/o+nnLW8oH+6RK1OGnmbmkj/GGoDPV1WWMVP0FXYQBivKHdwM1pwii3bt//RC62EriIUQ== +"@typescript-eslint/eslint-plugin@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-6.21.0.tgz#30830c1ca81fd5f3c2714e524c4303e0194f9cd3" + integrity sha512-oy9+hTPCUFpngkEZUSzbf9MxI65wbKFoQYsgPdILTfbUldp5ovUuphZVe4i30emU9M/kP+T64Di0mxl7dSw3MA== dependencies: - "@typescript-eslint/scope-manager" "5.51.0" - "@typescript-eslint/type-utils" "5.51.0" - "@typescript-eslint/utils" "5.51.0" + "@eslint-community/regexpp" "^4.5.1" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/type-utils" "6.21.0" + "@typescript-eslint/utils" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" debug "^4.3.4" - grapheme-splitter "^1.0.4" - ignore "^5.2.0" - natural-compare-lite "^1.4.0" - regexpp "^3.2.0" - semver "^7.3.7" - tsutils "^3.21.0" + graphemer "^1.4.0" + ignore "^5.2.4" + natural-compare "^1.4.0" + semver "^7.5.4" + ts-api-utils "^1.0.1" -"@typescript-eslint/parser@5.51.0": - version "5.51.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-5.51.0.tgz#2d74626652096d966ef107f44b9479f02f51f271" - integrity sha512-fEV0R9gGmfpDeRzJXn+fGQKcl0inIeYobmmUWijZh9zA7bxJ8clPhV9up2ZQzATxAiFAECqPQyMDB4o4B81AaA== +"@typescript-eslint/parser@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/parser/-/parser-6.21.0.tgz#af8fcf66feee2edc86bc5d1cf45e33b0630bf35b" + integrity sha512-tbsV1jPne5CkFQCgPBcDOt30ItF7aJoZL997JSF7MhGQqOeT3svWRYxiqlfA5RUdlHN6Fi+EI9bxqbdyAUZjYQ== dependencies: - "@typescript-eslint/scope-manager" "5.51.0" - "@typescript-eslint/types" "5.51.0" - "@typescript-eslint/typescript-estree" "5.51.0" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" debug "^4.3.4" -"@typescript-eslint/scope-manager@5.51.0": - version "5.51.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.51.0.tgz#ad3e3c2ecf762d9a4196c0fbfe19b142ac498990" - integrity sha512-gNpxRdlx5qw3yaHA0SFuTjW4rxeYhpHxt491PEcKF8Z6zpq0kMhe0Tolxt0qjlojS+/wArSDlj/LtE69xUJphQ== - dependencies: - "@typescript-eslint/types" "5.51.0" - "@typescript-eslint/visitor-keys" "5.51.0" - "@typescript-eslint/scope-manager@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c" @@ -6970,14 +7512,6 @@ "@typescript-eslint/types" "5.62.0" "@typescript-eslint/visitor-keys" "5.62.0" -"@typescript-eslint/scope-manager@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.13.1.tgz#58c7c37c6a957d3d9f59bc4f64c2888e0cac1d70" - integrity sha512-BW0kJ7ceiKi56GbT2KKzZzN+nDxzQK2DS6x0PiSMPjciPgd/JRQGMibyaN2cPt2cAvuoH0oNvn2fwonHI+4QUQ== - dependencies: - "@typescript-eslint/types" "6.13.1" - "@typescript-eslint/visitor-keys" "6.13.1" - "@typescript-eslint/scope-manager@6.14.0": version "6.14.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.14.0.tgz#53d24363fdb5ee0d1d8cda4ed5e5321272ab3d48" @@ -6986,31 +7520,39 @@ "@typescript-eslint/types" "6.14.0" "@typescript-eslint/visitor-keys" "6.14.0" -"@typescript-eslint/scope-manager@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.15.0.tgz#40e5214a3e9e048aca55ce33381bc61b6b51c32a" - integrity sha512-+BdvxYBltqrmgCNu4Li+fGDIkW9n//NrruzG9X1vBzaNK+ExVXPoGB71kneaVw/Jp+4rH/vaMAGC6JfMbHstVg== +"@typescript-eslint/scope-manager@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.19.0.tgz#b6d2abb825b29ab70cb542d220e40c61c1678116" + integrity sha512-dO1XMhV2ehBI6QN8Ufi7I10wmUovmLU0Oru3n5LVlM2JuzB4M+dVphCPLkVpKvGij2j/pHBWuJ9piuXx+BhzxQ== + dependencies: + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" + +"@typescript-eslint/scope-manager@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-6.21.0.tgz#ea8a9bfc8f1504a6ac5d59a6df308d3a0630a2b1" + integrity sha512-OwLUIWZJry80O99zvqXVEioyniJMa+d2GrqpUTqi5/v5D5rOrppJVBPa0yKCblcigC0/aYAzxxqQ1B+DS2RYsg== dependencies: - "@typescript-eslint/types" "6.15.0" - "@typescript-eslint/visitor-keys" "6.15.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" -"@typescript-eslint/type-utils@5.51.0": - version "5.51.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.51.0.tgz#7af48005531700b62a20963501d47dfb27095988" - integrity sha512-QHC5KKyfV8sNSyHqfNa0UbTbJ6caB8uhcx2hYcWVvJAZYJRBo5HyyZfzMdRx8nvS+GyMg56fugMzzWnojREuQQ== +"@typescript-eslint/type-utils@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.19.0.tgz#522a494ef0d3e9fdc5e23a7c22c9331bbade0101" + integrity sha512-mcvS6WSWbjiSxKCwBcXtOM5pRkPQ6kcDds/juxcy/727IQr3xMEcwr/YLHW2A2+Fp5ql6khjbKBzOyjuPqGi/w== dependencies: - "@typescript-eslint/typescript-estree" "5.51.0" - "@typescript-eslint/utils" "5.51.0" + "@typescript-eslint/typescript-estree" "6.19.0" + "@typescript-eslint/utils" "6.19.0" debug "^4.3.4" - tsutils "^3.21.0" + ts-api-utils "^1.0.1" -"@typescript-eslint/type-utils@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.13.1.tgz#e6e5885e387841cae9c38fc0638fd8b7561973d6" - integrity sha512-A2qPlgpxx2v//3meMqQyB1qqTg1h1dJvzca7TugM3Yc2USDY+fsRBiojAEo92HO7f5hW5mjAUF6qobOPzlBCBQ== +"@typescript-eslint/type-utils@6.21.0", "@typescript-eslint/type-utils@^6.13.2": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-6.21.0.tgz#6473281cfed4dacabe8004e8521cee0bd9d4c01e" + integrity sha512-rZQI7wHfao8qMX3Rd3xqeYSMCL3SoiSQLBATSiVKARdFGCYSRvmViieZjqc58jKgs8Y8i9YvVVhRbHSTA4VBag== dependencies: - "@typescript-eslint/typescript-estree" "6.13.1" - "@typescript-eslint/utils" "6.13.1" + "@typescript-eslint/typescript-estree" "6.21.0" + "@typescript-eslint/utils" "6.21.0" debug "^4.3.4" ts-api-utils "^1.0.1" @@ -7024,43 +7566,25 @@ debug "^4.3.4" ts-api-utils "^1.0.1" -"@typescript-eslint/types@5.51.0": - version "5.51.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.51.0.tgz#e7c1622f46c7eea7e12bbf1edfb496d4dec37c90" - integrity sha512-SqOn0ANn/v6hFn0kjvLwiDi4AzR++CBZz0NV5AnusT2/3y32jdc0G4woXPWHCumWtUXZKPAS27/9vziSsC9jnw== - "@typescript-eslint/types@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f" integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ== -"@typescript-eslint/types@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.13.1.tgz#b56f26130e7eb8fa1e429c75fb969cae6ad7bb5c" - integrity sha512-gjeEskSmiEKKFIbnhDXUyiqVma1gRCQNbVZ1C8q7Zjcxh3WZMbzWVfGE9rHfWd1msQtPS0BVD9Jz9jded44eKg== - "@typescript-eslint/types@6.14.0": version "6.14.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.14.0.tgz#935307f7a931016b7a5eb25d494ea3e1f613e929" integrity sha512-uty9H2K4Xs8E47z3SnXEPRNDfsis8JO27amp2GNCnzGETEW3yTqEIVg5+AI7U276oGF/tw6ZA+UesxeQ104ceA== -"@typescript-eslint/types@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.15.0.tgz#a9f7b006aee52b0948be6e03f521814bf435ddd5" - integrity sha512-yXjbt//E4T/ee8Ia1b5mGlbNj9fB9lJP4jqLbZualwpP2BCQ5is6BcWwxpIsY4XKAhmdv3hrW92GdtJbatC6dQ== +"@typescript-eslint/types@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.19.0.tgz#689b0498c436272a6a2059b09f44bcbd90de294a" + integrity sha512-lFviGV/vYhOy3m8BJ/nAKoAyNhInTdXpftonhWle66XHAtT1ouBlkjL496b5H5hb8dWXHwtypTqgtb/DEa+j5A== -"@typescript-eslint/typescript-estree@5.51.0": - version "5.51.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.51.0.tgz#0ec8170d7247a892c2b21845b06c11eb0718f8de" - integrity sha512-TSkNupHvNRkoH9FMA3w7TazVFcBPveAAmb7Sz+kArY6sLT86PA5Vx80cKlYmd8m3Ha2SwofM1KwraF24lM9FvA== - dependencies: - "@typescript-eslint/types" "5.51.0" - "@typescript-eslint/visitor-keys" "5.51.0" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.3.7" - tsutils "^3.21.0" +"@typescript-eslint/types@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-6.21.0.tgz#205724c5123a8fef7ecd195075fa6e85bac3436d" + integrity sha512-1kFmZ1rOm5epu9NZEZm1kckCDGj5UJEf7P1kliH4LKu/RkwpsfqqGmY2OOcUs18lSlQBKLDYBOGxRVtrMN5lpg== "@typescript-eslint/typescript-estree@5.62.0": version "5.62.0" @@ -7075,19 +7599,6 @@ semver "^7.3.7" tsutils "^3.21.0" -"@typescript-eslint/typescript-estree@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.13.1.tgz#d01dda78d2487434d1c503853fa00291c566efa4" - integrity sha512-sBLQsvOC0Q7LGcUHO5qpG1HxRgePbT6wwqOiGLpR8uOJvPJbfs0mW3jPA3ujsDvfiVwVlWUDESNXv44KtINkUQ== - dependencies: - "@typescript-eslint/types" "6.13.1" - "@typescript-eslint/visitor-keys" "6.13.1" - debug "^4.3.4" - globby "^11.1.0" - is-glob "^4.0.3" - semver "^7.5.4" - ts-api-utils "^1.0.1" - "@typescript-eslint/typescript-estree@6.14.0": version "6.14.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.14.0.tgz#90c7ddd45cd22139adf3d4577580d04c9189ac13" @@ -7101,45 +7612,33 @@ semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/typescript-estree@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.15.0.tgz#2f8a513df1ce5e6e1ba8e5c6aa52f392ae023fc5" - integrity sha512-7mVZJN7Hd15OmGuWrp2T9UvqR2Ecg+1j/Bp1jXUEY2GZKV6FXlOIoqVDmLpBiEiq3katvj/2n2mR0SDwtloCew== +"@typescript-eslint/typescript-estree@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.19.0.tgz#0813ba364a409afb4d62348aec0202600cb468fa" + integrity sha512-o/zefXIbbLBZ8YJ51NlkSAt2BamrK6XOmuxSR3hynMIzzyMY33KuJ9vuMdFSXW+H0tVvdF9qBPTHA91HDb4BIQ== dependencies: - "@typescript-eslint/types" "6.15.0" - "@typescript-eslint/visitor-keys" "6.15.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/visitor-keys" "6.19.0" debug "^4.3.4" globby "^11.1.0" is-glob "^4.0.3" + minimatch "9.0.3" semver "^7.5.4" ts-api-utils "^1.0.1" -"@typescript-eslint/utils@5.51.0": - version "5.51.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.51.0.tgz#074f4fabd5b12afe9c8aa6fdee881c050f8b4d47" - integrity sha512-76qs+5KWcaatmwtwsDJvBk4H76RJQBFe+Gext0EfJdC3Vd2kpY2Pf//OHHzHp84Ciw0/rYoGTDnIAr3uWhhJYw== +"@typescript-eslint/typescript-estree@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-6.21.0.tgz#c47ae7901db3b8bddc3ecd73daff2d0895688c46" + integrity sha512-6npJTkZcO+y2/kr+z0hc4HwNfrrP4kNYh57ek7yCNlrBjWQ1Y0OS7jiZTkgumrvkX5HkEKXFZkkdFNkaW2wmUQ== dependencies: - "@types/json-schema" "^7.0.9" - "@types/semver" "^7.3.12" - "@typescript-eslint/scope-manager" "5.51.0" - "@typescript-eslint/types" "5.51.0" - "@typescript-eslint/typescript-estree" "5.51.0" - eslint-scope "^5.1.1" - eslint-utils "^3.0.0" - semver "^7.3.7" - -"@typescript-eslint/utils@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.13.1.tgz#925b3a2453a71ada914ae329b7bb7e7d96634b2f" - integrity sha512-ouPn/zVoan92JgAegesTXDB/oUp6BP1v8WpfYcqh649ejNc9Qv+B4FF2Ff626kO1xg0wWwwG48lAJ4JuesgdOw== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.13.1" - "@typescript-eslint/types" "6.13.1" - "@typescript-eslint/typescript-estree" "6.13.1" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/visitor-keys" "6.21.0" + debug "^4.3.4" + globby "^11.1.0" + is-glob "^4.0.3" + minimatch "9.0.3" semver "^7.5.4" + ts-api-utils "^1.0.1" "@typescript-eslint/utils@6.14.0": version "6.14.0" @@ -7154,6 +7653,32 @@ "@typescript-eslint/typescript-estree" "6.14.0" semver "^7.5.4" +"@typescript-eslint/utils@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.19.0.tgz#557b72c3eeb4f73bef8037c85dae57b21beb1a4b" + integrity sha512-QR41YXySiuN++/dC9UArYOg4X86OAYP83OWTewpVx5ct1IZhjjgTLocj7QNxGhWoTqknsgpl7L+hGygCO+sdYw== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.19.0" + "@typescript-eslint/types" "6.19.0" + "@typescript-eslint/typescript-estree" "6.19.0" + semver "^7.5.4" + +"@typescript-eslint/utils@6.21.0", "@typescript-eslint/utils@^6.13.2": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.21.0.tgz#4714e7a6b39e773c1c8e97ec587f520840cd8134" + integrity sha512-NfWVaC8HP9T8cbKQxHcsJBY5YE1O33+jpMwN45qzWWaPDZgLIbo12toGMWnmhvCpd3sIxkpDw3Wv1B3dYrbDQQ== + dependencies: + "@eslint-community/eslint-utils" "^4.4.0" + "@types/json-schema" "^7.0.12" + "@types/semver" "^7.5.0" + "@typescript-eslint/scope-manager" "6.21.0" + "@typescript-eslint/types" "6.21.0" + "@typescript-eslint/typescript-estree" "6.21.0" + semver "^7.5.4" + "@typescript-eslint/utils@^5.45.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86" @@ -7168,27 +7693,6 @@ eslint-scope "^5.1.1" semver "^7.3.7" -"@typescript-eslint/utils@^6.9.1": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-6.15.0.tgz#f80dbb79f3b0f569077a8711dd44186a8933fa4c" - integrity sha512-eF82p0Wrrlt8fQSRL0bGXzK5nWPRV2dYQZdajcfzOD9+cQz9O7ugifrJxclB+xVOvWvagXfqS4Es7vpLP4augw== - dependencies: - "@eslint-community/eslint-utils" "^4.4.0" - "@types/json-schema" "^7.0.12" - "@types/semver" "^7.5.0" - "@typescript-eslint/scope-manager" "6.15.0" - "@typescript-eslint/types" "6.15.0" - "@typescript-eslint/typescript-estree" "6.15.0" - semver "^7.5.4" - -"@typescript-eslint/visitor-keys@5.51.0": - version "5.51.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.51.0.tgz#c0147dd9a36c0de758aaebd5b48cae1ec59eba87" - integrity sha512-Oh2+eTdjHjOFjKA27sxESlA87YPSOJafGCR0md5oeMdh1ZcCfAGCIOL216uTBAkAIptvLIfKQhl7lHxMJet4GQ== - dependencies: - "@typescript-eslint/types" "5.51.0" - eslint-visitor-keys "^3.3.0" - "@typescript-eslint/visitor-keys@5.62.0": version "5.62.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e" @@ -7197,14 +7701,6 @@ "@typescript-eslint/types" "5.62.0" eslint-visitor-keys "^3.3.0" -"@typescript-eslint/visitor-keys@6.13.1": - version "6.13.1" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.13.1.tgz#c4b692dcc23a4fc60685b718f10fde789d65a540" - integrity sha512-NDhQUy2tg6XGNBGDRm1XybOHSia8mcXmlbKWoQP+nm1BIIMxa55shyJfZkHpEBN62KNPLrocSM2PdPcaLgDKMQ== - dependencies: - "@typescript-eslint/types" "6.13.1" - eslint-visitor-keys "^3.4.1" - "@typescript-eslint/visitor-keys@6.14.0": version "6.14.0" resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.14.0.tgz#1d1d486581819287de824a56c22f32543561138e" @@ -7213,18 +7709,31 @@ "@typescript-eslint/types" "6.14.0" eslint-visitor-keys "^3.4.1" -"@typescript-eslint/visitor-keys@6.15.0": - version "6.15.0" - resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.15.0.tgz#5baf97a7bfeec6f4894d400437055155a46b2330" - integrity sha512-1zvtdC1a9h5Tb5jU9x3ADNXO9yjP8rXlaoChu0DQX40vf5ACVpYIVIZhIMZ6d5sDXH7vq4dsZBT1fEGj8D2n2w== +"@typescript-eslint/visitor-keys@6.19.0": + version "6.19.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.19.0.tgz#4565e0ecd63ca1f81b96f1dd76e49f746c6b2b49" + integrity sha512-hZaUCORLgubBvtGpp1JEFEazcuEdfxta9j4iUwdSAr7mEsYYAp3EAUyCZk3VEEqGj6W+AV4uWyrDGtrlawAsgQ== dependencies: - "@typescript-eslint/types" "6.15.0" + "@typescript-eslint/types" "6.19.0" eslint-visitor-keys "^3.4.1" -"@vitejs/plugin-basic-ssl@1.0.1": - version "1.0.1" - resolved "https://registry.yarnpkg.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.1.tgz#48c46eab21e0730921986ce742563ae83fe7fe34" - integrity sha512-pcub+YbFtFhaGRTo1832FQHQSHvMrlb43974e2eS8EKleR3p1cDdkJFPci1UhwkEf1J9Bz+wKBSzqpKp7nNj2A== +"@typescript-eslint/visitor-keys@6.21.0": + version "6.21.0" + resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-6.21.0.tgz#87a99d077aa507e20e238b11d56cc26ade45fe47" + integrity sha512-JJtkDduxLi9bivAB+cYOVMtbkqdPOhZ+ZI5LC47MIRrDV4Yn2o+ZnW10Nkmr28xRpSpdJ6Sm42Hjf2+REYXm0A== + dependencies: + "@typescript-eslint/types" "6.21.0" + eslint-visitor-keys "^3.4.1" + +"@ungap/structured-clone@^1.2.0": + version "1.2.0" + resolved "https://registry.yarnpkg.com/@ungap/structured-clone/-/structured-clone-1.2.0.tgz#756641adb587851b5ccb3e095daf27ae581c8406" + integrity sha512-zuVdFrMJiuCDQUMCzQaD6KL28MjnqqN8XnAqiEq9PNm/hCPTSGfrXCOfwj1ow4LFb/tNymJPwsNbVePc1xFqrQ== + +"@vitejs/plugin-basic-ssl@1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/@vitejs/plugin-basic-ssl/-/plugin-basic-ssl-1.0.2.tgz#bac6553842b215f17b052d27c82e2b2ef29236dc" + integrity sha512-DKHKVtpI+eA5fvObVgQ3QtTGU70CcCnedalzqmGSR050AzKZMdUzgC8KmlOneHWH8dF2hJ3wkC9+8FDVAaDRCw== "@webassemblyjs/ast@1.11.6", "@webassemblyjs/ast@^1.11.5": version "1.11.6" @@ -7438,7 +7947,7 @@ acorn-import-assertions@^1.9.0: resolved "https://registry.yarnpkg.com/acorn-import-assertions/-/acorn-import-assertions-1.9.0.tgz#507276249d684797c84e0734ef84860334cfb1ac" integrity sha512-cmMwop9x+8KFhxvKrKfPYmN6/pKTYYHBqLa0DfvVZcKMJWNyWLnaqND7dx/qn66R7ewM1UX5XMaDVP5wlVTaVA== -acorn-jsx@^5.0.0, acorn-jsx@^5.3.2: +acorn-jsx@^5.3.2: version "5.3.2" resolved "https://registry.yarnpkg.com/acorn-jsx/-/acorn-jsx-5.3.2.tgz#7ed5bb55908b3b2f1bc55c6af1653bada7f07937" integrity sha512-rq9s+JNhf0IChjtDXxllJ7g41oZk5SlXtp0LHwyA5cejwn7vKmKp4pPri6YEePv2PU65sAsegbXtIinmDFDXgQ== @@ -7448,11 +7957,6 @@ acorn-walk@^8.0.2, acorn-walk@^8.1.1: resolved "https://registry.yarnpkg.com/acorn-walk/-/acorn-walk-8.2.0.tgz#741210f2e2426454508853a2f44d0ab83b7f69c1" integrity sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA== -acorn@^6.0.7: - version "6.4.2" - resolved "https://registry.yarnpkg.com/acorn/-/acorn-6.4.2.tgz#35866fd710528e92de10cf06016498e47e39e1e6" - integrity sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ== - acorn@^8.1.0, acorn@^8.10.0, acorn@^8.4.1, acorn@^8.5.0, acorn@^8.7.1, acorn@^8.8.1, acorn@^8.8.2, acorn@^8.9.0: version "8.10.0" resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5" @@ -7527,7 +8031,7 @@ ajv@8.10.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ajv@8.12.0, ajv@^8.0.0, ajv@^8.9.0: +ajv@8.12.0, ajv@^8.0.0, ajv@^8.12.0, ajv@^8.9.0: version "8.12.0" resolved "https://registry.yarnpkg.com/ajv/-/ajv-8.12.0.tgz#d1a0527323e22f53562c567c00991577dfbe19d1" integrity sha512-sRu1kpcO9yLtYxBKvqfTeh9KzZEwO3STyX1HT+4CaDzC6HpTGYhIhPIzj9XuKU7KYDwnaeh5hcOwjy1QuJzBPA== @@ -7537,7 +8041,7 @@ ajv@8.12.0, ajv@^8.0.0, ajv@^8.9.0: require-from-string "^2.0.2" uri-js "^4.2.2" -ajv@^6.10.0, ajv@^6.10.2, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.9.1: +ajv@^6.12.4, ajv@^6.12.5: version "6.12.6" resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.6.tgz#baf5a62e802b07d977034586f8c3baf5adf26df4" integrity sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g== @@ -7566,7 +8070,7 @@ ansi-colors@4.1.3, ansi-colors@^4.1.1: resolved "https://registry.yarnpkg.com/ansi-colors/-/ansi-colors-4.1.3.tgz#37611340eb2243e70cc604cad35d63270d48781b" integrity sha512-/6w/C21Pm1A7aZitlI5Ni/2J6FFQN8i1Cvz3kHABAAbw93v/NlvKdVOqz7CCWz/3iv/JplRSEEZ83XION15ovw== -ansi-escapes@^3.0.0, ansi-escapes@^3.2.0: +ansi-escapes@^3.0.0: version "3.2.0" resolved "https://registry.yarnpkg.com/ansi-escapes/-/ansi-escapes-3.2.0.tgz#8780b98ff9dbf5638152d1f1fe5c1d7b4442976b" integrity sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ== @@ -7593,11 +8097,6 @@ ansi-regex@^3.0.0: resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.1.tgz#123d6479e92ad45ad897d4054e3c7ca7db4944e1" integrity sha512-+O9Jct8wf++lXxxFc4hc8LsjaSq0HFzzL7cVsw8pRDIPdjKD2mT4ytDZlLuSBZ4cLKZFXIrMGO7DbQCtMJJMKw== -ansi-regex@^4.1.0: - version "4.1.1" - resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-4.1.1.tgz#164daac87ab2d6f6db3a29875e2d1766582dabed" - integrity sha512-ILlv4k/3f6vfQ4OoP2AGvirOktlQ98ZEL1k9FaQjxa3L1abBgbuTDAdPOpvbGncC0BTVQrl+OM8xZGK6tWXt7g== - ansi-regex@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-5.0.1.tgz#082cb2c89c9fe8659a311a53bd6a4dc5301db304" @@ -7613,7 +8112,7 @@ ansi-styles@^2.2.1: resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" integrity sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA== -ansi-styles@^3.2.0, ansi-styles@^3.2.1: +ansi-styles@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" integrity sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA== @@ -7722,21 +8221,6 @@ aria-query@^3.0.0: ast-types-flow "0.0.7" commander "^2.11.0" -arr-diff@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" - integrity sha512-YVIQ82gZPGBebQV/a8dar4AitzCQs0jjXwMPZllpXMaGjXPYVUawSxQrRsjhjupyVxEvbHgUmIhKVlND+j02kA== - -arr-flatten@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" - integrity sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg== - -arr-union@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" - integrity sha512-sKpyeERZ02v1FeCZT8lrfJq5u6goHCtpTAzPwJYe7c8SPFOboNjNg1vz2L4VTn9T4PQxEx13TbXLmYUcS6Ug7Q== - array-buffer-byte-length@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/array-buffer-byte-length/-/array-buffer-byte-length-1.0.0.tgz#fabe8bc193fea865f317fe7807085ee0dee5aead" @@ -7755,7 +8239,7 @@ array-flatten@^2.1.2: resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.2.tgz#24ef80a28c1a893617e2149b0c6d0d788293b099" integrity sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ== -array-includes@^3.1.6: +array-includes@^3.1.7: version "3.1.7" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.1.7.tgz#8cd2e01b26f7a3086cbc87271593fe921c62abda" integrity sha512-dlcsNBIiWhPkHdOEEKnehA+RNUWDc4UqFtnIXU4uuYDPtA4LDkr7qip2p0VvFAEXNDr0yWZ9PJyIRiGjRLQzwQ== @@ -7771,13 +8255,6 @@ array-timsort@^1.0.3: resolved "https://registry.yarnpkg.com/array-timsort/-/array-timsort-1.0.3.tgz#3c9e4199e54fb2b9c3fe5976396a21614ef0d926" integrity sha512-/+3GRL7dDAGEfM6TseQk/U+mi18TU2Ms9I3UlLdUMhz2hbvGNTKdj9xniwXfUqgYhHxRx0+8UnKkvlNwVU+cWQ== -array-union@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" - integrity sha512-Dxr6QJj/RdU/hCaBjOfxW+q6lyuVE6JFWIrAUpuOOhoJJoQ99cUn3igRaHVB5P9WrgFVN0FfArM3x0cueOU8ng== - dependencies: - array-uniq "^1.0.1" - array-union@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/array-union/-/array-union-2.1.0.tgz#b798420adbeb1de828d84acd8a2e23d3efe85e8d" @@ -7788,17 +8265,29 @@ array-union@^3.0.1: resolved "https://registry.yarnpkg.com/array-union/-/array-union-3.0.1.tgz#da52630d327f8b88cfbfb57728e2af5cd9b6b975" integrity sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw== -array-uniq@^1.0.1: +array.prototype.filter@^1.0.3: version "1.0.3" - resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" - integrity sha512-MNha4BWQ6JbwhFhj03YK552f7cb3AzoE8SzeljgChvL1dl3IcvggXVz1DilzySZkCja+CXuZbdW7yATchWn8/Q== + resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.3.tgz#423771edeb417ff5914111fff4277ea0624c0d0e" + integrity sha512-VizNcj/RGJiUyQBgzwxzE5oHdeuXY5hSbbmKMlphj1cy1Vl7Pn2asCGbSrru6hSQjmCzqTBPVWAF/whmEOVHbw== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + es-array-method-boxes-properly "^1.0.0" + is-string "^1.0.7" -array-unique@^0.3.2: - version "0.3.2" - resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" - integrity sha512-SleRWjh9JUud2wH1hPs9rZBZ33H6T9HOiL0uwGnGx9FpE6wKGyfWugmbkEOIs6qWrZhg0LWeLziLrEwQJhs5mQ== +array.prototype.findlastindex@^1.2.3: + version "1.2.4" + resolved "https://registry.yarnpkg.com/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.4.tgz#d1c50f0b3a9da191981ff8942a0aedd82794404f" + integrity sha512-hzvSHUshSpCflDR1QMUBLHGHP1VIEBegT4pix9H/Z92Xw3ySoy6c2qh7lJWTJnRJ8JCZ9bJNCgTyYaJGcJu6xQ== + dependencies: + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.3.0" + es-shim-unscopables "^1.0.2" -array.prototype.flat@^1.3.1: +array.prototype.flat@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18" integrity sha512-djYB+Zx2vLewY8RWlNCUdHjDXs2XOgm602S9E7P/UpHgfeHL00cRiIF+IN/G/aUJ7kGPb6yO/ErDI5V2s8iycA== @@ -7808,7 +8297,7 @@ array.prototype.flat@^1.3.1: es-abstract "^1.22.1" es-shim-unscopables "^1.0.0" -array.prototype.flatmap@^1.3.1: +array.prototype.flatmap@^1.3.2: version "1.3.2" resolved "https://registry.yarnpkg.com/array.prototype.flatmap/-/array.prototype.flatmap-1.3.2.tgz#c9a7c6831db8e719d6ce639190146c24bbd3e527" integrity sha512-Ewyx0c9PmpcsByhSW4r+9zDU7sGjFc86qf/kKtuSCRdhfbk0SNLLkaT5qvcHnRGgc5NP/ly/y+qkXkqONX54CQ== @@ -7868,11 +8357,6 @@ assert@^2.0.0, assert@^2.1.0: object.assign "^4.1.4" util "^0.12.5" -assign-symbols@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" - integrity sha512-Q+JC7Whu8HhmTdBph/Tq59IoRtoy6KAm5zzPv00WdujX82lbAL8K7WVjne7vdCsAmbF4AYaDOPyO3k0kl8qIrw== - ast-types-flow@0.0.7: version "0.0.7" resolved "https://registry.yarnpkg.com/ast-types-flow/-/ast-types-flow-0.0.7.tgz#f70b735c6bca1a5c9c22d982c3e39e7feba3bdad" @@ -7892,16 +8376,6 @@ ast-types@^0.16.1: dependencies: tslib "^2.0.1" -astral-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/astral-regex/-/astral-regex-1.0.0.tgz#6c8c3fb827dd43ee3918f27b82782ab7658a6fd9" - integrity sha512-+Ryf6g3BKoRc7jfp7ad8tM4TtMiaWvbF/1/sQcZPkkS7ag3D5nMBCe2UfOTONtAkaG0tO0ij3C5Lwmf1EiyjHg== - -async-each-series@0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/async-each-series/-/async-each-series-0.1.1.tgz#7617c1917401fd8ca4a28aadce3dbae98afeb432" - integrity sha512-p4jj6Fws4Iy2m0iCmI2am2ZNZCgbdgE+P8F/8csmn2vx7ixXrO2zGcuNsD46X5uZSVecmkEy/M06X2vG8KD6dQ== - async-limiter@~1.0.0: version "1.0.1" resolved "https://registry.yarnpkg.com/async-limiter/-/async-limiter-1.0.1.tgz#dd379e94f0db8310b08291f9d64c3209766617fd" @@ -7912,7 +8386,7 @@ async@3.2.0: resolved "https://registry.yarnpkg.com/async/-/async-3.2.0.tgz#b3a2685c5ebb641d3de02d161002c60fc9f85720" integrity sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw== -async@^2.6.0, async@^2.6.4: +async@^2.6.4: version "2.6.4" resolved "https://registry.yarnpkg.com/async/-/async-2.6.4.tgz#706b7ff6084664cd7eae713f6f965433b5504221" integrity sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA== @@ -7934,11 +8408,6 @@ at-least-node@^1.0.0: resolved "https://registry.yarnpkg.com/at-least-node/-/at-least-node-1.0.0.tgz#602cd4b46e844ad4effc92a8011a3c46e0238dc2" integrity sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg== -atob@^2.1.2: - version "2.1.2" - resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.2.tgz#6d9517eb9e030d2436666651e86bd9f6f13533c9" - integrity sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg== - autoprefixer@10.4.16, autoprefixer@^10.4.9: version "10.4.16" resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-10.4.16.tgz#fad1411024d8670880bdece3970aa72e3572feb8" @@ -7966,19 +8435,19 @@ aws4@^1.8.0: resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.12.0.tgz#ce1c9d143389679e253b314241ea9aa5cec980d3" integrity sha512-NmWvPnx0F1SfrQbYwOi7OeaNGokp9XhzNioJ/CSBs8Qa4vxug81mhJEAVZwxXuBmYB5KDRfMq/F3RR0BIU7sWg== -axios@0.21.4, axios@^0.21.4: +axios@^0.21.4: version "0.21.4" resolved "https://registry.yarnpkg.com/axios/-/axios-0.21.4.tgz#c67b90dc0568e5c1cf2b0b858c43ba28e2eda575" integrity sha512-ut5vewkiu8jjGBdqpM44XxjuCjq9LAKeHVmoVfHVzy8eHgxxq8SbAVQNovDA8mVi05kP0Ea/n/UzcSHcTJQfNg== dependencies: follow-redirects "^1.14.0" -axios@^1.5.1: - version "1.5.1" - resolved "https://registry.yarnpkg.com/axios/-/axios-1.5.1.tgz#11fbaa11fc35f431193a9564109c88c1f27b585f" - integrity sha512-Q28iYCWzNHjAm+yEAot5QaAMxhMghWLFVf7rRdwhUI+c2jix2DUXjAHXVi+s1ibs3mjPO/cCgbA++3BjD0vP/A== +axios@^1.6.0: + version "1.6.7" + resolved "https://registry.yarnpkg.com/axios/-/axios-1.6.7.tgz#7b48c2e27c96f9c68a2f8f31e2ab19f59b06b0a7" + integrity sha512-/hDJGff6/c7u0hDkvkGxR/oy6CbCs8ziCsC7SqmhjfozqiJGc8Z11wrv9z9lYfY4K8l+H9TpjcMDX0xOZmx+RA== dependencies: - follow-redirects "^1.15.0" + follow-redirects "^1.15.4" form-data "^4.0.0" proxy-from-env "^1.1.0" @@ -8079,6 +8548,15 @@ babel-plugin-polyfill-corejs2@^0.4.6: "@babel/helper-define-polyfill-provider" "^0.4.3" semver "^6.3.1" +babel-plugin-polyfill-corejs2@^0.4.7, babel-plugin-polyfill-corejs2@^0.4.8: + version "0.4.8" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.4.8.tgz#dbcc3c8ca758a290d47c3c6a490d59429b0d2269" + integrity sha512-OtIuQfafSzpo/LhnJaykc0R/MMnuLSSVjVYy9mHArIZ9qTCSZ6TpWCuEKZYVoN//t8HqBNScHrOtCrIK5IaGLg== + dependencies: + "@babel/compat-data" "^7.22.6" + "@babel/helper-define-polyfill-provider" "^0.5.0" + semver "^6.3.1" + babel-plugin-polyfill-corejs3@^0.6.0: version "0.6.0" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.6.0.tgz#56ad88237137eade485a71b52f72dbed57c6230a" @@ -8095,6 +8573,22 @@ babel-plugin-polyfill-corejs3@^0.8.5: "@babel/helper-define-polyfill-provider" "^0.4.3" core-js-compat "^3.33.1" +babel-plugin-polyfill-corejs3@^0.8.7: + version "0.8.7" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.8.7.tgz#941855aa7fdaac06ed24c730a93450d2b2b76d04" + integrity sha512-KyDvZYxAzkC0Aj2dAPyDzi2Ym15e5JKZSK+maI7NAwSqofvuFglbSsxE7wUOvTg9oFVnHMzVzBKcqEb4PJgtOA== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.4.4" + core-js-compat "^3.33.1" + +babel-plugin-polyfill-corejs3@^0.9.0: + version "0.9.0" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.9.0.tgz#9eea32349d94556c2ad3ab9b82ebb27d4bf04a81" + integrity sha512-7nZPG1uzK2Ymhy/NbaOWTg3uibM2BmGASS4vHS4szRZAIR8R6GwA/xAujpdrXU5iyklrimWnLWU+BLF9suPTqg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.5.0" + core-js-compat "^3.34.0" + babel-plugin-polyfill-regenerator@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.4.1.tgz#390f91c38d90473592ed43351e801a9d3e0fd747" @@ -8109,6 +8603,13 @@ babel-plugin-polyfill-regenerator@^0.5.3: dependencies: "@babel/helper-define-polyfill-provider" "^0.4.3" +babel-plugin-polyfill-regenerator@^0.5.4, babel-plugin-polyfill-regenerator@^0.5.5: + version "0.5.5" + resolved "https://registry.yarnpkg.com/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.5.5.tgz#8b0c8fc6434239e5d7b8a9d1f832bb2b0310f06a" + integrity sha512-OJGYZlhLqBh2DDHeqAxWB1XIvr49CxiJ2gIt61/PU55CQK4Z58OzMqjDe1zwQdQk+rBYsRc+1rJmdajM3gimHg== + dependencies: + "@babel/helper-define-polyfill-provider" "^0.5.0" + babel-plugin-transform-typescript-metadata@^0.3.1: version "0.3.2" resolved "https://registry.yarnpkg.com/babel-plugin-transform-typescript-metadata/-/babel-plugin-transform-typescript-metadata-0.3.2.tgz#7a327842d8c36ffe07ee1b5276434e56c297c9b7" @@ -8157,29 +8658,11 @@ base64-js@^1.2.0, base64-js@^1.3.0, base64-js@^1.3.1: resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.5.1.tgz#1b1b440160a5bf7ad40b650f095963481903930a" integrity sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA== -base64id@2.0.0, base64id@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64id/-/base64id-2.0.0.tgz#2770ac6bc47d312af97a8bf9a634342e0cd25cb6" - integrity sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog== - base64url@3.x.x: version "3.0.1" resolved "https://registry.yarnpkg.com/base64url/-/base64url-3.0.1.tgz#6399d572e2bc3f90a9a8b22d5dbb0a32d33f788d" integrity sha512-ir1UPr3dkwexU7FdV8qBBbNDRUhMmIekYMFZfi+C/sLNnRESKPl23nB9b2pltqfOQNnGzsDdId90AEtG5tCx4A== -base@^0.11.1: - version "0.11.2" - resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" - integrity sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg== - dependencies: - cache-base "^1.0.1" - class-utils "^0.3.5" - component-emitter "^1.2.1" - define-property "^1.0.0" - isobject "^3.0.1" - mixin-deep "^1.2.0" - pascalcase "^0.1.1" - basic-auth@^2.0.1: version "2.0.1" resolved "https://registry.yarnpkg.com/basic-auth/-/basic-auth-2.0.1.tgz#b998279bf47ce38344b4f3cf916d4679bbf51e3a" @@ -8362,22 +8845,6 @@ brace-expansion@^2.0.1: dependencies: balanced-match "^1.0.0" -braces@^2.3.1: - version "2.3.2" - resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" - integrity sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w== - dependencies: - arr-flatten "^1.1.0" - array-unique "^0.3.2" - extend-shallow "^2.0.1" - fill-range "^4.0.0" - isobject "^3.0.1" - repeat-element "^1.1.2" - snapdragon "^0.8.1" - snapdragon-node "^2.0.1" - split-string "^3.0.2" - to-regex "^3.0.1" - braces@^3.0.2, braces@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/braces/-/braces-3.0.2.tgz#3454e1a462ee8d599e236df336cd9ea4f8afe107" @@ -8390,63 +8857,6 @@ browser-assert@^1.2.1: resolved "https://registry.yarnpkg.com/browser-assert/-/browser-assert-1.2.1.tgz#9aaa5a2a8c74685c2ae05bfe46efd606f068c200" integrity sha512-nfulgvOR6S4gt9UKCeGJOuSGBPGiFT6oQ/2UBnvTY/5aQ1PnksW72fhZkM30DzoRRv2WpwZf1vHHEr3mtuXIWQ== -browser-sync-client@^2.29.3: - version "2.29.3" - resolved "https://registry.yarnpkg.com/browser-sync-client/-/browser-sync-client-2.29.3.tgz#9300b97f42abc2c4f95ca29b5a9781b5c492f14a" - integrity sha512-4tK5JKCl7v/3aLbmCBMzpufiYLsB1+UI+7tUXCCp5qF0AllHy/jAqYu6k7hUF3hYtlClKpxExWaR+rH+ny07wQ== - dependencies: - etag "1.8.1" - fresh "0.5.2" - mitt "^1.1.3" - -browser-sync-ui@^2.29.3: - version "2.29.3" - resolved "https://registry.yarnpkg.com/browser-sync-ui/-/browser-sync-ui-2.29.3.tgz#35e2ce3b470dce6b7219307cac7278bf324a0f16" - integrity sha512-kBYOIQjU/D/3kYtUIJtj82e797Egk1FB2broqItkr3i4eF1qiHbFCG6srksu9gWhfmuM/TNG76jMfzAdxEPakg== - dependencies: - async-each-series "0.1.1" - chalk "4.1.2" - connect-history-api-fallback "^1" - immutable "^3" - server-destroy "1.0.1" - socket.io-client "^4.4.1" - stream-throttle "^0.1.3" - -browser-sync@2.29.3: - version "2.29.3" - resolved "https://registry.yarnpkg.com/browser-sync/-/browser-sync-2.29.3.tgz#c2a3ff00c659eb87a13cae9d7a427e1b4b580ee1" - integrity sha512-NiM38O6XU84+MN+gzspVmXV2fTOoe+jBqIBx3IBdhZrdeURr6ZgznJr/p+hQ+KzkKEiGH/GcC4SQFSL0jV49bg== - dependencies: - browser-sync-client "^2.29.3" - browser-sync-ui "^2.29.3" - bs-recipes "1.3.4" - chalk "4.1.2" - chokidar "^3.5.1" - connect "3.6.6" - connect-history-api-fallback "^1" - dev-ip "^1.0.1" - easy-extender "^2.3.4" - eazy-logger "^4.0.1" - etag "^1.8.1" - fresh "^0.5.2" - fs-extra "3.0.1" - http-proxy "^1.18.1" - immutable "^3" - localtunnel "^2.0.1" - micromatch "^4.0.2" - opn "5.3.0" - portscanner "2.2.0" - raw-body "^2.3.2" - resp-modifier "6.0.2" - rx "4.1.0" - send "0.16.2" - serve-index "1.9.1" - serve-static "1.13.2" - server-destroy "1.0.1" - socket.io "^4.4.1" - ua-parser-js "^1.0.33" - yargs "^17.3.1" - browserify-zlib@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.1.4.tgz#bb35f8a519f600e0fa6b8485241c979d0141fb2d" @@ -8481,11 +8891,6 @@ bs-logger@0.x, bs-logger@^0.2.6: dependencies: fast-json-stable-stringify "2.x" -bs-recipes@1.3.4: - version "1.3.4" - resolved "https://registry.yarnpkg.com/bs-recipes/-/bs-recipes-1.3.4.tgz#0d2d4d48a718c8c044769fdc4f89592dc8b69585" - integrity sha512-BXvDkqhDNxXEjeGM8LFkSbR+jzmP/CYpCiVKYn+soB1dDldeU15EBNDkwVXndKuX35wnNUaPd0qSoQEAkmQtMw== - bser@2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/bser/-/bser-2.1.1.tgz#e6787da20ece9d07998533cfd9de6f5c38f4bc05" @@ -8516,11 +8921,6 @@ buffer@^5.5.0: base64-js "^1.3.1" ieee754 "^1.1.13" -builtin-modules@^3.3.0: - version "3.3.0" - resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-3.3.0.tgz#cae62812b89801e9656336e46223e030386be7b6" - integrity sha512-zhaCDicdLuWN5UbN5IMnFqNMhNfo919sH85y2/ea+5Yg9TsTkeZxpL+JLbp6cgYFS4sRLp3YV4S6yDuqVWHYOw== - builtins@^5.0.0: version "5.0.1" resolved "https://registry.yarnpkg.com/builtins/-/builtins-5.0.1.tgz#87f6db9ab0458be728564fa81d876d8d74552fa9" @@ -8577,21 +8977,6 @@ cacache@^18.0.0: tar "^6.1.11" unique-filename "^3.0.0" -cache-base@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" - integrity sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ== - dependencies: - collection-visit "^1.0.0" - component-emitter "^1.2.1" - get-value "^2.0.6" - has-value "^1.0.0" - isobject "^3.0.1" - set-value "^2.0.0" - to-object-path "^0.3.0" - union-value "^1.0.0" - unset-value "^1.0.0" - cache-manager-redis-store@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/cache-manager-redis-store/-/cache-manager-redis-store-2.0.0.tgz#25db93656c4ab7b3591bd6ca370e188ef90754c9" @@ -8640,30 +9025,6 @@ call-bind@^1.0.0, call-bind@^1.0.2, call-bind@^1.0.4, call-bind@^1.0.5: get-intrinsic "^1.2.1" set-function-length "^1.1.1" -call-me-maybe@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/call-me-maybe/-/call-me-maybe-1.0.2.tgz#03f964f19522ba643b1b0693acb9152fe2074baa" - integrity sha512-HpX65o1Hnr9HH25ojC1YGs7HCQLq0GCOibSaWER0eNpgJ/Z1MZv2mTc7+xh6WOPxbRVcmgbv4hGU+uSQ/2xFZQ== - -caller-callsite@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-callsite/-/caller-callsite-2.0.0.tgz#847e0fce0a223750a9a027c54b33731ad3154134" - integrity sha512-JuG3qI4QOftFsZyOn1qq87fq5grLIyk1JYd5lJmdA+fG7aQ9pA/i3JIJGcO3q0MrRcHlOt1U+ZeHW8Dq9axALQ== - dependencies: - callsites "^2.0.0" - -caller-path@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/caller-path/-/caller-path-2.0.0.tgz#468f83044e369ab2010fac5f06ceee15bb2cb1f4" - integrity sha512-MCL3sf6nCSXOwCTzvPKhN18TU7AHTvdtam8DAogxcrJ8Rjfbbg7Lgng64H9Iy+vUV6VGFClN/TyxBkAebLRR4A== - dependencies: - caller-callsite "^2.0.0" - -callsites@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/callsites/-/callsites-2.0.0.tgz#06eb84f00eea413da86affefacbffb36093b3c50" - integrity sha512-ksWePWBloaWPxJYQ8TL0JHvtci6G5QTKwQ95RcWAa/lzoAKuAOflGdAK92hpHXjkwb8zLxoLNUoNYZgVsaJzvQ== - callsites@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/callsites/-/callsites-3.1.0.tgz#b3630abd8943432f54b3f0519238e33cd7df2f73" @@ -8677,7 +9038,7 @@ camel-case@^4.1.2: pascal-case "^3.1.2" tslib "^2.0.3" -camelcase@^5.0.0, camelcase@^5.3.1: +camelcase@^5.3.1: version "5.3.1" resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-5.3.1.tgz#e3c9b31569e106811df242f715725a1f4c494320" integrity sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg== @@ -8738,14 +9099,6 @@ cbor-x@^1.5.2: optionalDependencies: cbor-extract "^2.1.1" -chalk@4.1.2, chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: - version "4.1.2" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" - integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== - dependencies: - ansi-styles "^4.1.0" - supports-color "^7.1.0" - chalk@^1.0.0, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -8757,7 +9110,7 @@ chalk@^1.0.0, chalk@^1.1.3: strip-ansi "^3.0.0" supports-color "^2.0.0" -chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: +chalk@^2.4.1, chalk@^2.4.2: version "2.4.2" resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.4.2.tgz#cd42541677a54333cf541a49108c1432b44c9424" integrity sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ== @@ -8766,6 +9119,14 @@ chalk@^2.1.0, chalk@^2.4.1, chalk@^2.4.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" +chalk@^4.0.0, chalk@^4.0.2, chalk@^4.1.0, chalk@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-4.1.2.tgz#aac4e2b7734a740867aeb16bf02aad556a1e7a01" + integrity sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA== + dependencies: + ansi-styles "^4.1.0" + supports-color "^7.1.0" + chalk@^5.3.0: version "5.3.0" resolved "https://registry.yarnpkg.com/chalk/-/chalk-5.3.0.tgz#67c20a7ebef70e7f3970a01f90fa210cb6860385" @@ -8838,7 +9199,7 @@ cheerio@1.0.0-rc.12: parse5 "^7.0.0" parse5-htmlparser2-tree-adapter "^7.0.0" -chokidar@3.5.3, "chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.5.1, chokidar@^3.5.3: +"chokidar@>=3.0.0 <4.0.0", chokidar@^3.0.0, chokidar@^3.5.3: version "3.5.3" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-3.5.3.tgz#1cf37c8707b932bd1af1ae22c0432e2acd1903bd" integrity sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw== @@ -8888,16 +9249,6 @@ class-transformer@0.5.1: resolved "https://registry.yarnpkg.com/class-transformer/-/class-transformer-0.5.1.tgz#24147d5dffd2a6cea930a3250a677addf96ab336" integrity sha512-SQa1Ws6hUbfC98vKGxZH3KFY0Y1lm5Zm0SY8XX9zbK7FJCyVEac3ATW0RIpwzW+oOfmHE5PMPufDG9hCfoEOMw== -class-utils@^0.3.5: - version "0.3.6" - resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" - integrity sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg== - dependencies: - arr-union "^3.1.0" - define-property "^0.2.5" - isobject "^3.0.0" - static-extend "^0.1.1" - class-validator@0.14.0: version "0.14.0" resolved "https://registry.yarnpkg.com/class-validator/-/class-validator-0.14.0.tgz#40ed0ecf3c83b2a8a6a320f4edb607be0f0df159" @@ -8972,11 +9323,6 @@ cli-truncate@^0.2.1: slice-ansi "0.0.4" string-width "^1.0.1" -cli-width@^2.0.0: - version "2.2.1" - resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-2.2.1.tgz#b0433d0b4e9c847ef18868a4ef16fd5fc8271c48" - integrity sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw== - cli-width@^4.1.0: version "4.1.0" resolved "https://registry.yarnpkg.com/cli-width/-/cli-width-4.1.0.tgz#42daac41d3c254ef38ad8ac037672130173691c5" @@ -8991,24 +9337,6 @@ clipboard@^2.0.11: select "^1.1.2" tiny-emitter "^2.0.0" -cliui@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.1.0.tgz#348422dbe82d800b3022eef4f6ac10bf2e4d1b49" - integrity sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ== - dependencies: - string-width "^2.1.1" - strip-ansi "^4.0.0" - wrap-ansi "^2.0.0" - -cliui@^7.0.2: - version "7.0.4" - resolved "https://registry.yarnpkg.com/cliui/-/cliui-7.0.4.tgz#a0265ee655476fc807aea9df3df8df7783808b4f" - integrity sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ== - dependencies: - string-width "^4.2.0" - strip-ansi "^6.0.0" - wrap-ansi "^7.0.0" - cliui@^8.0.1: version "8.0.1" resolved "https://registry.yarnpkg.com/cliui/-/cliui-8.0.1.tgz#0c04b075db02cbfe60dc8e6cf2f5486b1a3608aa" @@ -9079,14 +9407,6 @@ collect-v8-coverage@^1.0.0: resolved "https://registry.yarnpkg.com/collect-v8-coverage/-/collect-v8-coverage-1.0.2.tgz#c0b29bcd33bcd0779a1344c2136051e6afd3d9e9" integrity sha512-lHl4d5/ONEbLlJvaJNtsF/Lz+WvB07u2ycqTYbdrq7UypDXailES4valYb2eWiJFxZlVmpGekfqoxQhzyFdT4Q== -collection-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" - integrity sha512-lNkKvzEeMBBjUGHZ+q6z9pSJla0KWAQPvtzhEV9+iGyQYG+pBpl7xKDhxoNSOZH2hhv0v5k0y2yAM4o4SjoSkw== - dependencies: - map-visit "^1.0.0" - object-visit "^1.0.0" - color-convert@^1.9.0: version "1.9.3" resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.3.tgz#bb71850690e1f136567de629d2d5471deda4c1e8" @@ -9162,7 +9482,7 @@ commander@7, commander@^7.2.0: resolved "https://registry.yarnpkg.com/commander/-/commander-7.2.0.tgz#a36cb57d0b501ce108e4d20559a150a391d97ab7" integrity sha512-QrWXB+ZQSVPmIWIhtEO9H+gwHaMGYiF5ChvoJ+K9ZGHG/sVsa6yiesAD1GC/x46sET00Xlwo1u49RVVVzvcSkw== -commander@^2.11.0, commander@^2.15.0, commander@^2.2.0, commander@^2.20.0: +commander@^2.11.0, commander@^2.15.0, commander@^2.20.0: version "2.20.3" resolved "https://registry.yarnpkg.com/commander/-/commander-2.20.3.tgz#fd485e84c03eb4881c20722ba48035e8531aeb33" integrity sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ== @@ -9208,11 +9528,6 @@ commondir@^1.0.1: resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" integrity sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg== -component-emitter@^1.2.1: - version "1.3.0" - resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.3.0.tgz#16e4070fba8ae29b679f2215853ee181ab2eabc0" - integrity sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg== - compressible@~2.0.16: version "2.0.18" resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.18.tgz#af53cca6b070d4c3c0750fbd77286a6d7cc46fba" @@ -9253,26 +9568,11 @@ confusing-browser-globals@^1.0.9: resolved "https://registry.yarnpkg.com/confusing-browser-globals/-/confusing-browser-globals-1.0.11.tgz#ae40e9b57cdd3915408a2805ebd3a5585608dc81" integrity sha512-JsPKdmh8ZkmnHxDk55FZ1TqVLvEQTvoByJZRN9jzI0UjxK/QgAmsphz7PGtqgPieQZ/CQcHWXCR7ATDNhGe+YA== -connect-history-api-fallback@^1: - version "1.6.0" - resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz#8b32089359308d111115d81cad3fceab888f97bc" - integrity sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg== - connect-history-api-fallback@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-2.0.0.tgz#647264845251a0daf25b97ce87834cace0f5f1c8" integrity sha512-U73+6lQFmfiNPrYbXqr6kZ1i1wiRqXnp2nhMsINseWXO8lDau0LGEffJ8kQi4EjLZympVgRdvqjAgiZ1tgzDDA== -connect@3.6.6: - version "3.6.6" - resolved "https://registry.yarnpkg.com/connect/-/connect-3.6.6.tgz#09eff6c55af7236e137135a72574858b6786f524" - integrity sha512-OO7axMmPpu/2XuX1+2Yrg0ddju31B6xLZMWkJ5rYBu4YRmRVlOjvlY6kw2FJKiAzyxGwnrDUAG4s1Pf0sbBMCQ== - dependencies: - debug "2.6.9" - finalhandler "1.1.0" - parseurl "~1.3.2" - utils-merge "1.0.1" - consola@^2.15.0: version "2.15.3" resolved "https://registry.yarnpkg.com/consola/-/consola-2.15.3.tgz#2e11f98d6a4be71ff72e0bdf07bd23e12cb61550" @@ -9320,11 +9620,6 @@ cookie@0.5.0: resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.5.0.tgz#d1f5d71adec6558c58f389987c366aa47e994f8b" integrity sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw== -cookie@~0.4.1: - version "0.4.2" - resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.4.2.tgz#0e41f24de5ecf317947c82fc789e06a884824432" - integrity sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA== - copy-anything@^2.0.1: version "2.0.6" resolved "https://registry.yarnpkg.com/copy-anything/-/copy-anything-2.0.6.tgz#092454ea9584a7b7ad5573062b2a87f5900fc480" @@ -9332,11 +9627,6 @@ copy-anything@^2.0.1: dependencies: is-what "^3.14.1" -copy-descriptor@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" - integrity sha512-XgZ0pFcakEUlbwQEVNg3+QAis1FyTL3Qel9FYy8pSkQqoG3PNoT0bOCQtOXcOkur21r2Eq2kI+IE+gsmAEVlYw== - copy-webpack-plugin@11.0.0: version "11.0.0" resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-11.0.0.tgz#96d4dbdb5f73d02dd72d0528d1958721ab72e04a" @@ -9368,6 +9658,13 @@ core-js-compat@^3.25.1, core-js-compat@^3.31.0, core-js-compat@^3.33.1: dependencies: browserslist "^4.22.1" +core-js-compat@^3.34.0: + version "3.35.1" + resolved "https://registry.yarnpkg.com/core-js-compat/-/core-js-compat-3.35.1.tgz#215247d7edb9e830efa4218ff719beb2803555e2" + integrity sha512-sftHa5qUJY3rs9Zht1WEnmkvXputCyDBczPnr7QDgL8n3qrF3CMXY4VPSYtOLLiOUJcah2WNXREd48iOl6mQIw== + dependencies: + browserslist "^4.22.2" + core-util-is@1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -9378,7 +9675,7 @@ core-util-is@^1.0.3, core-util-is@~1.0.0: resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.3.tgz#a6042d3634c2b27e9328f837b965fac83808db85" integrity sha512-ZQBvi1DcpJ4GDqanjucZ2Hj3wEO5pZDS89BWbkcrvdxksJorwUDDZamX9ldFkp9aw2lmBDLgkObEA4DWNJ9FYQ== -cors@2.8.5, cors@~2.8.5: +cors@2.8.5: version "2.8.5" resolved "https://registry.yarnpkg.com/cors/-/cors-2.8.5.tgz#eac11da51592dd86b9f06f6e7ac293b3df875d29" integrity sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g== @@ -9405,16 +9702,6 @@ cose-base@^2.2.0: dependencies: layout-base "^2.0.0" -cosmiconfig@^5.0.5: - version "5.2.1" - resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-5.2.1.tgz#040f726809c591e77a17c0a3626ca45b4f168b1a" - integrity sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA== - dependencies: - import-fresh "^2.0.0" - is-directory "^0.3.1" - js-yaml "^3.13.1" - parse-json "^4.0.0" - cosmiconfig@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-6.0.0.tgz#da4fee853c52f6b1e6935f41c1a2fc50bd4a9982" @@ -9437,7 +9724,7 @@ cosmiconfig@^7.0.0, cosmiconfig@^7.0.1: path-type "^4.0.0" yaml "^1.10.0" -cosmiconfig@^8.2.0: +cosmiconfig@^8.3.5: version "8.3.6" resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-8.3.6.tgz#060a2b871d66dba6c8538ea1118ba1ac16f5fae3" integrity sha512-kcZ6+W5QzcJ3P1Mt+83OUv/oHFqZHIx8DuxG6eZ5RGMERoLqp4BuGjhHLYGK+Kf5XVkQvqBSmAy/nGWN3qDgEA== @@ -9521,17 +9808,6 @@ cross-fetch@^4.0.0: dependencies: node-fetch "^2.6.12" -cross-spawn@^6.0.0, cross-spawn@^6.0.5: - version "6.0.5" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-6.0.5.tgz#4a5ec7c64dfae22c3a14124dbacdee846d80cbc4" - integrity sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ== - dependencies: - nice-try "^1.0.4" - path-key "^2.0.1" - semver "^5.5.0" - shebang-command "^1.2.0" - which "^1.2.9" - cross-spawn@^7.0.0, cross-spawn@^7.0.2, cross-spawn@^7.0.3: version "7.0.3" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" @@ -10098,27 +10374,20 @@ dayjs@^1.11.7: resolved "https://registry.yarnpkg.com/dayjs/-/dayjs-1.11.10.tgz#68acea85317a6e164457d6d6947564029a6a16a0" integrity sha512-vjAczensTgRcqDERK0SR2XMwsF/tSvnvlv6VcF2GIhg6Sx4yOIt/irsr1RDJsKiIyBzJDpCoXiWWq28MqH2cnQ== -debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.9: +debug@2.6.9, debug@^2.6.9: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" integrity sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA== dependencies: ms "2.0.0" -debug@4, debug@^4.0.0, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4, debug@~4.3.1, debug@~4.3.2: +debug@4, debug@^4.0.0, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1, debug@^4.3.2, debug@^4.3.4: version "4.3.4" resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.4.tgz#1319f6579357f2338d3337d2cdd4914bb5dcc865" integrity sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ== dependencies: ms "2.1.2" -debug@4.3.2: - version "4.3.2" - resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" - integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== - dependencies: - ms "2.1.2" - debug@^3.1.0, debug@^3.2.6, debug@^3.2.7: version "3.2.7" resolved "https://registry.yarnpkg.com/debug/-/debug-3.2.7.tgz#72580b7e9145fb39b6676f9c5e5fb100b934179a" @@ -10131,11 +10400,6 @@ debuglog@^1.0.0: resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" integrity sha512-syBZ+rnAK3EgMsH2aYEOLUW7mZSY9Gb+0wUMCFsZvcmiz+HigA0LOcq/HoQqVuGG+EKykunc7QG2bzrponfaSw== -decamelize@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" - integrity sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA== - decimal.js@^10.4.2: version "10.4.3" resolved "https://registry.yarnpkg.com/decimal.js/-/decimal.js-10.4.3.tgz#1044092884d245d1b7f65725fa4ad4c6f781cc23" @@ -10148,11 +10412,6 @@ decode-named-character-reference@^1.0.0: dependencies: character-entities "^2.0.0" -decode-uri-component@^0.2.0: - version "0.2.2" - resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.2.tgz#e69dbe25d37941171dd540e024c444cd5188e1e9" - integrity sha512-FqUYQ+8o158GyGTrMFJms9qh3CqTKvAqgqsTnkLI8sKu0028orqBhxNMFkFen0zGyg6epACD32pjVk58ngIErQ== - decompress-response@^6.0.0: version "6.0.0" resolved "https://registry.yarnpkg.com/decompress-response/-/decompress-response-6.0.0.tgz#ca387612ddb7e104bd16d85aab00d5ecf09c66fc" @@ -10216,7 +10475,7 @@ define-lazy-prop@^2.0.0: resolved "https://registry.yarnpkg.com/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz#3f7ae421129bcaaac9bc74905c98a0009ec9ee7f" integrity sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og== -define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: +define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0, define-properties@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.2.1.tgz#10781cc616eb951a80a034bafcaa7377f6af2b6c" integrity sha512-8QmQKqEASLd5nx0U1B1okLElbUuuttJ/AnYmRXbbbGDWh6uS208EjD4Xqq/I9wK7u0v6O08XhTWnt5XtEbR6Dg== @@ -10225,28 +10484,6 @@ define-properties@^1.1.3, define-properties@^1.1.4, define-properties@^1.2.0: has-property-descriptors "^1.0.0" object-keys "^1.1.1" -define-property@^0.2.5: - version "0.2.5" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" - integrity sha512-Rr7ADjQZenceVOAKop6ALkkRAmH1A4Gx9hV/7ZujPUN2rkATqFO0JZLZInbAjpZYoJ1gUx8MRMQVkYemcbMSTA== - dependencies: - is-descriptor "^0.1.0" - -define-property@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" - integrity sha512-cZTYKFWspt9jZsMscWo8sc/5lbPC9Q0N5nBLgb+Yd915iL3udB1uFgS3B8YCx66UVHq018DAVFoee7x+gxggeA== - dependencies: - is-descriptor "^1.0.0" - -define-property@^2.0.2: - version "2.0.2" - resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" - integrity sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ== - dependencies: - is-descriptor "^1.0.2" - isobject "^3.0.1" - defu@^6.1.2: version "6.1.3" resolved "https://registry.yarnpkg.com/defu/-/defu-6.1.3.tgz#6d7f56bc61668e844f9f593ace66fd67ef1205fd" @@ -10323,21 +10560,11 @@ destroy@1.2.0: resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.2.0.tgz#4803735509ad8be552934c67df614f94e66fa015" integrity sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg== -destroy@~1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" - integrity sha512-3NdhDuEXnfun/z7x9GOElY49LoqVHoGScmOKwmxhsS8N5Y+Z8KyPPDnaSzqWgYt/ji4mqwfTS34Htrk0zPIXVg== - detect-indent@^6.1.0: version "6.1.0" resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-6.1.0.tgz#592485ebbbf6b3b1ab2be175c8393d04ca0d57e6" integrity sha512-reYkTUJAZb9gUuZ2RvVCNhVHdg62RHnJ7WJl8ftMi4diZ6NWlciOzQN88pUhSELEwflJht4oQDv0F0BMlwaYtA== -detect-newline@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-2.1.0.tgz#f41f1c10be4b00e87b5f13da680759f2c5bfd3e2" - integrity sha512-CwffZFvlJffUg9zZA0uqrjQayUTC8ob94pnr5sFwaVv3IOmkfUHcWH+jXaQK3askE51Cqe8/9Ql/0uXNwqZ8Zg== - detect-newline@^3.0.0: version "3.1.0" resolved "https://registry.yarnpkg.com/detect-newline/-/detect-newline-3.1.0.tgz#576f5dfc63ae1a192ff192d8ad3af6308991b651" @@ -10368,11 +10595,6 @@ detect-port@^1.3.0, detect-port@^1.5.1: address "^1.0.1" debug "4" -dev-ip@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/dev-ip/-/dev-ip-1.0.1.tgz#a76a3ed1855be7a012bb8ac16cb80f3c00dc28f0" - integrity sha512-LmVkry/oDShEgSZPNgqCIp2/TlqtExeGmymru3uCELnfyjY11IzpAproLYs+1X88fXO6DBoYP3ul2Xo2yz2j6A== - diff-sequences@^29.6.3: version "29.6.3" resolved "https://registry.yarnpkg.com/diff-sequences/-/diff-sequences-29.6.3.tgz#4deaf894d11407c51efc8418012f9e70b84ea921" @@ -10388,13 +10610,6 @@ diff@^5.0.0: resolved "https://registry.yarnpkg.com/diff/-/diff-5.1.0.tgz#bc52d298c5ea8df9194800224445ed43ffc87e40" integrity sha512-D+mk+qE8VC/PAUrlAU34N+VfXev0ghe5ywmpqrawphmVZc1bEfn56uo9qpyGp1p4xpzOHkSW4ztBd6L7Xx4ACw== -dir-glob@^2.2.2: - version "2.2.2" - resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.2.2.tgz#fa09f0694153c8918b18ba0deafae94769fc50c4" - integrity sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw== - dependencies: - path-type "^3.0.0" - dir-glob@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-3.0.1.tgz#56dbf73d992a4a93ba1584f4534063fd2e41717f" @@ -10545,20 +10760,6 @@ eastasianwidth@^0.2.0: resolved "https://registry.yarnpkg.com/eastasianwidth/-/eastasianwidth-0.2.0.tgz#696ce2ec0aa0e6ea93a397ffcf24aa7840c827cb" integrity sha512-I88TYZWc9XiYHRQ4/3c5rjjfgkjhLyW2luGIheGERbNQ6OY7yTybanSpDXZa8y7VUP9YmDcYa+eyq4ca7iLqWA== -easy-extender@^2.3.4: - version "2.3.4" - resolved "https://registry.yarnpkg.com/easy-extender/-/easy-extender-2.3.4.tgz#298789b64f9aaba62169c77a2b3b64b4c9589b8f" - integrity sha512-8cAwm6md1YTiPpOvDULYJL4ZS6WfM5/cTeVVh4JsvyYZAoqlRVUpHL9Gr5Fy7HA6xcSZicUia3DeAgO3Us8E+Q== - dependencies: - lodash "^4.17.10" - -eazy-logger@^4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/eazy-logger/-/eazy-logger-4.0.1.tgz#2e9fe487fb14ed6ac20d5f01d90dff377d403041" - integrity sha512-2GSFtnnC6U4IEKhEI7+PvdxrmjJ04mdsj3wHZTFiw0tUtG4HCWzTr13ZYTk8XOGnA1xQMaDljoBOYlk3D/MMSw== - dependencies: - chalk "4.1.2" - ecc-jsbn@~0.1.1: version "0.1.2" resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz#3a83a904e54353287874c564b7549386849a98c9" @@ -10611,11 +10812,6 @@ emittery@^0.13.1: resolved "https://registry.yarnpkg.com/emittery/-/emittery-0.13.1.tgz#c04b8c3457490e0847ae51fced3af52d338e3dad" integrity sha512-DeWwawk6r5yR9jFgnDKYt4sLS0LmHJJi3ZOnb5/JdbYwj3nW+FxQnHIjhBKz8YLC7oRNPVM9NQ47I3CVx34eqQ== -emoji-regex@^7.0.1: - version "7.0.3" - resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-7.0.3.tgz#933a04052860c85e83c122479c4748a8e4c72156" - integrity sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA== - emoji-regex@^8.0.0: version "8.0.0" resolved "https://registry.yarnpkg.com/emoji-regex/-/emoji-regex-8.0.0.tgz#e818fd69ce5ccfcb404594f842963bf53164cc37" @@ -10636,7 +10832,7 @@ emojis-list@^3.0.0: resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-3.0.0.tgz#5570662046ad29e2e916e71aae260abdff4f6a78" integrity sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q== -encodeurl@~1.0.1, encodeurl@~1.0.2: +encodeurl@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" integrity sha512-TPJXq8JqFaVYm2CWmPvnP2Iyo4ZSM7/QKcSmuMLDObfpH5fi7RUGmd/rTDf+rut/saiDiQEeVTNgAmJEdAOx0w== @@ -10655,38 +10851,6 @@ end-of-stream@^1.0.0, end-of-stream@^1.1.0, end-of-stream@^1.4.1: dependencies: once "^1.4.0" -engine.io-client@~6.5.2: - version "6.5.3" - resolved "https://registry.yarnpkg.com/engine.io-client/-/engine.io-client-6.5.3.tgz#4cf6fa24845029b238f83c628916d9149c399bc5" - integrity sha512-9Z0qLB0NIisTRt1DZ/8U2k12RJn8yls/nXMZLn+/N8hANT3TcYjKFKcwbw5zFQiN4NTde3TSY9zb79e1ij6j9Q== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - engine.io-parser "~5.2.1" - ws "~8.11.0" - xmlhttprequest-ssl "~2.0.0" - -engine.io-parser@~5.2.1: - version "5.2.1" - resolved "https://registry.yarnpkg.com/engine.io-parser/-/engine.io-parser-5.2.1.tgz#9f213c77512ff1a6cc0c7a86108a7ffceb16fcfb" - integrity sha512-9JktcM3u18nU9N2Lz3bWeBgxVgOKpw7yhRaoxQA3FUDZzzw+9WlA6p4G4u0RixNkg14fH7EfEc/RhpurtiROTQ== - -engine.io@~6.5.2: - version "6.5.4" - resolved "https://registry.yarnpkg.com/engine.io/-/engine.io-6.5.4.tgz#6822debf324e781add2254e912f8568508850cdc" - integrity sha512-KdVSDKhVKyOi+r5uEabrDLZw2qXStVvCsEB/LN3mw4WFi6Gx50jTyuxYVCwAAC0U46FdnzP/ScKRBTXb/NiEOg== - dependencies: - "@types/cookie" "^0.4.1" - "@types/cors" "^2.8.12" - "@types/node" ">=10.0.0" - accepts "~1.3.4" - base64id "2.0.0" - cookie "~0.4.1" - cors "~2.8.5" - debug "~4.3.1" - engine.io-parser "~5.2.1" - ws "~8.11.0" - enhanced-resolve@^5.0.0, enhanced-resolve@^5.15.0, enhanced-resolve@^5.7.0: version "5.15.0" resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-5.15.0.tgz#1af946c7d93603eb88e9896cee4904dc012e9c35" @@ -10748,7 +10912,7 @@ error-ex@^1.3.1: dependencies: is-arrayish "^0.2.1" -es-abstract@^1.22.1: +es-abstract@^1.22.1, es-abstract@^1.22.3: version "1.22.3" resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.22.3.tgz#48e79f5573198de6dee3589195727f4f74bc4f32" integrity sha512-eiiY8HQeYfYH2Con2berK+To6GrK2RxbPawDkGq4UiCQQfZHb6wX9qQqkbpPqaxQFcl8d9QzZqo0tGE0VcrdwA== @@ -10793,6 +10957,16 @@ es-abstract@^1.22.1: unbox-primitive "^1.0.2" which-typed-array "^1.1.13" +es-array-method-boxes-properly@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/es-array-method-boxes-properly/-/es-array-method-boxes-properly-1.0.0.tgz#873f3e84418de4ee19c5be752990b2e44718d09e" + integrity sha512-wd6JXUmyHmt8T5a2xreUwKcGPq6f1f+WwIJkijUqiGcJz1qqnZgP6XIK+QyIWU5lT7imeNxUll48bziG+TSYcA== + +es-errors@^1.0.0, es-errors@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/es-errors/-/es-errors-1.3.0.tgz#05f75a25dab98e4fb1dcd5e1472c0546d5057c8f" + integrity sha512-Zf5H2Kxt2xjTvbJvP2ZWLEICxA6j+hAmMzIlypy4xcBg1vKVnx89Wy0GbS+kf5cwCVFFzdCFh2XSCFNULS6csw== + es-module-lexer@^1.2.1: version "1.3.1" resolved "https://registry.yarnpkg.com/es-module-lexer/-/es-module-lexer-1.3.1.tgz#c1b0dd5ada807a3b3155315911f364dc4e909db1" @@ -10812,7 +10986,7 @@ es-set-tostringtag@^2.0.1: has-tostringtag "^1.0.0" hasown "^2.0.0" -es-shim-unscopables@^1.0.0: +es-shim-unscopables@^1.0.0, es-shim-unscopables@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/es-shim-unscopables/-/es-shim-unscopables-1.0.2.tgz#1f6942e71ecc7835ed1c8a83006d8771a63a3763" integrity sha512-J3yBRXCzDu4ULnQwxyToo/OjdMx6akgVC7K6few0a7F/0wLtmKKN7I73AH5T2836UuXRqN7Qg+IIUw/+YJksRw== @@ -10840,12 +11014,46 @@ esbuild-register@^3.4.0, esbuild-register@^3.5.0: dependencies: debug "^4.3.4" -esbuild-wasm@0.19.5, esbuild-wasm@>=0.13.8: +esbuild-wasm@0.19.11: + version "0.19.11" + resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.19.11.tgz#4ed96cdd1a289bc08432a25fd38b7331d3eac98d" + integrity sha512-MIhnpc1TxERUHomteO/ZZHp+kUawGEc03D/8vMHGzffLvbFLeDe6mwxqEZwlqBNY7SLWbyp6bBQAcCen8+wpjQ== + +esbuild-wasm@>=0.13.8: version "0.19.5" resolved "https://registry.yarnpkg.com/esbuild-wasm/-/esbuild-wasm-0.19.5.tgz#28f4563d7e3bcbe9462813e376b2fb6024931fd9" integrity sha512-7zmLLn2QCj93XfMmHtzrDJ1UBuOHB2CZz1ghoCEZiRajxjUvHsF40PnbzFIY/pmesqPRaEtEWii0uzsTbnAgrA== -esbuild@0.19.5, esbuild@>=0.13.8: +esbuild@0.19.11: + version "0.19.11" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.11.tgz#4a02dca031e768b5556606e1b468fe72e3325d96" + integrity sha512-HJ96Hev2hX/6i5cDVwcqiJBBtuo9+FeIJOtZ9W1kA5M6AMJRHUZlpYZ1/SbEwtO0ioNAW8rUooVpC/WehY2SfA== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.11" + "@esbuild/android-arm" "0.19.11" + "@esbuild/android-arm64" "0.19.11" + "@esbuild/android-x64" "0.19.11" + "@esbuild/darwin-arm64" "0.19.11" + "@esbuild/darwin-x64" "0.19.11" + "@esbuild/freebsd-arm64" "0.19.11" + "@esbuild/freebsd-x64" "0.19.11" + "@esbuild/linux-arm" "0.19.11" + "@esbuild/linux-arm64" "0.19.11" + "@esbuild/linux-ia32" "0.19.11" + "@esbuild/linux-loong64" "0.19.11" + "@esbuild/linux-mips64el" "0.19.11" + "@esbuild/linux-ppc64" "0.19.11" + "@esbuild/linux-riscv64" "0.19.11" + "@esbuild/linux-s390x" "0.19.11" + "@esbuild/linux-x64" "0.19.11" + "@esbuild/netbsd-x64" "0.19.11" + "@esbuild/openbsd-x64" "0.19.11" + "@esbuild/sunos-x64" "0.19.11" + "@esbuild/win32-arm64" "0.19.11" + "@esbuild/win32-ia32" "0.19.11" + "@esbuild/win32-x64" "0.19.11" + +esbuild@>=0.13.8: version "0.19.5" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.5.tgz#53a0e19dfbf61ba6c827d51a80813cf071239a8c" integrity sha512-bUxalY7b1g8vNhQKdB24QDmHeY4V4tw/s6Ak5z+jJX9laP5MoQseTOMemAr0gxssjNcH0MCViG8ONI2kksvfFQ== @@ -10901,7 +11109,7 @@ esbuild@^0.17.0: "@esbuild/win32-ia32" "0.17.19" "@esbuild/win32-x64" "0.17.19" -esbuild@^0.18.0, esbuild@^0.18.10: +esbuild@^0.18.0: version "0.18.20" resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.18.20.tgz#4709f5a34801b43b799ab7d6d82f7284a9b7a7a6" integrity sha512-ceqxoedUrcayh7Y7ZX6NdbbDzGROiyVBgC4PriJThBKSVPWnnFHZAkfI1lJT8QFkOwH4qOS2SJkS4wvpGl8BpA== @@ -10929,6 +11137,35 @@ esbuild@^0.18.0, esbuild@^0.18.10: "@esbuild/win32-ia32" "0.18.20" "@esbuild/win32-x64" "0.18.20" +esbuild@^0.19.3: + version "0.19.12" + resolved "https://registry.yarnpkg.com/esbuild/-/esbuild-0.19.12.tgz#dc82ee5dc79e82f5a5c3b4323a2a641827db3e04" + integrity sha512-aARqgq8roFBj054KvQr5f1sFu0D65G+miZRCuJyJ0G13Zwx7vRar5Zhn2tkQNzIXcBrNVsv/8stehpj+GAjgbg== + optionalDependencies: + "@esbuild/aix-ppc64" "0.19.12" + "@esbuild/android-arm" "0.19.12" + "@esbuild/android-arm64" "0.19.12" + "@esbuild/android-x64" "0.19.12" + "@esbuild/darwin-arm64" "0.19.12" + "@esbuild/darwin-x64" "0.19.12" + "@esbuild/freebsd-arm64" "0.19.12" + "@esbuild/freebsd-x64" "0.19.12" + "@esbuild/linux-arm" "0.19.12" + "@esbuild/linux-arm64" "0.19.12" + "@esbuild/linux-ia32" "0.19.12" + "@esbuild/linux-loong64" "0.19.12" + "@esbuild/linux-mips64el" "0.19.12" + "@esbuild/linux-ppc64" "0.19.12" + "@esbuild/linux-riscv64" "0.19.12" + "@esbuild/linux-s390x" "0.19.12" + "@esbuild/linux-x64" "0.19.12" + "@esbuild/netbsd-x64" "0.19.12" + "@esbuild/openbsd-x64" "0.19.12" + "@esbuild/sunos-x64" "0.19.12" + "@esbuild/win32-arm64" "0.19.12" + "@esbuild/win32-ia32" "0.19.12" + "@esbuild/win32-x64" "0.19.12" + escalade@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/escalade/-/escalade-3.1.1.tgz#d8cfdc7000965c5a0174b4a82eaa5c0552742e40" @@ -10959,6 +11196,18 @@ escape-string-regexp@^5.0.0: resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-5.0.0.tgz#4683126b500b61762f2dbebace1806e8be31b1c8" integrity sha512-/veY75JbMK4j1yjvuUxuVsiS/hr/4iHs9FTT6cgTexxdE0Ly/glccBAkloH/DofkjRbZU3bnoj38mOmhkZ0lHw== +escodegen@^1.8.1: + version "1.14.3" + resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-1.14.3.tgz#4e7b81fba61581dc97582ed78cab7f0e8d63f503" + integrity sha512-qFcX0XJkdg+PB3xjZZG/wKSuT1PnQWx57+TVSjIMmILd2yC/6ByYElPwJnslDsuWuSAp4AwJGumarAAmJch5Kw== + dependencies: + esprima "^4.0.1" + estraverse "^4.2.0" + esutils "^2.0.2" + optionator "^0.8.1" + optionalDependencies: + source-map "~0.6.1" + escodegen@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/escodegen/-/escodegen-2.1.0.tgz#ba93bbb7a43986d29d6041f99f5262da773e2e17" @@ -10970,12 +11219,12 @@ escodegen@^2.0.0: optionalDependencies: source-map "~0.6.1" -eslint-config-prettier@9.0.0: - version "9.0.0" - resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.0.0.tgz#eb25485946dd0c66cd216a46232dc05451518d1f" - integrity sha512-IcJsTkJae2S35pRsRAwoCE+925rJJStOdkKnLVgtE+tEpqU0EVVM7OqrwxqgptKdX29NUwC82I5pXsGFIgSevw== +eslint-config-prettier@9.1.0: + version "9.1.0" + resolved "https://registry.yarnpkg.com/eslint-config-prettier/-/eslint-config-prettier-9.1.0.tgz#31af3d94578645966c082fcb71a5846d3c94867f" + integrity sha512-NSWl5BFQWEPi1j4TjVNItzYV7dZXZ+wP6I6ZhrBGpChQhZRUaElihE9uRRkcbRnNb76UMKDF3r+WTmNcGPKsqw== -eslint-import-resolver-node@^0.3.7: +eslint-import-resolver-node@^0.3.9: version "0.3.9" resolved "https://registry.yarnpkg.com/eslint-import-resolver-node/-/eslint-import-resolver-node-0.3.9.tgz#d4eaac52b8a2e7c3cd1903eb00f7e053356118ac" integrity sha512-WFj2isz22JahUv+B788TlO3N6zL3nNJGU8CcZbPZvVEkBPaJdCV4vy5wyghty5ROFbCRnm132v8BScu5/1BQ8g== @@ -10984,45 +11233,47 @@ eslint-import-resolver-node@^0.3.7: is-core-module "^2.13.0" resolve "^1.22.4" -eslint-module-utils@^2.7.4: +eslint-module-utils@^2.8.0: version "2.8.0" resolved "https://registry.yarnpkg.com/eslint-module-utils/-/eslint-module-utils-2.8.0.tgz#e439fee65fc33f6bba630ff621efc38ec0375c49" integrity sha512-aWajIYfsqCKRDgUfjEXNN/JlrzauMuSEy5sbd7WXbtW3EH6A6MpwEh42c7qD+MqQo9QMJ6fWLAeIJynx0g6OAw== dependencies: debug "^3.2.7" -eslint-plugin-cypress@2.14.0: - version "2.14.0" - resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.14.0.tgz#c65e1f592680dd25bbd00c86194ee85fecf59bd7" - integrity sha512-eW6tv7iIg7xujleAJX4Ujm649Bf5jweqa4ObPEIuueYRyLZt7qXGWhCY/n4bfeFW/j6nQZwbIBHKZt6EKcL/cg== +eslint-plugin-cypress@2.15.1: + version "2.15.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-cypress/-/eslint-plugin-cypress-2.15.1.tgz#336afa7e8e27451afaf65aa359c9509e0a4f3a7b" + integrity sha512-eLHLWP5Q+I4j2AWepYq0PgFEei9/s5LvjuSqWrxurkg1YZ8ltxdvMNmdSf0drnsNo57CTgYY/NIHHLRSWejR7w== dependencies: globals "^13.20.0" -eslint-plugin-import@2.27.5: - version "2.27.5" - resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.27.5.tgz#876a6d03f52608a3e5bb439c2550588e51dd6c65" - integrity sha512-LmEt3GVofgiGuiE+ORpnvP+kAm3h6MLZJ4Q5HCyHADofsb4VzXFsRiWj3c0OFiV+3DWFh0qg3v9gcPlfc3zRow== +eslint-plugin-import@2.29.1: + version "2.29.1" + resolved "https://registry.yarnpkg.com/eslint-plugin-import/-/eslint-plugin-import-2.29.1.tgz#d45b37b5ef5901d639c15270d74d46d161150643" + integrity sha512-BbPC0cuExzhiMo4Ff1BTVwHpjjv28C5R+btTOGaCRC7UEz801up0JadwkeSk5Ued6TG34uaczuVuH6qyy5YUxw== dependencies: - array-includes "^3.1.6" - array.prototype.flat "^1.3.1" - array.prototype.flatmap "^1.3.1" + array-includes "^3.1.7" + array.prototype.findlastindex "^1.2.3" + array.prototype.flat "^1.3.2" + array.prototype.flatmap "^1.3.2" debug "^3.2.7" doctrine "^2.1.0" - eslint-import-resolver-node "^0.3.7" - eslint-module-utils "^2.7.4" - has "^1.0.3" - is-core-module "^2.11.0" + eslint-import-resolver-node "^0.3.9" + eslint-module-utils "^2.8.0" + hasown "^2.0.0" + is-core-module "^2.13.1" is-glob "^4.0.3" minimatch "^3.1.2" - object.values "^1.1.6" - resolve "^1.22.1" - semver "^6.3.0" - tsconfig-paths "^3.14.1" + object.fromentries "^2.0.7" + object.groupby "^1.0.1" + object.values "^1.1.7" + semver "^6.3.1" + tsconfig-paths "^3.15.0" -eslint-plugin-storybook@0.6.12: - version "0.6.12" - resolved "https://registry.yarnpkg.com/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.12.tgz#7bdb3392bb03bebde40ed19accfd61246e9d6301" - integrity sha512-XbIvrq6hNVG6rpdBr+eBw63QhOMLpZneQVSooEDow8aQCWGCk/5vqtap1yxpVydNfSxi3S/3mBBRLQqKUqQRww== +eslint-plugin-storybook@0.6.15: + version "0.6.15" + resolved "https://registry.yarnpkg.com/eslint-plugin-storybook/-/eslint-plugin-storybook-0.6.15.tgz#8a091605b0a90974ec8e62d8112db6c4bd3a6faa" + integrity sha512-lAGqVAJGob47Griu29KXYowI4G7KwMoJDOkEip8ujikuDLxU+oWJ1l0WL6F2oDO4QiyUFXvtDkEkISMOPzo+7w== dependencies: "@storybook/csf" "^0.0.1" "@typescript-eslint/utils" "^5.45.0" @@ -11037,15 +11288,7 @@ eslint-scope@5.1.1, eslint-scope@^5.1.1: esrecurse "^4.3.0" estraverse "^4.1.1" -eslint-scope@^4.0.3: - version "4.0.3" - resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-4.0.3.tgz#ca03833310f6889a3264781aa82e63eb9cfe7848" - integrity sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg== - dependencies: - esrecurse "^4.1.0" - estraverse "^4.1.1" - -eslint-scope@^7.0.0, eslint-scope@^7.1.1: +eslint-scope@^7.2.2: version "7.2.2" resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f" integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg== @@ -11053,132 +11296,64 @@ eslint-scope@^7.0.0, eslint-scope@^7.1.1: esrecurse "^4.3.0" estraverse "^5.2.0" -eslint-utils@^1.3.1: - version "1.4.3" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f" - integrity sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q== - dependencies: - eslint-visitor-keys "^1.1.0" - -eslint-utils@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-3.0.0.tgz#8aebaface7345bb33559db0a1f13a1d2d48c3672" - integrity sha512-uuQC43IGctw68pJA1RgbQS8/NP7rch6Cwd4j3ZBtgo4/8Flj4eGE7ZYSZRN3iq5pVUv6GPdW5Z1RFleo84uLDA== +eslint-scope@^8.0.0: + version "8.0.0" + resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-8.0.0.tgz#7b6b067599c436404ce856cd2c47331464603a4a" + integrity sha512-zj3Byw6jX4TcFCJmxOzLt6iol5FAr9xQyZZSQjEzW2UiCJXLwXdRIKCYVFftnpZckaC9Ps9xlC7jB8tSeWWOaw== dependencies: - eslint-visitor-keys "^2.0.0" - -eslint-visitor-keys@^1.0.0, eslint-visitor-keys@^1.1.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz#30ebd1ef7c2fdff01c3a4f151044af25fab0523e" - integrity sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ== - -eslint-visitor-keys@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-2.1.0.tgz#f65328259305927392c938ed44eb0a5c9b2bd303" - integrity sha512-0rSmRBzXgDzIsD6mGdJgevzgezI534Cer5L/vyMX0kHzT/jiB43jRhd9YUlMGYLQy2zprNmoT8qasCGtY+QaKw== + esrecurse "^4.3.0" + estraverse "^5.2.0" -eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1: +eslint-visitor-keys@^3.0.0, eslint-visitor-keys@^3.3.0, eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3: version "3.4.3" resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800" integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag== -eslint@8.33.0: - version "8.33.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.33.0.tgz#02f110f32998cb598c6461f24f4d306e41ca33d7" - integrity sha512-WjOpFQgKK8VrCnAtl8We0SUOy/oVZ5NHykyMiagV1M9r8IFpIJX7DduK6n1mpfhlG7T1NLWm2SuD8QB7KFySaA== +eslint@8.56.0, eslint@^8.0.0: + version "8.56.0" + resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.56.0.tgz#4957ce8da409dc0809f99ab07a1b94832ab74b15" + integrity sha512-Go19xM6T9puCOWntie1/P997aXxFsOi37JIHRWI514Hc6ZnaHGKY9xFhrU65RT6CcBEzZoGG1e6Nq+DT04ZtZQ== dependencies: - "@eslint/eslintrc" "^1.4.1" - "@humanwhocodes/config-array" "^0.11.8" + "@eslint-community/eslint-utils" "^4.2.0" + "@eslint-community/regexpp" "^4.6.1" + "@eslint/eslintrc" "^2.1.4" + "@eslint/js" "8.56.0" + "@humanwhocodes/config-array" "^0.11.13" "@humanwhocodes/module-importer" "^1.0.1" "@nodelib/fs.walk" "^1.2.8" - ajv "^6.10.0" + "@ungap/structured-clone" "^1.2.0" + ajv "^6.12.4" chalk "^4.0.0" cross-spawn "^7.0.2" debug "^4.3.2" doctrine "^3.0.0" escape-string-regexp "^4.0.0" - eslint-scope "^7.1.1" - eslint-utils "^3.0.0" - eslint-visitor-keys "^3.3.0" - espree "^9.4.0" - esquery "^1.4.0" + eslint-scope "^7.2.2" + eslint-visitor-keys "^3.4.3" + espree "^9.6.1" + esquery "^1.4.2" esutils "^2.0.2" fast-deep-equal "^3.1.3" file-entry-cache "^6.0.1" find-up "^5.0.0" glob-parent "^6.0.2" globals "^13.19.0" - grapheme-splitter "^1.0.4" + graphemer "^1.4.0" ignore "^5.2.0" - import-fresh "^3.0.0" imurmurhash "^0.1.4" is-glob "^4.0.0" is-path-inside "^3.0.3" - js-sdsl "^4.1.4" js-yaml "^4.1.0" json-stable-stringify-without-jsonify "^1.0.1" levn "^0.4.1" lodash.merge "^4.6.2" minimatch "^3.1.2" natural-compare "^1.4.0" - optionator "^0.9.1" - regexpp "^3.2.0" + optionator "^0.9.3" strip-ansi "^6.0.1" - strip-json-comments "^3.1.0" text-table "^0.2.0" -eslint@^5.0.0: - version "5.16.0" - resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea" - integrity sha512-S3Rz11i7c8AA5JPv7xAH+dOyq/Cu/VXHiHXBPOU1k/JAM5dXqQPt3qcrhpHSorXmrpu2g0gkIBVXAqCpzfoZIg== - dependencies: - "@babel/code-frame" "^7.0.0" - ajv "^6.9.1" - chalk "^2.1.0" - cross-spawn "^6.0.5" - debug "^4.0.1" - doctrine "^3.0.0" - eslint-scope "^4.0.3" - eslint-utils "^1.3.1" - eslint-visitor-keys "^1.0.0" - espree "^5.0.1" - esquery "^1.0.1" - esutils "^2.0.2" - file-entry-cache "^5.0.1" - functional-red-black-tree "^1.0.1" - glob "^7.1.2" - globals "^11.7.0" - ignore "^4.0.6" - import-fresh "^3.0.0" - imurmurhash "^0.1.4" - inquirer "^6.2.2" - js-yaml "^3.13.0" - json-stable-stringify-without-jsonify "^1.0.1" - levn "^0.3.0" - lodash "^4.17.11" - minimatch "^3.0.4" - mkdirp "^0.5.1" - natural-compare "^1.4.0" - optionator "^0.8.2" - path-is-inside "^1.0.2" - progress "^2.0.0" - regexpp "^2.0.1" - semver "^5.5.1" - strip-ansi "^4.0.0" - strip-json-comments "^2.0.1" - table "^5.2.3" - text-table "^0.2.0" - -espree@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/espree/-/espree-5.0.1.tgz#5d6526fa4fc7f0788a5cf75b15f30323e2f81f7a" - integrity sha512-qWAZcWh4XE/RwzLJejfcofscgMc9CamR6Tn1+XRXNzrvUSSbiAjGOI/fggztjIi7y9VLPqnICMIPiGyr8JaZ0A== - dependencies: - acorn "^6.0.7" - acorn-jsx "^5.0.0" - eslint-visitor-keys "^1.0.0" - -espree@^9.0.0, espree@^9.4.0: +espree@^9.0.0, espree@^9.6.0, espree@^9.6.1: version "9.6.1" resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f" integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ== @@ -11187,26 +11362,31 @@ espree@^9.0.0, espree@^9.4.0: acorn-jsx "^5.3.2" eslint-visitor-keys "^3.4.1" +esprima@1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-1.2.2.tgz#76a0fd66fcfe154fd292667dc264019750b1657b" + integrity sha512-+JpPZam9w5DuJ3Q67SqsMGtiHKENSMRVoxvArfJZK01/BfLEObtZ6orJa/MtoGNR/rfMgp5837T41PAmTwAv/A== + esprima@^4.0.0, esprima@^4.0.1, esprima@~4.0.0: version "4.0.1" resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.1.tgz#13b04cdb3e6c5d19df91ab6987a8695619b0aa71" integrity sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A== -esquery@^1.0.1, esquery@^1.4.0: +esquery@^1.4.0, esquery@^1.4.2: version "1.5.0" resolved "https://registry.yarnpkg.com/esquery/-/esquery-1.5.0.tgz#6ce17738de8577694edd7361c57182ac8cb0db0b" integrity sha512-YQLXUplAwJgCydQ78IMJywZCceoqk1oH01OERdSAJc/7U2AylwjhSCLDEtqwg811idIS/9fIU5GjG73IgjKMVg== dependencies: estraverse "^5.1.0" -esrecurse@^4.1.0, esrecurse@^4.3.0: +esrecurse@^4.3.0: version "4.3.0" resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.3.0.tgz#7ad7964d679abb28bee72cec63758b1c5d2c9921" integrity sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag== dependencies: estraverse "^5.2.0" -estraverse@^4.1.1: +estraverse@^4.1.1, estraverse@^4.2.0: version "4.3.0" resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.3.0.tgz#398ad3f3c5a24948be7725e83d11a7de28cdbd1d" integrity sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw== @@ -11221,7 +11401,7 @@ esutils@^2.0.2: resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.3.tgz#74d2eb4de0b8da1293711910d50775b9b710ef64" integrity sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g== -etag@1.8.1, etag@^1.8.1, etag@~1.8.1: +etag@~1.8.1: version "1.8.1" resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" integrity sha512-aIL5Fx7mawVa300al2BnEE4iNvo1qETxLrPI/o05L7z6go7fCw1J6EQmbK4FmJ2AS7kgVF/KEZWufBfdClMcPg== @@ -11231,11 +11411,6 @@ event-target-shim@^5.0.0: resolved "https://registry.yarnpkg.com/event-target-shim/-/event-target-shim-5.0.1.tgz#5d4d3ebdf9583d63a5333ce2deb7480ab2b05789" integrity sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ== -eventemitter-asyncresource@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz#734ff2e44bf448e627f7748f905d6bdd57bdb65b" - integrity sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ== - eventemitter2@^6.4.2: version "6.4.9" resolved "https://registry.yarnpkg.com/eventemitter2/-/eventemitter2-6.4.9.tgz#41f2750781b4230ed58827bc119d293471ecb125" @@ -11251,19 +11426,6 @@ events@^3.2.0: resolved "https://registry.yarnpkg.com/events/-/events-3.3.0.tgz#31a95ad0a924e2d2c419a813aeb2c4e878ea7400" integrity sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q== -execa@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/execa/-/execa-1.0.0.tgz#c6236a5bb4df6d6f15e88e7f017798216749ddd8" - integrity sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA== - dependencies: - cross-spawn "^6.0.0" - get-stream "^4.0.0" - is-stream "^1.1.0" - npm-run-path "^2.0.0" - p-finally "^1.0.0" - signal-exit "^3.0.0" - strip-eof "^1.0.0" - execa@^4.0.2: version "4.1.0" resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" @@ -11311,19 +11473,6 @@ exit@^0.1.2: resolved "https://registry.yarnpkg.com/exit/-/exit-0.1.2.tgz#0632638f8d877cc82107d30a0fff1a17cba1cd0c" integrity sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ== -expand-brackets@^2.1.4: - version "2.1.4" - resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" - integrity sha512-w/ozOKR9Obk3qoWeY/WDi6MFta9AoMR+zud60mdnbniMcBxRuFJyDt2LdX/14A1UABeqk+Uk+LDfUpvoGKppZA== - dependencies: - debug "^2.3.3" - define-property "^0.2.5" - extend-shallow "^2.0.1" - posix-character-classes "^0.1.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - expect@^29.0.0, expect@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/expect/-/expect-29.7.0.tgz#578874590dcb3214514084c08115d8aee61e11bc" @@ -11377,27 +11526,12 @@ express@4.18.2, express@^4.17.3: utils-merge "1.0.1" vary "~1.1.2" -extend-shallow@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" - integrity sha512-zCnTtlxNoAiDc3gqY2aYAWFx7XWWiasuF2K8Me5WbN8otHKTUKBwjPtNpRs/rbUZm7KxWAaNj7P1a/p52GbVug== - dependencies: - is-extendable "^0.1.0" - -extend-shallow@^3.0.0, extend-shallow@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" - integrity sha512-BwY5b5Ql4+qZoefgMj2NUmx+tehVTH/Kf4k1ZEtOHNFcm2wSxMRo992l6X3TIgni2eZVTZ85xMOjF31fwZAj6Q== - dependencies: - assign-symbols "^1.0.0" - is-extendable "^1.0.1" - extend@^3.0.0, extend@^3.0.2, extend@~3.0.2: version "3.0.2" resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== -external-editor@^3.0.3, external-editor@^3.1.0: +external-editor@^3.1.0: version "3.1.0" resolved "https://registry.yarnpkg.com/external-editor/-/external-editor-3.1.0.tgz#cb03f740befae03ea4d283caed2741a83f335495" integrity sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew== @@ -11406,20 +11540,6 @@ external-editor@^3.0.3, external-editor@^3.1.0: iconv-lite "^0.4.24" tmp "^0.0.33" -extglob@^2.0.4: - version "2.0.4" - resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" - integrity sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw== - dependencies: - array-unique "^0.3.2" - define-property "^1.0.0" - expand-brackets "^2.1.4" - extend-shallow "^2.0.1" - fragment-cache "^0.2.1" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - extract-zip@^1.6.6, extract-zip@^1.7.0: version "1.7.0" resolved "https://registry.yarnpkg.com/extract-zip/-/extract-zip-1.7.0.tgz#556cc3ae9df7f452c493a0cfb51cc30277940927" @@ -11467,17 +11587,16 @@ fast-glob@3.3.1, fast-glob@^3.2.11, fast-glob@^3.2.12, fast-glob@^3.2.7, fast-gl merge2 "^1.3.0" micromatch "^4.0.4" -fast-glob@^2.2.6: - version "2.2.7" - resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-2.2.7.tgz#6953857c3afa475fff92ee6015d52da70a4cd39d" - integrity sha512-g1KuQwHOZAmOZMuBtHdxDtju+T2RT8jgCC9aANsbpdiDDTSnjgfuVsIBNKbUeJI3oKMRExcfNDtJl4OhbffMsw== +fast-glob@3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/fast-glob/-/fast-glob-3.3.2.tgz#a904501e57cfdd2ffcded45e99a54fef55e46129" + integrity sha512-oX2ruAFQwf/Orj8m737Y5adxDQO0LAB7/S5MnxCdTNDd4p6BsyIVsv9JQsATbTSq8KHRpLwIHbVlUNatxd+1Ow== dependencies: - "@mrmlnc/readdir-enhanced" "^2.2.1" - "@nodelib/fs.stat" "^1.1.2" - glob-parent "^3.1.0" - is-glob "^4.0.0" - merge2 "^1.2.3" - micromatch "^3.1.10" + "@nodelib/fs.stat" "^2.0.2" + "@nodelib/fs.walk" "^1.2.3" + glob-parent "^5.1.2" + merge2 "^1.3.0" + micromatch "^4.0.4" fast-json-stable-stringify@2.x, fast-json-stable-stringify@^2.0.0, fast-json-stable-stringify@^2.1.0: version "2.1.0" @@ -11567,13 +11686,6 @@ figures@^5.0.0: escape-string-regexp "^5.0.0" is-unicode-supported "^1.2.0" -file-entry-cache@^5.0.1: - version "5.0.1" - resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-5.0.1.tgz#ca0f6efa6dd3d561333fb14515065c2fafdf439c" - integrity sha512-bCg29ictuBaKUwwArK4ouCaqDgLZcysCFLmM/Yn/FDoqndh/9vNuQfXRDvTuXKLxfD/JtZQGKFT8MGcJBK644g== - dependencies: - flat-cache "^2.0.1" - file-entry-cache@^6.0.1: version "6.0.1" resolved "https://registry.yarnpkg.com/file-entry-cache/-/file-entry-cache-6.0.1.tgz#211b2dd9659cb0394b073e7323ac3c933d522027" @@ -11599,11 +11711,6 @@ file-system-cache@^2.0.0: fs-extra "11.1.1" ramda "0.29.0" -file@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/file/-/file-0.2.2.tgz#c3dfd8f8cf3535ae455c2b423c2e52635d76b4d3" - integrity sha512-gwabMtChzdnpDJdPEpz8Vr/PX0pU85KailuPV71Zw/un5yJVKvzukhB3qf6O3lnTwIe5CxlMYLh3jOK3w5xrLA== - filelist@^1.0.4: version "1.0.4" resolved "https://registry.yarnpkg.com/filelist/-/filelist-1.0.4.tgz#f78978a1e944775ff9e62e744424f215e58352b5" @@ -11611,16 +11718,6 @@ filelist@^1.0.4: dependencies: minimatch "^5.0.1" -fill-range@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" - integrity sha512-VcpLTWqWDiTerugjj8e3+esbg+skS3M9e54UuR3iCeIDMXCLTsAH8hTSzDQU/X6/6t3eYkOKoZSef2PlU6U1XQ== - dependencies: - extend-shallow "^2.0.1" - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range "^2.1.0" - fill-range@^7.0.1: version "7.0.1" resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-7.0.1.tgz#1919a6a7c75fe38b2c7c77e5198535da9acdda40" @@ -11628,19 +11725,6 @@ fill-range@^7.0.1: dependencies: to-regex-range "^5.0.1" -finalhandler@1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.0.tgz#ce0b6855b45853e791b2fcc680046d88253dd7f5" - integrity sha512-ejnvM9ZXYzp6PUPUyQBMBf0Co5VX2gr5H2VQe2Ui2jWXNlxv+PYZo8wpAymJNJdLsG1R4p+M4aynF8KuoUEwRw== - dependencies: - debug "2.6.9" - encodeurl "~1.0.1" - escape-html "~1.0.3" - on-finished "~2.3.0" - parseurl "~1.3.2" - statuses "~1.3.1" - unpipe "~1.0.0" - finalhandler@1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.2.0.tgz#7d23fe5731b207b4640e4fcd00aec1f9207a7b32" @@ -11680,16 +11764,6 @@ find-cache-dir@^4.0.0: common-path-prefix "^3.0.0" pkg-dir "^7.0.0" -find-line-column@^0.5.2: - version "0.5.2" - resolved "https://registry.yarnpkg.com/find-line-column/-/find-line-column-0.5.2.tgz#db00238ff868551a182e74a103416d295a98c8ca" - integrity sha512-eNhNkDt5RbxY4X++JwyDURP62FYhV1bh9LF4dfOiwpVCTk5vvfEANhnui5ypUEELGR02QZSrWFtaTgd4ulW5tw== - -find-root@^1.0.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/find-root/-/find-root-1.1.0.tgz#abcfc8ba76f708c42a97b3d685b7e9450bfb9ce4" - integrity sha512-NKfW6bec6GfKc0SGx1e07QZY9PE99u0Bft/0rzSD5k3sO/vwkVUpDUKVm5Gpp5Ue3YfShPFTX2070tDs5kB9Ng== - find-up@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/find-up/-/find-up-3.0.0.tgz#49169f1d7993430646da61ecc5ae355c21c97b73" @@ -11718,17 +11792,8 @@ find-up@^6.3.0: resolved "https://registry.yarnpkg.com/find-up/-/find-up-6.3.0.tgz#2abab3d3280b2dc7ac10199ef324c4e002c8c790" integrity sha512-v2ZsoEuVHYy8ZIlYqwPe/39Cy+cFDzp4dXPaxNvkEuouymu+2Jbz0PxpKarJHYJTmv2HWT3O382qY8l4jMWthw== dependencies: - locate-path "^7.1.0" - path-exists "^5.0.0" - -flat-cache@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/flat-cache/-/flat-cache-2.0.1.tgz#5d296d6f04bda44a4630a301413bdbc2ec085ec0" - integrity sha512-LoQe6yDuUMDzQAEH8sgmh4Md6oZnc/7PjtwjNFSzveXqSHt6ka9fPBuso7IGf9Rz4uqnSnWiFH2B/zj24a5ReA== - dependencies: - flatted "^2.0.0" - rimraf "2.6.3" - write "1.0.3" + locate-path "^7.1.0" + path-exists "^5.0.0" flat-cache@^3.0.4: version "3.1.1" @@ -11744,11 +11809,6 @@ flat@^5.0.2: resolved "https://registry.yarnpkg.com/flat/-/flat-5.0.2.tgz#8ca6fe332069ffa9d324c327198c598259ceb241" integrity sha512-b6suED+5/3rTpUBdG1gupIl8MPFCAMA0QXwmljLhvCUKcUvdE4gWky9zpuGCcXHOsz4J9wPGNWq6OKpmIzz3hQ== -flatted@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/flatted/-/flatted-2.0.2.tgz#4575b21e2bcee7434aa9be662f4b7b5f9c2b5138" - integrity sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA== - flatted@^3.2.9: version "3.2.9" resolved "https://registry.yarnpkg.com/flatted/-/flatted-3.2.9.tgz#7eb4c67ca1ba34232ca9d2d93e9886e611ad7daf" @@ -11759,11 +11819,16 @@ flow-parser@0.*: resolved "https://registry.yarnpkg.com/flow-parser/-/flow-parser-0.219.5.tgz#bff08036bd8f2aa7ebfd54a580dc418e37bc9c0e" integrity sha512-lHx/cl2XjopBx/ma9RYhG7FGj2JLKacoBwtI3leOp8AwRDPGwu6bzJoaCMfIl/sq14KdtY5MGzd5q6nKfGzcuQ== -follow-redirects@^1.0.0, follow-redirects@^1.14.0, follow-redirects@^1.15.0: +follow-redirects@^1.0.0, follow-redirects@^1.14.0: version "1.15.3" resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.3.tgz#fe2f3ef2690afce7e82ed0b44db08165b207123a" integrity sha512-1VzOtuEM8pC9SFU1E+8KfTjZyMztRsgEfwQl44z8A25uy13jSzTj6dyK2Df52iV0vgHCfBwLhDWevLn95w5v6Q== +follow-redirects@^1.15.4: + version "1.15.5" + resolved "https://registry.yarnpkg.com/follow-redirects/-/follow-redirects-1.15.5.tgz#54d4d6d062c0fa7d9d17feb008461550e3ba8020" + integrity sha512-vSFWUON1B+yAw1VN4xMfxgn5fTUiaOzAJCKBwIIgT/+7CuGy9+r+5gITvP62j3RmaD5Ph65UaERdOSRGUzZtgw== + for-each@^0.3.3: version "0.3.3" resolved "https://registry.yarnpkg.com/for-each/-/for-each-0.3.3.tgz#69b447e88a0a5d32c3e7084f3f1710034b21376e" @@ -11771,11 +11836,6 @@ for-each@^0.3.3: dependencies: is-callable "^1.1.3" -for-in@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" - integrity sha512-7EwmXrOjyL+ChxMhmG5lnW9MPt1aIeZEwKhQzoBUdTV0N3zuwWDZYVJatDvZ2OyzPUvdIAZDsCetk3coyMfcnQ== - foreground-child@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/foreground-child/-/foreground-child-3.1.1.tgz#1d173e776d75d2772fed08efe4a0de1ea1b12d0d" @@ -11853,14 +11913,7 @@ fraction.js@^4.3.6: resolved "https://registry.yarnpkg.com/fraction.js/-/fraction.js-4.3.7.tgz#06ca0085157e42fda7f9e726e79fefc4068840f7" integrity sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew== -fragment-cache@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" - integrity sha512-GMBAbW9antB8iZRHLoGw0b3HANt57diZYFO/HL1JGIC1MjKrdmhxvrJbupnVvpys0zsz7yBApXdQyfepKly2kA== - dependencies: - map-cache "^0.2.2" - -fresh@0.5.2, fresh@^0.5.2: +fresh@0.5.2: version "0.5.2" resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" integrity sha512-zJ2mQYM18rEFOudeV4GShTGIQ7RbzA7ozbU9I/XBpm7kqgMywgmylMwXHxZJmkVoYkna9d2pVXVXPdYTP9ej8Q== @@ -11879,15 +11932,6 @@ fs-extra@11.1.1, fs-extra@^11.1.0: jsonfile "^6.0.1" universalify "^2.0.0" -fs-extra@3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-3.0.1.tgz#3794f378c58b342ea7dbbb23095109c4b3b62291" - integrity sha512-V3Z3WZWVUYd8hoCL5xfXJCaHWYzmtwW5XWYSlLgERi8PWd8bx1kUHUk8L1BT57e49oKnDDD180mjfrHc1yA9rg== - dependencies: - graceful-fs "^4.1.2" - jsonfile "^3.0.0" - universalify "^0.1.0" - fs-extra@^10.0.0: version "10.1.0" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-10.1.0.tgz#02873cfbc4084dde127eaa5f9905eef2325d1abf" @@ -11931,7 +11975,7 @@ fs.realpath@^1.0.0: resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" integrity sha512-OO0pH2lK6a0hZnAdau5ItzHPI6pUlvI7jMVnxUQRtw4owF2wk8lOSabtGDCTP4Ggrg2MbGnWO9X8K1t4+fGMDw== -fsevents@^2.3.2, fsevents@~2.3.2: +fsevents@^2.3.2, fsevents@~2.3.2, fsevents@~2.3.3: version "2.3.3" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-2.3.3.tgz#cac6407785d03675a2a5e1a5305c697b347d90d6" integrity sha512-5xoDfX+fL7faATnagmWPpbFtwh/R77WmMMqqHGS65C3vvB0YHrgF+B1YmZ3441tMj5n63k0212XNoJwzlhffQw== @@ -11951,11 +11995,6 @@ function.prototype.name@^1.1.6: es-abstract "^1.22.1" functions-have-names "^1.2.3" -functional-red-black-tree@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327" - integrity sha512-dsKNQNdj6xA3T+QlADDA7mOSlX0qiMINjn0cgr+eGHGsbSHzTabcIogz2+p/iqP1Xs6EP/sS2SbqH+brGTbq0g== - functions-have-names@^1.2.3: version "1.2.3" resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834" @@ -12000,11 +12039,6 @@ gensync@^1.0.0-beta.2: resolved "https://registry.yarnpkg.com/gensync/-/gensync-1.0.0-beta.2.tgz#32a6ee76c3d7f52d46b2b1ae5d93fea8580a25e0" integrity sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg== -get-caller-file@^1.0.1: - version "1.0.3" - resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.3.tgz#f978fa4c90d1dfe7ff2d6beda2a515e713bdcf4a" - integrity sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w== - get-caller-file@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-2.0.5.tgz#4f94412a82db32f36e3b0b9741f8a97feb031f7e" @@ -12040,13 +12074,6 @@ get-port@^5.1.1: resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== -get-stream@^4.0.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-4.1.0.tgz#c1b255575f3dc21d59bfc79cd3d2b46b1c3a54b5" - integrity sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w== - dependencies: - pump "^3.0.0" - get-stream@^5.0.0, get-stream@^5.1.0: version "5.2.0" resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" @@ -12067,11 +12094,6 @@ get-symbol-description@^1.0.0: call-bind "^1.0.2" get-intrinsic "^1.1.1" -get-value@^2.0.3, get-value@^2.0.6: - version "2.0.6" - resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" - integrity sha512-Ln0UQDlxH1BapMu3GPtf7CuYNwRZf2gwCuPqbyG6pB8WfmFpzqcy4xtAaAMUhnNqjMKTiCPZG2oMT3YSx8U2NA== - getos@^3.2.1: version "3.2.1" resolved "https://registry.yarnpkg.com/getos/-/getos-3.2.1.tgz#0134d1f4e00eb46144c5a9c0ac4dc087cbb27dc5" @@ -12104,14 +12126,6 @@ github-slugger@^1.0.0: resolved "https://registry.yarnpkg.com/github-slugger/-/github-slugger-1.5.0.tgz#17891bbc73232051474d68bd867a34625c955f7d" integrity sha512-wIh+gKBI9Nshz2o46B0B3f5k/W+WI9ZAv6y5Dn5WJ5SK1t0TnDimB4WE5rmTD05ZAIn8HALCZVmCsvj0w0v0lw== -glob-parent@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" - integrity sha512-E8Ak/2+dZY6fnzlR7+ueWvhsH1SjHr4jjss4YS/h4py44jY9MhK/VFdaZJAWDz6BbL21KeteKxFSFpq8OS5gVA== - dependencies: - is-glob "^3.1.0" - path-dirname "^1.0.0" - glob-parent@^5.1.2, glob-parent@~5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-5.1.2.tgz#869832c58034fe68a4093c17dc15e8340d8401c4" @@ -12133,28 +12147,11 @@ glob-promise@^6.0.2: dependencies: "@types/glob" "^8.0.0" -glob-to-regexp@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.3.0.tgz#8c5a1494d2066c570cc3bfe4496175acc4d502ab" - integrity sha512-Iozmtbqv0noj0uDDqoL0zNq0VBEfK2YFoMAZoxJe4cwphvLR+JskfF30QhXHOR4m3KrE6NLRYw+U9MRXvifyig== - glob-to-regexp@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz#c75297087c851b9a578bd217dd59a92f59fe546e" integrity sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw== -glob@7.1.4: - version "7.1.4" - resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.4.tgz#aa608a2f6c577ad357e1ae5a5c26d9a8d1969255" - integrity sha512-hkLPepehmnKk41pUGm3sYxoFs/umurYfYJCerbXEyFIWcAzvpipAgVkBqqT9RBKMGjnq6kMuyYwha6csxbiM1A== - dependencies: - fs.realpath "^1.0.0" - inflight "^1.0.4" - inherits "2" - minimatch "^3.0.4" - once "^1.3.0" - path-is-absolute "^1.0.0" - glob@^10.0.0, glob@^10.2.2, glob@^10.3.10: version "10.3.10" resolved "https://registry.yarnpkg.com/glob/-/glob-10.3.10.tgz#0351ebb809fd187fe421ab96af83d3a70715df4b" @@ -12166,7 +12163,7 @@ glob@^10.0.0, glob@^10.2.2, glob@^10.3.10: minipass "^5.0.0 || ^6.0.2 || ^7.0.0" path-scurry "^1.10.1" -glob@^7.0.0, glob@^7.1.2, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: +glob@^7.0.0, glob@^7.1.3, glob@^7.1.4, glob@^7.1.6: version "7.2.3" resolved "https://registry.yarnpkg.com/glob/-/glob-7.2.3.tgz#b8df0fb802bbfa8e89bd1d938b4e16578ed44f2b" integrity sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q== @@ -12196,7 +12193,7 @@ global-dirs@^2.0.1: dependencies: ini "1.3.7" -globals@^11.1.0, globals@^11.7.0: +globals@^11.1.0: version "11.12.0" resolved "https://registry.yarnpkg.com/globals/-/globals-11.12.0.tgz#ab8795338868a0babd8525758018c2a7eb95c42e" integrity sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA== @@ -12250,20 +12247,6 @@ globby@^13.1.1: merge2 "^1.4.1" slash "^4.0.0" -globby@^9.0.0: - version "9.2.0" - resolved "https://registry.yarnpkg.com/globby/-/globby-9.2.0.tgz#fd029a706c703d29bdd170f4b6db3a3f7a7cb63d" - integrity sha512-ollPHROa5mcxDEkwg6bPt3QbEf4pDQSNtd6JPL1YvOvAo/7/0VAm9TccUeoTmarjPw4pfUthSCqcyfNB1I3ZSg== - dependencies: - "@types/glob" "^7.1.1" - array-union "^1.0.2" - dir-glob "^2.2.2" - fast-glob "^2.2.6" - glob "^7.1.3" - ignore "^4.0.3" - pify "^4.0.1" - slash "^2.0.0" - good-listener@^1.2.2: version "1.2.2" resolved "https://registry.yarnpkg.com/good-listener/-/good-listener-1.2.2.tgz#d53b30cdf9313dffb7dc9a0d477096aa6d145c50" @@ -12331,10 +12314,10 @@ graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.2.0, resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.2.11.tgz#4183e4e8bf08bb6e05bbb2f7d2e0c8f712ca40e3" integrity sha512-RbJ5/jmFcNNCcDV5o9eTnBLJ/HszWV0P73bc+Ff4nS/rJj+YaS6IGyiOL0VoBYX+l1Wrl3k63h/KrH+nhJ0XvQ== -grapheme-splitter@^1.0.4: - version "1.0.4" - resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e" - integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ== +graphemer@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6" + integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag== gtoken@^5.0.4: version "5.3.2" @@ -12435,42 +12418,6 @@ has-unicode@^2.0.1: resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" integrity sha512-8Rf9Y83NBReMnx0gFzA8JImQACstCYWUplepDa9xprwwtmgEZUF0h/i5xSA625zB/I37EtrswSST6OXxwaaIJQ== -has-value@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" - integrity sha512-gpG936j8/MzaeID5Yif+577c17TxaDmhuyVgSwtnL/q8UUTySg8Mecb+8Cf1otgLoD7DDH75axp86ER7LFsf3Q== - dependencies: - get-value "^2.0.3" - has-values "^0.1.4" - isobject "^2.0.0" - -has-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" - integrity sha512-IBXk4GTsLYdQ7Rvt+GRBrFSVEkmuOUy4re0Xjd9kJSUQpnTrWR4/y9RpfexN9vkAPMFuQoeWKwqzPozRTlasGw== - dependencies: - get-value "^2.0.6" - has-values "^1.0.0" - isobject "^3.0.0" - -has-values@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" - integrity sha512-J8S0cEdWuQbqD9//tlZxiMuMNmxB8PlEwvYwuxsTmR1G5RXUePEX/SJn7aD0GMLieuZYSwNH0cQuJGwnYunXRQ== - -has-values@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" - integrity sha512-ODYZC64uqzmtfGMEAX/FvZiRyWLpAC3vYnNunURUnkGVTS+mI0smVsWaPydRBsE3g+ok7h960jChO8mFcWlHaQ== - dependencies: - is-number "^3.0.0" - kind-of "^4.0.0" - -has@^1.0.3: - version "1.0.4" - resolved "https://registry.yarnpkg.com/has/-/has-1.0.4.tgz#2eb2860e000011dae4f1406a86fe80e530fb2ec6" - integrity sha512-qdSAmqLF6209RFj4VVItywPMbm3vWylknmB3nvNiUIs72xAimcM8nVYxYr7ncvZq5qzk9MKIZR8ijqD/1QuYjQ== - hasown@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/hasown/-/hasown-2.0.0.tgz#f4c513d454a57b7c7e1650778de226b11700546c" @@ -12781,11 +12728,6 @@ ignore-walk@^6.0.0: dependencies: minimatch "^9.0.0" -ignore@^4.0.3, ignore@^4.0.6: - version "4.0.6" - resolved "https://registry.yarnpkg.com/ignore/-/ignore-4.0.6.tgz#750e3db5862087b4737ebac8207ffd1ef27b25fc" - integrity sha512-cyFDKrqc/YdcWFniJhzI42+AzS+gNwmUzOSFcRCQYwySuBBBy/KjuxWLZ/FHEH6Moq1NizMOBWyTcv8O4OZIMg== - ignore@^5.0.4, ignore@^5.1.9, ignore@^5.2.0, ignore@^5.2.4: version "5.2.4" resolved "https://registry.yarnpkg.com/ignore/-/ignore-5.2.4.tgz#a291c0c6178ff1b960befe47fcdec301674a6324" @@ -12796,25 +12738,12 @@ image-size@~0.5.0: resolved "https://registry.yarnpkg.com/image-size/-/image-size-0.5.5.tgz#09dfd4ab9d20e29eb1c3e80b8990378df9e3cb9c" integrity sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ== -immutable@^3: - version "3.8.2" - resolved "https://registry.yarnpkg.com/immutable/-/immutable-3.8.2.tgz#c2439951455bb39913daf281376f1530e104adf3" - integrity sha512-15gZoQ38eYjEjxkorfbcgBKBL6R7T459OuK+CpcWt7O3KF4uPCx2tD0uFETlUDIyo+1789crbMhTvQBSR5yBMg== - immutable@^4.0.0: version "4.3.4" resolved "https://registry.yarnpkg.com/immutable/-/immutable-4.3.4.tgz#2e07b33837b4bb7662f288c244d1ced1ef65a78f" integrity sha512-fsXeu4J4i6WNWSikpI88v/PcVflZz+6kMhUfIwc5SY+poQRPnaf5V7qds6SUyUN3cVxEzuCab7QIoLOQ+DQ1wA== -import-fresh@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-2.0.0.tgz#d81355c15612d386c61f9ddd3922d4304822a546" - integrity sha512-eZ5H8rcgYazHbKC3PG4ClHNykCSxtAhxSSEM+2mb+7evD2CKF5V7c0dNum7AdpDh0ZdICwZY9sRSn8f+KH96sg== - dependencies: - caller-path "^2.0.0" - resolve-from "^3.0.0" - -import-fresh@^3.0.0, import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: +import-fresh@^3.1.0, import-fresh@^3.2.1, import-fresh@^3.3.0: version "3.3.0" resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== @@ -12830,85 +12759,6 @@ import-local@^3.0.2: pkg-dir "^4.2.0" resolve-cwd "^3.0.0" -import-sort-cli@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/import-sort-cli/-/import-sort-cli-6.0.0.tgz#de2207fc38d9f3acff373bb39e581f52f5b27fc4" - integrity sha512-Et1NeTefZeThtT/npEZnuXDG07oxZoSN29zUm4WPhZ4YFSqv3LFOLFuNE9RpHjFevVWSEog8+CogP7IlG1U3kg== - dependencies: - diff "^4.0.1" - file "^0.2.2" - globby "^9.0.0" - import-sort "^6.0.0" - import-sort-config "^6.0.0" - import-sort-parser "^6.0.0" - import-sort-parser-babylon "^6.0.0" - import-sort-style "^6.0.0" - import-sort-style-eslint "^6.0.0" - mkdirp "^0.5.1" - yargs "^12.0.5" - -import-sort-config@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/import-sort-config/-/import-sort-config-6.0.0.tgz#7313775b761eb479ab2d383945ecb15c008763b8" - integrity sha512-FJpF2F3+30JXqH1rJKeajxoSCHCueai3/0ntDN4y3GJL5pjnLDt/VjCy5FzjH7u0NHnllL/zVEf1wfmsVxJlPQ== - dependencies: - cosmiconfig "^5.0.5" - find-root "^1.0.0" - minimatch "^3.0.4" - resolve-from "^4.0.0" - -import-sort-parser-babylon@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/import-sort-parser-babylon/-/import-sort-parser-babylon-6.0.0.tgz#e1a4c28e0794ad7d9ff36cd045559d8ca8c38be7" - integrity sha512-NyShTiNhTh4Vy7kJUVe6CuvOaQAzzfSIT72wtp3CzGjz8bHjNj59DCAjncuviicmDOgVAgmLuSh1WMcLYAMWGg== - dependencies: - "@babel/core" "^7.2.2" - "@babel/parser" "^7.0.0-beta.54" - "@babel/traverse" "^7.0.0-beta.54" - "@babel/types" "^7.0.0-beta.54" - find-line-column "^0.5.2" - -import-sort-parser-typescript@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/import-sort-parser-typescript/-/import-sort-parser-typescript-6.0.0.tgz#98e73cef9e077d073e798722ed59e215b51c17e2" - integrity sha512-pgxnr3I156DonupQriNsgDb2zJN9TxrqCCIN1rwT/6SDO1rkJb+a0fjqshCjlgacTSA92oPAp1eAwmQUeZi3dw== - dependencies: - typescript "^3.2.4" - -import-sort-parser@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/import-sort-parser/-/import-sort-parser-6.0.0.tgz#0d901f264d98ed7caaae71f66128a686f828f2f4" - integrity sha512-H5L+d6HnqHvThB0GmAA3/43Sv74oCwL0iMk3/ixOv0LRJ69rCyHXeG/+UadMHrD2FefEmgPIWboEPAG7gsQrkA== - -import-sort-style-eslint@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/import-sort-style-eslint/-/import-sort-style-eslint-6.0.0.tgz#37d30104b4b984be5f0eca7b302fb2fe4d0ead35" - integrity sha512-L2SfLHtsvlQ1dCtQHHngmFBQebmhKSI3YRrPdgEKu/nI8eY35GQtkQ+Mf489q3BLdQSiFaKCxwJMVsKlRFSQBA== - dependencies: - eslint "^5.0.0" - lodash "^4.17.10" - -import-sort-style-module@6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/import-sort-style-module/-/import-sort-style-module-6.0.0.tgz#3149df4785bae804ed32630634ed49e405fa7cad" - integrity sha512-Oxd256EVt6TAgawhIDuKnNHWumzHMHFWhVncBBvlHVnx69B4GP/Gu4Xo+gjxtqSEKEvam5ajUkNvnsXLDMDjKg== - -import-sort-style@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/import-sort-style/-/import-sort-style-6.0.0.tgz#088523f056e5064c34a6426f4733674d81b42e6a" - integrity sha512-z0H5PKs7YoDeKxNYXv2AA1mjjZFY07fjeNCXUdTM3ymJtWeeEoTm8CQkFm2l+KPZoMczIvdwzJpWkkOamBnsPw== - -import-sort@^6.0.0: - version "6.0.0" - resolved "https://registry.yarnpkg.com/import-sort/-/import-sort-6.0.0.tgz#48ba2a7b53f2566ca1dd004327ea271321ad64ff" - integrity sha512-XUwSQMGAGmcW/wfshFE0gXgb1NPF6ibbQD6wDr3KRDykZf/lZj0jf58Bwa02xNb8EE59oz7etFe9OHnJocUW5Q== - dependencies: - detect-newline "^2.1.0" - import-sort-parser "^6.0.0" - import-sort-style "^6.0.0" - is-builtin-module "^3.0.0" - resolve "^1.8.1" - imurmurhash@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" @@ -12952,12 +12802,12 @@ ini@4.1.1: resolved "https://registry.yarnpkg.com/ini/-/ini-4.1.1.tgz#d95b3d843b1e906e56d6747d5447904ff50ce7a1" integrity sha512-QQnnxNyfvmHFIsj7gkPcYymR8Jdw/o7mp5ZFihxn6h8Ci6fh3Dx4E1gPjpQEpIuPo9XVNY/ZUwh4BPMjGyL01g== -inquirer@9.2.11: - version "9.2.11" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.11.tgz#e9003755c233a414fceda1891c23bd622cad4a95" - integrity sha512-B2LafrnnhbRzCWfAdOXisUzL89Kg8cVJlYmhqoi3flSiV/TveO+nsXwgKr9h9PIo+J1hz7nBSk6gegRIMBBf7g== +inquirer@9.2.12: + version "9.2.12" + resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-9.2.12.tgz#0348e9311765b7c93fce143bb1c0ef1ae879b1d7" + integrity sha512-mg3Fh9g2zfuVWJn6lhST0O7x4n03k7G8Tx5nvikJkbq8/CK47WDVm+UznF0G6s5Zi0KcyUisr6DU8T67N5U+1Q== dependencies: - "@ljharb/through" "^2.3.9" + "@ljharb/through" "^2.3.11" ansi-escapes "^4.3.2" chalk "^5.3.0" cli-cursor "^3.1.0" @@ -12973,25 +12823,6 @@ inquirer@9.2.11: strip-ansi "^6.0.1" wrap-ansi "^6.2.0" -inquirer@^6.2.2: - version "6.5.2" - resolved "https://registry.yarnpkg.com/inquirer/-/inquirer-6.5.2.tgz#ad50942375d036d327ff528c08bd5fab089928ca" - integrity sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ== - dependencies: - ansi-escapes "^3.2.0" - chalk "^2.4.2" - cli-cursor "^2.1.0" - cli-width "^2.0.0" - external-editor "^3.0.3" - figures "^2.0.0" - lodash "^4.17.12" - mute-stream "0.0.7" - run-async "^2.2.0" - rxjs "^6.4.0" - string-width "^2.1.0" - strip-ansi "^5.1.0" - through "^2.3.6" - internal-slot@^1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/internal-slot/-/internal-slot-1.0.6.tgz#37e756098c4911c5e912b8edbf71ed3aa116f930" @@ -13023,11 +12854,6 @@ invariant@^2.2.4: dependencies: loose-envify "^1.0.0" -invert-kv@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-2.0.0.tgz#7393f5afa59ec9ff5f67a27620d11c226e3eec02" - integrity sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA== - ionicons@7.1.0: version "7.1.0" resolved "https://registry.yarnpkg.com/ionicons/-/ionicons-7.1.0.tgz#25daa91345acedcb0f4fb7da670f5aff2e1f266a" @@ -13070,20 +12896,6 @@ is-absolute-url@^3.0.0: resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-3.0.3.tgz#96c6a22b6a23929b11ea0afb1836c36ad4a5d698" integrity sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q== -is-accessor-descriptor@^0.1.6: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" - integrity sha512-e1BM1qnDbMRG3ll2U9dSK0UMHuWOs3pY3AtcFsmvwPtKL3MML/Q86i+GilLfvqEs4GW+ExB91tQ3Ig9noDIZ+A== - dependencies: - kind-of "^3.0.2" - -is-accessor-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" - integrity sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ== - dependencies: - kind-of "^6.0.0" - is-arguments@^1.0.4: version "1.1.1" resolved "https://registry.yarnpkg.com/is-arguments/-/is-arguments-1.1.1.tgz#15b3f88fda01f2a97fec84ca761a560f123efa9b" @@ -13133,18 +12945,6 @@ is-boolean-object@^1.1.0: call-bind "^1.0.2" has-tostringtag "^1.0.0" -is-buffer@^1.1.5: - version "1.1.6" - resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" - integrity sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w== - -is-builtin-module@^3.0.0: - version "3.2.1" - resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-3.2.1.tgz#f03271717d8654cfcaf07ab0463faa3571581169" - integrity sha512-BSLE3HnV2syZ0FK0iMA/yUGplUeMmNz4AW5fnTunbCIqZi4vG3WjJT9FHMy5D69xmAYBHXQhJdALdpwVxV501A== - dependencies: - builtin-modules "^3.3.0" - is-callable@^1.1.3, is-callable@^1.1.4, is-callable@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.2.7.tgz#3bc2a85ea742d9e36205dcacdd72ca1fdc51b055" @@ -13157,27 +12957,13 @@ is-ci@^2.0.0: dependencies: ci-info "^2.0.0" -is-core-module@^2.11.0, is-core-module@^2.13.0, is-core-module@^2.8.1: +is-core-module@^2.13.0, is-core-module@^2.13.1, is-core-module@^2.8.1: version "2.13.1" resolved "https://registry.yarnpkg.com/is-core-module/-/is-core-module-2.13.1.tgz#ad0d7532c6fea9da1ebdc82742d74525c6273384" integrity sha512-hHrIjvZsftOsvKSn2TRYl63zvxsgE0K+0mYMoH6gD4omR5IWB2KynivBQczo3+wF1cCkjzvptnI9Q0sPU66ilw== dependencies: hasown "^2.0.0" -is-data-descriptor@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" - integrity sha512-+w9D5ulSoBNlmw9OHn3U2v51SyoCd0he+bB3xMl62oijhrspxowjU+AIcDY0N3iEJbUEkB15IlMASQsxYigvXg== - dependencies: - kind-of "^3.0.2" - -is-data-descriptor@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" - integrity sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ== - dependencies: - kind-of "^6.0.0" - is-date-object@^1.0.1: version "1.0.5" resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.5.tgz#0841d5536e724c25597bf6ea62e1bd38298df31f" @@ -13190,47 +12976,12 @@ is-deflate@^1.0.0: resolved "https://registry.yarnpkg.com/is-deflate/-/is-deflate-1.0.0.tgz#c862901c3c161fb09dac7cdc7e784f80e98f2f14" integrity sha512-YDoFpuZWu1VRXlsnlYMzKyVRITXj7Ej/V9gXQ2/pAe7X1J7M/RNOqaIYi6qUn+B7nGyB9pDXrv02dsB58d2ZAQ== -is-descriptor@^0.1.0: - version "0.1.6" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" - integrity sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg== - dependencies: - is-accessor-descriptor "^0.1.6" - is-data-descriptor "^0.1.4" - kind-of "^5.0.0" - -is-descriptor@^1.0.0, is-descriptor@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" - integrity sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg== - dependencies: - is-accessor-descriptor "^1.0.0" - is-data-descriptor "^1.0.0" - kind-of "^6.0.2" - -is-directory@^0.3.1: - version "0.3.1" - resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" - integrity sha512-yVChGzahRFvbkscn2MlwGismPO12i9+znNruC5gVEntG3qu0xQMzsGg/JFbrsqDOHtHFPci+V5aP5T9I+yeKqw== - is-docker@^2.0.0, is-docker@^2.1.1: version "2.2.1" resolved "https://registry.yarnpkg.com/is-docker/-/is-docker-2.2.1.tgz#33eeabe23cfe86f14bde4408a02c0cfb853acdaa" integrity sha512-F+i2BKsFrH66iaUFc0woD8sLy8getkwTwtOBjvs56Cx4CgJDeKQeqfz8wAYiSb8JOprWhHH5p77PbmYCvvUuXQ== -is-extendable@^0.1.0, is-extendable@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" - integrity sha512-5BMULNob1vgFX6EjQw5izWDxrecWK9AM72rugNr0TFldMOi0fj6Jk+zeKIt0xGj4cEfQIJth4w3OKWOJ4f+AFw== - -is-extendable@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" - integrity sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA== - dependencies: - is-plain-object "^2.0.4" - -is-extglob@^2.1.0, is-extglob@^2.1.1: +is-extglob@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" integrity sha512-SbKbANkN603Vi4jEZv49LeVJMn4yGwsbzZworEoyEiutsN3nJYdbO36zfhGJ6QEDpOZIFkDtnq5JRxmvl3jsoQ== @@ -13264,13 +13015,6 @@ is-generator-function@^1.0.7: dependencies: has-tostringtag "^1.0.0" -is-glob@^3.1.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" - integrity sha512-UFpDDrPgM6qpnFNI+rh/p3bUaq9hKLZN8bMUWzxmcnZVS3omf4IPK+BrewlnWjO1WmUsMYuSjKh4UJuV4+Lqmw== - dependencies: - is-extglob "^2.1.0" - is-glob@^4.0.0, is-glob@^4.0.1, is-glob@^4.0.3, is-glob@~4.0.1: version "4.0.3" resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.3.tgz#64f61e42cbbb2eec2071a9dac0b28ba1e65d5084" @@ -13314,13 +13058,6 @@ is-negative-zero@^2.0.2: resolved "https://registry.yarnpkg.com/is-negative-zero/-/is-negative-zero-2.0.2.tgz#7bf6f03a28003b8b3965de3ac26f664d765f3150" integrity sha512-dqJvarLawXsFbNDeJW7zAz8ItJ9cd28YufuuFzh0G8pNHjJMnY08Dv7sYX2uF5UpQOwieAeOExEYAWWfu7ZZUA== -is-number-like@^1.0.3: - version "1.0.8" - resolved "https://registry.yarnpkg.com/is-number-like/-/is-number-like-1.0.8.tgz#2e129620b50891042e44e9bbbb30593e75cfbbe3" - integrity sha512-6rZi3ezCyFcn5L71ywzz2bS5b2Igl1En3eTlZlvKjpz1n3IZLAYMbKYAIQgFmEu0GENg92ziU/faEOA/aixjbA== - dependencies: - lodash.isfinite "^3.3.2" - is-number-object@^1.0.4: version "1.0.7" resolved "https://registry.yarnpkg.com/is-number-object/-/is-number-object-1.0.7.tgz#59d50ada4c45251784e9904f5246c742f07a42fc" @@ -13328,13 +13065,6 @@ is-number-object@^1.0.4: dependencies: has-tostringtag "^1.0.0" -is-number@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" - integrity sha512-4cboCqIpliH+mAvFNegjZQ4kgKc3ZUhQVr3HvWbSh5q3WH2v82ct+T2Y1hdU5Gdtorx/cLifQjqCbL7bpznLTg== - dependencies: - kind-of "^3.0.2" - is-number@^7.0.0: version "7.0.0" resolved "https://registry.yarnpkg.com/is-number/-/is-number-7.0.0.tgz#7535345b896734d5f80c4d06c50955527a14f12b" @@ -13362,7 +13092,7 @@ is-plain-obj@^3.0.0: resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-3.0.0.tgz#af6f2ea14ac5a646183a5bbdb5baabbc156ad9d7" integrity sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA== -is-plain-object@^2.0.3, is-plain-object@^2.0.4: +is-plain-object@^2.0.4: version "2.0.4" resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" integrity sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og== @@ -13452,16 +13182,6 @@ is-what@^3.14.1: resolved "https://registry.yarnpkg.com/is-what/-/is-what-3.14.1.tgz#e1222f46ddda85dead0fd1c9df131760e77755c1" integrity sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA== -is-windows@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" - integrity sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA== - -is-wsl@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" - integrity sha512-gfygJYZ2gLTDlmbWMI0CE2MwnFzSN/2SZfkMlItC4K/JBlsWVDB0bO6XhqcY13YXE7iMcAJnzTCJjPiTeJJ0Mw== - is-wsl@^2.1.1, is-wsl@^2.2.0: version "2.2.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-2.2.0.tgz#74a4c76e77ca9fd3f932f290c17ea326cd157271" @@ -13469,16 +13189,16 @@ is-wsl@^2.1.1, is-wsl@^2.2.0: dependencies: is-docker "^2.0.0" -isarray@1.0.0, isarray@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== - isarray@^2.0.5: version "2.0.5" resolved "https://registry.yarnpkg.com/isarray/-/isarray-2.0.5.tgz#8af1e4c1221244cc62459faf38940d4e644a5723" integrity sha512-xHjhDr3cNBK0BzdUJSPXZntQUx/mwMS5Rw4A7lPJ90XGAO6ISP/ePDNuo0vhqOZU+UD5JoodwCAAoZQd3FeAKw== +isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + integrity sha512-VLghIWNM6ELQzo7zwmcg0NmTVyWKYjvIeM83yjp0wRDTmUnrM678fQbcKBo6n2CJEF0szoG//ytg+TKla89ALQ== + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -13494,14 +13214,7 @@ iso-url@~0.4.7: resolved "https://registry.yarnpkg.com/iso-url/-/iso-url-0.4.7.tgz#de7e48120dae46921079fe78f325ac9e9217a385" integrity sha512-27fFRDnPAMnHGLq36bWTpKET+eiXct3ENlCcdcMdk+mjXrb2kw3mhBUg1B7ewAC0kVzlOPhADzQgz1SE6Tglog== -isobject@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" - integrity sha512-+OUdGJlgjOBZDfxnDjYYG6zp487z0JGNQq3cYQYg5f5hKR+syHMsaztzGeml/4kGG55CSpKSpWTY+jYGgsHLgA== - dependencies: - isarray "1.0.0" - -isobject@^3.0.0, isobject@^3.0.1: +isobject@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" integrity sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg== @@ -13596,6 +13309,11 @@ jake@^10.8.5: filelist "^1.0.4" minimatch "^3.1.2" +javascript-natural-sort@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/javascript-natural-sort/-/javascript-natural-sort-0.7.1.tgz#f9e2303d4507f6d74355a73664d1440fb5a0ef59" + integrity sha512-nO6jcEfZWQXDhOiBtG2KvKyEptz7RVbpGP4vTD2hLBdmNQSsCiicO2Ioinv6UI4y9ukqnBpy+XZ9H6uLNgJTlw== + jest-changed-files@^29.7.0: version "29.7.0" resolved "https://registry.yarnpkg.com/jest-changed-files/-/jest-changed-files-29.7.0.tgz#1c06d07e77c78e1585d020424dedc10d6e17ac3a" @@ -14005,15 +13723,10 @@ jest@29.4.3: import-local "^3.0.2" jest-cli "^29.4.3" -jiti@^1.18.2: - version "1.20.0" - resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.20.0.tgz#2d823b5852ee8963585c8dd8b7992ffc1ae83b42" - integrity sha512-3TV69ZbrvV6U5DfQimop50jE9Dl6J8O1ja1dvBbMba/sZ3YBEQqJ2VZRoQPVnhlzjNtU1vaXRZVrVjU4qtm8yA== - -js-sdsl@^4.1.4: - version "4.4.2" - resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.2.tgz#2e3c031b1f47d3aca8b775532e3ebb0818e7f847" - integrity sha512-dwXFwByc/ajSV6m5bcKAPwe4yDDF6D614pxmIi5odytzxRlwqF6nwoiCek80Ixc7Cvma5awClxrzFtxCQvcM8w== +jiti@^1.20.0: + version "1.21.0" + resolved "https://registry.yarnpkg.com/jiti/-/jiti-1.21.0.tgz#7c97f8fe045724e136a397f7340475244156105d" + integrity sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q== js-sha256@0.9.0, js-sha256@^0.9.0: version "0.9.0" @@ -14032,7 +13745,7 @@ js-yaml@4.1.0, js-yaml@^4.1.0: dependencies: argparse "^2.0.1" -js-yaml@^3.10.0, js-yaml@^3.13.0, js-yaml@^3.13.1: +js-yaml@^3.10.0, js-yaml@^3.13.1: version "3.14.1" resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.14.1.tgz#dae812fdb3825fa306609a8717383c50c36a0537" integrity sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g== @@ -14150,11 +13863,6 @@ json-buffer@3.0.1: resolved "https://registry.yarnpkg.com/json-buffer/-/json-buffer-3.0.1.tgz#9338802a30d3b6605fbe0613e094008ca8c05a13" integrity sha512-4bV5BfR2mqfQTJm+V5tPPdf+ZpuhiIvTuAB5g8kcrXOZpTT/QwwVRWBywX1ozr6lEuPdbHxwaJlm9G6mI2sfSQ== -json-parse-better-errors@^1.0.1: - version "1.0.2" - resolved "https://registry.yarnpkg.com/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz#bb867cfb3450e69107c131d1c514bab3dc8bcaa9" - integrity sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw== - json-parse-even-better-errors@^2.3.0, json-parse-even-better-errors@^2.3.1: version "2.3.1" resolved "https://registry.yarnpkg.com/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz#7c47805a94319928e05777405dc12e1f7a4ee02d" @@ -14224,13 +13932,6 @@ jsonc-parser@3.2.0: resolved "https://registry.yarnpkg.com/jsonc-parser/-/jsonc-parser-3.2.0.tgz#31ff3f4c2b9793f89c67212627c51c6394f88e76" integrity sha512-gfFQZrcTc8CnKXp6Y4/CBT3fTc0OVuDofpre4aEeEpSBPV5X5v4+Vmx+8snU7RLPrNHPKSgLxGo9YuQzz20o+w== -jsonfile@^3.0.0: - version "3.0.1" - resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-3.0.1.tgz#a5ecc6f65f53f662c4415c7675a0331d0992ec66" - integrity sha512-oBko6ZHlubVB5mRFkur5vgYR1UyqX+S6Y/oCfLhqNdcc2fYFlDpIoNc7AfKS1KOGcnNAkvsr0grLck9ANM815w== - optionalDependencies: - graceful-fs "^4.1.6" - jsonfile@^6.0.1: version "6.1.0" resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-6.1.0.tgz#bc55b2634793c679ec6403094eb13698a6ec0aae" @@ -14245,6 +13946,15 @@ jsonparse@^1.3.1: resolved "https://registry.yarnpkg.com/jsonparse/-/jsonparse-1.3.1.tgz#3f4dae4a91fac315f71062f8521cc239f1366280" integrity sha512-POQXvpdL69+CluYsillJ7SUhKvytYjW9vG/GKpnf+xP8UWgYEM/RaMzHHofbALDiKbbP1W8UEYmgGl39WkPZsg== +jsonpath@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/jsonpath/-/jsonpath-1.1.1.tgz#0ca1ed8fb65bb3309248cc9d5466d12d5b0b9901" + integrity sha512-l6Cg7jRpixfbgoWgkrl77dgEj8RPvND0wMH6TwQmi9Qs4TFfS9u5cUFnbeKTwj5ga5Y3BTGGNI28k117LJ009w== + dependencies: + esprima "1.2.2" + static-eval "2.0.2" + underscore "1.12.1" + jsonwebtoken@9.0.0: version "9.0.0" resolved "https://registry.yarnpkg.com/jsonwebtoken/-/jsonwebtoken-9.0.0.tgz#d0faf9ba1cc3a56255fe49c0961a67e520c1926d" @@ -14341,26 +14051,7 @@ khroma@^2.0.0: resolved "https://registry.yarnpkg.com/khroma/-/khroma-2.1.0.tgz#45f2ce94ce231a437cf5b63c2e886e6eb42bbbb1" integrity sha512-Ls993zuzfayK269Svk9hzpeGUKob/sIgZzyHYdjQoAdQetRKpOLj+k/QQQ/6Qi0Yz65mlROrfd+Ev+1+7dz9Kw== -kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: - version "3.2.2" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" - integrity sha512-NOW9QQXMoZGg/oqnVNoNTTIFEIid1627WCffUBJEdMxYApq7mNE7CpzucIPc+ZQg25Phej7IJSmX3hO+oblOtQ== - dependencies: - is-buffer "^1.1.5" - -kind-of@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" - integrity sha512-24XsCxmEbRwEDbz/qz3stgin8TTzZ1ESR56OMCN0ujYg+vRutNSiOj9bHH9u85DKgXguraugV5sFuvbD4FW/hw== - dependencies: - is-buffer "^1.1.5" - -kind-of@^5.0.0: - version "5.1.0" - resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" - integrity sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw== - -kind-of@^6.0.0, kind-of@^6.0.2: +kind-of@^6.0.2: version "6.0.3" resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.3.tgz#07c05034a6c349fa06e24fa35aa76db4580ce4dd" integrity sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw== @@ -14412,13 +14103,6 @@ lazy-universal-dotenv@^4.0.0: dotenv "^16.0.0" dotenv-expand "^10.0.0" -lcid@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/lcid/-/lcid-2.0.0.tgz#6ef5d2df60e52f82eb228a4c373e8d1f397253cf" - integrity sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA== - dependencies: - invert-kv "^2.0.0" - less-loader@11.1.0: version "11.1.0" resolved "https://registry.yarnpkg.com/less-loader/-/less-loader-11.1.0.tgz#a452384259bdf8e4f6d5fdcc39543609e6313f82" @@ -14465,14 +14149,6 @@ leven@^3.1.0: resolved "https://registry.yarnpkg.com/leven/-/leven-3.1.0.tgz#77891de834064cccba82ae7842bb6b14a13ed7f2" integrity sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A== -levn@^0.3.0, levn@~0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" - integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== - dependencies: - prelude-ls "~1.1.2" - type-check "~0.3.2" - levn@^0.4.1: version "0.4.1" resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" @@ -14481,6 +14157,14 @@ levn@^0.4.1: prelude-ls "^1.2.1" type-check "~0.4.0" +levn@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/levn/-/levn-0.3.0.tgz#3b09924edf9f083c0490fdd4c0bc4421e04764ee" + integrity sha512-0OO4y2iOHix2W6ujICbKIaEQXvFQHue65vUG3pb5EUomzPI90z9hsA1VsO/dbIIpC53J8gxM9Q4Oho0jrCM/yA== + dependencies: + prelude-ls "~1.1.2" + type-check "~0.3.2" + libphonenumber-js@^1.10.14: version "1.10.48" resolved "https://registry.yarnpkg.com/libphonenumber-js/-/libphonenumber-js-1.10.48.tgz#3c426b4aa21dfe3210bfbda47d208acffa3631bf" @@ -14498,11 +14182,6 @@ lilconfig@^2.1.0: resolved "https://registry.yarnpkg.com/lilconfig/-/lilconfig-2.1.0.tgz#78e23ac89ebb7e1bfbf25b18043de756548e7f52" integrity sha512-utWOt/GHzuUxnLKxB6dk81RoOeoNeHgbrXiuGk4yyF5qlRz+iIVWu56E2fqGHFrXz0QNUhLB/8nKqvRH66JKGQ== -limiter@^1.0.5: - version "1.1.5" - resolved "https://registry.yarnpkg.com/limiter/-/limiter-1.1.5.tgz#8f92a25b3b16c6131293a0cc834b4a838a2aa7c2" - integrity sha512-FWWMIEOxz3GwUI4Ts/IvgVy6LPvoMPgjMdQ185nN6psJyBJ4yOpzqm695/h5umdLJg2vW3GR5iG11MAkR2AzJA== - lines-and-columns@^1.1.6: version "1.2.4" resolved "https://registry.yarnpkg.com/lines-and-columns/-/lines-and-columns-1.2.4.tgz#eca284f75d2965079309dc0ad9255abb2ebc1632" @@ -14576,16 +14255,6 @@ loader-utils@^2.0.0, loader-utils@^2.0.3: emojis-list "^3.0.0" json5 "^2.1.2" -localtunnel@^2.0.1: - version "2.0.2" - resolved "https://registry.yarnpkg.com/localtunnel/-/localtunnel-2.0.2.tgz#528d50087151c4790f89c2db374fe7b0a48501f0" - integrity sha512-n418Cn5ynvJd7m/N1d9WVJISLJF/ellZnfsLnx8WBWGzxv/ntNcFkJ1o6se5quUhCplfLGBNL5tYHiq5WF3Nug== - dependencies: - axios "0.21.4" - debug "4.3.2" - openurl "1.1.1" - yargs "17.1.1" - locate-path@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-3.0.0.tgz#dbec3b3ab759758071b58fe59fc41871af21400e" @@ -14645,11 +14314,6 @@ lodash.isboolean@^3.0.3: resolved "https://registry.yarnpkg.com/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz#6c2e171db2a257cd96802fd43b01b20d5f5870f6" integrity sha512-Bz5mupy2SVbPHURB98VAcw+aHh4vRV5IPNhILUCsOzRmsTmSQ17jIuqopAentWoehktxGd9e/hbIXq980/1QJg== -lodash.isfinite@^3.3.2: - version "3.3.2" - resolved "https://registry.yarnpkg.com/lodash.isfinite/-/lodash.isfinite-3.3.2.tgz#fb89b65a9a80281833f0b7478b3a5104f898ebb3" - integrity sha512-7FGG40uhC8Mm633uKW1r58aElFlBlxCrg9JfSi3P6aYiWmfiWF0PgMd86ZUsxE5GwWPdHoS2+48bwTh2VPkIQA== - lodash.isinteger@^4.0.4: version "4.0.4" resolved "https://registry.yarnpkg.com/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz#619c0af3d03f8b04c31f5882840b77b11cd68343" @@ -14690,7 +14354,7 @@ lodash.uniq@^4.5.0: resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" integrity sha512-xfBaXQd9ryd9dlSDvnvI0lvxfLJlYAZzXomUYzLKtUeOQvOP5piqAWuGtrhWeqaXK9hhoM/iyJc5AV+XfsX3HQ== -lodash@4.17.21, lodash@^4.17.10, lodash@^4.17.11, lodash@^4.17.12, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: +lodash@4.17.21, lodash@^4.17.14, lodash@^4.17.15, lodash@^4.17.19, lodash@^4.17.20, lodash@^4.17.21: version "4.17.21" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.21.tgz#679591c564c3bffaae8454cf0b3df370c3d6911c" integrity sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg== @@ -14827,30 +14491,11 @@ makeerror@1.0.12: dependencies: tmpl "1.0.5" -map-age-cleaner@^0.1.1: - version "0.1.3" - resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" - integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== - dependencies: - p-defer "^1.0.0" - -map-cache@^0.2.2: - version "0.2.2" - resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" - integrity sha512-8y/eV9QQZCiyn1SprXSrCmqJN0yNRATe+PO8ztwqrvrbdRLA3eYJF0yaR0YayLWkMbsQSKWS9N2gPcGEc4UsZg== - map-or-similar@^1.5.0: version "1.5.0" resolved "https://registry.yarnpkg.com/map-or-similar/-/map-or-similar-1.5.0.tgz#6de2653174adfb5d9edc33c69d3e92a1b76faf08" integrity sha512-0aF7ZmVon1igznGI4VS30yugpduQW3y3GkcgGJOp7d8x8QrizhigUxjI/m2UojsXXto+jLAH3KSz+xOJTiORjg== -map-visit@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" - integrity sha512-4y7uGv8bd2WdM9vpQsiQNo41Ln1NvhvDRuVt0k2JZQ+ezN2uaQes7lZeZ+QQUHOLQAtDaBJ+7wCbi+ab/KFs+w== - dependencies: - object-visit "^1.0.0" - markdown-to-jsx@^7.1.8: version "7.3.2" resolved "https://registry.yarnpkg.com/markdown-to-jsx/-/markdown-to-jsx-7.3.2.tgz#f286b4d112dad3028acc1e77dfe1f653b347e131" @@ -14913,15 +14558,6 @@ media-typer@0.3.0: resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" integrity sha512-dq+qelQ9akHpcOl/gUVRTxVIOkAJ1wR3QAvb4RsVjS8oVoFjDGTc679wJYmUmknUF5HwMLOgb5O+a3KxfWapPQ== -mem@^4.0.0: - version "4.3.0" - resolved "https://registry.yarnpkg.com/mem/-/mem-4.3.0.tgz#461af497bc4ae09608cdb2e60eefb69bff744178" - integrity sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w== - dependencies: - map-age-cleaner "^0.1.1" - mimic-fn "^2.0.0" - p-is-promise "^2.0.0" - memfs@^3.4.1, memfs@^3.4.12, memfs@^3.4.3: version "3.6.0" resolved "https://registry.yarnpkg.com/memfs/-/memfs-3.6.0.tgz#d7a2110f86f79dd950a8b6df6d57bc984aa185f6" @@ -14946,7 +14582,7 @@ merge-stream@^2.0.0: resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" integrity sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w== -merge2@^1.2.3, merge2@^1.3.0, merge2@^1.4.1: +merge2@^1.3.0, merge2@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/merge2/-/merge2-1.4.1.tgz#4368892f885e907455a6fd7dc55c0c9d404990ae" integrity sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg== @@ -15176,25 +14812,6 @@ micromark@^3.0.0: micromark-util-types "^1.0.1" uvu "^0.5.0" -micromatch@^3.1.10: - version "3.1.10" - resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" - integrity sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - braces "^2.3.1" - define-property "^2.0.2" - extend-shallow "^3.0.2" - extglob "^2.0.4" - fragment-cache "^0.2.1" - kind-of "^6.0.2" - nanomatch "^1.2.9" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.2" - micromatch@^4.0.0, micromatch@^4.0.2, micromatch@^4.0.4: version "4.0.5" resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-4.0.5.tgz#bc8999a7cbbf77cdc89f132f6e467051b49090c6" @@ -15215,11 +14832,6 @@ mime-types@^2.1.12, mime-types@^2.1.25, mime-types@^2.1.27, mime-types@^2.1.31, dependencies: mime-db "1.52.0" -mime@1.4.1: - version "1.4.1" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" - integrity sha512-KI1+qOZu5DcW6wayYHSzR/tXKCDC5Om4s1z2QJjDULzLcmf3DvzS7oluY4HCTrc+9FiKmWUgeNLg7W3uIQvxtQ== - mime@1.6.0, mime@^1.4.1, mime@^1.6.0: version "1.6.0" resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" @@ -15235,7 +14847,7 @@ mimic-fn@^1.0.0: resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" integrity sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ== -mimic-fn@^2.0.0, mimic-fn@^2.1.0: +mimic-fn@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== @@ -15269,12 +14881,12 @@ minimalistic-assert@^1.0.0: resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" integrity sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A== -minimatch@3.0.5: - version "3.0.5" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.5.tgz#4da8f1290ee0f0f8e83d60ca69f8f134068604a3" - integrity sha512-tUpxzX0VAzJHjLu0xUfFv1gwVp9ba3IOuRAVH2EGuRW8a5emA2FlACLqiT/lDVtS1W+TGNwqz3sWaNyLgDJWuw== +minimatch@9.0.3, minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: + version "9.0.3" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" + integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== dependencies: - brace-expansion "^1.1.7" + brace-expansion "^2.0.1" minimatch@^3.0.2, minimatch@^3.0.4, minimatch@^3.0.5, minimatch@^3.1.1, minimatch@^3.1.2: version "3.1.2" @@ -15290,13 +14902,6 @@ minimatch@^5.0.1: dependencies: brace-expansion "^2.0.1" -minimatch@^9.0.0, minimatch@^9.0.1, minimatch@^9.0.3: - version "9.0.3" - resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-9.0.3.tgz#a6e00c3de44c3a542bfaae70abfc22420a6da825" - integrity sha512-RHiac9mvaRw0x3AYRgDC1CxAP7HTcNrrECeA8YYJeWnpo+2Q5CegtZjaotWTWxDG3UeGA1coE05iH1mPjT/2mg== - dependencies: - brace-expansion "^2.0.1" - minimist@^1.2.0, minimist@^1.2.3, minimist@^1.2.5, minimist@^1.2.6: version "1.2.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.8.tgz#c1a464e7693302e082a075cee0c057741ac4772c" @@ -15374,25 +14979,12 @@ minizlib@^2.1.1, minizlib@^2.1.2: minipass "^3.0.0" yallist "^4.0.0" -mitt@^1.1.3: - version "1.2.0" - resolved "https://registry.yarnpkg.com/mitt/-/mitt-1.2.0.tgz#cb24e6569c806e31bd4e3995787fe38a04fdf90d" - integrity sha512-r6lj77KlwqLhIUku9UWYes7KJtsczvolZkzp8hbaDPPaE24OmWl5s539Mytlj22siEQKosZ26qCBgda2PKwoJw== - -mixin-deep@^1.2.0: - version "1.3.2" - resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.2.tgz#1120b43dc359a785dce65b55b82e257ccf479566" - integrity sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA== - dependencies: - for-in "^1.0.2" - is-extendable "^1.0.1" - mkdirp-classic@^0.5.2: version "0.5.3" resolved "https://registry.yarnpkg.com/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz#fa10c9115cc6d8865be221ba47ee9bed78601113" integrity sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A== -mkdirp@^0.5.1, mkdirp@^0.5.4, mkdirp@^0.5.6: +mkdirp@^0.5.4, mkdirp@^0.5.6: version "0.5.6" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.6.tgz#7def03d2432dcae4ba1d611445c48396062255f6" integrity sha512-FP+p8RB8OWpF3YZBCrP5gtADmtXApB5AMLn+vdyA+PyxCjrCs00mjyUozssO33cwDeT3wNGdLxJ5M//YqtHAJw== @@ -15414,10 +15006,10 @@ mri@^1.1.0, mri@^1.2.0: resolved "https://registry.yarnpkg.com/mri/-/mri-1.2.0.tgz#6721480fec2a11a4889861115a48b6cbe7cc8f0b" integrity sha512-tzzskb3bG8LvYGFF/mDTpq3jpI6Q9wc3LEmBaghu+DdCssd1FakN7Bc0hVNmEyGq1bq3RgfkCb3cmQLpNPOroA== -mrmime@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-1.0.1.tgz#5f90c825fad4bdd41dc914eff5d1a8cfdaf24f27" - integrity sha512-hzzEagAgDyoU1Q6yg5uI+AorQgdvMCur3FcKf7NhMKWsaYg+RnbTyHRa/9IlLF9rf455MOCtcqqrQQ83pPP7Uw== +mrmime@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mrmime/-/mrmime-2.0.0.tgz#151082a6e06e59a9a39b46b3e14d5cfe92b3abb4" + integrity sha512-eu38+hdgojoyq63s+yTpN4XMBdt5l8HhMhc4VKLO9KM5caLIBvUm4thi7fFaxyTmCKeNnXZ5pAlBwCUnhA09uw== ms@2.0.0: version "2.0.0" @@ -15486,11 +15078,6 @@ multicast-dns@^7.2.5: dns-packet "^5.2.2" thunky "^1.0.2" -mute-stream@0.0.7: - version "0.0.7" - resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-0.0.7.tgz#3075ce93bc21b8fab43e1bc4da7e8115ed1e7bab" - integrity sha512-r65nCZhrbXXb6dXOACihYApHw2Q6pV0M3V0PSxd74N0+D8nzAdEAITq2oAjA1jVnKI+tGvEBUpqiMh0+rW6zDQ== - mute-stream@1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/mute-stream/-/mute-stream-1.0.0.tgz#e31bd9fe62f0aed23520aa4324ea6671531e013e" @@ -15501,27 +15088,10 @@ nanoid@^3.3.1, nanoid@^3.3.6: resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.6.tgz#443380c856d6e9f9824267d960b4236ad583ea4c" integrity sha512-BGcqMMJuToF7i1rt+2PWSNVnWIkGCU78jBG3RxO/bZlnZPK2Cmi2QaffxGO/2RvWi9sL+FAiRiXMgsyxQ1DIDA== -nanomatch@^1.2.9: - version "1.2.13" - resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.13.tgz#b87a8aa4fc0de8fe6be88895b38983ff265bd119" - integrity sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA== - dependencies: - arr-diff "^4.0.0" - array-unique "^0.3.2" - define-property "^2.0.2" - extend-shallow "^3.0.2" - fragment-cache "^0.2.1" - is-windows "^1.0.2" - kind-of "^6.0.2" - object.pick "^1.3.0" - regex-not "^1.0.0" - snapdragon "^0.8.1" - to-regex "^3.0.1" - -natural-compare-lite@^1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/natural-compare-lite/-/natural-compare-lite-1.4.0.tgz#17b09581988979fddafe0201e931ba933c96cbb4" - integrity sha512-Tj+HTDSJJKaZnfiuw+iaF9skdPpTo2GtEly5JHnWV/hfv2Qj/9RKsGISQtLh2ox3l5EAGw487hnBee0sIJ6v2g== +nanoid@^3.3.7: + version "3.3.7" + resolved "https://registry.yarnpkg.com/nanoid/-/nanoid-3.3.7.tgz#d0c301a691bc8d54efa0a2226ccf3fe2fd656bd8" + integrity sha512-eSRppjcPIatRIMC1U6UngP8XFcz8MQWGQdt1MTBQ7NaAmvXDfvNxbvWV3x2y6CdEUciCSsDHDQZbhYaB8QEo2g== natural-compare@^1.4.0: version "1.4.0" @@ -15547,10 +15117,10 @@ neo-async@^2.5.0, neo-async@^2.6.2: resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.6.2.tgz#b4aafb93e3aeb2d8174ca53cf163ab7d7308305f" integrity sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw== -ng-extract-i18n-merge@2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.9.0.tgz#a487e3cec76a266c7bb61985de62f87828ee2e21" - integrity sha512-xKdkegJcJCzbvsy07IaSxz2AmkHdF3l0UR5mLr5CHai2g1VHD0xhoHPk/6kFFDNJ42fQT8EybPH/YcqZUt2iQg== +ng-extract-i18n-merge@2.10.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/ng-extract-i18n-merge/-/ng-extract-i18n-merge-2.10.0.tgz#20d2a4a1d21f058773242cbcc8406c4ef0f8fea0" + integrity sha512-mWYRWAUc7kirS3kIQxUR0kGv7Yv5JnV0C05VNvGwHdyMM3vSdJ0WAE/o4RwzW1cRyzXuG9oNOz4gctTzQsTErw== dependencies: "@angular-devkit/architect" "^0.1301.0 || ^0.1401.0 || ^0.1501.0 || ^0.1601.0 || ^0.1700.0" "@angular-devkit/core" "^13.0.0 || ^14.0.0 || ^15.0.0 || ^16.0.0 || ^17.0.0" @@ -15601,11 +15171,6 @@ nice-napi@^1.0.2: node-addon-api "^3.0.0" node-gyp-build "^4.2.2" -nice-try@^1.0.4: - version "1.0.5" - resolved "https://registry.yarnpkg.com/nice-try/-/nice-try-1.0.5.tgz#a3378a7696ce7d223e88fc9b764bd7ef1089e366" - integrity sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ== - no-case@^3.0.4: version "3.0.4" resolved "https://registry.yarnpkg.com/no-case/-/no-case-3.0.4.tgz#d361fd5c9800f558551a8369fc0dcd4662b6124d" @@ -15805,13 +15370,6 @@ npm-registry-fetch@^16.0.0: npm-package-arg "^11.0.0" proc-log "^3.0.0" -npm-run-path@^2.0.0: - version "2.0.2" - resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" - integrity sha512-lJxZYlT4DW/bRUtFh1MQIWqmLwQfAxnqWG4HhEdjMlkrJYnJn0Jrr2u3mgxqaWsdiBc76TYkTG/mhrnYTuzfHw== - dependencies: - path-key "^2.0.0" - npm-run-path@^4.0.0, npm-run-path@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" @@ -15846,16 +15404,16 @@ nwsapi@^2.2.2: resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.7.tgz#738e0707d3128cb750dddcfe90e4610482df0f30" integrity sha512-ub5E4+FBPKwAZx0UwIQOjYWGHTEq5sPqHQNRN8Z9e4A7u3Tj1weLJsL59yH9vmvqEtBHaOmT6cYQKIZOxp35FQ== -nx@17.2.7: - version "17.2.7" - resolved "https://registry.yarnpkg.com/nx/-/nx-17.2.7.tgz#ac7d73dea0bd23a332e9520cf4834f8421bbfbff" - integrity sha512-CnssDvDphAgyeoYzdPbz6vA/xac4BQeEiO7R9IBLIm+l1MV7boI4SpCS6abR4dbp4VTwI9uBQ9vgqNwCiEjoWg== +nx@18.0.4: + version "18.0.4" + resolved "https://registry.yarnpkg.com/nx/-/nx-18.0.4.tgz#3a77de6b51869449d849dccab7db74b35ec32a6b" + integrity sha512-Njb1fGppOw/wM7nOA1hYlLduV2aL4PdXSv5QS5cVYicHT5tw5RnG/0z4j9e6QfFj2EydxVeDUtlGR98diZ3/Yw== dependencies: - "@nrwl/tao" "17.2.7" + "@nrwl/tao" "18.0.4" "@yarnpkg/lockfile" "^1.1.0" "@yarnpkg/parsers" "3.0.0-rc.46" "@zkochan/js-yaml" "0.0.6" - axios "^1.5.1" + axios "^1.6.0" chalk "^4.1.0" cli-cursor "3.1.0" cli-spinners "2.6.1" @@ -15866,17 +15424,17 @@ nx@17.2.7: figures "3.2.0" flat "^5.0.2" fs-extra "^11.1.0" - glob "7.1.4" ignore "^5.0.4" jest-diff "^29.4.1" js-yaml "4.1.0" jsonc-parser "3.2.0" lines-and-columns "~2.0.3" - minimatch "3.0.5" + minimatch "9.0.3" node-machine-id "1.1.12" npm-run-path "^4.0.1" open "^8.4.0" - semver "7.5.3" + ora "5.3.0" + semver "^7.5.3" string-width "^4.2.3" strong-log-transformer "^2.1.0" tar-stream "~2.2.0" @@ -15886,16 +15444,16 @@ nx@17.2.7: yargs "^17.6.2" yargs-parser "21.1.1" optionalDependencies: - "@nx/nx-darwin-arm64" "17.2.7" - "@nx/nx-darwin-x64" "17.2.7" - "@nx/nx-freebsd-x64" "17.2.7" - "@nx/nx-linux-arm-gnueabihf" "17.2.7" - "@nx/nx-linux-arm64-gnu" "17.2.7" - "@nx/nx-linux-arm64-musl" "17.2.7" - "@nx/nx-linux-x64-gnu" "17.2.7" - "@nx/nx-linux-x64-musl" "17.2.7" - "@nx/nx-win32-arm64-msvc" "17.2.7" - "@nx/nx-win32-x64-msvc" "17.2.7" + "@nx/nx-darwin-arm64" "18.0.4" + "@nx/nx-darwin-x64" "18.0.4" + "@nx/nx-freebsd-x64" "18.0.4" + "@nx/nx-linux-arm-gnueabihf" "18.0.4" + "@nx/nx-linux-arm64-gnu" "18.0.4" + "@nx/nx-linux-arm64-musl" "18.0.4" + "@nx/nx-linux-x64-gnu" "18.0.4" + "@nx/nx-linux-x64-musl" "18.0.4" + "@nx/nx-win32-arm64-msvc" "18.0.4" + "@nx/nx-win32-x64-msvc" "18.0.4" oauth@0.9.x: version "0.9.15" @@ -15907,15 +15465,6 @@ object-assign@^4, object-assign@^4.1.0, object-assign@^4.1.1: resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" integrity sha512-rJgTQnkUnH1sFw8yT6VSU3zD3sWmu6sZhIseY8VX+GRu3P6F7Fu+JNDoXfklElbLJSnc3FUQHVe4cU5hj+BcUg== -object-copy@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" - integrity sha512-79LYn6VAb63zgtmAteVOWo9Vdj71ZVBy3Pbse+VqxDpEP83XuujMrGqHIwAXJ5I/aM0zU7dIyIAhifVTPrNItQ== - dependencies: - copy-descriptor "^0.1.0" - define-property "^0.2.5" - kind-of "^3.0.3" - object-inspect@^1.13.1, object-inspect@^1.9.0: version "1.13.1" resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.13.1.tgz#b96c6109324ccfef6b12216a956ca4dc2ff94bc2" @@ -15934,13 +15483,6 @@ object-keys@^1.1.1: resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e" integrity sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA== -object-visit@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" - integrity sha512-GBaMwwAVK9qbQN3Scdo0OyvgPW7l3lnaVMj84uTOZlswkX0KpF6fyDBJhtTthf7pymztoN36/KEr1DyhF96zEA== - dependencies: - isobject "^3.0.0" - object.assign@^4.1.4: version "4.1.4" resolved "https://registry.yarnpkg.com/object.assign/-/object.assign-4.1.4.tgz#9673c7c7c351ab8c4d0b516f4343ebf4dfb7799f" @@ -15951,14 +15493,27 @@ object.assign@^4.1.4: has-symbols "^1.0.3" object-keys "^1.1.1" -object.pick@^1.3.0: - version "1.3.0" - resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" - integrity sha512-tqa/UMy/CCoYmj+H5qc07qvSL9dqcs/WZENZ1JbtWBlATP+iVOe778gE6MSijnyCnORzDuX6hU+LA4SZ09YjFQ== +object.fromentries@^2.0.7: + version "2.0.7" + resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.7.tgz#71e95f441e9a0ea6baf682ecaaf37fa2a8d7e616" + integrity sha512-UPbPHML6sL8PI/mOqPwsH4G6iyXcCGzLin8KvEPenOZN5lpCNBZZQ+V62vdjB1mQHrmqGQt5/OJzemUA+KJmEA== + dependencies: + call-bind "^1.0.2" + define-properties "^1.2.0" + es-abstract "^1.22.1" + +object.groupby@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/object.groupby/-/object.groupby-1.0.2.tgz#494800ff5bab78fd0eff2835ec859066e00192ec" + integrity sha512-bzBq58S+x+uo0VjurFT0UktpKHOZmv4/xePiOA1nbB9pMqpGK7rUPNgf+1YC+7mE+0HzhTMqNUuCqvKhj6FnBw== dependencies: - isobject "^3.0.1" + array.prototype.filter "^1.0.3" + call-bind "^1.0.5" + define-properties "^1.2.1" + es-abstract "^1.22.3" + es-errors "^1.0.0" -object.values@^1.1.6: +object.values@^1.1.7: version "1.1.7" resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.7.tgz#617ed13272e7e1071b43973aa1655d9291b8442a" integrity sha512-aU6xnDFYT3x17e/f0IiiwlGPTy2jzMySGfUB4fq6z7CV8l85CWHDk5ErhyhpfDHhrOMwGFhSQkhMGHaIotA6Ng== @@ -15979,13 +15534,6 @@ on-finished@2.4.1: dependencies: ee-first "1.1.1" -on-finished@~2.3.0: - version "2.3.0" - resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" - integrity sha512-ikqdkGAAyf/X/gPhXGvfgAytDZtDbr+bkNUJ0N9h5MI/dmdgCs3l6hoHrcUv41sRKew3jIwrp4qQDXiK99Utww== - dependencies: - ee-first "1.1.1" - on-headers@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.2.tgz#772b0ae6aaa525c399e489adfad90c403eb3c28f" @@ -16039,19 +15587,7 @@ opener@^1.5.1: resolved "https://registry.yarnpkg.com/opener/-/opener-1.5.2.tgz#5d37e1f35077b9dcac4301372271afdeb2a13598" integrity sha512-ur5UIdyw5Y7yEj9wLzhqXiy6GZ3Mwx0yGI+5sMn2r0N0v3cKJvUmFH5yPP+WXh9e0xfyzyJX95D8l088DNFj7A== -openurl@1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/openurl/-/openurl-1.1.1.tgz#3875b4b0ef7a52c156f0db41d4609dbb0f94b387" - integrity sha512-d/gTkTb1i1GKz5k3XE3XFV/PxQ1k45zDqGP2OA7YhgsaLoqm6qRvARAZOFer1fcXritWlGBRCu/UgeS4HAnXAA== - -opn@5.3.0: - version "5.3.0" - resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" - integrity sha512-bYJHo/LOmoTd+pfiYhfZDnf9zekVJrY+cnS2a5F2x+w5ppvTqObojTP7WiFG+kVZs9Inw+qQ/lw7TroWwhdd2g== - dependencies: - is-wsl "^1.1.0" - -optionator@^0.8.2: +optionator@^0.8.1: version "0.8.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.8.3.tgz#84fa1d036fe9d3c7e21d99884b601167ec8fb495" integrity sha512-+IW9pACdk3XWmmTXG8m3upGUJst5XRGzxMRjXzAuJ1XnIFNvfhjjIuYkDvysnPQ7qzqVzLt78BCruntqRhWQbA== @@ -16063,7 +15599,7 @@ optionator@^0.8.2: type-check "~0.3.2" word-wrap "~1.2.3" -optionator@^0.9.1: +optionator@^0.9.3: version "0.9.3" resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64" integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg== @@ -16104,15 +15640,6 @@ ora@5.4.1, ora@^5.4.1: strip-ansi "^6.0.0" wcwidth "^1.0.1" -os-locale@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-3.1.0.tgz#a802a6ee17f24c10483ab9935719cef4ed16bf1a" - integrity sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q== - dependencies: - execa "^1.0.0" - lcid "^2.0.0" - mem "^4.0.0" - os-tmpdir@~1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" @@ -16128,21 +15655,6 @@ p-cancelable@^2.0.0: resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.1.1.tgz#aab7fbd416582fa32a3db49859c122487c5ed2cf" integrity sha512-BZOr3nRQHOntUjTrH8+Lh54smKHoHyur8We1V8DSMVrl5A2malOOwuJRnKRDjSnkoeBh4at6BwEnb5I7Jl31wg== -p-defer@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" - integrity sha512-wB3wfAxZpk2AzOfUMJNL+d36xothRSyj8EXOa4f6GMqYDN9BJaaSISbsk+wS9abmnebVw95C2Kb5t85UmpCxuw== - -p-finally@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" - integrity sha512-LICb2p9CB7FS+0eR1oqWnHhp0FljGLZCWBE9aix0Uye9W8LTQPwMTYVGWQWIw9RdQiDg4+epXQODwIYJtSJaow== - -p-is-promise@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" - integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== - p-limit@^2.0.0, p-limit@^2.2.0: version "2.3.0" resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-2.3.0.tgz#3dd33c647a214fdfffd835933eb086da0dc21db1" @@ -16217,10 +15729,10 @@ p-try@^2.0.0: resolved "https://registry.yarnpkg.com/p-try/-/p-try-2.2.0.tgz#cb2868540e313d61de58fafbe35ce9004d5540e6" integrity sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ== -pacote@17.0.4: - version "17.0.4" - resolved "https://registry.yarnpkg.com/pacote/-/pacote-17.0.4.tgz#4bac6c0745967bde96985ec12fbbfc8dea7140e8" - integrity sha512-eGdLHrV/g5b5MtD5cTPyss+JxOlaOloSMG3UwPMAvL8ywaLJ6beONPF40K4KKl/UI6q5hTKCJq5rCu8tkF+7Dg== +pacote@17.0.5: + version "17.0.5" + resolved "https://registry.yarnpkg.com/pacote/-/pacote-17.0.5.tgz#e9854edee7a073635cdd36b0c07cd4f2ab1757b6" + integrity sha512-TAE0m20zSDMnchPja9vtQjri19X3pZIyRpm2TJVeI+yU42leJBBDTRYhOcWFsPhaMxf+3iwQkFiKz16G9AEeeA== dependencies: "@npmcli/git" "^5.0.0" "@npmcli/installed-package-contents" "^2.0.1" @@ -16271,14 +15783,6 @@ parent-module@^1.0.0: dependencies: callsites "^3.0.0" -parse-json@^4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-4.0.0.tgz#be35f5425be1f7f6c747184f98a788cb99477ee0" - integrity sha512-aOIos8bujGN93/8Ox/jPLh7RwVnPEysynVFE+fQZyg6jKELEHwzgKdLRFHUgXJL6kylijVSBC4BvN9OmsB48Rw== - dependencies: - error-ex "^1.3.1" - json-parse-better-errors "^1.0.1" - parse-json@^5.0.0, parse-json@^5.2.0: version "5.2.0" resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-5.2.0.tgz#c76fc66dee54231c962b22bcc8a72cf2f99753cd" @@ -16343,11 +15847,6 @@ pascal-case@^3.1.2: no-case "^3.0.4" tslib "^2.0.3" -pascalcase@^0.1.1: - version "0.1.1" - resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" - integrity sha512-XHXfu/yOQRy9vYOtUDVMN60OEJjW013GoObG1o+xwQTpB9eYJX/BjXMsdW13ZDPruFhYYn0AG22w0xgQMwl3Nw== - passport-google-oauth20@2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/passport-google-oauth20/-/passport-google-oauth20-2.0.0.tgz#0d241b2d21ebd3dc7f2b60669ec4d587e3a674ef" @@ -16393,11 +15892,6 @@ path-browserify@^1.0.1: resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-1.0.1.tgz#d98454a9c3753d5790860f16f68867b9e46be1fd" integrity sha512-b7uo2UCUOYZcnF/3ID0lulOJi/bafxa1xPe7ZPsammBSpjSWQkjNxlt635YGS2MiR9GjvuXCtz2emr3jbsz98g== -path-dirname@^1.0.0: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" - integrity sha512-ALzNPpyNq9AqXMBjeymIjFDAkAFH06mHJH/cSBHAgU0s4vfpBn6b2nf8tiRLvagKD8RbTpq2FKTBg7cl9l3c7Q== - path-exists@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" @@ -16418,16 +15912,6 @@ path-is-absolute@^1.0.0: resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" integrity sha512-AVbw3UJ2e9bq64vSaS9Am0fje1Pa8pbGqTTsmXfaIiMpnr5DlDhfJOuLj9Sf95ZPVDAUerDfEk88MPmPe7UCQg== -path-is-inside@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" - integrity sha512-DUWJr3+ULp4zXmol/SZkFf3JGsS9/SIv+Y3Rt93/UjPpDpklB5f1er4O3POIbUuUJ3FXgqte2Q7SrU6zAqwk8w== - -path-key@^2.0.0, path-key@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" - integrity sha512-fEHGKCSmUSDPv4uoj8AlD+joPlq3peND+HRYyxFz4KPw4z926S/b8rIuFs2FYJg3BwsxJf6A9/3eIdLaYC+9Dw== - path-key@^3.0.0, path-key@^3.1.0: version "3.1.1" resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" @@ -16461,13 +15945,6 @@ path-to-regexp@3.2.0: resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-3.2.0.tgz#fa7877ecbc495c601907562222453c43cc204a5f" integrity sha512-jczvQbCUS7XmS7o+y1aEO9OBVFeZBQ1MDSEqmO7xSoPgOPoowY/SxLpZ6Vh97/8qHZOteiCKb7gkG9gA2ZUxJA== -path-type@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" - integrity sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg== - dependencies: - pify "^3.0.0" - path-type@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/path-type/-/path-type-4.0.0.tgz#84ed01c0a7ba380afe09d90a8c180dcd9d03043b" @@ -16529,11 +16006,6 @@ pify@^2.2.0, pify@^2.3.0: resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" integrity sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog== -pify@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" - integrity sha512-C3FsVNH1udSEX48gGX1xfvwTWfsYWj5U+8/uK15BGzIGrKoUpghX8hWZwa/OFnakBiiVNmBvemTJR5mcy7iPcg== - pify@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/pify/-/pify-4.0.1.tgz#4b2cd25c50d598735c50292224fd8c6df41e3231" @@ -16544,17 +16016,23 @@ pirates@^4.0.4, pirates@^4.0.5: resolved "https://registry.yarnpkg.com/pirates/-/pirates-4.0.6.tgz#3018ae32ecfcff6c29ba2267cbf21166ac1f36b9" integrity sha512-saLsH7WeYYPiD25LDuLRRY/i+6HaPYr6G1OUlN39otzkSTxKnubR9RTxS3/Kk50s1g2JTgFwWQDQyplC5/SHZg== -piscina@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.1.0.tgz#809578ee3ab2ecf4cf71c2a062100b4b95a85b96" - integrity sha512-sjbLMi3sokkie+qmtZpkfMCUJTpbxJm/wvaPzU28vmYSsTSW8xk9JcFUsbqGJdtPpIQ9tuj+iDcTtgZjwnOSig== +piscina@4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.2.1.tgz#efb7f009d3a961e02ae08f1909bd24b5423e77fa" + integrity sha512-LShp0+lrO+WIzB9LXO+ZmO4zGHxtTJNZhEO56H9SSu+JPaUQb6oLcTCzWi5IL2DS8/vIkCE88ElahuSSw4TAkA== dependencies: - eventemitter-asyncresource "^1.0.0" hdr-histogram-js "^2.0.1" hdr-histogram-percentiles-obj "^3.0.0" optionalDependencies: nice-napi "^1.0.2" +piscina@^4.2.1: + version "4.3.1" + resolved "https://registry.yarnpkg.com/piscina/-/piscina-4.3.1.tgz#eaa59461caa27f07c637e667b14c36a0bd7e7daf" + integrity sha512-MBj0QYm3hJQ/C/wIXTN1OCYC8uQ4BBJ4LVele2P4ZwVQAH04vkk8E1SpDbuemLAL1dZorbuOob9rYqJeWCcCRg== + optionalDependencies: + nice-napi "^1.0.2" + pkg-dir@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-3.0.0.tgz#2749020f239ed990881b1f71210d51eb6523bea3" @@ -16604,19 +16082,6 @@ portfinder@^1.0.28: debug "^3.2.7" mkdirp "^0.5.6" -portscanner@2.2.0: - version "2.2.0" - resolved "https://registry.yarnpkg.com/portscanner/-/portscanner-2.2.0.tgz#6059189b3efa0965c9d96a56b958eb9508411cf1" - integrity sha512-IFroCz/59Lqa2uBvzK3bKDbDDIEaAY8XJ1jFxcLWTqosrsc32//P4VuSB2vZXoHiHqOmx8B5L5hnKOxL/7FlPw== - dependencies: - async "^2.6.0" - is-number-like "^1.0.3" - -posix-character-classes@^0.1.0: - version "0.1.1" - resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" - integrity sha512-xTgYBc3fuo7Yt7JbiuFxSYGToMoz8fLoE6TC9Wx1P/u+LfeThMOAqmuyECnlBaaJb+u1m9hHiXUEtwW4OzfUJg== - postcss-calc@^9.0.0: version "9.0.1" resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-9.0.1.tgz#a744fd592438a93d6de0f1434c572670361eb6c6" @@ -16672,14 +16137,14 @@ postcss-import@~14.1.0: read-cache "^1.0.0" resolve "^1.1.7" -postcss-loader@7.3.3: - version "7.3.3" - resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.3.tgz#6da03e71a918ef49df1bb4be4c80401df8e249dd" - integrity sha512-YgO/yhtevGO/vJePCQmTxiaEwER94LABZN0ZMT4A0vsak9TpO+RvKRs7EmJ8peIlB9xfXCsS7M8LjqncsUZ5HA== +postcss-loader@7.3.4: + version "7.3.4" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-7.3.4.tgz#aed9b79ce4ed7e9e89e56199d25ad1ec8f606209" + integrity sha512-iW5WTTBSC5BfsBJ9daFMPVrLT36MrNiC6fqOZTTaHjBNX6Pfd5p+hSBqe/fEeNd7pc13QiAyGt7VdGMw4eRC4A== dependencies: - cosmiconfig "^8.2.0" - jiti "^1.18.2" - semver "^7.3.8" + cosmiconfig "^8.3.5" + jiti "^1.20.0" + semver "^7.5.4" postcss-loader@^6.1.1: version "6.2.1" @@ -16881,7 +16346,16 @@ postcss-value-parser@^4.0.0, postcss-value-parser@^4.1.0, postcss-value-parser@^ resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz#723c09920836ba6d3e5af019f92bc0971c02e514" integrity sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ== -postcss@8.4.31, postcss@^8.2.14, postcss@^8.4.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.24, postcss@^8.4.27: +postcss@8.4.33: + version "8.4.33" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.33.tgz#1378e859c9f69bf6f638b990a0212f43e2aaa742" + integrity sha512-Kkpbhhdjw2qQs2O2DGX+8m5OVqEcbB9HRBvuYM9pgrjEFUg30A9LmXNlTAUj4S9kgtGyrMbTzVjH7E+s5Re2yg== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + +postcss@^8.2.14, postcss@^8.4.14, postcss@^8.4.21, postcss@^8.4.23, postcss@^8.4.24: version "8.4.31" resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.31.tgz#92b451050a9f914da6755af352bdc0192508656d" integrity sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ== @@ -16890,6 +16364,15 @@ postcss@8.4.31, postcss@^8.2.14, postcss@^8.4.14, postcss@^8.4.21, postcss@^8.4. picocolors "^1.0.0" source-map-js "^1.0.2" +postcss@^8.4.32: + version "8.4.35" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-8.4.35.tgz#60997775689ce09011edf083a549cea44aabe2f7" + integrity sha512-u5U8qYpBCpN13BsiEB0CbR1Hhh4Gc0zLFuedrHJKMctHCHAGrMdG0PRM/KErzAL3CU6/eckEtmHNB3x6e3c0vA== + dependencies: + nanoid "^3.3.7" + picocolors "^1.0.0" + source-map-js "^1.0.2" + prelude-ls@^1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/prelude-ls/-/prelude-ls-1.2.1.tgz#debc6489d7a6e6b0e7611888cec880337d316396" @@ -16905,10 +16388,10 @@ prettier-plugin-organize-attributes@1.0.0: resolved "https://registry.yarnpkg.com/prettier-plugin-organize-attributes/-/prettier-plugin-organize-attributes-1.0.0.tgz#037870ee3111b3c1d6371f677b64888de353cc63" integrity sha512-+NmameaLxbCcylEXsKPmawtzla5EE6ECqvGkpfQz4KM847fXDifB1gFnPQEpoADAq6IXg+cMI8Z0ISJEXa6fhg== -prettier@3.1.1: - version "3.1.1" - resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.1.1.tgz#6ba9f23165d690b6cbdaa88cb0807278f7019848" - integrity sha512-22UbSzg8luF4UuZtzgiUOfcGM8s4tjBv6dJRT7j275NXsy2jb4aJa4NNveul5x4eqlF1wuhuR2RElK71RvmVaw== +prettier@3.2.5: + version "3.2.5" + resolved "https://registry.yarnpkg.com/prettier/-/prettier-3.2.5.tgz#e52bc3090586e824964a8813b09aba6233b28368" + integrity sha512-3/GWa9aOC0YeD7LUfvOG2NiDyhOWRvt1k+rcKhOuYnMY24iiCphgneUfJDyFXd6rZCAnuLBv6UeAULtrhT/F4A== prettier@^2.8.0: version "2.8.8" @@ -16942,12 +16425,12 @@ pretty-hrtime@^1.0.3: resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1" integrity sha512-66hKPCr+72mlfiSjlEB1+45IjXSqvVAIy6mocupoww4tBFE9R9IhwwUGoI4G++Tc9Aq+2rxOt0RFU6gPcrte0A== -prisma@5.7.1: - version "5.7.1" - resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.7.1.tgz#af60ed90531adc0ab8a683c9b1fc86d841c39864" - integrity sha512-ekho7ziH0WEJvC4AxuJz+ewRTMskrebPcrKuBwcNzVDniYxx+dXOGcorNeIb9VEMO5vrKzwNYvhD271Ui2jnNw== +prisma@5.9.1: + version "5.9.1" + resolved "https://registry.yarnpkg.com/prisma/-/prisma-5.9.1.tgz#baa3dd635fbf71504980978f10f55ea11068f6aa" + integrity sha512-Hy/8KJZz0ELtkw4FnG9MS9rNWlXcJhf98Z2QMqi0QiVMoS8PzsBkpla0/Y5hTlob8F3HeECYphBjqmBxrluUrQ== dependencies: - "@prisma/engines" "5.7.1" + "@prisma/engines" "5.9.1" prismjs@^1.28.0: version "1.29.0" @@ -16969,7 +16452,7 @@ process@^0.11.10: resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" integrity sha512-cdGef/drWFoydD1JsMzuFf8100nZl+GT+yacc2bEced5f9Rjk4z+WtFUTBu9PhOi9j/jfmBPu0mMEY4wIdAF8A== -progress@^2.0.0, progress@^2.0.1: +progress@^2.0.1: version "2.0.3" resolved "https://registry.yarnpkg.com/progress/-/progress-2.0.3.tgz#7e8cf8d8f5b8f239c1bc68beb4eb78567d572ef8" integrity sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA== @@ -17139,7 +16622,7 @@ randombytes@^2.1.0: dependencies: safe-buffer "^5.1.0" -range-parser@^1.2.1, range-parser@~1.2.0, range-parser@~1.2.1: +range-parser@^1.2.1, range-parser@~1.2.1: version "1.2.1" resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.1.tgz#3cf37023d199e1c24d1a55b84800c2f3e6468031" integrity sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg== @@ -17154,7 +16637,7 @@ raw-body@2.5.1: iconv-lite "0.4.24" unpipe "1.0.0" -raw-body@2.5.2, raw-body@^2.3.2: +raw-body@2.5.2: version "2.5.2" resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.5.2.tgz#99febd83b90e08975087e8f1f9419a149366b68a" integrity sha512-8zGqypfENjCIqGhgXToC8aB2r7YrBX+AQAfIPs/Mlk+BtPTztOvTS01NRW/3Eh60J+a48lt8qsCzirQ6loCVfA== @@ -17374,14 +16857,6 @@ regenerator-transform@^0.15.2: dependencies: "@babel/runtime" "^7.8.4" -regex-not@^1.0.0, regex-not@^1.0.2: - version "1.0.2" - resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" - integrity sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A== - dependencies: - extend-shallow "^3.0.2" - safe-regex "^1.1.0" - regex-parser@^2.2.11: version "2.2.11" resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.11.tgz#3b37ec9049e19479806e878cabe7c1ca83ccfe58" @@ -17396,16 +16871,6 @@ regexp.prototype.flags@^1.5.1: define-properties "^1.2.0" set-function-name "^2.0.0" -regexpp@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-2.0.1.tgz#8d19d31cf632482b589049f8281f93dbcba4d07f" - integrity sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw== - -regexpp@^3.2.0: - version "3.2.0" - resolved "https://registry.yarnpkg.com/regexpp/-/regexpp-3.2.0.tgz#0425a2768d8f23bad70ca4b90461fa2f1213e1b2" - integrity sha512-pq2bWo9mVD43nbts2wGv17XLiNLya+GklZ8kaDLV2Z08gDCsGpnKn9BFMepvWuHCbyVvY7J5o5+BVvoQbmlJLg== - regexpu-core@^5.3.1: version "5.3.2" resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-5.3.2.tgz#11a2b06884f3527aec3e93dbbf4a3b958a95546b" @@ -17461,11 +16926,6 @@ renderkid@^3.0.0: lodash "^4.17.21" strip-ansi "^6.0.1" -repeat-element@^1.1.2: - version "1.1.4" - resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.4.tgz#be681520847ab58c7568ac75fbfad28ed42d39e9" - integrity sha512-LFiNfRcSu7KK3evMyYOuCzv3L10TW7yC1G2/+StMjK8Y6Vqd2MG7r/Qjw4ghtuCOjFvlnms/iMmLqpvW/ES/WQ== - repeat-string@^1.6.1: version "1.6.1" resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" @@ -17497,11 +16957,6 @@ require-from-string@^2.0.2: resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-2.0.2.tgz#89a7fdd938261267318eafe14f9c32e598c36909" integrity sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw== -require-main-filename@^1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" - integrity sha512-IqSUtOVP4ksd1C/ej5zeEh/BIP2ajqpn8c5x+q99gvcIG/Qf0cud5raVnE/Dwd0ua9TXYDoDc0RE5hBSdz22Ug== - requireindex@^1.1.0: version "1.2.0" resolved "https://registry.yarnpkg.com/requireindex/-/requireindex-1.2.0.tgz#3463cdb22ee151902635aa6c9535d4de9c2ef1ef" @@ -17524,11 +16979,6 @@ resolve-cwd@^3.0.0: dependencies: resolve-from "^5.0.0" -resolve-from@^3.0.0: - version "3.0.0" - resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" - integrity sha512-GnlH6vxLymXJNMBo7XP1fJIzBFbdYt49CuTwmB/6N53t+kMPRMFKz783LlQ4tv28XoQfMWinAJX6WCGf2IlaIw== - resolve-from@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-4.0.0.tgz#4abcd852ad32dd7baabfe9b40e00a36db5f392e6" @@ -17550,11 +17000,6 @@ resolve-url-loader@5.0.0: postcss "^8.2.14" source-map "0.6.1" -resolve-url@^0.2.1: - version "0.2.1" - resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" - integrity sha512-ZuF55hVUQaaczgOIwqWzkEcEidmlD/xl44x1UZnhOXcYuFN2S6+rcxpG+C1N3So0wvNI3DmJICUFfu2SxhBmvg== - resolve.exports@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-1.1.0.tgz#5ce842b94b05146c0e03076985d1d0e7e48c90c9" @@ -17565,7 +17010,7 @@ resolve.exports@^2.0.0: resolved "https://registry.yarnpkg.com/resolve.exports/-/resolve.exports-2.0.2.tgz#f8c934b8e6a13f539e38b7098e2e36134f01e800" integrity sha512-X2UW6Nw3n/aMgDVy+0rSqgHlv39WZAlZrXCdnbyEiKm17DSqHX4MmQMaST3FbeWR5FTuRcUwYAziZajji0Y7mg== -resolve@1.22.8, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.1, resolve@^1.22.4, resolve@^1.8.1: +resolve@1.22.8, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0, resolve@^1.14.2, resolve@^1.20.0, resolve@^1.22.4: version "1.22.8" resolved "https://registry.yarnpkg.com/resolve/-/resolve-1.22.8.tgz#b6c87a9f2aa06dfab52e3d70ac8cde321fa5a48d" integrity sha512-oKWePCxqpd6FlLvGV1VU0x7bkPmmCNolxzjMf4NczoDnQcIWrAF+cPtZn5i6n+RfD2d9i0tzpKnG6Yk168yIyw== @@ -17574,14 +17019,6 @@ resolve@1.22.8, resolve@^1.1.6, resolve@^1.1.7, resolve@^1.10.0, resolve@^1.12.0 path-parse "^1.0.7" supports-preserve-symlinks-flag "^1.0.0" -resp-modifier@6.0.2: - version "6.0.2" - resolved "https://registry.yarnpkg.com/resp-modifier/-/resp-modifier-6.0.2.tgz#b124de5c4fbafcba541f48ffa73970f4aa456b4f" - integrity sha512-U1+0kWC/+4ncRFYqQWTx/3qkfE6a4B/h3XXgmXypfa0SPZ3t7cbbaFk297PjQS/yov24R18h6OZe6iZwj3NSLw== - dependencies: - debug "^2.2.0" - minimatch "^3.0.2" - responselike@^2.0.0: version "2.0.1" resolved "https://registry.yarnpkg.com/responselike/-/responselike-2.0.1.tgz#9a0bc8fdc252f3fb1cca68b016591059ba1422bc" @@ -17613,11 +17050,6 @@ restore-cursor@^3.1.0: onetime "^5.1.0" signal-exit "^3.0.2" -ret@~0.1.10: - version "0.1.15" - resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" - integrity sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg== - retry@^0.12.0: version "0.12.0" resolved "https://registry.yarnpkg.com/retry/-/retry-0.12.0.tgz#1b42a6266a21f07421d1b0b54b7dc167b01c013b" @@ -17633,13 +17065,6 @@ reusify@^1.0.4: resolved "https://registry.yarnpkg.com/reusify/-/reusify-1.0.4.tgz#90da382b1e126efc02146e90845a88db12925d76" integrity sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw== -rimraf@2.6.3, rimraf@~2.6.2: - version "2.6.3" - resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" - integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== - dependencies: - glob "^7.1.3" - rimraf@^2.6.1: version "2.7.1" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.7.1.tgz#35797f13a7fdadc566142c29d4f07ccad483e3ec" @@ -17654,23 +17079,40 @@ rimraf@^3.0.0, rimraf@^3.0.2: dependencies: glob "^7.1.3" +rimraf@~2.6.2: + version "2.6.3" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.3.tgz#b2d104fe0d8fb27cf9e0a1cda8262dd3833c6cab" + integrity sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA== + dependencies: + glob "^7.1.3" + robust-predicates@^3.0.0: version "3.0.2" resolved "https://registry.yarnpkg.com/robust-predicates/-/robust-predicates-3.0.2.tgz#d5b28528c4824d20fc48df1928d41d9efa1ad771" integrity sha512-IXgzBWvWQwE6PrDI05OvmXUIruQTcoMDzRsOd5CDvHCVLcLHMTSYvOK5Cm46kWqlV3yAbuSpBZdJ5oP5OUoStg== -rollup@^3.27.1: - version "3.29.4" - resolved "https://registry.yarnpkg.com/rollup/-/rollup-3.29.4.tgz#4d70c0f9834146df8705bfb69a9a19c9e1109981" - integrity sha512-oWzmBZwvYrU0iJHtDmhsm662rC15FRXmcjCk1xD771dFDx5jJ02ufAQQTn0etB2emNk4J9EZg/yWKpsn9BWGRw== +rollup@^4.2.0: + version "4.10.0" + resolved "https://registry.yarnpkg.com/rollup/-/rollup-4.10.0.tgz#244c2cb54a8de004a949fe6036a0801be9060456" + integrity sha512-t2v9G2AKxcQ8yrG+WGxctBes1AomT0M4ND7jTFBCVPXQ/WFTvNSefIrNSmLKhIKBrvN8SG+CZslimJcT3W2u2g== + dependencies: + "@types/estree" "1.0.5" optionalDependencies: + "@rollup/rollup-android-arm-eabi" "4.10.0" + "@rollup/rollup-android-arm64" "4.10.0" + "@rollup/rollup-darwin-arm64" "4.10.0" + "@rollup/rollup-darwin-x64" "4.10.0" + "@rollup/rollup-linux-arm-gnueabihf" "4.10.0" + "@rollup/rollup-linux-arm64-gnu" "4.10.0" + "@rollup/rollup-linux-arm64-musl" "4.10.0" + "@rollup/rollup-linux-riscv64-gnu" "4.10.0" + "@rollup/rollup-linux-x64-gnu" "4.10.0" + "@rollup/rollup-linux-x64-musl" "4.10.0" + "@rollup/rollup-win32-arm64-msvc" "4.10.0" + "@rollup/rollup-win32-ia32-msvc" "4.10.0" + "@rollup/rollup-win32-x64-msvc" "4.10.0" fsevents "~2.3.2" -run-async@^2.2.0: - version "2.4.1" - resolved "https://registry.yarnpkg.com/run-async/-/run-async-2.4.1.tgz#8440eccf99ea3e70bd409d49aab88e10c189a455" - integrity sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ== - run-async@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/run-async/-/run-async-3.0.0.tgz#42a432f6d76c689522058984384df28be379daad" @@ -17688,12 +17130,7 @@ rw@1: resolved "https://registry.yarnpkg.com/rw/-/rw-1.3.3.tgz#3f862dfa91ab766b14885ef4d01124bfda074fb4" integrity sha512-PdhdWy89SiZogBLaw42zdeqtRJ//zFd2PgQavcICDUgJT5oW10QCRKbJ6bg4r0/UY2M6BWd5tkxuGFRvCkgfHQ== -rx@4.1.0: - version "4.1.0" - resolved "https://registry.yarnpkg.com/rx/-/rx-4.1.0.tgz#a5f13ff79ef3b740fe30aa803fb09f98805d4782" - integrity sha512-CiaiuN6gapkdl+cZUr67W6I8jquN4lkak3vtIsIWCl4XIPP8ffsoyN6/+PuGXnQy8Cu8W2y9Xxh31Rq4M6wUug== - -rxjs@7.5.6, rxjs@7.8.1, rxjs@^6.3.3, rxjs@^6.4.0, rxjs@^6.5.3, rxjs@^7.8.0, rxjs@^7.8.1: +rxjs@7.5.6, rxjs@7.8.1, rxjs@^6.3.3, rxjs@^6.5.3, rxjs@^7.8.0, rxjs@^7.8.1: version "7.5.6" resolved "https://registry.yarnpkg.com/rxjs/-/rxjs-7.5.6.tgz#0446577557862afd6903517ce7cae79ecb9662bc" integrity sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw== @@ -17741,13 +17178,6 @@ safe-regex-test@^1.0.0: get-intrinsic "^1.1.3" is-regex "^1.1.4" -safe-regex@^1.1.0: - version "1.1.0" - resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" - integrity sha512-aJXcif4xnaNUzvUuC5gcb46oTS7zvg4jpMTnuqtrEPlR3vFr4pxtdTwaF1Qs3Enjn9HK+ZlwQui+a7z0SywIzg== - dependencies: - ret "~0.1.10" - "safer-buffer@>= 2.1.2 < 3", "safer-buffer@>= 2.1.2 < 3.0.0", safer-buffer@^2.0.2, safer-buffer@^2.1.0, safer-buffer@~2.1.0: version "2.1.2" resolved "https://registry.yarnpkg.com/safer-buffer/-/safer-buffer-2.1.2.tgz#44fa161b0187b9549dd84bb91802f9bd8385cd6a" @@ -17758,10 +17188,10 @@ safevalues@^0.3.4: resolved "https://registry.yarnpkg.com/safevalues/-/safevalues-0.3.4.tgz#82e846a02b6956d7d40bf9f41e92e13fce0186db" integrity sha512-LRneZZRXNgjzwG4bDQdOTSbze3fHm1EAKN/8bePxnlEZiBmkYEDggaHbuvHI9/hoqHbGfsEA7tWS9GhYHZBBsw== -sass-loader@13.3.2: - version "13.3.2" - resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.3.2.tgz#460022de27aec772480f03de17f5ba88fa7e18c6" - integrity sha512-CQbKl57kdEv+KDLquhC+gE3pXt74LEAzm+tzywcA0/aHZuub8wTErbjAoNI57rPUWRYRNC5WUnNl8eGJNbDdwg== +sass-loader@13.3.3: + version "13.3.3" + resolved "https://registry.yarnpkg.com/sass-loader/-/sass-loader-13.3.3.tgz#60df5e858788cffb1a3215e5b92e9cba61e7e133" + integrity sha512-mt5YN2F1MOZr3d/wBRcZxeFgwgkH44wVc2zohO2YF6JiOMkiXe4BYRZpSu2sO1g71mo/j16txzUhsKZlqjVGzA== dependencies: neo-async "^2.6.2" @@ -17773,7 +17203,16 @@ sass-loader@^12.2.0: klona "^2.0.4" neo-async "^2.6.2" -sass@1.69.5, sass@^1.42.1: +sass@1.69.7: + version "1.69.7" + resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.7.tgz#6e7e1c8f51e8162faec3e9619babc7da780af3b7" + integrity sha512-rzj2soDeZ8wtE2egyLXgOOHQvaC2iosZrkF6v3EUG+tBwEvhqUCzm0VP3k9gHF9LXbSrRhT5SksoI56Iw8NPnQ== + dependencies: + chokidar ">=3.0.0 <4.0.0" + immutable "^4.0.0" + source-map-js ">=0.6.2 <2.0.0" + +sass@^1.42.1: version "1.69.5" resolved "https://registry.yarnpkg.com/sass/-/sass-1.69.5.tgz#23e18d1c757a35f2e52cc81871060b9ad653dfde" integrity sha512-qg2+UCJibLr2LCVOt3OlPhr/dqVHWOa9XtZf2OjbLs/T4VPSJ00udtgJxH3neXZm+QqX8B+3cU7RaLqp1iVfcQ== @@ -17855,18 +17294,11 @@ semver-dsl@^1.0.1: dependencies: semver "^5.3.0" -"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0: +"semver@2 || 3 || 4 || 5", semver@^5.3.0, semver@^5.6.0: version "5.7.2" resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.2.tgz#48d55db737c3287cd4835e17fa13feace1c41ef8" integrity sha512-cBznnQ9KjJqU67B52RMC65CMarK2600WFnbkcaiwWq3xy/5haFJlshgnpjovMVJ+Hff49d8GEn0b87C5pDQ10g== -semver@7.5.3: - version "7.5.3" - resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.3.tgz#161ce8c2c6b4b3bdca6caadc9fa3317a4c4fe88e" - integrity sha512-QBlUtyVk/5EeHbi7X0fw6liDZc7BBmEaSYn01fMU1OUYbf6GPsbTtd8WmnqbI20SeycoHSeiybkE/q1Q+qlThQ== - dependencies: - lru-cache "^6.0.0" - semver@7.5.4, semver@7.x, semver@^7.0.0, semver@^7.1.1, semver@^7.3.2, semver@^7.3.4, semver@^7.3.5, semver@^7.3.7, semver@^7.3.8, semver@^7.5.3, semver@^7.5.4: version "7.5.4" resolved "https://registry.yarnpkg.com/semver/-/semver-7.5.4.tgz#483986ec4ed38e1c6c48c34894a9182dbff68a6e" @@ -17884,25 +17316,6 @@ semver@~7.0.0: resolved "https://registry.yarnpkg.com/semver/-/semver-7.0.0.tgz#5f3ca35761e47e05b206c6daff2cf814f0316b8e" integrity sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A== -send@0.16.2: - version "0.16.2" - resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" - integrity sha512-E64YFPUssFHEFBvpbbjr44NCLtI1AohxQ8ZSiJjQLskAdKuriYEP6VyGEsRDH8ScozGpkaX1BGvhanqCwkcEZw== - dependencies: - debug "2.6.9" - depd "~1.1.2" - destroy "~1.0.4" - encodeurl "~1.0.2" - escape-html "~1.0.3" - etag "~1.8.1" - fresh "0.5.2" - http-errors "~1.6.2" - mime "1.4.1" - ms "2.0.0" - on-finished "~2.3.0" - range-parser "~1.2.0" - statuses "~1.4.0" - send@0.18.0: version "0.18.0" resolved "https://registry.yarnpkg.com/send/-/send-0.18.0.tgz#670167cc654b05f5aa4a767f9113bb371bc706be" @@ -17940,7 +17353,7 @@ serve-favicon@^2.5.0: parseurl "~1.3.2" safe-buffer "5.1.1" -serve-index@1.9.1, serve-index@^1.9.1: +serve-index@^1.9.1: version "1.9.1" resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" integrity sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw== @@ -17953,16 +17366,6 @@ serve-index@1.9.1, serve-index@^1.9.1: mime-types "~2.1.17" parseurl "~1.3.2" -serve-static@1.13.2: - version "1.13.2" - resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" - integrity sha512-p/tdJrO4U387R9oMjb1oj7qSMaMfmOyd4j9hOFoxZe2baQszgHcSWjuya/CiT5kgZZKRudHNOA0pYXOl8rQ5nw== - dependencies: - encodeurl "~1.0.2" - escape-html "~1.0.3" - parseurl "~1.3.2" - send "0.16.2" - serve-static@1.15.0: version "1.15.0" resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.15.0.tgz#faaef08cffe0a1a62f60cad0c4e513cff0ac9540" @@ -17973,11 +17376,6 @@ serve-static@1.15.0: parseurl "~1.3.3" send "0.18.0" -server-destroy@1.0.1: - version "1.0.1" - resolved "https://registry.yarnpkg.com/server-destroy/-/server-destroy-1.0.1.tgz#f13bf928e42b9c3e79383e61cc3998b5d14e6cdd" - integrity sha512-rb+9B5YBIEzYcD6x2VKidaa+cqYBJQKnU4oe4E3ANwRRN56yk/ua1YCJT1n21NTS8w6CcOclAKNP3PhdCXKYtQ== - set-blocking@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" @@ -18002,16 +17400,6 @@ set-function-name@^2.0.0: functions-have-names "^1.2.3" has-property-descriptors "^1.0.0" -set-value@^2.0.0, set-value@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.1.tgz#a18d40530e6f07de4228c7defe4227af8cad005b" - integrity sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw== - dependencies: - extend-shallow "^2.0.1" - is-extendable "^0.1.1" - is-plain-object "^2.0.3" - split-string "^3.0.1" - setprototypeof@1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" @@ -18029,13 +17417,6 @@ shallow-clone@^3.0.0: dependencies: kind-of "^6.0.2" -shebang-command@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" - integrity sha512-EV3L1+UQWGor21OmnvojK36mhg+TyIKDh3iFBKBohr5xeXIhNBcx8oWdgkTEEQ+BEFFYdLRuqMfd5L84N1V5Vg== - dependencies: - shebang-regex "^1.0.0" - shebang-command@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-2.0.0.tgz#ccd0af4f8835fbdc265b82461aaf0c36663f34ea" @@ -18043,11 +17424,6 @@ shebang-command@^2.0.0: dependencies: shebang-regex "^3.0.0" -shebang-regex@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" - integrity sha512-wpoSFAxys6b2a2wHZ1XpDSgD7N9iVjg29Ph9uV/uaP9Ex/KXlkTZTeddxDPSYQpgvzKLGJke2UU0AzoGCjNIvQ== - shebang-regex@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-3.0.0.tgz#ae16f1644d873ecad843b0307b143362d4c42172" @@ -18135,11 +17511,6 @@ sisteransi@^1.0.5: resolved "https://registry.yarnpkg.com/sisteransi/-/sisteransi-1.0.5.tgz#134d681297756437cc05ca01370d3a7a571075ed" integrity sha512-bLGGlR1QxBcynn2d5YmDX4MGjlZvy2MRBDRNHLJ8VI6l6+9FUiyTFNJ0IveOSP0bcXgVDPRcfGqA0pjaqUpfVg== -slash@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/slash/-/slash-2.0.0.tgz#de552851a1759df3a8f206535442f5ec4ddeab44" - integrity sha512-ZYKh3Wh2z1PpEXWr0MpSBZ0V6mZHAQfYevttO11c51CaWjGTaadiKZ+wVt1PbMlDV5qhMFslpZCemhwOK7C89A== - slash@^3.0.0: version "3.0.0" resolved "https://registry.yarnpkg.com/slash/-/slash-3.0.0.tgz#6539be870c165adbd5240220dbe361f1bc4d4634" @@ -18155,88 +17526,11 @@ slice-ansi@0.0.4: resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-0.0.4.tgz#edbf8903f66f7ce2f8eafd6ceed65e264c831b35" integrity sha512-up04hB2hR92PgjpyU3y/eg91yIBILyjVY26NvvciY3EVVPjybkMszMpXQ9QAkcS3I5rtJBDLoTxxg+qvW8c7rw== -slice-ansi@^2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/slice-ansi/-/slice-ansi-2.1.0.tgz#cacd7693461a637a5788d92a7dd4fba068e81636" - integrity sha512-Qu+VC3EwYLldKa1fCxuuvULvSJOKEgk9pi8dZeCVK7TqBfUNTH4sFkk4joj8afVSfAYgJoSOetjx9QWOJ5mYoQ== - dependencies: - ansi-styles "^3.2.0" - astral-regex "^1.0.0" - is-fullwidth-code-point "^2.0.0" - smart-buffer@^4.2.0: version "4.2.0" resolved "https://registry.yarnpkg.com/smart-buffer/-/smart-buffer-4.2.0.tgz#6e1d71fa4f18c05f7d0ff216dd16a481d0e8d9ae" integrity sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg== -snapdragon-node@^2.0.1: - version "2.1.1" - resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" - integrity sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw== - dependencies: - define-property "^1.0.0" - isobject "^3.0.0" - snapdragon-util "^3.0.1" - -snapdragon-util@^3.0.1: - version "3.0.1" - resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" - integrity sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ== - dependencies: - kind-of "^3.2.0" - -snapdragon@^0.8.1: - version "0.8.2" - resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" - integrity sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg== - dependencies: - base "^0.11.1" - debug "^2.2.0" - define-property "^0.2.5" - extend-shallow "^2.0.1" - map-cache "^0.2.2" - source-map "^0.5.6" - source-map-resolve "^0.5.0" - use "^3.1.0" - -socket.io-adapter@~2.5.2: - version "2.5.2" - resolved "https://registry.yarnpkg.com/socket.io-adapter/-/socket.io-adapter-2.5.2.tgz#5de9477c9182fdc171cd8c8364b9a8894ec75d12" - integrity sha512-87C3LO/NOMc+eMcpcxUBebGjkpMDkNBS9tf7KJqcDsmL936EChtVva71Dw2q4tQcuVC+hAUy4an2NO/sYXmwRA== - dependencies: - ws "~8.11.0" - -socket.io-client@^4.4.1: - version "4.7.2" - resolved "https://registry.yarnpkg.com/socket.io-client/-/socket.io-client-4.7.2.tgz#f2f13f68058bd4e40f94f2a1541f275157ff2c08" - integrity sha512-vtA0uD4ibrYD793SOIAwlo8cj6haOeMHrGvwPxJsxH7CeIksqJ+3Zc06RvWTIFgiSqx4A3sOnTXpfAEE2Zyz6w== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.2" - engine.io-client "~6.5.2" - socket.io-parser "~4.2.4" - -socket.io-parser@~4.2.4: - version "4.2.4" - resolved "https://registry.yarnpkg.com/socket.io-parser/-/socket.io-parser-4.2.4.tgz#c806966cf7270601e47469ddeec30fbdfda44c83" - integrity sha512-/GbIKmo8ioc+NIWIhwdecY0ge+qVBSMdgxGygevmdHj24bsfgtCmcUUcQ5ZzcylGFHsN3k4HB4Cgkl96KVnuew== - dependencies: - "@socket.io/component-emitter" "~3.1.0" - debug "~4.3.1" - -socket.io@^4.4.1: - version "4.7.2" - resolved "https://registry.yarnpkg.com/socket.io/-/socket.io-4.7.2.tgz#22557d76c3f3ca48f82e73d68b7add36a22df002" - integrity sha512-bvKVS29/I5fl2FGLNHuXlQaUH/BlzX1IN6S+NKLNZpBsPZIDH+90eQmCs2Railn4YUiww4SzUedJ6+uzwFnKLw== - dependencies: - accepts "~1.3.4" - base64id "~2.0.0" - cors "~2.8.5" - debug "~4.3.2" - engine.io "~6.5.2" - socket.io-adapter "~2.5.2" - socket.io-parser "~4.2.4" - sockjs@^0.3.24: version "0.3.24" resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.24.tgz#c9bc8995f33a111bea0395ec30aa3206bdb5ccce" @@ -18268,12 +17562,11 @@ socks@^2.7.1: resolved "https://registry.yarnpkg.com/source-map-js/-/source-map-js-1.0.2.tgz#adbc361d9c62df380125e7f161f71c826f1e490c" integrity sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw== -source-map-loader@4.0.1: - version "4.0.1" - resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-4.0.1.tgz#72f00d05f5d1f90f80974eda781cbd7107c125f2" - integrity sha512-oqXpzDIByKONVY8g1NUPOTQhe0UTU5bWUl32GSkqK2LjJj0HmwTMVKxcUip0RgAYhY1mqgOxjbQM48a0mmeNfA== +source-map-loader@5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/source-map-loader/-/source-map-loader-5.0.0.tgz#f593a916e1cc54471cfc8851b905c8a845fc7e38" + integrity sha512-k2Dur7CbSLcAH73sBcIkV5xjPV4SzqO1NJ7+XaQl8if3VODDUj3FNchNGpqgJSKbvUfJuhVdv8K2Eu8/TNl2eA== dependencies: - abab "^2.0.6" iconv-lite "^0.6.3" source-map-js "^1.0.2" @@ -18286,17 +17579,6 @@ source-map-loader@^3.0.0: iconv-lite "^0.6.3" source-map-js "^1.0.1" -source-map-resolve@^0.5.0: - version "0.5.3" - resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.3.tgz#190866bece7553e1f8f267a2ee82c606b5509a1a" - integrity sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw== - dependencies: - atob "^2.1.2" - decode-uri-component "^0.2.0" - resolve-url "^0.2.1" - source-map-url "^0.4.0" - urix "^0.1.0" - source-map-support@0.5.13: version "0.5.13" resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.5.13.tgz#31b24a9c2e73c2de85066c0feb7d44767ed52932" @@ -18321,11 +17603,6 @@ source-map-support@0.5.21, source-map-support@^0.5.16, source-map-support@^0.5.5 buffer-from "^1.0.0" source-map "^0.6.0" -source-map-url@^0.4.0: - version "0.4.1" - resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.1.tgz#0af66605a745a5a2f91cf1bbf8a7afbc283dec56" - integrity sha512-cPiFOTLUKvJFIg4SKVScy4ilPPW6rFgMgfuZJPNoDuMs3nC1HbMUycBoJw77xFIp6z1UJQJOfx6C9GMH80DiTw== - source-map@0.6.1, source-map@^0.6.0, source-map@^0.6.1, source-map@~0.6.0, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -18336,7 +17613,7 @@ source-map@0.7.4, source-map@^0.7.3, source-map@^0.7.4: resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.7.4.tgz#a9bbe705c9d8846f4e08ff6765acf0f1b0898656" integrity sha512-l3BikUxvPOcn5E74dZiq5BGsTb5yEwhaTSzccU6t4sDOH8NWJCstKO5QT2CvtFoK6F0saL7p9xHAqHOlCPJygA== -source-map@^0.5.6, source-map@^0.5.7: +source-map@^0.5.0, source-map@^0.5.7: version "0.5.7" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" integrity sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ== @@ -18395,13 +17672,6 @@ spdy@^4.0.2: select-hose "^2.0.0" spdy-transport "^3.0.0" -split-string@^3.0.1, split-string@^3.0.2: - version "3.1.0" - resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" - integrity sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw== - dependencies: - extend-shallow "^3.0.0" - sprintf-js@^1.1.2: version "1.1.3" resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.1.3.tgz#4914b903a2f8b685d17fdf78a70e917e872e444a" @@ -18446,13 +17716,12 @@ standard-as-callback@^2.1.0: resolved "https://registry.yarnpkg.com/standard-as-callback/-/standard-as-callback-2.1.0.tgz#8953fc05359868a77b5b9739a665c5977bb7df45" integrity sha512-qoRRSyROncaz1z0mvYqIE4lCd9p2R90i6GxW3uZv5ucSu8tU7B5HXUP1gG8pVZsYNVaXjk8ClXHPttLyxAL48A== -static-extend@^0.1.1: - version "0.1.2" - resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" - integrity sha512-72E9+uLc27Mt718pMHt9VMNiAL4LMsmDbBva8mxWUCkT07fSzEGMYUCk0XWY6lp0j6RBAG4cJ3mWuZv2OE3s0g== +static-eval@2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/static-eval/-/static-eval-2.0.2.tgz#2d1759306b1befa688938454c546b7871f806a42" + integrity sha512-N/D219Hcr2bPjLxPiV+TQE++Tsmrady7TqAJugLy7Xk1EumfDWS/f5dtBbkRCGE7wKKXuYockQoj8Rm2/pVKyg== dependencies: - define-property "^0.2.5" - object-copy "^0.1.0" + escodegen "^1.8.1" statuses@2.0.1: version "2.0.1" @@ -18464,16 +17733,6 @@ statuses@2.0.1: resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" integrity sha512-OpZ3zP+jT1PI7I8nemJX4AKmAX070ZkYPVWV/AaKTJl+tXCTGyVdC1a4SL8RUQYEwk/f34ZX8UTykN68FwrqAA== -statuses@~1.3.1: - version "1.3.1" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.3.1.tgz#faf51b9eb74aaef3b3acf4ad5f61abf24cb7b93e" - integrity sha512-wuTCPGlJONk/a1kqZ4fQM2+908lC7fa7nPYpTC1EhnvqLX/IICbeP1OZGDtA374trpSq68YubKUMo8oRhN46yg== - -statuses@~1.4.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" - integrity sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew== - store2@^2.14.2: version "2.14.2" resolved "https://registry.yarnpkg.com/store2/-/store2-2.14.2.tgz#56138d200f9fe5f582ad63bc2704dbc0e4a45068" @@ -18491,14 +17750,6 @@ stream-shift@^1.0.0: resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.1.tgz#d7088281559ab2778424279b0877da3c392d5a3d" integrity sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ== -stream-throttle@^0.1.3: - version "0.1.3" - resolved "https://registry.yarnpkg.com/stream-throttle/-/stream-throttle-0.1.3.tgz#add57c8d7cc73a81630d31cd55d3961cfafba9c3" - integrity sha512-889+B9vN9dq7/vLbGyuHeZ6/ctf5sNuGWsDy89uNxkFTAgzy0eK7+w5fL3KLNRTkLle7EgZGvHUphZW0Q26MnQ== - dependencies: - commander "^2.2.0" - limiter "^1.0.5" - streamsearch@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/streamsearch/-/streamsearch-1.1.0.tgz#404dd1e2247ca94af554e841a8ef0eaa238da764" @@ -18530,7 +17781,7 @@ string-width@^1.0.1: is-fullwidth-code-point "^1.0.0" strip-ansi "^3.0.0" -string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: +string-width@^2.1.1: version "2.1.1" resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" integrity sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw== @@ -18538,15 +17789,6 @@ string-width@^2.0.0, string-width@^2.1.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" -string-width@^3.0.0: - version "3.1.0" - resolved "https://registry.yarnpkg.com/string-width/-/string-width-3.1.0.tgz#22767be21b62af1081574306f69ac51b62203961" - integrity sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w== - dependencies: - emoji-regex "^7.0.1" - is-fullwidth-code-point "^2.0.0" - strip-ansi "^5.1.0" - string-width@^5.0.1, string-width@^5.1.2: version "5.1.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-5.1.2.tgz#14f8daec6d81e7221d2a357e668cab73bdbca794" @@ -18618,13 +17860,6 @@ strip-ansi@^4.0.0: dependencies: ansi-regex "^3.0.0" -strip-ansi@^5.1.0: - version "5.2.0" - resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-5.2.0.tgz#8c9a536feb6afc962bdfa5b104a5091c1ad9c0ae" - integrity sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA== - dependencies: - ansi-regex "^4.1.0" - strip-ansi@^7.0.1: version "7.1.0" resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-7.1.0.tgz#d5b6568ca689d8561370b0707685d22434faff45" @@ -18642,22 +17877,12 @@ strip-bom@^4.0.0: resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-4.0.0.tgz#9c3505c1db45bcedca3d9cf7a16f5c5aa3901878" integrity sha512-3xurFv5tEgii33Zi8Jtp55wEIILR9eh34FAW00PZf+JnSsTmV/ioewSgQl97JHvgjoRGwPShsWm+IdrxB35d0w== -strip-eof@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" - integrity sha512-7FCwGGmx8mD5xQd3RPUvnSpUXHM3BWuzjtpD4TXsfcZ9EL4azvVVUscFYwD9nx8Kh+uCBC00XBtAykoMHwTh8Q== - strip-final-newline@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== -strip-json-comments@^2.0.1: - version "2.0.1" - resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" - integrity sha512-4gB8na07fecVVkOI6Rs4e7T6NOTki5EmL7TUduTs6bu3EdnSycntVJ4re8kgZA+wx9IueI2Y11bfbgwtzuE0KQ== - -strip-json-comments@^3.0.1, strip-json-comments@^3.1.0, strip-json-comments@^3.1.1: +strip-json-comments@^3.0.1, strip-json-comments@^3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-3.1.1.tgz#31f1281b3832630434831c310c01cccda8cbe006" integrity sha512-6fPc+R4ihwqP6N/aIv2f1gMH8lOVtWQHoqC4yK6oSDVVocumAsfCqjkXnqiYMhmMwS/mEHLp7Vehlt3ql6lEig== @@ -18796,16 +18021,6 @@ synchronous-promise@^2.0.15: resolved "https://registry.yarnpkg.com/synchronous-promise/-/synchronous-promise-2.0.17.tgz#38901319632f946c982152586f2caf8ddc25c032" integrity sha512-AsS729u2RHUfEra9xJrE39peJcc2stq2+poBXX8bcM08Y6g9j/i/PUzwNQqkaJde7Ntg1TO7bSREbR5sdosQ+g== -table@^5.2.3: - version "5.4.6" - resolved "https://registry.yarnpkg.com/table/-/table-5.4.6.tgz#1292d19500ce3f86053b05f0e8e7e4a3bb21079e" - integrity sha512-wmEc8m4fjnob4gt5riFRtTu/6+4rSe12TpAELNSqHMfF3IqnA+CH37USM6/YR3qRZv7e56kAEAtd6nKZaxe0Ug== - dependencies: - ajv "^6.10.2" - lodash "^4.17.14" - slice-ansi "^2.1.0" - string-width "^3.0.0" - tapable@^2.0.0, tapable@^2.1.1, tapable@^2.2.0, tapable@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tapable/-/tapable-2.2.1.tgz#1967a73ef4060a82f12ab96af86d52fdb76eeca0" @@ -18885,10 +18100,10 @@ terser-webpack-plugin@^5.3.1, terser-webpack-plugin@^5.3.3, terser-webpack-plugi serialize-javascript "^6.0.1" terser "^5.16.8" -terser@5.24.0: - version "5.24.0" - resolved "https://registry.yarnpkg.com/terser/-/terser-5.24.0.tgz#4ae50302977bca4831ccc7b4fef63a3c04228364" - integrity sha512-ZpGR4Hy3+wBEzVEnHvstMvqpD/nABNelQn/z2r0fjVWGQsN3bpOLzQlqDxmb4CDZnXq5lpjnQ+mHQLAOpfM5iw== +terser@5.26.0: + version "5.26.0" + resolved "https://registry.yarnpkg.com/terser/-/terser-5.26.0.tgz#ee9f05d929f4189a9c28a0feb889d96d50126fe1" + integrity sha512-dytTGoE2oHgbNV9nTzgBEPaqAWvcJNl66VZ0BkJqlvp71IjO8CxdBx/ykCNb47cLnCmCvRZ6ZR0tLkqvZCdVBQ== dependencies: "@jridgewell/source-map" "^0.3.3" acorn "^8.8.2" @@ -18932,7 +18147,7 @@ through2@^2.0.3: readable-stream "~2.3.6" xtend "~4.0.1" -through@X.X.X, through@^2.3.4, through@^2.3.6: +through@X.X.X, through@^2.3.4: version "2.3.8" resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" integrity sha512-w89qg7PI8wAdvX60bMDP+bFoD5Dvhm9oLheFp5O4a2QF0cSBGsBX4qZmadPMvVqlLJBBci+WqGGOAPvcDeNSVg== @@ -18976,21 +18191,6 @@ to-fast-properties@^2.0.0: resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-2.0.0.tgz#dc5e698cbd079265bc73e0377681a4e4e83f616e" integrity sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog== -to-object-path@^0.3.0: - version "0.3.0" - resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" - integrity sha512-9mWHdnGRuh3onocaHzukyvCZhzvr6tiflAy/JRFXcJX0TjgfWA9pk9t8CMbzmBE4Jfw58pXbkngtBtqYxzNEyg== - dependencies: - kind-of "^3.0.2" - -to-regex-range@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" - integrity sha512-ZZWNfCjUokXXDGXFpZehJIkZqq91BcULFq/Pi7M5i4JnxXdhMKAK682z8bCW3o8Hj1wuuzoKcW3DfVzaP6VuNg== - dependencies: - is-number "^3.0.0" - repeat-string "^1.6.1" - to-regex-range@^5.0.1: version "5.0.1" resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-5.0.1.tgz#1648c44aae7c8d988a326018ed72f5b4dd0392e4" @@ -18998,16 +18198,6 @@ to-regex-range@^5.0.1: dependencies: is-number "^7.0.0" -to-regex@^3.0.1, to-regex@^3.0.2: - version "3.0.2" - resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" - integrity sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw== - dependencies: - define-property "^2.0.2" - extend-shallow "^3.0.2" - regex-not "^1.0.2" - safe-regex "^1.1.0" - tocbot@^4.20.1: version "4.21.2" resolved "https://registry.yarnpkg.com/tocbot/-/tocbot-4.21.2.tgz#7ae513d73dddb80f126724160bd6f72bf8638edb" @@ -19143,10 +18333,10 @@ tsconfig-paths-webpack-plugin@^4.0.1: enhanced-resolve "^5.7.0" tsconfig-paths "^4.1.2" -tsconfig-paths@^3.14.1: - version "3.14.2" - resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.14.2.tgz#6e32f1f79412decd261f92d633a9dc1cfa99f088" - integrity sha512-o/9iXgCYc5L/JxCHPe3Hvh8Q/2xm5Z+p18PESBU6Ff33695QnCHBEjcytY2q19ua7Mbl/DavtBOLq+oG0RCL+g== +tsconfig-paths@^3.15.0: + version "3.15.0" + resolved "https://registry.yarnpkg.com/tsconfig-paths/-/tsconfig-paths-3.15.0.tgz#5299ec605e55b1abb23ec939ef15edaf483070d4" + integrity sha512-2Ac2RgzDe/cn48GvOe3M+o82pEFewD3UPbyoUHHdKasHwJKjds4fLXWf/Ux5kATBKN20oaFGu+jbElp1pos0mg== dependencies: "@types/json5" "^0.0.29" json5 "^1.0.2" @@ -19338,20 +18528,10 @@ types-ramda@^0.29.4: dependencies: ts-toolbelt "^9.6.0" -typescript@5.2.2, typescript@~5.2.2: - version "5.2.2" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.2.2.tgz#5ebb5e5a5b75f085f22bc3f8460fba308310fa78" - integrity sha512-mI4WrpHsbCIcwT9cF4FZvr80QUeKvsUsUvKDoR+X/7XHQH98xYD8YHZg7ANtz2GtZt/CBq2QJ0thkGJMHfqc1w== - -typescript@^3.2.4: - version "3.9.10" - resolved "https://registry.yarnpkg.com/typescript/-/typescript-3.9.10.tgz#70f3910ac7a51ed6bef79da7800690b19bf778b8" - integrity sha512-w6fIxVE/H1PkLKcCPsFqKE7Kv7QUwhU8qQY2MueZXWx5cPZdwFupLgKK3vntcK98BtNHZtAF4LA/yl2a7k8R6Q== - -ua-parser-js@^1.0.33: - version "1.0.37" - resolved "https://registry.yarnpkg.com/ua-parser-js/-/ua-parser-js-1.0.37.tgz#b5dc7b163a5c1f0c510b08446aed4da92c46373f" - integrity sha512-bhTyI94tZofjo+Dn8SN6Zv8nBDvyXTymAdM3LDI/0IboIUwTu1rEhW7v2TfiVsoYWgkQ4kOVqnI8APUFbIQIFQ== +typescript@5.3.3, typescript@~5.3.2: + version "5.3.3" + resolved "https://registry.yarnpkg.com/typescript/-/typescript-5.3.3.tgz#b3ce6ba258e72e6305ba66f5c9b452aaee3ffe37" + integrity sha512-pXWcraxM0uxAS+tN0AG/BF2TyqmHO014Z070UsJ+pFvYuRSq8KH8DmWpnbXe0pEPDHXZV3FcAbJkijJ5oNEnWw== uglify-js@^3.1.4: version "3.17.4" @@ -19380,15 +18560,20 @@ unbox-primitive@^1.0.2: has-symbols "^1.0.3" which-boxed-primitive "^1.0.2" +underscore@1.12.1: + version "1.12.1" + resolved "https://registry.yarnpkg.com/underscore/-/underscore-1.12.1.tgz#7bb8cc9b3d397e201cf8553336d262544ead829e" + integrity sha512-hEQt0+ZLDVUMhebKxL4x1BTtDY7bavVofhZ9KZ4aI26X9SRaE+Y3m83XUL1UP2jn8ynjndwCCpEHdUG+9pP1Tw== + undici-types@~5.26.4: version "5.26.5" resolved "https://registry.yarnpkg.com/undici-types/-/undici-types-5.26.5.tgz#bcd539893d00b56e964fd2657a4866b221a65617" integrity sha512-JlCMO+ehdEIKqlFxk6IfVoAUVmgz7cU7zD/h9XZ0qzeosSHmUJVOzSQvvYSYWXkFXC+IfLKSIffhv0sVZup6pA== -undici@5.27.2: - version "5.27.2" - resolved "https://registry.yarnpkg.com/undici/-/undici-5.27.2.tgz#a270c563aea5b46cc0df2550523638c95c5d4411" - integrity sha512-iS857PdOEy/y3wlM3yRp+6SNQQ6xU0mmZcwRSriqk+et/cwWAtwmIGf6WkoDN2EK/AMdCO/dfXzIwi+rFMrjjQ== +undici@6.2.1: + version "6.2.1" + resolved "https://registry.yarnpkg.com/undici/-/undici-6.2.1.tgz#554293044619e065d986c37a4c92185c3bc02121" + integrity sha512-7Wa9thEM6/LMnnKtxJHlc8SrTlDmxqJecgz1iy8KlsN0/iskQXOQCuPkrZLXbElPaSw5slFFyKIKXyJ3UtbApw== dependencies: "@fastify/busboy" "^2.0.0" @@ -19420,16 +18605,6 @@ unicode-property-aliases-ecmascript@^2.0.0: resolved "https://registry.yarnpkg.com/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.1.0.tgz#43d41e3be698bd493ef911077c9b131f827e8ccd" integrity sha512-6t3foTQI9qne+OZoVQB/8x8rk2k1eVy1gRXhV3oFQ5T6R1dqQ1xtin3XqSlx3+ATBkliTaR/hHyJBm+LVPNM8w== -union-value@^1.0.0: - version "1.0.1" - resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.1.tgz#0b6fe7b835aecda61c6ea4d4f02c14221e109847" - integrity sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg== - dependencies: - arr-union "^3.1.0" - get-value "^2.0.6" - is-extendable "^0.1.1" - set-value "^2.0.1" - union@~0.5.0: version "0.5.0" resolved "https://registry.yarnpkg.com/union/-/union-0.5.0.tgz#b2c11be84f60538537b846edb9ba266ba0090075" @@ -19487,11 +18662,6 @@ unist-util-visit@^2.0.0: unist-util-is "^4.0.0" unist-util-visit-parents "^3.0.0" -universalify@^0.1.0: - version "0.1.2" - resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.2.tgz#b646f69be3942dabcecc9d6639c80dc105efaa66" - integrity sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg== - universalify@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.2.0.tgz#6451760566fa857534745ab1dde952d1b1761be0" @@ -19517,14 +18687,6 @@ unplugin@^1.3.1: webpack-sources "^3.2.3" webpack-virtual-modules "^0.5.0" -unset-value@^1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" - integrity sha512-PcA2tsuGSF9cnySLHTLSh2qrQiJ70mn+r+Glzxv2TWZblxsxCC52BDlZoPCsz7STd9pN7EZetkWZBAvk4cgZdQ== - dependencies: - has-value "^0.3.1" - isobject "^3.0.0" - untildify@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/untildify/-/untildify-4.0.0.tgz#2bc947b953652487e4600949fb091e3ae8cd919b" @@ -19545,11 +18707,6 @@ uri-js@^4.2.2: dependencies: punycode "^2.1.0" -urix@^0.1.0: - version "0.1.0" - resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" - integrity sha512-Am1ousAhSLBeB9cG/7k7r2R0zj50uDRlZHPGbazid5s9rlF1F/QKYObEKSIunSjIOkJZqwRRLpvewjEkM7pSqg== - url-join@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/url-join/-/url-join-4.0.1.tgz#b642e21a2646808ffa178c4c5fda39844e12cde7" @@ -19593,11 +18750,6 @@ use-sidecar@^1.1.2: detect-node-es "^1.1.0" tslib "^2.0.0" -use@^3.1.0: - version "3.1.1" - resolved "https://registry.yarnpkg.com/use/-/use-3.1.1.tgz#d50c8cac79a19fbc20f2911f56eb973f4e10070f" - integrity sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ== - util-deprecate@^1.0.1, util-deprecate@^1.0.2, util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" @@ -19697,16 +18849,16 @@ verror@1.10.0: core-util-is "1.0.2" extsprintf "^1.2.0" -vite@4.5.1: - version "4.5.1" - resolved "https://registry.yarnpkg.com/vite/-/vite-4.5.1.tgz#3370986e1ed5dbabbf35a6c2e1fb1e18555b968a" - integrity sha512-AXXFaAJ8yebyqzoNB9fu2pHoo/nWX+xZlaRwoeYUxEqBO+Zj4msE5G+BhGBll9lYEKv9Hfks52PAF2X7qDYXQA== +vite@5.0.12: + version "5.0.12" + resolved "https://registry.yarnpkg.com/vite/-/vite-5.0.12.tgz#8a2ffd4da36c132aec4adafe05d7adde38333c47" + integrity sha512-4hsnEkG3q0N4Tzf1+t6NdN9dg/L3BM+q8SWgbSPnJvrgH2kgdyzfVJwbR1ic69/4uMJJ/3dqDZZE5/WwqW8U1w== dependencies: - esbuild "^0.18.10" - postcss "^8.4.27" - rollup "^3.27.1" + esbuild "^0.19.3" + postcss "^8.4.32" + rollup "^4.2.0" optionalDependencies: - fsevents "~2.3.2" + fsevents "~2.3.3" w3c-xmlserializer@^4.0.0: version "4.0.0" @@ -19722,7 +18874,7 @@ walker@^1.0.8: dependencies: makeerror "1.0.12" -watchpack@^2.2.0, watchpack@^2.4.0: +watchpack@2.4.0, watchpack@^2.2.0, watchpack@^2.4.0: version "2.4.0" resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-2.4.0.tgz#fa33032374962c78113f93c7f2fb4c54c9862a5d" integrity sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg== @@ -19940,11 +19092,6 @@ which-boxed-primitive@^1.0.2: is-string "^1.0.5" is-symbol "^1.0.3" -which-module@^2.0.0: - version "2.0.1" - resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.1.tgz#776b1fe35d90aebe99e8ac15eb24093389a4a409" - integrity sha512-iBdZ57RDvnOR9AGBhML2vFZf7h8vmBjhoaZqODJBFWHVtKkDmKuHai3cx5PgVMrX5YDNp27AofYbAwctSS+vhQ== - which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.2: version "1.1.13" resolved "https://registry.yarnpkg.com/which-typed-array/-/which-typed-array-1.1.13.tgz#870cd5be06ddb616f504e7b039c4c24898184d36" @@ -19956,13 +19103,6 @@ which-typed-array@^1.1.11, which-typed-array@^1.1.13, which-typed-array@^1.1.2: gopd "^1.0.1" has-tostringtag "^1.0.0" -which@^1.2.9: - version "1.3.1" - resolved "https://registry.yarnpkg.com/which/-/which-1.3.1.tgz#a45043d54f5805316da8d62f9f50918d3da70b0a" - integrity sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ== - dependencies: - isexe "^2.0.0" - which@^2.0.1: version "2.0.2" resolved "https://registry.yarnpkg.com/which/-/which-2.0.2.tgz#7c6a8dd0a636a0327e10b59c9286eee93f3f51b1" @@ -20015,14 +19155,6 @@ wordwrap@^1.0.0: string-width "^4.1.0" strip-ansi "^6.0.0" -wrap-ansi@^2.0.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" - integrity sha512-vAaEaDM946gbNpH5pLVNR+vX2ht6n0Bt3GXwVB1AuAqZosOvHNF3P7wDnh8KLkSqgUh0uh77le7Owgoz+Z9XBw== - dependencies: - string-width "^1.0.1" - strip-ansi "^3.0.1" - wrap-ansi@^3.0.1: version "3.0.1" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-3.0.1.tgz#288a04d87eda5c286e060dfe8f135ce8d007f8ba" @@ -20071,13 +19203,6 @@ write-file-atomic@^4.0.2: imurmurhash "^0.1.4" signal-exit "^3.0.7" -write@1.0.3: - version "1.0.3" - resolved "https://registry.yarnpkg.com/write/-/write-1.0.3.tgz#0800e14523b923a387e415123c865616aae0f5c3" - integrity sha512-/lg70HAjtkUgWPVZhZcm+T4hkL8Zbtp1nFNOn3lRrxnlv50SRBv7cR7RqR+GMsd3hUXy9hWBo4CHTbFTcOYwig== - dependencies: - mkdirp "^0.5.1" - ws@^6.1.0: version "6.2.2" resolved "https://registry.yarnpkg.com/ws/-/ws-6.2.2.tgz#dd5cdbd57a9979916097652d78f1cc5faea0c32e" @@ -20090,11 +19215,6 @@ ws@^8.11.0, ws@^8.13.0, ws@^8.2.3: resolved "https://registry.yarnpkg.com/ws/-/ws-8.14.2.tgz#6c249a806eb2db7a20d26d51e7709eab7b2e6c7f" integrity sha512-wEBG1ftX4jcglPxgFCMJmZ2PLtSbJ2Peg6TmpJFTbe9GZYOQCDPdMYu/Tm0/bGZkw8paZnJY45J4K2PZrLYq8g== -ws@~8.11.0: - version "8.11.0" - resolved "https://registry.yarnpkg.com/ws/-/ws-8.11.0.tgz#6a0d36b8edfd9f96d8b25683db2f8d7de6e8e143" - integrity sha512-HPG3wQd9sNQoT9xHyNCXoDUa+Xw/VevmY9FoHyQ+g+rrMn4j6FB4np7Z0OhdTgjx6MgQLK7jwSy1YecU1+4Asg== - xml-name-validator@^4.0.0: version "4.0.0" resolved "https://registry.yarnpkg.com/xml-name-validator/-/xml-name-validator-4.0.0.tgz#79a006e2e63149a8600f15430f0a4725d1524835" @@ -20112,30 +19232,20 @@ xmldoc@^1.1.2: dependencies: sax "^1.2.4" -xmlhttprequest-ssl@~2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/xmlhttprequest-ssl/-/xmlhttprequest-ssl-2.0.0.tgz#91360c86b914e67f44dce769180027c0da618c67" - integrity sha512-QKxVRxiRACQcVuQEYFsI1hhkrMlrXHPegbbd1yn9UHOmRxY+si12nQYzri3vbzt8VdTTRviqcKxcyllFas5z2A== - xtend@^4.0.0, xtend@~4.0.1: version "4.0.2" resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.2.tgz#bb72779f5fa465186b1f438f674fa347fdb5db54" integrity sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ== -"y18n@^3.2.1 || ^4.0.0": - version "4.0.3" - resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.3.tgz#b5f259c82cd6e336921efd7bfd8bf560de9eeedf" - integrity sha512-JKhqTOwSrqNA1NY5lSztJ1GrBiUodLMmIZuLiDaMRJ+itFd+ABVE8XBjOvIWL+rSqNDC74LCSFmlb/U4UZ4hJQ== - y18n@^5.0.5: version "5.0.8" resolved "https://registry.yarnpkg.com/y18n/-/y18n-5.0.8.tgz#7f4934d0f7ca8c56f95314939ddcd2dd91ce1d55" integrity sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA== -yahoo-finance2@2.9.0: - version "2.9.0" - resolved "https://registry.yarnpkg.com/yahoo-finance2/-/yahoo-finance2-2.9.0.tgz#7842580de36606197f7d64897dd2e5e55b9371d3" - integrity sha512-Q1UhB5uA0Uj2bBcSDqsZLt0tCxoHwrWCuvu4NMUgioyN8dlpq8ppbdKhZlzTD9ipIyKSgqG5TT7IlwB1x6eHZA== +yahoo-finance2@2.9.1: + version "2.9.1" + resolved "https://registry.yarnpkg.com/yahoo-finance2/-/yahoo-finance2-2.9.1.tgz#43e22465403f48c688ff8e762f3894aac8014d70" + integrity sha512-s+i5arE6+zUwHRJnze4EsU5aCTmsMFKFeBc9sMzSceDOjH+BSeEZG9twMYtWlSCjKbWLCmUEUCxtH1fvcq+f6Q== dependencies: "@types/tough-cookie" "^4.0.2" ajv "8.10.0" @@ -20164,32 +19274,6 @@ yargs-parser@21.1.1, yargs-parser@^21.0.1, yargs-parser@^21.1.1: resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-21.1.1.tgz#9096bceebf990d21bb31fa9516e0ede294a77d35" integrity sha512-tVpsJW7DdjecAiFpbIB1e3qxIQsE6NoPc5/eTdrbbIC4h0LVsWhnoa3g+m2HclBIujHzsxZ4VJVA+GUuc2/LBw== -yargs-parser@^11.1.1: - version "11.1.1" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-11.1.1.tgz#879a0865973bca9f6bab5cbdf3b1c67ec7d3bcf4" - integrity sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ== - dependencies: - camelcase "^5.0.0" - decamelize "^1.2.0" - -yargs-parser@^20.2.2: - version "20.2.9" - resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-20.2.9.tgz#2eb7dc3b0289718fc295f362753845c41a0c94ee" - integrity sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w== - -yargs@17.1.1: - version "17.1.1" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.1.1.tgz#c2a8091564bdb196f7c0a67c1d12e5b85b8067ba" - integrity sha512-c2k48R0PwKIqKhPMWjeiF6y2xY/gPMUlro0sgxqXpbOIohWiLNXWslsootttv7E1e73QPAMQSg5FeySbVcpsPQ== - dependencies: - cliui "^7.0.2" - escalade "^3.1.1" - get-caller-file "^2.0.5" - require-directory "^2.1.1" - string-width "^4.2.0" - y18n "^5.0.5" - yargs-parser "^20.2.2" - yargs@17.7.2, yargs@^17.2.1, yargs@^17.3.1, yargs@^17.6.2, yargs@^17.7.2: version "17.7.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-17.7.2.tgz#991df39aca675a192b816e1e0363f9d75d2aa269" @@ -20203,24 +19287,6 @@ yargs@17.7.2, yargs@^17.2.1, yargs@^17.3.1, yargs@^17.6.2, yargs@^17.7.2: y18n "^5.0.5" yargs-parser "^21.1.1" -yargs@^12.0.5: - version "12.0.5" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-12.0.5.tgz#05f5997b609647b64f66b81e3b4b10a368e7ad13" - integrity sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw== - dependencies: - cliui "^4.0.0" - decamelize "^1.2.0" - find-up "^3.0.0" - get-caller-file "^1.0.1" - os-locale "^3.0.0" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^2.0.0" - which-module "^2.0.0" - y18n "^3.2.1 || ^4.0.0" - yargs-parser "^11.1.1" - yauzl@^2.10.0: version "2.10.0" resolved "https://registry.yarnpkg.com/yauzl/-/yauzl-2.10.0.tgz#c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9" @@ -20244,10 +19310,10 @@ yocto-queue@^1.0.0: resolved "https://registry.yarnpkg.com/yocto-queue/-/yocto-queue-1.0.0.tgz#7f816433fb2cbc511ec8bf7d263c3b58a1a3c251" integrity sha512-9bnSc/HEW2uRy67wc+T8UwauLuPJVn28jb+GtJY16iiKWyvmYJRXVT4UamsAEGQfPohgr2q4Tq0sQbQlxTfi1g== -zone.js@0.14.2: - version "0.14.2" - resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.14.2.tgz#91b20b24e8ab9a5a74f319ed5a3000f234ffa3b6" - integrity sha512-X4U7J1isDhoOmHmFWiLhloWc2lzMkdnumtfQ1LXzf/IOZp5NQYuMUTaviVzG/q1ugMBIXzin2AqeVJUoSEkNyQ== +zone.js@0.14.3: + version "0.14.3" + resolved "https://registry.yarnpkg.com/zone.js/-/zone.js-0.14.3.tgz#ac01000f4eaeec5c06526f6c112ef7d36f426f78" + integrity sha512-jYoNqF046Q+JfcZSItRSt+oXFcpXL88yq7XAZjb/NKTS7w2hHpKjRJ3VlFD1k75wMaRRXNUt5vrZVlygiMyHbA== dependencies: tslib "^2.3.0"