@gooddata/react-components
Version:
GoodData.UI - A powerful JavaScript library for building analytical applications
67 lines (66 loc) • 2.43 kB
TypeScript
import * as React from "react";
import { IChartProps } from "./Chart";
import { ILegendProps } from "./legend/Legend";
import { OnLegendReady } from "../../../interfaces/Events";
import { IChartConfig } from "../../../interfaces/Config";
import { ILegendOptions } from "../typings/legend";
import Highcharts from "./highcharts/highchartsEntryPoint";
export interface IChartHTMLElement extends HTMLElement {
getChart(): Highcharts.Chart;
getHighchartRef(): HTMLElement;
}
export interface IHighChartsRendererProps {
chartOptions: any;
hcOptions: any;
documentObj?: Document;
height: number;
width: number;
legend: ILegendOptions;
locale: string;
onLegendReady: OnLegendReady;
legendRenderer(legendProps: ILegendProps): any;
chartRenderer(chartProps: IChartProps): any;
afterRender(): void;
}
export interface IHighChartsRendererState {
legendItemsEnabled: boolean[];
showFluidLegend: boolean;
}
export declare function renderChart(props: IChartProps): JSX.Element;
export declare function renderLegend(props: ILegendProps): JSX.Element;
export default class HighChartsRenderer extends React.PureComponent<IHighChartsRendererProps, IHighChartsRendererState> {
static defaultProps: {
afterRender: (...args: any[]) => void;
height: number;
legend: {
enabled: boolean;
responsive: boolean;
position: string;
};
chartRenderer: typeof renderChart;
legendRenderer: typeof renderLegend;
onLegendReady: (...args: any[]) => void;
documentObj: Document;
};
private highchartsRendererRef;
private chartRef;
private throttledOnWindowResize;
constructor(props: IHighChartsRendererProps);
onWindowResize(): void;
componentWillMount(): void;
componentDidMount(): void;
componentWillUnmount(): void;
componentWillReceiveProps(nextProps: IHighChartsRendererProps): void;
onLegendItemClick(item: any): void;
setChartRef(chartRef: IChartHTMLElement): void;
getFlexDirection(): "column" | "row";
getItems(items: any): any;
resetLegendState(props: any): void;
createChartConfig(chartConfig: IChartConfig, legendItemsEnabled: any): IChartConfig;
renderLegend(): any;
renderHighcharts(): any;
render(): JSX.Element;
private validateOverHeight;
private realignPieOrDonutChart;
private isBottomLegend;
}