// Libraries import _ from 'lodash'; import React, { PureComponent } from 'react'; import { Graph, PanelProps, NullValueMode, colors, TimeSeriesVMs, ColumnType, getFirstTimeColumn, processTimeSeries, } from '@grafana/ui'; import { Options } from './types'; interface Props extends PanelProps {} export class GraphPanel extends PureComponent { render() { const { data, timeRange, width, height } = this.props; const { showLines, showBars, showPoints } = this.props.options; const vmSeries: TimeSeriesVMs = []; for (const table of data) { const timeColumn = getFirstTimeColumn(table); if (timeColumn >= 0) { for (let i = 0; i < table.columns.length; i++) { const column = table.columns[i]; // Show all numeric columns if (column.type === ColumnType.number) { const tsvm = processTimeSeries({ data: [table], xColumn: timeColumn, yColumn: i, nullValueMode: NullValueMode.Null, })[0]; const colorIndex = vmSeries.length % colors.length; tsvm.color = colors[colorIndex]; vmSeries.push(tsvm); } } } } return ( ); } }