import { CommonModule } from '@angular/common';
import '@angular/localize/init';
import { moduleMetadata } from '@storybook/angular';
import type { Meta, StoryObj } from '@storybook/angular';
import { NgxSkeletonLoaderModule } from 'ngx-skeleton-loader';

import { GfTreemapChartComponent } from './treemap-chart.component';

export default {
  title: 'Treemap Chart',
  component: GfTreemapChartComponent,
  decorators: [
    moduleMetadata({
      imports: [CommonModule, NgxSkeletonLoaderModule]
    })
  ],
  argTypes: {
    colorScheme: {
      control: {
        type: 'select'
      },
      options: ['DARK', 'LIGHT']
    },
    cursor: {
      control: {
        type: 'select'
      },
      options: ['', 'pointer']
    }
  }
} as Meta<GfTreemapChartComponent>;

type Story = StoryObj<GfTreemapChartComponent>;

export const Default: Story = {
  args: {
    baseCurrency: 'USD',
    colorScheme: 'LIGHT',
    cursor: undefined,
    dateRange: 'mtd',
    holdings: [
      {
        allocationInPercentage: 0.042990776363386086,
        assetClass: 'EQUITY',
        assetSubClass: 'STOCK',
        countries: [],
        currency: 'USD',
        dataSource: 'YAHOO',
        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: [],
        symbol: 'AAPL',
        tags: [],
        transactionCount: 1,
        url: 'https://www.apple.com',
        valueInBaseCurrency: 12230
      },
      {
        allocationInPercentage: 0.02377401948293552,
        assetClass: 'EQUITY',
        assetSubClass: 'STOCK',
        countries: [],
        currency: 'EUR',
        dataSource: 'YAHOO',
        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: [],
        symbol: 'ALV.DE',
        tags: [],
        transactionCount: 2,
        url: 'https://www.allianz.com',
        valueInBaseCurrency: 6763.224181360202
      },
      {
        allocationInPercentage: 0.08038536990007467,
        assetClass: 'EQUITY',
        assetSubClass: 'STOCK',
        countries: [],
        currency: 'USD',
        dataSource: 'YAHOO',
        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: [],
        symbol: 'AMZN',
        tags: [],
        transactionCount: 1,
        url: 'https://www.aboutamazon.com',
        valueInBaseCurrency: 22868
      },
      {
        allocationInPercentage: 0.19216416482928922,
        assetClass: 'LIQUIDITY',
        assetSubClass: 'CRYPTOCURRENCY',
        countries: [],
        currency: 'USD',
        dataSource: 'COINGECKO',
        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.007378652850073097,
        assetClass: 'FIXED_INCOME',
        assetSubClass: 'BOND',
        countries: [],
        currency: 'EUR',
        dataSource: 'MANUAL',
        dateOfFirstActivity: new Date('2021-02-01T00:00:00.000Z'),
        dividend: 11.45,
        grossPerformance: 0,
        grossPerformancePercent: 0,
        grossPerformancePercentWithCurrencyEffect: -0.1247202380342517,
        grossPerformanceWithCurrencyEffect: -258.2576430160448,
        holdings: [],
        investment: 2099.0764063811926,
        marketPrice: 1,
        name: 'Bondora Go & Grow',
        netPerformance: 0,
        netPerformancePercent: 0,
        netPerformancePercentWithCurrencyEffect: 0.009445843828715519,
        netPerformanceWithCurrencyEffect: 19.6420125363184,
        quantity: 2000,
        sectors: [],
        symbol: 'BONDORA_GO_AND_GROW',
        tags: [],
        transactionCount: 5,
        url: null,
        valueInBaseCurrency: 2099.0764063811926
      },
      {
        allocationInPercentage: 0.07787531695543741,
        assetClass: 'EQUITY',
        assetSubClass: 'ETF',
        countries: [],
        currency: 'CHF',
        dataSource: 'MANUAL',
        dateOfFirstActivity: new Date('2021-04-01T00:00:00.000Z'),
        dividend: 0,
        grossPerformance: 4550.843985045582,
        grossPerformancePercent: 0.3631417324494093,
        grossPerformancePercentWithCurrencyEffect: 0.42037247857285137,
        grossPerformanceWithCurrencyEffect: 5107.057936556927,
        holdings: [],
        investment: 17603.097090932337,
        marketPrice: 188.22,
        name: 'frankly Extreme 95 Index',
        netPerformance: 4550.843985045582,
        netPerformancePercent: 0.3631417324494093,
        netPerformancePercentWithCurrencyEffect: 0.026190604904358043,
        netPerformanceWithCurrencyEffect: 565.4165171873152,
        quantity: 105.87328656807,
        sectors: [],
        symbol: 'FRANKLY95P',
        tags: [],
        transactionCount: 6,
        url: 'https://www.frankly.ch',
        valueInBaseCurrency: 22153.941075977917
      },
      {
        allocationInPercentage: 0.04307127421937313,
        assetClass: 'EQUITY',
        assetSubClass: 'STOCK',
        countries: [],
        currency: 'USD',
        dataSource: 'YAHOO',
        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: [],
        symbol: 'MSFT',
        tags: [],
        transactionCount: 1,
        url: 'https://www.microsoft.com',
        valueInBaseCurrency: 12252.9
      },
      {
        allocationInPercentage: 0.18762679306394897,
        assetClass: 'EQUITY',
        assetSubClass: 'STOCK',
        countries: [],
        currency: 'USD',
        dataSource: 'YAHOO',
        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: [],
        symbol: 'TSLA',
        tags: [],
        transactionCount: 1,
        url: 'https://www.tesla.com',
        valueInBaseCurrency: 53376
      },
      {
        allocationInPercentage: 0.053051250766657634,
        assetClass: 'EQUITY',
        assetSubClass: 'ETF',
        countries: [],
        currency: 'USD',
        dataSource: 'YAHOO',
        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: [],
        symbol: 'VTI',
        tags: [],
        transactionCount: 5,
        url: 'https://www.vanguard.com',
        valueInBaseCurrency: 15092
      },
      {
        allocationInPercentage: 0.0836576192450555,
        assetClass: 'EQUITY',
        assetSubClass: 'ETF',
        countries: [],
        currency: 'CHF',
        dataSource: 'YAHOO',
        dateOfFirstActivity: new Date('2018-03-01T00:00:00.000Z'),
        dividend: 0,
        grossPerformance: 6462.42356864925,
        grossPerformancePercent: 0.5463044783973836,
        grossPerformancePercentWithCurrencyEffect: 0.6282343505275325,
        grossPerformanceWithCurrencyEffect: 7121.935580698947,
        holdings: [],
        investment: 17336.464702612564,
        marketPrice: 129.74,
        name: 'Vanguard FTSE All-World UCITS ETF',
        netPerformance: 6373.040578098944,
        netPerformancePercent: 0.5387484388540966,
        netPerformancePercentWithCurrencyEffect: 0.008409682389650015,
        netPerformanceWithCurrencyEffect: 198.47200506226807,
        quantity: 165,
        sectors: [],
        symbol: 'VWRL.SW',
        tags: [],
        transactionCount: 5,
        url: 'https://www.vanguard.com',
        valueInBaseCurrency: 23798.888271261814
      },
      {
        allocationInPercentage: 0.03265192235898284,
        assetClass: 'EQUITY',
        assetSubClass: 'ETF',
        countries: [],
        currency: 'EUR',
        dataSource: 'YAHOO',
        dateOfFirstActivity: new Date('2021-08-19T00:00:00.000Z'),
        dividend: 0,
        grossPerformance: 3112.7991183879094,
        grossPerformancePercent: 0.5040147846036197,
        grossPerformancePercentWithCurrencyEffect: 0.3516875105542396,
        grossPerformanceWithCurrencyEffect: 2416.799201046856,
        holdings: [],
        investment: 6176.007556675063,
        marketPrice: 118.005,
        name: 'Xtrackers MSCI World UCITS ETF 1C',
        netPerformance: 3081.4179261125105,
        netPerformancePercent: 0.4989336392216841,
        netPerformancePercentWithCurrencyEffect: 0.006460676966633529,
        netPerformanceWithCurrencyEffect: 59.626750161726044,
        quantity: 75,
        sectors: [],
        symbol: 'XDWD.DE',
        tags: [],
        transactionCount: 1,
        url: null,
        valueInBaseCurrency: 9288.806675062973
      },
      {
        allocationInPercentage: 0.17537283996478595,
        assetClass: 'LIQUIDITY',
        assetSubClass: 'CASH',
        countries: [],
        currency: 'USD',
        dataSource: 'MANUAL',
        dateOfFirstActivity: new Date('2021-04-01T00:00:00.000Z'),
        dividend: 0,
        grossPerformance: 0,
        grossPerformancePercent: 0,
        grossPerformancePercentWithCurrencyEffect: 0,
        grossPerformanceWithCurrencyEffect: 0,
        holdings: [],
        investment: 49890,
        marketPrice: 0,
        name: 'USD',
        netPerformance: 0,
        netPerformancePercent: 0,
        netPerformancePercentWithCurrencyEffect: 0,
        netPerformanceWithCurrencyEffect: 0,
        quantity: 0,
        sectors: [],
        symbol: 'USD',
        tags: [],
        transactionCount: 0,
        valueInBaseCurrency: 49890
      }
    ],
    locale: 'en-US'
  }
};
