import _ from 'lodash'; import React from 'react'; import { Meta, Story } from '@storybook/react'; import * as chartConstants from '../../constants/charts'; import PieChart, { IPieChartProps } from './PieChart'; import Legend from '../Legend/Legend'; export default { title: 'Visualizations/PieChart', component: PieChart, parameters: { docs: { description: { component: PieChart.peek.description, }, }, }, args: PieChart.defaultProps, } as Meta; /* Basic */ export const Basic: Story = (args) => { const data = [ { x: 'Leslie', y: 60 }, { x: 'Ron', y: 40 }, { x: 'Tom', y: 30 }, { x: 'Gary', y: 20 }, { x: 'Ben', y: 15 }, ]; const style = { paddingTop: '4rem', }; return (
); }; /* Basic Donuts */ export const BasicDonuts: Story = (args) => { /* eslint-disable comma-spacing */ const data = [ { x: 'Leslie', y: 60 }, { x: 'Ron', y: 40 }, { x: 'Tom', y: 30 }, { x: 'Gary', y: 20 }, { x: 'Ben', y: 15 }, ]; const style = { paddingTop: '4rem', }; return (
); }; /* Legend */ export const LegendTest: Story = (args) => { const data = [ { x: 'Leslie', y: 80 }, { x: 'Tom', y: 20 }, { x: 'Ron', y: 10 }, { x: 'Ann', y: 30 }, ]; const palette = chartConstants.PALETTE_7; const style = { display: 'flex', alignItems: 'center', paddingTop: '4rem', }; return (
{_.map(data, (d, index) => ( {d.x} ))}
); }; /* Color Map */ export const ColorMap: Story = (args) => { /* eslint-disable comma-spacing */ const data = [ { x: 'Leslie', y: 100 }, { x: 'Tom', y: 20 }, { x: 'Ron', y: 10 }, { x: 'Ann', y: 30 }, { x: 'Tammy', y: 40 }, ]; const style = { paddingTop: '4rem', }; return (
); }; /* Percents */ export const Percents: Story = (args) => { /* eslint-disable comma-spacing */ const data = [ { x: 'Leslie', y: 60 }, { x: 'Ron', y: 40 }, { x: 'Tom', y: 30 }, { x: 'Gary', y: 20 }, { x: 'Ben', y: 15 }, ]; const total = _.sum(_.map(data, 'y')); const style = { paddingTop: '4rem', }; return (
{ return `${((value / total) * 100).toFixed(1)}%`; }} />
); }; /* Small With No Stroke Or Hover */ export const SmallWithNoStrokeOrHover: Story = (args) => { const data = [ { x: 'Leslie', y: 60 }, { x: 'Ron', y: 40 }, { x: 'Tom', y: 30 }, { x: 'Gary', y: 20 }, { x: 'Ben', y: 15 }, ]; const style = { paddingTop: '4rem', }; return (
); };