UNPKG

@future-grid/fgp-graph

Version:

fgp-graph is a chart lib based on Dygraphs

61 lines (60 loc) 2.33 kB
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; }