mirror of https://github.com/ghostfolio/ghostfolio
Browse Source
* Set up Storybook story for holdings table component * Update changelogpull/5743/head
committed by
GitHub
4 changed files with 361 additions and 349 deletions
@ -0,0 +1,62 @@ |
|||||
|
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 { holdings } from '../mocks/holdings'; |
||||
|
import { GfValueComponent } from '../value'; |
||||
|
import { GfHoldingsTableComponent } from './holdings-table.component'; |
||||
|
|
||||
|
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 Loading: Story = { |
||||
|
args: { |
||||
|
holdings: undefined, |
||||
|
baseCurrency: 'USD', |
||||
|
deviceType: 'desktop', |
||||
|
hasPermissionToOpenDetails: false, |
||||
|
hasPermissionToShowQuantities: true, |
||||
|
hasPermissionToShowValues: true, |
||||
|
locale: 'en-US', |
||||
|
pageSize: Number.MAX_SAFE_INTEGER |
||||
|
} |
||||
|
}; |
||||
|
|
||||
|
export const Default: Story = { |
||||
|
args: { |
||||
|
holdings, |
||||
|
baseCurrency: 'USD', |
||||
|
deviceType: 'desktop', |
||||
|
hasPermissionToOpenDetails: false, |
||||
|
hasPermissionToShowQuantities: true, |
||||
|
hasPermissionToShowValues: true, |
||||
|
locale: 'en-US', |
||||
|
pageSize: Number.MAX_SAFE_INTEGER |
||||
|
} |
||||
|
}; |
@ -0,0 +1,293 @@ |
|||||
|
import { PortfolioPosition } from '@ghostfolio/common/interfaces'; |
||||
|
|
||||
|
export const holdings: PortfolioPosition[] = [ |
||||
|
{ |
||||
|
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.036440677966101696, |
||||
|
netPerformanceWithCurrencyEffect: 430, |
||||
|
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: 'DE', |
||||
|
weight: 1, |
||||
|
continent: 'Europe', |
||||
|
name: 'Germany' |
||||
|
} |
||||
|
], |
||||
|
currency: 'EUR', |
||||
|
dataSource: 'YAHOO' as any, |
||||
|
dateOfFirstActivity: new Date('2021-04-23T00:00:00.000Z'), |
||||
|
dividend: 192, |
||||
|
grossPerformance: 2226.700251889169, |
||||
|
grossPerformancePercent: 0.49083842309827874, |
||||
|
grossPerformancePercentWithCurrencyEffect: 0.29306136948826367, |
||||
|
grossPerformanceWithCurrencyEffect: 1532.8272791336772, |
||||
|
holdings: [], |
||||
|
investment: 4536.523929471033, |
||||
|
marketPrice: 322.2, |
||||
|
name: 'Allianz SE', |
||||
|
netPerformance: 2222.2921914357685, |
||||
|
netPerformancePercent: 0.48986674069961134, |
||||
|
netPerformancePercentWithCurrencyEffect: 0.034489367670592026, |
||||
|
netPerformanceWithCurrencyEffect: 225.48257403052068, |
||||
|
quantity: 20, |
||||
|
sectors: [ |
||||
|
{ |
||||
|
name: 'Financial Services', |
||||
|
weight: 1 |
||||
|
} |
||||
|
], |
||||
|
symbol: 'ALV.DE', |
||||
|
tags: [], |
||||
|
transactionCount: 2, |
||||
|
url: 'https://www.allianz.com', |
||||
|
valueInBaseCurrency: 6763.224181360202 |
||||
|
}, |
||||
|
{ |
||||
|
allocationInPercentage: 0.08038536990007467, |
||||
|
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('2018-10-01T00:00:00.000Z'), |
||||
|
dividend: 0, |
||||
|
grossPerformance: 12758.05, |
||||
|
grossPerformancePercent: 1.2619300787837724, |
||||
|
grossPerformancePercentWithCurrencyEffect: 1.2619300787837724, |
||||
|
grossPerformanceWithCurrencyEffect: 12758.05, |
||||
|
holdings: [], |
||||
|
investment: 10109.95, |
||||
|
marketPrice: 228.68, |
||||
|
name: 'Amazon.com, Inc.', |
||||
|
netPerformance: 12677.26, |
||||
|
netPerformancePercent: 1.253938941339967, |
||||
|
netPerformancePercentWithCurrencyEffect: -0.037866008722316276, |
||||
|
netPerformanceWithCurrencyEffect: -899.99926757812, |
||||
|
quantity: 100, |
||||
|
sectors: [ |
||||
|
{ |
||||
|
name: 'Consumer Discretionary', |
||||
|
weight: 1 |
||||
|
} |
||||
|
], |
||||
|
symbol: 'AMZN', |
||||
|
tags: [], |
||||
|
transactionCount: 1, |
||||
|
url: 'https://www.aboutamazon.com', |
||||
|
valueInBaseCurrency: 22868 |
||||
|
}, |
||||
|
{ |
||||
|
allocationInPercentage: 0.19216416482928922, |
||||
|
assetClass: 'LIQUIDITY' as any, |
||||
|
assetClassLabel: 'Liquidity', |
||||
|
assetSubClass: 'CRYPTOCURRENCY' as any, |
||||
|
assetSubClassLabel: 'Cryptocurrency', |
||||
|
countries: [], |
||||
|
currency: 'USD', |
||||
|
dataSource: 'COINGECKO' as any, |
||||
|
dateOfFirstActivity: new Date('2017-08-16T00:00:00.000Z'), |
||||
|
dividend: 0, |
||||
|
grossPerformance: 52666.7898248, |
||||
|
grossPerformancePercent: 26.333394912400003, |
||||
|
grossPerformancePercentWithCurrencyEffect: 26.333394912400003, |
||||
|
grossPerformanceWithCurrencyEffect: 52666.7898248, |
||||
|
holdings: [], |
||||
|
investment: 1999.9999999999998, |
||||
|
marketPrice: 97364, |
||||
|
name: 'Bitcoin', |
||||
|
netPerformance: 52636.8898248, |
||||
|
netPerformancePercent: 26.3184449124, |
||||
|
netPerformancePercentWithCurrencyEffect: -0.04760906442310894, |
||||
|
netPerformanceWithCurrencyEffect: -2732.737808972287, |
||||
|
quantity: 0.5614682, |
||||
|
sectors: [], |
||||
|
symbol: 'bitcoin', |
||||
|
tags: [], |
||||
|
transactionCount: 1, |
||||
|
url: null, |
||||
|
valueInBaseCurrency: 54666.7898248 |
||||
|
}, |
||||
|
{ |
||||
|
allocationInPercentage: 0.04307127421937313, |
||||
|
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('2023-01-03T00:00:00.000Z'), |
||||
|
dividend: 0, |
||||
|
grossPerformance: 5065.5, |
||||
|
grossPerformancePercent: 0.7047750229568411, |
||||
|
grossPerformancePercentWithCurrencyEffect: 0.7047750229568411, |
||||
|
grossPerformanceWithCurrencyEffect: 5065.5, |
||||
|
holdings: [], |
||||
|
investment: 7187.4, |
||||
|
marketPrice: 408.43, |
||||
|
name: 'Microsoft Corporation', |
||||
|
netPerformance: 5065.5, |
||||
|
netPerformancePercent: 0.7047750229568411, |
||||
|
netPerformancePercentWithCurrencyEffect: -0.015973588391056275, |
||||
|
netPerformanceWithCurrencyEffect: -198.899926757814, |
||||
|
quantity: 30, |
||||
|
sectors: [ |
||||
|
{ |
||||
|
name: 'Technology', |
||||
|
weight: 1 |
||||
|
} |
||||
|
], |
||||
|
symbol: 'MSFT', |
||||
|
tags: [], |
||||
|
transactionCount: 1, |
||||
|
url: 'https://www.microsoft.com', |
||||
|
valueInBaseCurrency: 12252.9 |
||||
|
}, |
||||
|
{ |
||||
|
allocationInPercentage: 0.18762679306394897, |
||||
|
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('2017-01-03T00:00:00.000Z'), |
||||
|
dividend: 0, |
||||
|
grossPerformance: 51227.500000005, |
||||
|
grossPerformancePercent: 23.843379101756675, |
||||
|
grossPerformancePercentWithCurrencyEffect: 23.843379101756675, |
||||
|
grossPerformanceWithCurrencyEffect: 51227.500000005, |
||||
|
holdings: [], |
||||
|
investment: 2148.499999995, |
||||
|
marketPrice: 355.84, |
||||
|
name: 'Tesla, Inc.', |
||||
|
netPerformance: 51197.500000005, |
||||
|
netPerformancePercent: 23.829415871596066, |
||||
|
netPerformancePercentWithCurrencyEffect: -0.12051410125545206, |
||||
|
netPerformanceWithCurrencyEffect: -7314.00091552734, |
||||
|
quantity: 150, |
||||
|
sectors: [ |
||||
|
{ |
||||
|
name: 'Consumer Discretionary', |
||||
|
weight: 1 |
||||
|
} |
||||
|
], |
||||
|
symbol: 'TSLA', |
||||
|
tags: [], |
||||
|
transactionCount: 1, |
||||
|
url: 'https://www.tesla.com', |
||||
|
valueInBaseCurrency: 53376 |
||||
|
}, |
||||
|
{ |
||||
|
allocationInPercentage: 0.053051250766657634, |
||||
|
assetClass: 'EQUITY' as any, |
||||
|
assetClassLabel: 'Equity', |
||||
|
assetSubClass: 'ETF' as any, |
||||
|
assetSubClassLabel: 'ETF', |
||||
|
countries: [ |
||||
|
{ |
||||
|
code: 'US', |
||||
|
weight: 1, |
||||
|
continent: 'North America', |
||||
|
name: 'United States' |
||||
|
} |
||||
|
], |
||||
|
currency: 'USD', |
||||
|
dataSource: 'YAHOO' as any, |
||||
|
dateOfFirstActivity: new Date('2019-03-01T00:00:00.000Z'), |
||||
|
dividend: 0, |
||||
|
grossPerformance: 6845.8, |
||||
|
grossPerformancePercent: 1.0164758094605268, |
||||
|
grossPerformancePercentWithCurrencyEffect: 1.0164758094605268, |
||||
|
grossPerformanceWithCurrencyEffect: 6845.8, |
||||
|
holdings: [], |
||||
|
investment: 8246.2, |
||||
|
marketPrice: 301.84, |
||||
|
name: 'Vanguard Total Stock Market Index Fund ETF Shares', |
||||
|
netPerformance: 6746.3, |
||||
|
netPerformancePercent: 1.0017018833976383, |
||||
|
netPerformancePercentWithCurrencyEffect: 0.01085061564051406, |
||||
|
netPerformanceWithCurrencyEffect: 161.99969482422, |
||||
|
quantity: 50, |
||||
|
sectors: [ |
||||
|
{ |
||||
|
name: 'Equity', |
||||
|
weight: 1 |
||||
|
} |
||||
|
], |
||||
|
symbol: 'VTI', |
||||
|
tags: [], |
||||
|
transactionCount: 5, |
||||
|
url: 'https://www.vanguard.com', |
||||
|
valueInBaseCurrency: 15092 |
||||
|
} |
||||
|
]; |
Loading…
Reference in new issue