mirror of https://github.com/ghostfolio/ghostfolio
1 changed files with 219 additions and 0 deletions
@ -0,0 +1,219 @@ |
|||||
|
import { CommonModule } from '@angular/common'; |
||||
|
import { MatButtonModule } from '@angular/material/button'; |
||||
|
import { MatDialogModule } from '@angular/material/dialog'; |
||||
|
import { MatPaginatorModule } from '@angular/material/paginator'; |
||||
|
import { MatSortModule } from '@angular/material/sort'; |
||||
|
import { MatTableModule } from '@angular/material/table'; |
||||
|
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 { GfHoldingsTableComponent } from './holdings-table.component'; |
||||
|
|
||||
|
const holdings = [ |
||||
|
{ |
||||
|
allocationInPercentage: 0.042990776363386086, |
||||
|
assetClass: 'EQUITY' as any, |
||||
|
assetClassLabel: 'Equity', |
||||
|
assetSubClass: 'STOCK' as any, |
||||
|
assetSubClassLabel: 'Stock', |
||||
|
countries: [ |
||||
|
{ |
||||
|
code: 'US', |
||||
|
weight: 1, |
||||
|
continent: 'North America', |
||||
|
name: 'United States' |
||||
|
} |
||||
|
], |
||||
|
currency: 'USD', |
||||
|
dataSource: 'YAHOO' as any, |
||||
|
dateOfFirstActivity: new Date('2021-12-01T00:00:00.000Z'), |
||||
|
dividend: 0, |
||||
|
grossPerformance: 3856, |
||||
|
grossPerformancePercent: 0.46047289228564603, |
||||
|
grossPerformancePercentWithCurrencyEffect: 0.46047289228564603, |
||||
|
grossPerformanceWithCurrencyEffect: 3856, |
||||
|
holdings: [], |
||||
|
investment: 8374, |
||||
|
marketPrice: 244.6, |
||||
|
name: 'Apple Inc', |
||||
|
netPerformance: 3855, |
||||
|
netPerformancePercent: 0.460353475041796, |
||||
|
netPerformancePercentWithCurrencyEffect: 0.460353475041796, |
||||
|
netPerformanceWithCurrencyEffect: 3855, |
||||
|
quantity: 50, |
||||
|
sectors: [ |
||||
|
{ |
||||
|
name: 'Technology', |
||||
|
weight: 1 |
||||
|
} |
||||
|
], |
||||
|
symbol: 'AAPL', |
||||
|
tags: [], |
||||
|
transactionCount: 1, |
||||
|
url: 'https://www.apple.com', |
||||
|
valueInBaseCurrency: 12230 |
||||
|
}, |
||||
|
{ |
||||
|
allocationInPercentage: 0.02377401948293552, |
||||
|
assetClass: 'EQUITY' as any, |
||||
|
assetClassLabel: 'Equity', |
||||
|
assetSubClass: 'STOCK' as any, |
||||
|
assetSubClassLabel: 'Stock', |
||||
|
countries: [ |
||||
|
{ |
||||
|
code: 'US', |
||||
|
weight: 1, |
||||
|
continent: 'North America', |
||||
|
name: 'United States' |
||||
|
} |
||||
|
], |
||||
|
currency: 'USD', |
||||
|
dataSource: 'YAHOO' as any, |
||||
|
dateOfFirstActivity: new Date('2021-11-15T00:00:00.000Z'), |
||||
|
dividend: 0, |
||||
|
grossPerformance: 1250, |
||||
|
grossPerformancePercent: 0.25000000000000006, |
||||
|
grossPerformancePercentWithCurrencyEffect: 0.25000000000000006, |
||||
|
grossPerformanceWithCurrencyEffect: 1250, |
||||
|
holdings: [], |
||||
|
investment: 5000, |
||||
|
marketPrice: 125, |
||||
|
name: 'Microsoft Corporation', |
||||
|
netPerformance: 1250, |
||||
|
netPerformancePercent: 0.25, |
||||
|
netPerformancePercentWithCurrencyEffect: 0.25, |
||||
|
netPerformanceWithCurrencyEffect: 1250, |
||||
|
quantity: 50, |
||||
|
sectors: [ |
||||
|
{ |
||||
|
name: 'Technology', |
||||
|
weight: 1 |
||||
|
} |
||||
|
], |
||||
|
symbol: 'MSFT', |
||||
|
tags: [], |
||||
|
transactionCount: 1, |
||||
|
url: 'https://www.microsoft.com', |
||||
|
valueInBaseCurrency: 6250 |
||||
|
}, |
||||
|
{ |
||||
|
allocationInPercentage: 0.015000000000000003, |
||||
|
assetClass: 'EQUITY' as any, |
||||
|
assetClassLabel: 'Equity', |
||||
|
assetSubClass: 'STOCK' as any, |
||||
|
assetSubClassLabel: 'Stock', |
||||
|
countries: [ |
||||
|
{ |
||||
|
code: 'US', |
||||
|
weight: 1, |
||||
|
continent: 'North America', |
||||
|
name: 'United States' |
||||
|
} |
||||
|
], |
||||
|
currency: 'USD', |
||||
|
dataSource: 'YAHOO' as any, |
||||
|
dateOfFirstActivity: new Date('2022-01-10T00:00:00.000Z'), |
||||
|
dividend: 0, |
||||
|
grossPerformance: -500, |
||||
|
grossPerformancePercent: -0.1, |
||||
|
grossPerformancePercentWithCurrencyEffect: -0.1, |
||||
|
grossPerformanceWithCurrencyEffect: -500, |
||||
|
holdings: [], |
||||
|
investment: 5000, |
||||
|
marketPrice: 90, |
||||
|
name: 'Tesla Inc', |
||||
|
netPerformance: -500, |
||||
|
netPerformancePercent: -0.1, |
||||
|
netPerformancePercentWithCurrencyEffect: -0.1, |
||||
|
netPerformanceWithCurrencyEffect: -500, |
||||
|
quantity: 50, |
||||
|
sectors: [ |
||||
|
{ |
||||
|
name: 'Consumer Discretionary', |
||||
|
weight: 1 |
||||
|
} |
||||
|
], |
||||
|
symbol: 'TSLA', |
||||
|
tags: [], |
||||
|
transactionCount: 1, |
||||
|
url: 'https://www.tesla.com', |
||||
|
valueInBaseCurrency: 4500 |
||||
|
} |
||||
|
]; |
||||
|
|
||||
|
export default { |
||||
|
title: 'Holdings Table', |
||||
|
component: GfHoldingsTableComponent, |
||||
|
decorators: [ |
||||
|
moduleMetadata({ |
||||
|
imports: [ |
||||
|
CommonModule, |
||||
|
GfEntityLogoComponent, |
||||
|
GfValueComponent, |
||||
|
MatButtonModule, |
||||
|
MatDialogModule, |
||||
|
MatPaginatorModule, |
||||
|
MatSortModule, |
||||
|
MatTableModule, |
||||
|
NgxSkeletonLoaderModule |
||||
|
] |
||||
|
}) |
||||
|
] |
||||
|
} as Meta<GfHoldingsTableComponent>; |
||||
|
|
||||
|
type Story = StoryObj<GfHoldingsTableComponent>; |
||||
|
|
||||
|
export const Default: Story = { |
||||
|
args: { |
||||
|
holdings, |
||||
|
baseCurrency: 'USD', |
||||
|
deviceType: 'desktop', |
||||
|
hasPermissionToOpenDetails: true, |
||||
|
hasPermissionToShowQuantities: true, |
||||
|
hasPermissionToShowValues: true, |
||||
|
locale: 'en-US', |
||||
|
pageSize: Number.MAX_SAFE_INTEGER |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
export const WithoutQuantities: Story = { |
||||
|
args: { |
||||
|
holdings, |
||||
|
baseCurrency: 'USD', |
||||
|
deviceType: 'desktop', |
||||
|
hasPermissionToOpenDetails: true, |
||||
|
hasPermissionToShowQuantities: false, |
||||
|
hasPermissionToShowValues: true, |
||||
|
locale: 'en-US', |
||||
|
pageSize: Number.MAX_SAFE_INTEGER |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
export const WithoutValues: Story = { |
||||
|
args: { |
||||
|
holdings, |
||||
|
baseCurrency: 'USD', |
||||
|
deviceType: 'desktop', |
||||
|
hasPermissionToOpenDetails: true, |
||||
|
hasPermissionToShowQuantities: true, |
||||
|
hasPermissionToShowValues: false, |
||||
|
locale: 'en-US', |
||||
|
pageSize: Number.MAX_SAFE_INTEGER |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
export const Mobile: Story = { |
||||
|
args: { |
||||
|
holdings, |
||||
|
baseCurrency: 'USD', |
||||
|
deviceType: 'mobile', |
||||
|
hasPermissionToOpenDetails: true, |
||||
|
hasPermissionToShowQuantities: true, |
||||
|
hasPermissionToShowValues: true, |
||||
|
locale: 'en-US', |
||||
|
pageSize: Number.MAX_SAFE_INTEGER |
||||
|
} |
||||
|
}; |
||||
Loading…
Reference in new issue