mirror of https://github.com/ghostfolio/ghostfolio
Browse Source
* Move accounts table component to @ghostfolio/ui library * Add Storybook story with sample data from live demo * Update imports in client applicationpull/5278/head
7 changed files with 202 additions and 2 deletions
@ -0,0 +1,199 @@ |
|||||
|
import { CommonModule } from '@angular/common'; |
||||
|
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 { RouterModule } from '@angular/router'; |
||||
|
import { IonIcon } from '@ionic/angular/standalone'; |
||||
|
import { moduleMetadata } from '@storybook/angular'; |
||||
|
import type { Meta, StoryObj } from '@storybook/angular'; |
||||
|
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader'; |
||||
|
|
||||
|
import { GfEntityLogoComponent } from '../entity-logo'; |
||||
|
import { GfValueComponent } from '../value'; |
||||
|
import { GfAccountsTableComponent } from './accounts-table.component'; |
||||
|
|
||||
|
const mockAccounts = [ |
||||
|
{ |
||||
|
id: '1', |
||||
|
name: 'Checking Account', |
||||
|
currency: 'USD', |
||||
|
balance: 15000, |
||||
|
value: 15000, |
||||
|
valueInBaseCurrency: 15000, |
||||
|
transactionCount: 25, |
||||
|
allocationInPercentage: 0.15, |
||||
|
isExcluded: false, |
||||
|
comment: 'Primary checking account', |
||||
|
platform: { |
||||
|
name: 'Bank of America', |
||||
|
url: 'https://www.bankofamerica.com' |
||||
|
} |
||||
|
}, |
||||
|
{ |
||||
|
id: '2', |
||||
|
name: 'Trading Account', |
||||
|
currency: 'USD', |
||||
|
balance: 5000, |
||||
|
value: 125000, |
||||
|
valueInBaseCurrency: 125000, |
||||
|
transactionCount: 127, |
||||
|
allocationInPercentage: 0.65, |
||||
|
isExcluded: false, |
||||
|
comment: null, |
||||
|
platform: { |
||||
|
name: 'Interactive Brokers', |
||||
|
url: 'https://www.interactivebrokers.com' |
||||
|
} |
||||
|
}, |
||||
|
{ |
||||
|
id: '3', |
||||
|
name: 'Savings Account', |
||||
|
currency: 'EUR', |
||||
|
balance: 20000, |
||||
|
value: 20000, |
||||
|
valueInBaseCurrency: 21600, |
||||
|
transactionCount: 8, |
||||
|
allocationInPercentage: 0.2, |
||||
|
isExcluded: false, |
||||
|
comment: 'Emergency fund', |
||||
|
platform: { |
||||
|
name: 'Deutsche Bank', |
||||
|
url: 'https://www.deutsche-bank.de' |
||||
|
} |
||||
|
}, |
||||
|
{ |
||||
|
id: '4', |
||||
|
name: 'Excluded Account', |
||||
|
currency: 'USD', |
||||
|
balance: 1000, |
||||
|
value: 1000, |
||||
|
valueInBaseCurrency: 1000, |
||||
|
transactionCount: 3, |
||||
|
allocationInPercentage: 0, |
||||
|
isExcluded: true, |
||||
|
comment: null, |
||||
|
platform: { |
||||
|
name: 'Local Credit Union', |
||||
|
url: null |
||||
|
} |
||||
|
} |
||||
|
]; |
||||
|
|
||||
|
export default { |
||||
|
title: 'Accounts Table', |
||||
|
component: GfAccountsTableComponent, |
||||
|
decorators: [ |
||||
|
moduleMetadata({ |
||||
|
imports: [ |
||||
|
CommonModule, |
||||
|
NgxSkeletonLoaderModule, |
||||
|
MatButtonModule, |
||||
|
MatMenuModule, |
||||
|
MatSortModule, |
||||
|
MatTableModule, |
||||
|
RouterModule.forRoot([]), |
||||
|
IonIcon, |
||||
|
GfEntityLogoComponent, |
||||
|
GfValueComponent |
||||
|
] |
||||
|
}) |
||||
|
] |
||||
|
} as Meta<GfAccountsTableComponent>; |
||||
|
|
||||
|
type Story = StoryObj<GfAccountsTableComponent>; |
||||
|
|
||||
|
export const Loading: Story = { |
||||
|
args: { |
||||
|
accounts: [], |
||||
|
baseCurrency: 'USD', |
||||
|
deviceType: 'web', |
||||
|
locale: 'en-US', |
||||
|
showActions: false, |
||||
|
showAllocationInPercentage: false, |
||||
|
showBalance: true, |
||||
|
showFooter: true, |
||||
|
showTransactions: true, |
||||
|
showValue: true, |
||||
|
showValueInBaseCurrency: true, |
||||
|
totalBalanceInBaseCurrency: 0, |
||||
|
totalValueInBaseCurrency: 0, |
||||
|
transactionCount: 0 |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
export const Default: Story = { |
||||
|
args: { |
||||
|
accounts: mockAccounts, |
||||
|
baseCurrency: 'USD', |
||||
|
deviceType: 'web', |
||||
|
locale: 'en-US', |
||||
|
showActions: false, |
||||
|
showAllocationInPercentage: false, |
||||
|
showBalance: true, |
||||
|
showFooter: true, |
||||
|
showTransactions: true, |
||||
|
showValue: true, |
||||
|
showValueInBaseCurrency: true, |
||||
|
totalBalanceInBaseCurrency: 56600, |
||||
|
totalValueInBaseCurrency: 161600, |
||||
|
transactionCount: 163 |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
export const WithActions: Story = { |
||||
|
args: { |
||||
|
accounts: mockAccounts, |
||||
|
baseCurrency: 'USD', |
||||
|
deviceType: 'web', |
||||
|
locale: 'en-US', |
||||
|
showActions: true, |
||||
|
showAllocationInPercentage: true, |
||||
|
showBalance: true, |
||||
|
showFooter: true, |
||||
|
showTransactions: true, |
||||
|
showValue: true, |
||||
|
showValueInBaseCurrency: true, |
||||
|
totalBalanceInBaseCurrency: 56600, |
||||
|
totalValueInBaseCurrency: 161600, |
||||
|
transactionCount: 163 |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
export const MobileView: Story = { |
||||
|
args: { |
||||
|
accounts: mockAccounts, |
||||
|
baseCurrency: 'USD', |
||||
|
deviceType: 'mobile', |
||||
|
locale: 'en-US', |
||||
|
showActions: false, |
||||
|
showAllocationInPercentage: false, |
||||
|
showBalance: false, |
||||
|
showFooter: false, |
||||
|
showTransactions: true, |
||||
|
showValue: false, |
||||
|
showValueInBaseCurrency: true, |
||||
|
totalBalanceInBaseCurrency: 56600, |
||||
|
totalValueInBaseCurrency: 161600, |
||||
|
transactionCount: 163 |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
export const WithoutFooter: Story = { |
||||
|
args: { |
||||
|
accounts: mockAccounts, |
||||
|
baseCurrency: 'USD', |
||||
|
deviceType: 'web', |
||||
|
locale: 'en-US', |
||||
|
showActions: false, |
||||
|
showAllocationInPercentage: true, |
||||
|
showBalance: true, |
||||
|
showFooter: false, |
||||
|
showTransactions: true, |
||||
|
showValue: true, |
||||
|
showValueInBaseCurrency: true, |
||||
|
totalBalanceInBaseCurrency: 56600, |
||||
|
totalValueInBaseCurrency: 161600, |
||||
|
transactionCount: 163 |
||||
|
} |
||||
|
}; |
@ -0,0 +1 @@ |
|||||
|
export * from './accounts-table.component'; |
Loading…
Reference in new issue