|
@ -1,5 +1,8 @@ |
|
|
import { CreateAccountBalanceDto } from '@ghostfolio/api/app/account-balance/create-account-balance.dto'; |
|
|
import { CreateAccountBalanceDto } from '@ghostfolio/api/app/account-balance/create-account-balance.dto'; |
|
|
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; |
|
|
import { Activity } from '@ghostfolio/api/app/order/interfaces/activities.interface'; |
|
|
|
|
|
import { GfDialogFooterComponent } from '@ghostfolio/client/components/dialog-footer/dialog-footer.component'; |
|
|
|
|
|
import { GfDialogHeaderComponent } from '@ghostfolio/client/components/dialog-header/dialog-header.component'; |
|
|
|
|
|
import { GfInvestmentChartModule } from '@ghostfolio/client/components/investment-chart/investment-chart.module'; |
|
|
import { DataService } from '@ghostfolio/client/services/data.service'; |
|
|
import { DataService } from '@ghostfolio/client/services/data.service'; |
|
|
import { UserService } from '@ghostfolio/client/services/user/user.service'; |
|
|
import { UserService } from '@ghostfolio/client/services/user/user.service'; |
|
|
import { NUMERICAL_PRECISION_THRESHOLD_6_FIGURES } from '@ghostfolio/common/config'; |
|
|
import { NUMERICAL_PRECISION_THRESHOLD_6_FIGURES } from '@ghostfolio/common/config'; |
|
@ -13,7 +16,12 @@ import { |
|
|
import { hasPermission, permissions } from '@ghostfolio/common/permissions'; |
|
|
import { hasPermission, permissions } from '@ghostfolio/common/permissions'; |
|
|
import { internalRoutes } from '@ghostfolio/common/routes/routes'; |
|
|
import { internalRoutes } from '@ghostfolio/common/routes/routes'; |
|
|
import { OrderWithAccount } from '@ghostfolio/common/types'; |
|
|
import { OrderWithAccount } from '@ghostfolio/common/types'; |
|
|
|
|
|
import { GfAccountBalancesComponent } from '@ghostfolio/ui/account-balances'; |
|
|
|
|
|
import { GfActivitiesTableComponent } from '@ghostfolio/ui/activities-table'; |
|
|
|
|
|
import { GfHoldingsTableComponent } from '@ghostfolio/ui/holdings-table'; |
|
|
|
|
|
import { GfValueComponent } from '@ghostfolio/ui/value'; |
|
|
|
|
|
|
|
|
|
|
|
import { CommonModule } from '@angular/common'; |
|
|
import { |
|
|
import { |
|
|
ChangeDetectionStrategy, |
|
|
ChangeDetectionStrategy, |
|
|
ChangeDetectorRef, |
|
|
ChangeDetectorRef, |
|
@ -22,10 +30,15 @@ import { |
|
|
OnDestroy, |
|
|
OnDestroy, |
|
|
OnInit |
|
|
OnInit |
|
|
} from '@angular/core'; |
|
|
} from '@angular/core'; |
|
|
|
|
|
import { CUSTOM_ELEMENTS_SCHEMA } from '@angular/core'; |
|
|
|
|
|
import { MatButtonModule } from '@angular/material/button'; |
|
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; |
|
|
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; |
|
|
|
|
|
import { MatDialogModule } from '@angular/material/dialog'; |
|
|
import { Sort, SortDirection } from '@angular/material/sort'; |
|
|
import { Sort, SortDirection } from '@angular/material/sort'; |
|
|
import { MatTableDataSource } from '@angular/material/table'; |
|
|
import { MatTableDataSource } from '@angular/material/table'; |
|
|
|
|
|
import { MatTabsModule } from '@angular/material/tabs'; |
|
|
import { Router } from '@angular/router'; |
|
|
import { Router } from '@angular/router'; |
|
|
|
|
|
import { IonIcon } from '@ionic/angular/standalone'; |
|
|
import { Big } from 'big.js'; |
|
|
import { Big } from 'big.js'; |
|
|
import { format, parseISO } from 'date-fns'; |
|
|
import { format, parseISO } from 'date-fns'; |
|
|
import { addIcons } from 'ionicons'; |
|
|
import { addIcons } from 'ionicons'; |
|
@ -35,20 +48,36 @@ import { |
|
|
walletOutline |
|
|
walletOutline |
|
|
} from 'ionicons/icons'; |
|
|
} from 'ionicons/icons'; |
|
|
import { isNumber } from 'lodash'; |
|
|
import { isNumber } from 'lodash'; |
|
|
|
|
|
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; |
|
|
import { forkJoin, Subject } from 'rxjs'; |
|
|
import { forkJoin, Subject } from 'rxjs'; |
|
|
import { takeUntil } from 'rxjs/operators'; |
|
|
import { takeUntil } from 'rxjs/operators'; |
|
|
|
|
|
|
|
|
import { AccountDetailDialogParams } from './interfaces/interfaces'; |
|
|
import { AccountDetailDialogParams } from './interfaces/interfaces'; |
|
|
|
|
|
|
|
|
@Component({ |
|
|
@Component({ |
|
|
|
|
|
changeDetection: ChangeDetectionStrategy.OnPush, |
|
|
host: { class: 'd-flex flex-column h-100' }, |
|
|
host: { class: 'd-flex flex-column h-100' }, |
|
|
|
|
|
imports: [ |
|
|
|
|
|
CommonModule, |
|
|
|
|
|
GfAccountBalancesComponent, |
|
|
|
|
|
GfActivitiesTableComponent, |
|
|
|
|
|
GfDialogFooterComponent, |
|
|
|
|
|
GfDialogHeaderComponent, |
|
|
|
|
|
GfHoldingsTableComponent, |
|
|
|
|
|
GfInvestmentChartModule, |
|
|
|
|
|
GfValueComponent, |
|
|
|
|
|
IonIcon, |
|
|
|
|
|
MatButtonModule, |
|
|
|
|
|
MatDialogModule, |
|
|
|
|
|
MatTabsModule, |
|
|
|
|
|
NgxSkeletonLoaderModule |
|
|
|
|
|
], |
|
|
|
|
|
schemas: [CUSTOM_ELEMENTS_SCHEMA], |
|
|
selector: 'gf-account-detail-dialog', |
|
|
selector: 'gf-account-detail-dialog', |
|
|
changeDetection: ChangeDetectionStrategy.OnPush, |
|
|
|
|
|
templateUrl: 'account-detail-dialog.html', |
|
|
|
|
|
styleUrls: ['./account-detail-dialog.component.scss'], |
|
|
styleUrls: ['./account-detail-dialog.component.scss'], |
|
|
standalone: false |
|
|
templateUrl: 'account-detail-dialog.html' |
|
|
}) |
|
|
}) |
|
|
export class AccountDetailDialog implements OnDestroy, OnInit { |
|
|
export class GfAccountDetailDialogComponent implements OnDestroy, OnInit { |
|
|
public accountBalances: AccountBalancesResponse['balances']; |
|
|
public accountBalances: AccountBalancesResponse['balances']; |
|
|
public activities: OrderWithAccount[]; |
|
|
public activities: OrderWithAccount[]; |
|
|
public balance: number; |
|
|
public balance: number; |
|
@ -81,7 +110,7 @@ export class AccountDetailDialog implements OnDestroy, OnInit { |
|
|
private changeDetectorRef: ChangeDetectorRef, |
|
|
private changeDetectorRef: ChangeDetectorRef, |
|
|
@Inject(MAT_DIALOG_DATA) public data: AccountDetailDialogParams, |
|
|
@Inject(MAT_DIALOG_DATA) public data: AccountDetailDialogParams, |
|
|
private dataService: DataService, |
|
|
private dataService: DataService, |
|
|
public dialogRef: MatDialogRef<AccountDetailDialog>, |
|
|
public dialogRef: MatDialogRef<GfAccountDetailDialogComponent>, |
|
|
private router: Router, |
|
|
private router: Router, |
|
|
private userService: UserService |
|
|
private userService: UserService |
|
|
) { |
|
|
) { |
|
|