import './components/visualMap'; import * as React from 'react'; import {EChartOption} from 'echarts'; import {Series} from 'app/types/echarts'; import HeatMapSeries from './series/heatMapSeries'; import BaseChart from './baseChart'; type ChartProps = React.ComponentProps<typeof BaseChart>; export type LineChartSeries = Series & Omit<EChartOption.SeriesHeatmap, 'data' | 'name'> & { dataArray?: EChartOption.SeriesHeatmap['data']; }; type Props = Omit<ChartProps, 'series'> & { series: LineChartSeries[]; seriesOptions?: EChartOption.SeriesHeatmap; visualMaps: EChartOption.VisualMap[]; }; export default class HeatMapChart extends React.Component<Props> { render() { const {series, seriesOptions, visualMaps, ...props} = this.props; return ( <BaseChart options={{ visualMap: visualMaps, }} {...props} series={series.map(({seriesName, data, dataArray, ...options}) => HeatMapSeries({ ...seriesOptions, ...options, name: seriesName, data: dataArray || data.map(({value, name}) => [name, value]), }) )} /> ); } }