@future-grid/fgp-graph
Version:
fgp-graph is a chart lib based on Dygraphs
61 lines (60 loc) • 2.33 kB
TypeScript
import Dygraph from "dygraphs";
import { GraphCollection, ViewConfig } from "../../metadata/configurations";
export interface ReserveSpace {
x: number;
y: number;
w: number;
h: number;
}
export interface Layout {
chart_div: HTMLDivElement;
reserveSpaceLeft(px: number): ReserveSpace;
reserveSpaceRight(px: number): ReserveSpace;
reserveSpaceTop(px: number): ReserveSpace;
reserveSpaceBottom(px: number): ReserveSpace;
chartRect(): ReserveSpace;
}
export default class Toolbar {
collectionSelectionListener: (collections: Array<GraphCollection>) => void;
intervalSelectionListener: (collection: GraphCollection, dateWindow: [number, number]) => void;
viewChangeListener: (view: ViewConfig) => void;
reactSelectionListener?: ((active: boolean) => void) | undefined;
colorFilterListener?: ((isLock: boolean) => void) | undefined;
private g?;
private readonly collectionOpts;
private readonly viewConfig;
private badges?;
private exports?;
private series?;
private intervals?;
private view?;
private filter?;
private extra?;
private graphHeader?;
private graphDiv?;
private readonly views;
constructor(view: ViewConfig, views: Array<ViewConfig>, collectionSelectionListener: (collections: Array<GraphCollection>) => void, intervalSelectionListener: (collection: GraphCollection, dateWindow: [number, number]) => void, viewChangeListener: (view: ViewConfig) => void, reactSelectionListener?: ((active: boolean) => void) | undefined, colorFilterListener?: ((isLock: boolean) => void) | undefined);
activate: (graph: Dygraph) => {
layout: (e: Layout) => void;
};
private reserveSpaceTop;
private reserveSpaceTop0;
private createExportBtns;
private createView;
private createInterval;
private createSeries;
private createFilter;
private createExtraToolbar;
/**
* Add collection badge on graph.
* @param g "dygraph" instance
* @param collections
*/
private createCollectionBadges;
/**
* call this function to update all toolbar widgets
* @param dateWindow
*/
updateDateWindow: (dateWindow: number[], dateRange: number[]) => void;
updateData: (collection: GraphCollection, labels: string[], data: any[]) => void;
}