import * as React from 'react'; import { AreaChart, ICustomizedCalloutData } from '@fluentui/react-charting'; import { IAreaChartProps, ChartHoverCard } from '@fluentui/react-charting'; import { DefaultPalette } from '@fluentui/react/lib/Styling'; import { ChoiceGroup, IChoiceGroupOption } from '@fluentui/react/lib/ChoiceGroup'; interface IAreaChartBasicState { width: number; height: number; isCalloutselected: boolean; } const options: IChoiceGroupOption[] = [ { key: 'basicExample', text: 'Basic Example' }, { key: 'calloutExample', text: 'Custom Callout Example' }, ]; export class AreaChartBasicExample extends React.Component<{}, IAreaChartBasicState> { constructor(props: IAreaChartProps) { super(props); this.state = { width: 700, height: 300, isCalloutselected: false, }; } public render(): JSX.Element { return
{this._basicExample()}
; } private _onWidthChange = (e: React.ChangeEvent) => { this.setState({ width: parseInt(e.target.value, 10) }); }; private _onHeightChange = (e: React.ChangeEvent) => { this.setState({ height: parseInt(e.target.value, 10) }); }; private _onChange = (ev: React.FormEvent, option: IChoiceGroupOption): void => { if (this.state.isCalloutselected) { this.setState({ isCalloutselected: false }); } else { this.setState({ isCalloutselected: true }); } }; private _basicExample(): JSX.Element { const chart1Points = [ { x: 20, y: 7000, xAxisCalloutData: '2018/01/01', yAxisCalloutData: '10%', }, { x: 25, y: 9000, xAxisCalloutData: '2018/01/15', yAxisCalloutData: '18%', }, { x: 30, y: 13000, xAxisCalloutData: '2018/01/28', yAxisCalloutData: '24%', }, { x: 35, y: 15000, xAxisCalloutData: '2018/02/01', yAxisCalloutData: '25%', }, { x: 40, y: 11000, xAxisCalloutData: '2018/03/01', yAxisCalloutData: '15%', }, { x: 45, y: 8760, xAxisCalloutData: '2018/03/15', yAxisCalloutData: '30%', }, { x: 50, y: 3500, xAxisCalloutData: '2018/03/28', yAxisCalloutData: '18%', }, { x: 55, y: 20000, xAxisCalloutData: '2018/04/04', yAxisCalloutData: '32%', }, { x: 60, y: 17000, xAxisCalloutData: '2018/04/15', yAxisCalloutData: '29%', }, { x: 65, y: 1000, xAxisCalloutData: '2018/05/05', yAxisCalloutData: '43%', }, { x: 70, y: 12000, xAxisCalloutData: '2018/06/01', yAxisCalloutData: '45%', }, { x: 75, y: 6876, xAxisCalloutData: '2018/01/15', yAxisCalloutData: '18%', }, { x: 80, y: 12000, xAxisCalloutData: '2018/04/30', yAxisCalloutData: '55%', }, { x: 85, y: 7000, xAxisCalloutData: '2018/05/04', yAxisCalloutData: '12%', }, { x: 90, y: 10000, xAxisCalloutData: '2018/06/01', yAxisCalloutData: '45%', }, ]; const chartPoints = [ { legend: 'legend1', data: chart1Points, color: DefaultPalette.accent, }, ]; const chartData = { chartTitle: 'Area chart basic example', lineChartData: chartPoints, }; const rootStyle = { width: `${this.state.width}px`, height: `${this.state.height}px` }; return ( <>
props && this.state.isCalloutselected ? ( ) : null } />
); } }