UNPKG

ascii-ui

Version:

Graphic terminal emulator for HTML canvas elements

64 lines (63 loc) 2.38 kB
import { CharStyle, Terminal } from '../Terminal'; import { Widget, WidgetOptions } from '../Widget'; import { WidgetContainer } from '../WidgetContainer'; import { TokenizerFunction } from '../util/tokenizer'; export declare const SELECT_INDEX_NONE = -1; export interface SelectOption<T> { text: string; value?: T; disabled?: boolean; } export interface SelectOptionStyle extends CharStyle { prefix?: string; suffix?: string; } export interface SelectOptions<T> extends WidgetOptions { options: Array<SelectOption<T>>; loop?: boolean; multiple?: boolean; allowUnselect?: boolean; baseStyle?: SelectOptionStyle; baseFocusedStyle?: SelectOptionStyle; selectedStyle?: SelectOptionStyle; selectedFocusedStyle?: SelectOptionStyle; disabledStyle?: SelectOptionStyle; disabledSelectedStyle?: SelectOptionStyle; tokenizer?: TokenizerFunction; } export declare class Select<T> extends Widget<SelectOptions<T>> { static defaultOptions: SelectOptions<any>; private focusedIndex; private selectOptions; private firstLine; constructor(terminal: Terminal, options: SelectOptions<T>, parent?: WidgetContainer); render(): void; getOptionFromIndex(index: number): SelectOption<T>; getValueFromIndex(index: number): T; getIndexFromOption(option: SelectOption<T>): number; getIndexFromValue(value: T): number; getSelectedIndexes(): number[]; getSelectedOptions(): SelectOption<T>[]; getSelectedValues(): T[]; getFocusedIndex(): number; getFocusedOption(): SelectOption<T>; getFocusedValue(): T; getIndexAt(column: number, line: number): number; getOptionAt(column: number, line: number): SelectOption<T>; getValueAt(column: number, line: number): T; isIndexSelected(index: number): boolean; isOptionSelected(option: SelectOption<T>): boolean; isValueSelected(value: T): boolean; toggleIndex(index: number, selected?: boolean): boolean; selectOption(option: SelectOption<T>): boolean; selectValue(value: T): boolean; focusIndex(index: number): boolean; focusOption(option: SelectOption<T>): boolean; focusValue(value: T): boolean; focusPrev(): boolean; focusNext(): boolean; protected updateOptions(changes: SelectOptions<T>): void; private moveFocus; private getOptionStyle; private getOptionText; }