ascii-ui
Version:
Graphic terminal emulator for HTML canvas elements
55 lines (54 loc) • 1.82 kB
TypeScript
import { CharStyle, Terminal } from '../Terminal';
import { Widget, WidgetConstructor, WidgetOptions } from '../Widget';
import { BidirectionalIterator, WidgetContainer } from '../WidgetContainer';
export interface BoxBorderOptions extends CharStyle {
topLeft?: string;
top?: string;
topRight?: string;
left?: string;
center?: string;
right?: string;
bottomLeft?: string;
bottom?: string;
bottomRight?: string;
}
export interface BoxTitleOptions extends CharStyle {
marginLeft?: number;
marginRight?: number;
ellipsis?: string;
}
export interface BoxPaddingOptions {
top?: number;
right?: number;
bottom?: number;
left?: number;
}
export interface BoxAspectOptions {
boxTitle?: BoxTitleOptions;
boxBorders?: BoxBorderOptions;
}
export interface BoxOptions extends WidgetOptions {
title?: string;
padding?: BoxPaddingOptions;
base?: BoxAspectOptions;
focus?: BoxAspectOptions;
disabled?: BoxAspectOptions;
}
export declare class Box extends Widget<BoxOptions> implements WidgetContainer {
static defaultOptions: BoxOptions;
private static readonly boxTilesPool;
private optionsFocus;
private optionsDisabled;
private attachedWidget;
constructor(terminal: Terminal, options?: BoxOptions, parent?: WidgetContainer);
render(): void;
attachWidget<WidgetType extends Widget>(WidgetClass: WidgetConstructor<WidgetType>, options: any): WidgetType;
dettachWidget(widget: Widget): boolean;
getWidgetAt(column: number, line: number): Widget;
[Symbol.iterator](startWidget?: Widget | number): BidirectionalIterator<Widget>;
protected updateOptions(changes: BoxOptions): void;
private setBorderPool;
private getBoxTiles;
private getAspectOptions;
private getAvailableSpace;
}