@future-grid/fgp-graph
Version:
fgp-graph is a chart lib based on Dygraphs
88 lines (87 loc) • 2.52 kB
TypeScript
import Dygraph from "dygraphs";
import { ViewConfig, ViewOptions } from "./metadata/configurations";
import { EventHandlers } from './metadata/graphoptions';
import { GraphOperator } from "./widgets/GraphRenderer";
export default class FgpGraph {
graphContainer: HTMLElement;
body: HTMLElement;
graph: Dygraph;
private rangeBarGraph;
viewConfigs: Array<ViewConfig>;
private parentDom;
syncLegend: boolean;
intervalLabelsArea: HTMLElement;
children: Array<FgpGraph>;
currentDateWindow: number[];
id: string;
operator: GraphOperator;
eventListeners?: EventHandlers;
private graphDateWindow;
private readonly syncViews;
/**
*Creates an instance of FgpGraph.
* @param {HTMLElement} dom
* graph container
* @param {Array<ViewConfig>} viewConfigs
* graph configuration
* @memberof FgpGraph
*/
constructor(dom: HTMLElement, viewConfigs: Array<ViewConfig>, eventHandlers?: EventHandlers, syncViews?: boolean);
/**
*update datewindow for children graphs
* @param datewindow
* @param currentView
* @private
* @memberof FgpGraph
*/
private dateWindowHandler;
/**
* func for switching view
* @param view
*/
changeView: (view: string) => void;
/**
* init graph with configuration
*
* @private
* @memberof FgpGraph
*/
initGraph: (ready?: ((g: FgpGraph) => void) | undefined, needSync?: boolean | undefined) => false | undefined;
/**
*update currrent graph datewindow
* @param datewindow
* @memberof FgpGraph
*/
updateDatewinow: (datewindow: [number, number]) => void;
updateDatewinowInside: (datewindow: [number, number], forceReload?: boolean | undefined) => void;
/**
*bind children graphs
* @param graphs
* children graphs
* @memberof FgpGraph
*/
setChildren: (graphs: FgpGraph[]) => void;
/**
* highlight line on graph
* @param series
* name of lines
* @param duration
* unhighlight after <duration> seconds 0 means highlight forever
*
* @memberof FgpGraph
*/
highlightSeries: (series: string[], duration: number, type?: string | undefined) => void;
/**
* reload data for graph. base on series not changed!
*/
reloadData: () => void;
/**
* do it later
* @param config
*/
updateConfig: (config: ViewOptions) => string;
/**
* clear graph
*/
clear: () => void;
}