UNPKG

blessed-contrib

Version:

Build dashboards (or any other application) using ascii/ansi art and javascript.

522 lines (375 loc) 18.9 kB
import * as Blessed from 'blessed' export = BlessedContrib declare namespace BlessedContrib { export type Optionals<T, K extends keyof T> = { [P in keyof K]?: T[K] } export type Picker<T, K extends keyof T> = { [P in K]: T[P]; }; export module Widgets { import IHasOptions = Blessed.Widgets.IHasOptions; import BoxOptions = Blessed.Widgets.BoxOptions; import ListOptions = Blessed.Widgets.ListOptions; import Types = Blessed.Widgets.Types; import ListElementStyle = Blessed.Widgets.ListElementStyle; import BoxElement = Blessed.Widgets.BoxElement; import ListElement = Blessed.Widgets.ListElement; export interface GridOptions { top?: Types.TTopLeft; left?: Types.TTopLeft; right?: Types.TPosition; bottom?: Types.TPosition; rows?: number cols?: number screen: Blessed.Widgets.Screen border?: Blessed.Widgets.Border hideBorder?: boolean } export type WidgetOptions = BoxOptions | BarOptions | StackedBarOptions | CanvasOptions | TreeOptions | TableOptions | PictureOptions | MarkdownOptions | MapOptions | SparklineOptions | LogOptions | LcdOptions | GaugeOptions | GaugeListOptions | DonutOptions export type WidgetElements = BoxElement | BarElement | LineElement | StackedBarElement | CanvasElement | TreeElement | TableElement | PictureElement | MarkdownElement | MapElement | SparklineElement | LogElement | LcdElement | GaugeElement | GaugeListElement | DonutElement export class GridElement extends BoxElement implements IHasOptions<GridOptions> { constructor(opts: GridOptions); set<T extends (options?: TreeOptions) => S, S extends TreeElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: TreeOptions): TreeElement set<T extends (options?: TableOptions) => S, S extends TableElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: TableOptions): TableElement set<T extends (options?: PictureOptions) => S, S extends PictureElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: PictureOptions): PictureElement set<T extends (options?: MarkdownOptions) => S, S extends MarkdownElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: MarkdownOptions): MarkdownElement set<T extends (options?: MapOptions) => S, S extends MapElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: MapOptions): MapElement set<T extends (options?: LogOptions) => S, S extends LogElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: LogOptions): LogElement set<T extends (options?: LcdOptions) => S, S extends LcdElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: LcdOptions): LcdElement set<T extends (options?: GaugeOptions) => S, S extends GaugeElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: GaugeOptions): GaugeElement set<T extends (options?: GaugeListOptions) => S, S extends GaugeListElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: GaugeListOptions): GaugeListElement set<T extends (options?: DonutOptions) => S, S extends DonutElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: DonutOptions): DonutElement set<T extends (options?: BarOptions) => S, S extends BarElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: BarOptions): BarElement set<T extends (options?: LineOptions) => S, S extends LineElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: LineOptions): LineElement set<T extends (options?: StackedBarOptions) => S, S extends StackedBarElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: StackedBarOptions): StackedBarElement set<T extends (options?: CanvasOptions) => S, S extends CanvasElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: CanvasOptions): CanvasElement // set<T extends (options?: WidgetOptions) => S, S extends WidgetElements>(row: number, col: number, rowSpan: number, colSpan: number, obj: T, opt: WidgetOptions): WidgetElements set<T, S>(...args:any[]): any // set<K extends keyof Factories>(row: number, col: number, rowSpan: number, colSpan: number, // obj: T, opts?: P<T> ): P<T> // set<A =BarOptions, T=BarElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof bar // set<A =Line, T=LineElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof line // set<A =StackedBar, T=StackedBarElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof stackedBar // set<A =Canvas, T=CanvasElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof canvas // set<A =Tree, T=TreeElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof tree // set<A =Table, T=TableElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof table // set<A =Picture, T=PictureElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof picture // set<A =Markdown, T=MarkdownElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof markdown // set<A =Map, T=MapElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof map // set<A =Log, T=LogElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof log // set<A =Lcd, T=LcdElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof lcd // set<A =Gauge, T=GaugeElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof gauge // set<A =GaugeList, T=GaugeListElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof gaugeList // set<A =Donut, T=DonutElement>(row: number, col: number, rowSpan: number, colSpan: number, obj: A, opts?: O): T //typeof donut options: GridOptions; } export interface BarData { titles?: string[], data?: number[] } export interface BarOptions extends CanvasOptions<BarData> { barWidth?: number barSpacing?: number xOffset?: number maxHeight?: number showText?: boolean barBgColor?: string barFgColor?: string } export class BarElement extends CanvasElement<BarData> implements IHasOptions<BarOptions> { constructor(opts: BarOptions); setData(data: BarData): void; options: BarOptions; } export interface LineData { title?: string x?: string[] y?: number[] style?: { line?: string text?: string baseline?: string } } export interface LineOptions extends CanvasOptions<LineData[]> { showNthLabel?: boolean style?: { line?: string text?: string baseline?: string } xLabelPadding?: number xPadding?: number numYLabels?: number legend?: { width: number } wholeNumbersOnly?: boolean minY?: number maxY?: number label?: string } export class LineElement extends CanvasElement<LineData[]> implements IHasOptions<LineOptions> { constructor(opts: LineOptions); options: LineOptions; } export interface StackedBarData { barCategory?: string[] stackedCategory?: string[] data?: Array<number[]> } export interface StackedBarOptions extends CanvasOptions<StackedBarData[]> { barWidth?: number barSpacing?: number xOffset?: number maxValue?: number barBgColor?: string showLegend?: boolean legend?: any showText?: boolean } export class StackedBarElement extends CanvasElement<StackedBarData[]> implements IHasOptions<StackedBarOptions> { constructor(opts: StackedBarOptions) options: StackedBarOptions; addLegend(bars: any, x: number): void; } export interface CanvasOptions<D extends any=any> extends BoxOptions { canvasSize?: { width?: number, height?: number } data?: D } export class CanvasElement<D extends any=any> extends BoxElement implements IHasOptions<CanvasOptions> { constructor(opts: CanvasOptions<D>) options: CanvasOptions<D>; calcSize(): void; setData(data: D): void; setData(titles: string[], data: D): void; canvasSize: { width: number, height: number } } export interface DonutData { percent?: string, label?: string, color?: string } export interface DonutOptions extends CanvasOptions<DonutData[]> { stroke?: string fill?: string label?: string radius?: number arcWidth?: number spacing?: number remainColor?: string yPadding?: number } export class DonutElement extends CanvasElement<DonutData[]> implements IHasOptions<DonutOptions> { constructor(opts: DonutOptions) options: DonutOptions; } export interface GaugeListOptions extends CanvasOptions { } export class GaugeListElement extends CanvasElement implements IHasOptions<GaugeListOptions> { constructor(opts: GaugeListOptions) options: GaugeListOptions; } export interface GaugeOptions extends CanvasOptions { percent: number[] stroke?: string fill?: string label?: string stack?: any showLabel?: boolean } export class GaugeElement extends CanvasElement implements IHasOptions<GaugeOptions> { constructor(opts: GaugeOptions) options: GaugeOptions; setPercent(number: number): void; setStack(stack: Array<{ percent: number, stroke: string }>): void; setData(percent: number[]): void; setData(percent: number): void; } export interface LcdOptions extends CanvasOptions { segmentWidth?: number// how wide are the segments in % so 50% = 0.5 segmentInterval?: number// spacing between the segments in % so 50% = 0.550% = 0.5 strokeWidth?: number// spacing between the segments in % so 50% = 0.5 elements?: number// how many elements in the display. or how many characters can be displayed. display?: number// what should be displayed before first call to setDisplay elementSpacing?: number// spacing between each element elementPadding?: number// how far away from the edges to put the elements color?: 'white' // color for the segments label?: 'Storage Remaining' } export class LcdElement extends CanvasElement implements IHasOptions<LcdOptions> { constructor(opts: LcdOptions) options: LcdOptions; increaseWidth(): void; decreaseWidth(): void; increaseInterval(): void; decreaseInterval(): void; increaseStroke(): void; decreaseStroke(): void; setOptions(options: any): void; setDisplay(display: any): void; } export interface LogOptions extends ListOptions<ListElementStyle> { border: Blessed.Widgets.Border bufferLength?: number logLines?: string[] interactive?: boolean } export class LogElement extends ListElement implements IHasOptions<LogOptions> { constructor(opts: LogOptions); options: LogOptions; log(str: string): boolean; emit(str:any): boolean; } export interface MapOptions extends CanvasOptions { } export class MapElement extends CanvasElement implements IHasOptions<MapOptions> { constructor(opts: MapOptions) options: MapOptions; } export interface SparklineOptions extends CanvasOptions<string[]> { } export class SparklineElement extends CanvasElement<string[]> implements IHasOptions<SparklineOptions> { constructor(opts: CanvasOptions); options: SparklineOptions; setData(...str: any[]): void; } export interface MarkdownOptions extends CanvasOptions { /** * Markdown text to render. */ markdown?: string; markdownStyle?: any; } export class MarkdownElement extends CanvasElement implements IHasOptions<MarkdownOptions> { constructor(opts: MarkdownOptions) options: MarkdownOptions; setOptions(options: any): void; setMarkdown(markdown: string): void; } export interface PictureOptions extends CanvasOptions { } export class PictureElement extends CanvasElement implements IHasOptions<PictureOptions> { constructor(opts: PictureOptions) options: PictureOptions; } export interface TableData { headers?: string[] data?: Array<string[]> } export interface TableOptions extends CanvasOptions<TableData> { parent?: any bold?: string columnSpacing?: number columnWidth?: number[] rows?: ListOptions<ListElementStyle> selectedFg?: string selectedBg?: string label?: string fg?: string bg?: string width?: string height?: string border?: object interactive?: string } export class TableElement extends CanvasElement<TableData> implements IHasOptions<TableOptions> { constructor(opts: TableOptions); options: TableOptions; } export interface TreeNode { name?: string, children?: TreeChildren | ((node: TreeNode) => TreeChildren | Promise<TreeChildren>), childrenContent?: TreeChildren, extended?: boolean, parent?: TreeNode, [custom: string]: any } export type TreeChildren = Record<string, TreeNode> export interface TreeOptions extends BoxOptions { data?: any extended?: boolean keys?: string[] template?: { extend?: string retract?: string lines?: boolean } } export class TreeElement extends BoxElement implements IHasOptions<TreeOptions> { constructor(opts: TreeOptions) rows: Blessed.Widgets.ListElement nodeLines?: string[] lineNbr?: number data: any options: TreeOptions; setData(data: TreeNode): void } } export module widget { export class Grid extends Widgets.GridElement {} export class Bar extends Widgets.BarElement {} export class Line extends Widgets.LineElement {} export class StackedBar extends Widgets.StackedBarElement {} export class Canvas extends Widgets.CanvasElement {} export class Tree extends Widgets.TreeElement {} export class Table extends Widgets.TableElement {} export class Picture extends Widgets.PictureElement {} export class Markdown extends Widgets.MarkdownElement {} export class Map extends Widgets.MapElement {} export class Log extends Widgets.LogElement {} export class Lcd extends Widgets.LcdElement {} export class Gauge extends Widgets.GaugeElement {} export class GaugeList extends Widgets.GaugeListElement {} export class Donut extends Widgets.DonutElement {} export class Sparkline extends Widgets.SparklineElement {} } export class grid extends Widgets.GridElement {} export function line(options?: Widgets.LineOptions): Widgets.LineElement export function bar(options?: Widgets.BarOptions): Widgets.BarElement export function stackedBar(options?: Widgets.StackedBarOptions): Widgets.StackedBarElement export function canvas(options?: Widgets.CanvasOptions): Widgets.CanvasElement export function tree(options?: Widgets.TreeOptions): Widgets.TreeElement export function table(options?: Widgets.TableOptions): Widgets.TableElement export function picture(options?: Widgets.PictureOptions): Widgets.PictureElement export function markdown(options?: Widgets.MarkdownOptions): Widgets.MarkdownElement export function sparkline(options?: Widgets.SparklineOptions): Widgets.SparklineElement export function map(options?: Widgets.MapOptions): Widgets.MapElement export function log(options?: Widgets.LogOptions): Widgets.LogElement export function lcd(options?: Widgets.LcdOptions): Widgets.LcdElement export function gauge(options?: Widgets.GaugeOptions): Widgets.GaugeElement export function gaugeList(options?: Widgets.GaugeListOptions): Widgets.GaugeListElement export function donut(options?: Widgets.DonutOptions): Widgets.DonutElement }