Skip to main content

Class: Question

Defined in: packages/core/src/widgets/question.ts:26

Question

Extends

Constructors

Constructor

new Question(options): Question

Defined in: packages/core/src/widgets/question.ts:30

Parameters

options

QuestionOptions = {}

Returns

Question

Overrides

Box.constructor

Properties

_events

_events: any

Defined in: packages/core/src/lib/events.ts:10

Inherited from

Box._events


_maxListeners?

optional _maxListeners: number

Defined in: packages/core/src/lib/events.ts:11

Inherited from

Box._maxListeners


options

options: ElementOptions

Defined in: packages/core/src/widgets/element.ts:49

Inherited from

Box.options


name?

optional name: string

Defined in: packages/core/src/widgets/element.ts:51

Inherited from

Box.name


position

position: any

Defined in: packages/core/src/widgets/element.ts:56

Position specification. Can be relative coordinates or keywords. Kept as any due to complex internal position calculation system.

Inherited from

Box.position


noOverflow?

optional noOverflow: boolean

Defined in: packages/core/src/widgets/element.ts:57

Inherited from

Box.noOverflow


dockBorders?

optional dockBorders: boolean

Defined in: packages/core/src/widgets/element.ts:58

Inherited from

Box.dockBorders


shadow?

optional shadow: boolean

Defined in: packages/core/src/widgets/element.ts:59

Inherited from

Box.shadow


style

style: Style

Defined in: packages/core/src/widgets/element.ts:61

Element style configuration (colors, attributes, hover/focus effects)

Inherited from

Box.style


hidden

hidden: boolean

Defined in: packages/core/src/widgets/element.ts:62

Inherited from

Box.hidden


fixed

fixed: boolean

Defined in: packages/core/src/widgets/element.ts:63

Inherited from

Box.fixed


align

align: string

Defined in: packages/core/src/widgets/element.ts:64

Inherited from

Box.align


valign

valign: string

Defined in: packages/core/src/widgets/element.ts:65

Inherited from

Box.valign


wrap

wrap: boolean

Defined in: packages/core/src/widgets/element.ts:66

Inherited from

Box.wrap


shrink?

optional shrink: boolean

Defined in: packages/core/src/widgets/element.ts:67

Inherited from

Box.shrink


ch

ch: string

Defined in: packages/core/src/widgets/element.ts:68

Inherited from

Box.ch


padding

padding: Padding

Defined in: packages/core/src/widgets/element.ts:70

Padding configuration for all sides

Inherited from

Box.padding


border?

optional border: Border

Defined in: packages/core/src/widgets/element.ts:72

Border configuration

Inherited from

Box.border


parseTags?

optional parseTags: boolean

Defined in: packages/core/src/widgets/element.ts:73

Inherited from

Box.parseTags


content

content: string = ""

Defined in: packages/core/src/widgets/element.ts:74

Inherited from

Box.content


lpos?

optional lpos: RenderCoords

Defined in: packages/core/src/widgets/element.ts:76

Last rendered position coordinates

Inherited from

Box.lpos


_clines?

optional _clines: any

Defined in: packages/core/src/widgets/element.ts:77

Inherited from

Box._clines


_pcontent?

optional _pcontent: string

Defined in: packages/core/src/widgets/element.ts:78

Inherited from

Box._pcontent


_borderColors?

optional _borderColors: (string | number)[]

Defined in: packages/core/src/widgets/element.ts:79

Inherited from

Box._borderColors


_slisteners?

optional _slisteners: any[]

Defined in: packages/core/src/widgets/element.ts:80

Inherited from

Box._slisteners


_label?

optional _label: any

Defined in: packages/core/src/widgets/element.ts:81

Inherited from

Box._label


_labelScroll()?

optional _labelScroll: () => void

Defined in: packages/core/src/widgets/element.ts:82

Returns

void

Inherited from

Box._labelScroll


_labelResize()?

optional _labelResize: () => void

Defined in: packages/core/src/widgets/element.ts:83

Returns

void

Inherited from

Box._labelResize


_hoverOptions?

optional _hoverOptions: any

Defined in: packages/core/src/widgets/element.ts:84

Inherited from

Box._hoverOptions


_draggable?

optional _draggable: boolean

Defined in: packages/core/src/widgets/element.ts:85

Inherited from

Box._draggable


_dragMD()?

optional _dragMD: (data) => void

Defined in: packages/core/src/widgets/element.ts:86

Parameters

data

MouseEvent

Returns

void

Inherited from

Box._dragMD


_dragM()?

optional _dragM: (data) => void

Defined in: packages/core/src/widgets/element.ts:87

Parameters

data

MouseEvent

Returns

void

Inherited from

Box._dragM


_drag?

optional _drag: any

Defined in: packages/core/src/widgets/element.ts:88

Inherited from

Box._drag


_noFill?

optional _noFill: boolean

Defined in: packages/core/src/widgets/element.ts:89

Inherited from

Box._noFill


_isLabel?

optional _isLabel: boolean

Defined in: packages/core/src/widgets/element.ts:90

Inherited from

Box._isLabel


_isList?

optional _isList: boolean

Defined in: packages/core/src/widgets/element.ts:91

Inherited from

Box._isList


childBase?

optional childBase: number

Defined in: packages/core/src/widgets/element.ts:92

Inherited from

Box.childBase


childOffset?

optional childOffset: number

Defined in: packages/core/src/widgets/element.ts:93

Inherited from

Box.childOffset


alwaysScroll?

optional alwaysScroll: boolean

Defined in: packages/core/src/widgets/element.ts:94

Inherited from

Box.alwaysScroll


baseLimit?

optional baseLimit: number

Defined in: packages/core/src/widgets/element.ts:95

Inherited from

Box.baseLimit


track?

optional track: TrackConfig

Defined in: packages/core/src/widgets/element.ts:96

Inherited from

Box.track


scrollbar?

optional scrollbar: ScrollbarConfig

Defined in: packages/core/src/widgets/element.ts:97

Inherited from

Box.scrollbar


items?

optional items: any[]

Defined in: packages/core/src/widgets/element.ts:98

Inherited from

Box.items


scrollable?

optional scrollable: boolean

Defined in: packages/core/src/widgets/element.ts:101

Inherited from

Box.scrollable


scroll()?

optional scroll: (offset, always?) => any

Defined in: packages/core/src/widgets/element.ts:104

Scroll the content by a relative offset.

Parameters

offset

number

The number of lines/items to scroll (positive = down, negative = up)

always?

boolean

Force the scroll operation even if position hasn't changed

Returns

any

Inherited from

Box.scroll


scrollTo()?

optional scrollTo: (offset, always?) => void

Defined in: packages/core/src/widgets/element.ts:105

Scroll the content to an absolute index.

Parameters

offset

number

The absolute scroll position (line/item index)

always?

boolean

Force the scroll operation even if position hasn't changed

Returns

void

Inherited from

Box.scrollTo


setScroll()?

optional setScroll: (offset, always?) => void

Defined in: packages/core/src/widgets/element.ts:106

Scroll the content to an absolute index (alias for scrollTo).

Parameters

offset

number

The absolute scroll position (line/item index)

always?

boolean

Force the scroll operation even if position hasn't changed

Returns

void

Inherited from

Box.setScroll


getScroll()?

optional getScroll: () => number

Defined in: packages/core/src/widgets/element.ts:107

Get the current scroll index in lines.

Returns

number

The current absolute scroll position

Inherited from

Box.getScroll


getScrollHeight()?

optional getScrollHeight: () => number

Defined in: packages/core/src/widgets/element.ts:108

Get the actual height of the scrolling area (total content height).

Returns

number

The total scrollable content height in lines

Inherited from

Box.getScrollHeight


getScrollPerc()?

optional getScrollPerc: (s?) => number

Defined in: packages/core/src/widgets/element.ts:109

Get the current scroll index in percentage (0-100).

Parameters

s?

boolean

Internal flag for special return values

Returns

number

The scroll position as a percentage (0-100), or -1 if not scrollable

Inherited from

Box.getScrollPerc


setScrollPerc()?

optional setScrollPerc: (i) => void

Defined in: packages/core/src/widgets/element.ts:110

Set the current scroll index in percentage (0-100).

Parameters

i

number

The target scroll percentage (0-100)

Returns

void

Inherited from

Box.setScrollPerc


resetScroll()?

optional resetScroll: () => any

Defined in: packages/core/src/widgets/element.ts:111

Reset the scroll index to its initial state (top).

Returns

any

Inherited from

Box.resetScroll


_scrollBottom()?

optional _scrollBottom: () => number

Defined in: packages/core/src/widgets/element.ts:112

Returns

number

Inherited from

Box._scrollBottom


_recalculateIndex()?

optional _recalculateIndex: () => number

Defined in: packages/core/src/widgets/element.ts:113

Returns

number

Inherited from

Box._recalculateIndex


uid

static uid: number = 0

Defined in: packages/core/src/widgets/node.ts:30

Inherited from

Box.uid


ScreenRegistry

static ScreenRegistry: any

Defined in: packages/core/src/widgets/node.ts:31

Inherited from

Box.ScreenRegistry


screen

screen: any

Defined in: packages/core/src/widgets/node.ts:47

Reference to the parent Screen instance. Type: Screen (subclass of Node)

Kept as any due to circular dependency between Node and Screen, and to preserve access to Screen-specific methods like clearRegion(), render(), and the program property without complex generic typing.

Inherited from

Box.screen


parent

parent: any

Defined in: packages/core/src/widgets/node.ts:56

Reference to the parent element in the widget tree. Type: Node (can be any Element/Box/List/etc subclass)

Kept as any to avoid complex generic typing and preserve access to subclass-specific methods. Attempting to type as Node loses methods from subclasses like Box, List, Form, etc.

Inherited from

Box.parent


children

children: any[]

Defined in: packages/core/src/widgets/node.ts:63

Array of child elements. Type: Node[] (can contain any Node subclasses)

Kept as any[] to preserve flexibility with mixed widget types.

Inherited from

Box.children


$

$: Record<string, unknown>

Defined in: packages/core/src/widgets/node.ts:68

An object for any miscellaneous user data.

Inherited from

Box.$


data

data: Record<string, unknown>

Defined in: packages/core/src/widgets/node.ts:78

An object for any miscellaneous user data.

Inherited from

Box.data


uid

uid: number

Defined in: packages/core/src/widgets/node.ts:80

Inherited from

Box.uid


index

index: number = -1

Defined in: packages/core/src/widgets/node.ts:86

Render index (document order index) of the last render call. Indicates the order in which this element was rendered relative to others. Set to -1 initially, updated during rendering.

Inherited from

Box.index


detached?

optional detached: boolean

Defined in: packages/core/src/widgets/node.ts:87

Inherited from

Box.detached


destroyed?

optional destroyed: boolean

Defined in: packages/core/src/widgets/node.ts:88

Inherited from

Box.destroyed


runtime

runtime: Runtime

Defined in: packages/core/src/widgets/node.ts:90

Inherited from

Box.runtime


type

type: string = "question"

Defined in: packages/core/src/widgets/question.ts:27

Type of the node (e.g. box, list, form, etc.). Used to identify the widget type at runtime.

Overrides

Box.type


_

_: QuestionData

Defined in: packages/core/src/widgets/question.ts:28

An object for any miscellaneous user data.

Overrides

Box._

Accessors

focused

Get Signature

get focused(): boolean

Defined in: packages/core/src/widgets/element.ts:115

Returns

boolean

Inherited from

Box.focused


visible

Get Signature

get visible(): boolean

Defined in: packages/core/src/widgets/element.ts:992

Returns

boolean

Inherited from

Box.visible


_detached

Get Signature

get _detached(): boolean

Defined in: packages/core/src/widgets/element.ts:1003

Returns

boolean

Inherited from

Box._detached


draggable

Get Signature

get draggable(): boolean

Defined in: packages/core/src/widgets/element.ts:1036

Returns

boolean

Set Signature

set draggable(draggable): void

Defined in: packages/core/src/widgets/element.ts:1040

Parameters
draggable

any

Returns

void

Inherited from

Box.draggable


width

Get Signature

get width(): number

Defined in: packages/core/src/widgets/element.ts:1437

Returns

number

Set Signature

set width(val): void

Defined in: packages/core/src/widgets/element.ts:1641

Position Setters

Parameters
val

any

Returns

void

Inherited from

Box.width


height

Get Signature

get height(): number

Defined in: packages/core/src/widgets/element.ts:1488

Returns

number

Set Signature

set height(val): void

Defined in: packages/core/src/widgets/element.ts:1649

Parameters
val

any

Returns

void

Inherited from

Box.height


aleft

Get Signature

get aleft(): number

Defined in: packages/core/src/widgets/element.ts:1525

Returns

number

Set Signature

set aleft(val): void

Defined in: packages/core/src/widgets/element.ts:1657

Parameters
val

any

Returns

void

Inherited from

Box.aleft


aright

Get Signature

get aright(): number

Defined in: packages/core/src/widgets/element.ts:1550

Returns

number

Set Signature

set aright(val): void

Defined in: packages/core/src/widgets/element.ts:1678

Parameters
val

any

Returns

void

Inherited from

Box.aright


atop

Get Signature

get atop(): number

Defined in: packages/core/src/widgets/element.ts:1587

Returns

number

Set Signature

set atop(val): void

Defined in: packages/core/src/widgets/element.ts:1686

Parameters
val

any

Returns

void

Inherited from

Box.atop


abottom

Get Signature

get abottom(): number

Defined in: packages/core/src/widgets/element.ts:1612

Returns

number

Set Signature

set abottom(val): void

Defined in: packages/core/src/widgets/element.ts:1707

Parameters
val

any

Returns

void

Inherited from

Box.abottom


rleft

Get Signature

get rleft(): number

Defined in: packages/core/src/widgets/element.ts:1616

Returns

number

Set Signature

set rleft(val): void

Defined in: packages/core/src/widgets/element.ts:1715

Parameters
val

any

Returns

void

Inherited from

Box.rleft


rright

Get Signature

get rright(): number

Defined in: packages/core/src/widgets/element.ts:1620

Returns

number

Set Signature

set rright(val): void

Defined in: packages/core/src/widgets/element.ts:1723

Parameters
val

any

Returns

void

Inherited from

Box.rright


rtop

Get Signature

get rtop(): number

Defined in: packages/core/src/widgets/element.ts:1624

Returns

number

Set Signature

set rtop(val): void

Defined in: packages/core/src/widgets/element.ts:1730

Parameters
val

any

Returns

void

Inherited from

Box.rtop


rbottom

Get Signature

get rbottom(): number

Defined in: packages/core/src/widgets/element.ts:1628

Returns

number

Set Signature

set rbottom(val): void

Defined in: packages/core/src/widgets/element.ts:1738

Parameters
val

any

Returns

void

Inherited from

Box.rbottom


ileft

Get Signature

get ileft(): number

Defined in: packages/core/src/widgets/element.ts:1745

Returns

number

Inherited from

Box.ileft


itop

Get Signature

get itop(): number

Defined in: packages/core/src/widgets/element.ts:1750

Returns

number

Inherited from

Box.itop


iright

Get Signature

get iright(): number

Defined in: packages/core/src/widgets/element.ts:1755

Returns

number

Inherited from

Box.iright


ibottom

Get Signature

get ibottom(): number

Defined in: packages/core/src/widgets/element.ts:1760

Returns

number

Inherited from

Box.ibottom


iwidth

Get Signature

get iwidth(): number

Defined in: packages/core/src/widgets/element.ts:1765

Returns

number

Inherited from

Box.iwidth


iheight

Get Signature

get iheight(): number

Defined in: packages/core/src/widgets/element.ts:1772

Returns

number

Inherited from

Box.iheight


tpadding

Get Signature

get tpadding(): number

Defined in: packages/core/src/widgets/element.ts:1779

Returns

number

Inherited from

Box.tpadding


left

Get Signature

get left(): number

Defined in: packages/core/src/widgets/element.ts:1792

Relative coordinates as default properties

Returns

number

Set Signature

set left(val): void

Defined in: packages/core/src/widgets/element.ts:1808

Parameters
val

any

Returns

void

Inherited from

Box.left


Get Signature

get right(): number

Defined in: packages/core/src/widgets/element.ts:1796

Returns

number

Set Signature

set right(val): void

Defined in: packages/core/src/widgets/element.ts:1812

Parameters
val

any

Returns

void

Inherited from

Box.right


top

Get Signature

get top(): number

Defined in: packages/core/src/widgets/element.ts:1800

Returns

number

Set Signature

set top(val): void

Defined in: packages/core/src/widgets/element.ts:1816

Parameters
val

any

Returns

void

Inherited from

Box.top


bottom

Get Signature

get bottom(): number

Defined in: packages/core/src/widgets/element.ts:1804

Returns

number

Set Signature

set bottom(val): void

Defined in: packages/core/src/widgets/element.ts:1820

Parameters
val

any

Returns

void

Inherited from

Box.bottom

Methods

setMaxListeners()

setMaxListeners(n): void

Defined in: packages/core/src/lib/events.ts:19

Parameters

n

number

Returns

void

Inherited from

Box.setMaxListeners


addListener()

addListener(type, listener): void

Defined in: packages/core/src/lib/events.ts:23

Parameters

type

string

listener

Function

Returns

void

Inherited from

Box.addListener


on()

on(type, listener): any

Defined in: packages/core/src/lib/events.ts:34

Parameters

type

string

listener

Function

Returns

any

Inherited from

Box.on


removeListener()

removeListener(type, listener): void

Defined in: packages/core/src/lib/events.ts:38

Parameters

type

string

listener

Function

Returns

void

Inherited from

Box.removeListener


off()

off(type, listener): any

Defined in: packages/core/src/lib/events.ts:57

Parameters

type

string

listener

Function

Returns

any

Inherited from

Box.off


removeAllListeners()

removeAllListeners(type?): void

Defined in: packages/core/src/lib/events.ts:61

Parameters

type?

string

Returns

void

Inherited from

Box.removeAllListeners


once()

once(type, listener): any

Defined in: packages/core/src/lib/events.ts:69

Parameters

type

string

listener

Function

Returns

any

Inherited from

Box.once


listeners()

listeners(type): Function[]

Defined in: packages/core/src/lib/events.ts:79

Parameters

type

string

Returns

Function[]

Inherited from

Box.listeners


_emit()

_emit(type, args): any

Defined in: packages/core/src/lib/events.ts:85

Parameters

type

string

args

any[]

Returns

any

Inherited from

Box._emit


emit()

emit(type, ...rest): boolean

Defined in: packages/core/src/lib/events.ts:113

Parameters

type

string

rest

...any[]

Returns

boolean

Inherited from

Box.emit


sattr()

sattr(style, fg?, bg?): number

Defined in: packages/core/src/widgets/element.ts:327

Parameters

style

any

fg?

any

bg?

any

Returns

number

Inherited from

Box.sattr


onScreenEvent()

onScreenEvent(type, handler): void

Defined in: packages/core/src/widgets/element.ts:373

Same as el.on('screen', ...) except this will automatically keep track of which listeners are bound to the screen object. For use with removeScreenEvent(), free(), and destroy().

Parameters

type

string

Event type

handler

(...args) => void

Event handler function

Returns

void

Inherited from

Box.onScreenEvent


onceScreenEvent()

onceScreenEvent(type, handler): void

Defined in: packages/core/src/widgets/element.ts:384

Same as onScreenEvent() but fires only once.

Parameters

type

string

Event type

handler

(...args) => void

Event handler function

Returns

void

Inherited from

Box.onceScreenEvent


removeScreenEvent()

removeScreenEvent(type, handler): void

Defined in: packages/core/src/widgets/element.ts:401

Same as el.removeListener('screen', ...) except this will automatically keep track of which listeners are bound to the screen object. For use with onScreenEvent(), free(), and destroy().

Parameters

type

string

Event type

handler

(...args) => void

Event handler function

Returns

void

Inherited from

Box.removeScreenEvent


free()

free(): void

Defined in: packages/core/src/widgets/element.ts:421

Free up the element. Automatically unbind all events that may have been bound to the screen object. This prevents memory leaks. For use with onScreenEvent(), removeScreenEvent(), and destroy().

Returns

void

Inherited from

Box.free


hide()

hide(): void

Defined in: packages/core/src/widgets/element.ts:433

Hide element.

Returns

void

Inherited from

Box.hide


show()

show(): void

Defined in: packages/core/src/widgets/element.ts:446

Show element.

Returns

void

Inherited from

Box.show


toggle()

toggle(): void

Defined in: packages/core/src/widgets/element.ts:455

Toggle hidden/shown.

Returns

void

Inherited from

Box.toggle


focus()

focus(): any

Defined in: packages/core/src/widgets/element.ts:462

Focus element.

Returns

any

Inherited from

Box.focus


isFocusable()

isFocusable(): boolean

Defined in: packages/core/src/widgets/element.ts:470

Check if this element can receive keyboard focus. Elements are focusable if they have tabIndex >= -1.

Returns

boolean

Inherited from

Box.isFocusable


isInTabOrder()

isInTabOrder(): boolean

Defined in: packages/core/src/widgets/element.ts:478

Check if element participates in Tab key navigation. Elements with tabIndex=-1 are focusable but excluded from Tab order.

Returns

boolean

Inherited from

Box.isInTabOrder


getTabIndex()

getTabIndex(): number

Defined in: packages/core/src/widgets/element.ts:487

Get effective tab index for focus navigation ordering.

Returns

number

Inherited from

Box.getTabIndex


setContent()

setContent(content, noClear?, noTags?): void

Defined in: packages/core/src/widgets/element.ts:499

Set or get the content. Note: When text is input, it will be stripped of all non-SGR escape codes, tabs will be replaced with 8 spaces, and tags will be replaced with SGR codes (if enabled).

Parameters

content

string

noClear?

boolean

noTags?

boolean

Returns

void

Inherited from

Box.setContent


getContent()

getContent(): string

Defined in: packages/core/src/widgets/element.ts:509

Return content, slightly different from el.content. Assume the above formatting.

Returns

string

Inherited from

Box.getContent


getBorderLength()

getBorderLength(): number

Defined in: packages/core/src/widgets/element.ts:522

Get the border perimeter length (number of border cells). Useful for creating colors arrays for addressable border animations.

Returns

number

Number of border cells, or 0 if no border

Example

const box = new Box({ width: 20, height: 10, border: { type: "line" } });
console.log(box.getBorderLength()); // 56 (2 * (20 + 10) - 4)

Inherited from

Box.getBorderLength


getBorderColors()

getBorderColors(): (string | number)[]

Defined in: packages/core/src/widgets/element.ts:538

Get the current border colors array (for addressable border animations). Returns a copy to prevent external mutations.

Returns

(string | number)[]

Copy of colors array, or empty array if not set

Example

const colors = box.getBorderColors();
const rotated = rotateColors(colors, 1);
box.setBorderColors(rotated);

Inherited from

Box.getBorderColors


setBorderColors()

setBorderColors(colors): void

Defined in: packages/core/src/widgets/element.ts:560

Set border colors array for addressable border animations. Stores an internal copy to prevent external mutations. Call screen.render() after to see changes.

Parameters

colors

(string | number)[]

Array of colors (names, hex codes, or numeric codes)

Returns

void

Example

// Rainbow animation
const colors = generateRainbow(box.getBorderLength());
box.setBorderColors(colors);
screen.render();

// Later, animate
setInterval(() => {
const rotated = rotateColors(box.getBorderColors(), 1);
box.setBorderColors(rotated);
screen.render();
}, 100);

Inherited from

Box.setBorderColors


setText()

setText(content, noClear?): void

Defined in: packages/core/src/widgets/element.ts:567

Similar to setContent, but ignore tags and remove escape codes.

Parameters

content

string

noClear?

boolean

Returns

void

Inherited from

Box.setText


getText()

getText(): string

Defined in: packages/core/src/widgets/element.ts:576

Similar to getContent, but return content with tags and escape codes removed.

Returns

string

Inherited from

Box.getText


parseContent()

parseContent(noTags?): boolean

Defined in: packages/core/src/widgets/element.ts:580

Parameters

noTags?

boolean

Returns

boolean

Inherited from

Box.parseContent


_parseTags()

_parseTags(text): string

Defined in: packages/core/src/widgets/element.ts:656

Parameters

text

string

Returns

string

Inherited from

Box._parseTags


_parseAttr()

_parseAttr(lines): any

Defined in: packages/core/src/widgets/element.ts:761

Parameters

lines

any

Returns

any

Inherited from

Box._parseAttr


_align()

_align(line, width, align?): string

Defined in: packages/core/src/widgets/element.ts:790

Parameters

line

string

width

number

align?

string

Returns

string

Inherited from

Box._align


_wrapContent()

_wrapContent(content, width): WrappedContent

Defined in: packages/core/src/widgets/element.ts:822

Parameters

content

string

width

number

Returns

WrappedContent

Inherited from

Box._wrapContent


enableMouse()

enableMouse(): void

Defined in: packages/core/src/widgets/element.ts:1016

Enable mouse events for the element (automatically called when a form of on('mouse') is bound). Registers the element as clickable with the screen.

Returns

void

Inherited from

Box.enableMouse


enableKeys()

enableKeys(): void

Defined in: packages/core/src/widgets/element.ts:1024

Enable keypress events for the element (automatically called when a form of on('keypress') is bound). Registers the element as keyable with the screen.

Returns

void

Inherited from

Box.enableKeys


enableInput()

enableInput(): void

Defined in: packages/core/src/widgets/element.ts:1031

Enable key and mouse events. Calls both enableMouse() and enableKeys().

Returns

void

Inherited from

Box.enableInput


enableDrag()

enableDrag(verify?): boolean

Defined in: packages/core/src/widgets/element.ts:1054

Enable dragging of the element. Allows the element to be dragged with the mouse. Automatically calls enableMouse().

Parameters

verify?

any

Optional callback function to verify if dragging should start (receives mouse data)

Returns

boolean

True if dragging was enabled

Inherited from

Box.enableDrag


disableDrag()

disableDrag(): boolean

Defined in: packages/core/src/widgets/element.ts:1128

Disable dragging of the element. Removes drag event handlers and resets dragging state.

Returns

boolean

True if dragging was disabled

Inherited from

Box.disableDrag


key()

key(...args): any

Defined in: packages/core/src/widgets/element.ts:1142

Bind a key event handler.

Parameters

args

...any[]

Arguments to pass to program.key()

Returns

any

The bound key handler

Inherited from

Box.key


onceKey()

onceKey(...args): any

Defined in: packages/core/src/widgets/element.ts:1151

Bind a key event handler that fires only once.

Parameters

args

...any[]

Arguments to pass to program.onceKey()

Returns

any

The bound key handler

Inherited from

Box.onceKey


unkey()

unkey(...args): any

Defined in: packages/core/src/widgets/element.ts:1160

Unbind a key event handler.

Parameters

args

...any[]

Arguments to pass to program.unkey()

Returns

any

Result of unbinding

Inherited from

Box.unkey


removeKey()

removeKey(...args): any

Defined in: packages/core/src/widgets/element.ts:1170

Remove a key event handler. Alias for unkey().

Parameters

args

...any[]

Arguments to pass to program.unkey()

Returns

any

Result of removing

Inherited from

Box.removeKey


setIndex()

setIndex(index): void

Defined in: packages/core/src/widgets/element.ts:1179

Set the z-index of the element (changes rendering order). Higher indices are rendered later (on top). Negative indices count from the end.

Parameters

index

number

New z-index value

Returns

void

Inherited from

Box.setIndex


setFront()

setFront(): void

Defined in: packages/core/src/widgets/element.ts:1200

Put the element in front of its siblings. Sets the element's z-index to the highest value (renders last/on top).

Returns

void

Inherited from

Box.setFront


setBack()

setBack(): void

Defined in: packages/core/src/widgets/element.ts:1208

Put the element in back of its siblings. Sets the element's z-index to the lowest value (renders first/at bottom).

Returns

void

Inherited from

Box.setBack


clearPos()

clearPos(get?, override?): void

Defined in: packages/core/src/widgets/element.ts:1218

Clear the element's position in the screen buffer. Fills the region with spaces, used when moving or hiding elements.

Parameters

get?

boolean

Whether to use _getCoords (default: false)

override?

any

If true, always clear even if cell hasn't changed

Returns

void

Inherited from

Box.clearPos


setLabel()

setLabel(options): void

Defined in: packages/core/src/widgets/element.ts:1233

Set the label text for the top-left (or top-right) corner. Creates or updates a label that appears on the top border of the element.

Parameters

options

any

Label text (string) or options object with text and side properties

Returns

void

Example

element.setLabel("My Label");
element.setLabel({ text: "My Label", side: "right" });

Inherited from

Box.setLabel


removeLabel()

removeLabel(): void

Defined in: packages/core/src/widgets/element.ts:1312

Remove the label completely. Detaches the label element and removes associated event listeners.

Returns

void

Inherited from

Box.removeLabel


setHover()

setHover(options): void

Defined in: packages/core/src/widgets/element.ts:1329

Set a hover text box to follow the cursor. Similar to the "title" DOM attribute in the browser.

Parameters

options

any

Hover text (string) or options object with text property

Returns

void

Example

element.setHover("Hover text here");
element.setHover({ text: "Hover text here" });

Inherited from

Box.setHover


removeHover()

removeHover(): void

Defined in: packages/core/src/widgets/element.ts:1343

Remove the hover label completely. Detaches the hover text box if it's currently displayed.

Returns

void

Inherited from

Box.removeHover


_getPos()

_getPos(): any

Defined in: packages/core/src/widgets/element.ts:1369

Positioning

Returns

any

Inherited from

Box._getPos


_getWidth()

_getWidth(get?): number

Defined in: packages/core/src/widgets/element.ts:1390

Position Getters

Parameters

get?

boolean

Returns

number

Inherited from

Box._getWidth


_getHeight()

_getHeight(get?): number

Defined in: packages/core/src/widgets/element.ts:1441

Parameters

get?

boolean

Returns

number

Inherited from

Box._getHeight


_getLeft()

_getLeft(get?): number

Defined in: packages/core/src/widgets/element.ts:1492

Parameters

get?

boolean

Returns

number

Inherited from

Box._getLeft


_getRight()

_getRight(get?): number

Defined in: packages/core/src/widgets/element.ts:1529

Parameters

get?

boolean

Returns

number

Inherited from

Box._getRight


_getTop()

_getTop(get?): number

Defined in: packages/core/src/widgets/element.ts:1554

Parameters

get?

boolean

Returns

number

Inherited from

Box._getTop


_getBottom()

_getBottom(get?): number

Defined in: packages/core/src/widgets/element.ts:1591

Parameters

get?

boolean

Returns

number

Inherited from

Box._getBottom


_getShrinkBox()

_getShrinkBox(xi, xl, yi, yl, get?): any

Defined in: packages/core/src/widgets/element.ts:1828

Rendering - here be dragons

Parameters

xi

number

xl

number

yi

number

yl

number

get?

boolean

Returns

any

Inherited from

Box._getShrinkBox


_getShrinkContent()

_getShrinkContent(xi, xl, yi, yl, _get?): any

Defined in: packages/core/src/widgets/element.ts:1979

Parameters

xi

number

xl

number

yi

number

yl

number

_get?

boolean

Returns

any

Inherited from

Box._getShrinkContent


_getShrink()

_getShrink(xi, xl, yi, yl, get?): any

Defined in: packages/core/src/widgets/element.ts:2015

Parameters

xi

number

xl

number

yi

number

yl

number

get?

boolean

Returns

any

Inherited from

Box._getShrink


_getCoords()

_getCoords(get?, noscroll?): RenderCoords | undefined

Defined in: packages/core/src/widgets/element.ts:2060

Parameters

get?

boolean

noscroll?

boolean

Returns

RenderCoords | undefined

Inherited from

Box._getCoords


render()

render(): any

Defined in: packages/core/src/widgets/element.ts:2233

Write content and children to the screen buffer. This is the main rendering method that draws the element, its border, scrollbar, and all child elements to the screen buffer. Returns the rendered coordinates.

Returns

any

Rendered coordinates object, or undefined if hidden/invalid

Inherited from

Box.render


_render()

_render(): any

Defined in: packages/core/src/widgets/element.ts:2893

Internal alias for render().

Returns

any

Rendered coordinates object

Inherited from

Box._render


insertLine()

insertLine(i, line): void

Defined in: packages/core/src/widgets/element.ts:2907

Insert a line into the box's content. Handles wrapped content by inserting at the specified fake line index.

Parameters

i

number

Line index to insert at (fake line number)

line

Line or array of lines to insert

string | string[]

Returns

void

Inherited from

Box.insertLine


deleteLine()

deleteLine(i, n?): void

Defined in: packages/core/src/widgets/element.ts:2968

Delete a line from the box's content. Handles wrapped content by deleting at the specified fake line index.

Parameters

i

number

Line index to delete (fake line number)

n?

number

Number of lines to delete (default: 1)

Returns

void

Inherited from

Box.deleteLine


insertTop()

insertTop(line): void

Defined in: packages/core/src/widgets/element.ts:3024

Insert a line at the top of the box. Inserts at the first visible line based on childBase.

Parameters

line

Line or array of lines to insert

string | string[]

Returns

void

Inherited from

Box.insertTop


insertBottom()

insertBottom(line): void

Defined in: packages/core/src/widgets/element.ts:3034

Insert a line at the bottom of the box. Inserts after the last visible line based on height and childBase.

Parameters

line

Line or array of lines to insert

string | string[]

Returns

void

Inherited from

Box.insertBottom


deleteTop()

deleteTop(n?): void

Defined in: packages/core/src/widgets/element.ts:3047

Delete a line at the top of the box. Deletes from the first visible line based on childBase.

Parameters

n?

number

Number of lines to delete (default: 1)

Returns

void

Inherited from

Box.deleteTop


deleteBottom()

deleteBottom(n?): void

Defined in: packages/core/src/widgets/element.ts:3057

Delete a line at the bottom of the box. Deletes from the last visible line based on height and childBase.

Parameters

n?

number

Number of lines to delete (default: 1)

Returns

void

Inherited from

Box.deleteBottom


setLine()

setLine(i, line): void

Defined in: packages/core/src/widgets/element.ts:3072

Set a line in the box's content.

Parameters

i

number

Line index to set (fake line number)

line

string

Line content to set

Returns

void

Inherited from

Box.setLine


setBaseLine()

setBaseLine(i, line): void

Defined in: packages/core/src/widgets/element.ts:3086

Set a line in the box's content from the visible top.

Parameters

i

number

Line offset from visible top

line

string

Line content to set

Returns

void

Inherited from

Box.setBaseLine


getLine()

getLine(i): string

Defined in: packages/core/src/widgets/element.ts:3096

Get a line from the box's content.

Parameters

i

number

Line index to get (fake line number)

Returns

string

Line content

Inherited from

Box.getLine


getBaseLine()

getBaseLine(i): string

Defined in: packages/core/src/widgets/element.ts:3107

Get a line from the box's content from the visible top.

Parameters

i

number

Line offset from visible top

Returns

string

Line content

Inherited from

Box.getBaseLine


clearLine()

clearLine(i): void

Defined in: packages/core/src/widgets/element.ts:3116

Clear a line from the box's content.

Parameters

i

number

Line index to clear (fake line number)

Returns

void

Inherited from

Box.clearLine


clearBaseLine()

clearBaseLine(i): void

Defined in: packages/core/src/widgets/element.ts:3125

Clear a line from the box's content from the visible top.

Parameters

i

number

Line offset from visible top

Returns

void

Inherited from

Box.clearBaseLine


unshiftLine()

unshiftLine(line): void

Defined in: packages/core/src/widgets/element.ts:3134

Unshift a line onto the top of the content.

Parameters

line

Line or array of lines to insert

string | string[]

Returns

void

Inherited from

Box.unshiftLine


shiftLine()

shiftLine(i?, n?): void

Defined in: packages/core/src/widgets/element.ts:3143

Shift a line off the top of the content.

Parameters

i?

number

Line index to remove (default: 0)

n?

number

Number of lines to remove (default: 1)

Returns

void

Inherited from

Box.shiftLine


pushLine()

pushLine(line): void

Defined in: packages/core/src/widgets/element.ts:3151

Push a line onto the bottom of the content.

Parameters

line

Line or array of lines to insert

string | string[]

Returns

void

Inherited from

Box.pushLine


popLine()

popLine(n?): void

Defined in: packages/core/src/widgets/element.ts:3160

Pop a line off the bottom of the content.

Parameters

n?

number

Number of lines to remove (default: 1)

Returns

void

Inherited from

Box.popLine


getLines()

getLines(): string[]

Defined in: packages/core/src/widgets/element.ts:3168

An array containing the content lines.

Returns

string[]

Array of fake (unwrapped) lines

Inherited from

Box.getLines


getScreenLines()

getScreenLines(): string[]

Defined in: packages/core/src/widgets/element.ts:3176

An array containing the lines as they are displayed on the screen.

Returns

string[]

Array of real (wrapped) lines

Inherited from

Box.getScreenLines


strWidth()

strWidth(text): number

Defined in: packages/core/src/widgets/element.ts:3186

Get a string's displayed width, taking into account double-width, surrogate pairs, combining characters, tags, and SGR escape codes.

Parameters

text

string

Text to measure

Returns

number

Displayed width in cells

Inherited from

Box.strWidth


screenshot()

screenshot(xi?, xl?, yi?, yl?): string

Defined in: packages/core/src/widgets/element.ts:3202

Take an SGR screenshot of the element within the region. Returns a string containing only characters and SGR codes. Can be displayed by simply echoing it in a terminal.

Parameters

xi?

number

Left X offset from element's inner left (default: 0)

xl?

number

Right X offset from element's inner left (default: element width)

yi?

number

Top Y offset from element's inner top (default: 0)

yl?

number

Bottom Y offset from element's inner top (default: element height)

Returns

string

SGR-encoded screenshot string

Inherited from

Box.screenshot


insert()

insert(element, i): void

Defined in: packages/core/src/widgets/node.ts:154

Insert a node to this node's children at index i.

Parameters

element

any

i

number

Returns

void

Inherited from

Box.insert


prepend()

prepend(element): void

Defined in: packages/core/src/widgets/node.ts:191

Prepend a node to this node's children.

Parameters

element

any

Returns

void

Inherited from

Box.prepend


append()

append(element): void

Defined in: packages/core/src/widgets/node.ts:198

Append a node to this node's children.

Parameters

element

any

Returns

void

Inherited from

Box.append


insertBefore()

insertBefore(element, other): void

Defined in: packages/core/src/widgets/node.ts:205

Insert a node to this node's children before the reference node.

Parameters

element

any

other

any

Returns

void

Inherited from

Box.insertBefore


insertAfter()

insertAfter(element, other): void

Defined in: packages/core/src/widgets/node.ts:213

Insert a node from node after the reference node.

Parameters

element

any

other

any

Returns

void

Inherited from

Box.insertAfter


remove()

remove(element): void

Defined in: packages/core/src/widgets/node.ts:221

Remove child node from node.

Parameters

element

any

Returns

void

Inherited from

Box.remove


detach()

detach(): void

Defined in: packages/core/src/widgets/node.ts:255

Remove node from its parent.

Returns

void

Inherited from

Box.detach


destroy()

destroy(): void

Defined in: packages/core/src/widgets/node.ts:271

Same as the detach() method, except this will automatically call free() and unbind any screen events to prevent memory leaks. For use with onScreenEvent(), removeScreenEvent(), and free().

Returns

void

Inherited from

Box.destroy


forDescendants()

forDescendants(iter, s?): void

Defined in: packages/core/src/widgets/node.ts:283

Iterate over all descendants, calling iter(el) for each.

Parameters

iter

(el) => void

s?

any

Returns

void

Inherited from

Box.forDescendants


forAncestors()

forAncestors(iter, s?): void

Defined in: packages/core/src/widgets/node.ts:294

Iterate over all ancestors, calling iter(el) for each.

Parameters

iter

(el) => void

s?

any

Returns

void

Inherited from

Box.forAncestors


collectDescendants()

collectDescendants(s?): any[]

Defined in: packages/core/src/widgets/node.ts:305

Collect all descendants into an array.

Parameters

s?

any

Returns

any[]

Inherited from

Box.collectDescendants


collectAncestors()

collectAncestors(s?): any[]

Defined in: packages/core/src/widgets/node.ts:316

Collect all ancestors into an array.

Parameters

s?

any

Returns

any[]

Inherited from

Box.collectAncestors


emitDescendants()

emitDescendants(...args): void

Defined in: packages/core/src/widgets/node.ts:327

Emit event for element, and recursively emit same event for all descendants.

Parameters

args

...any[]

Returns

void

Inherited from

Box.emitDescendants


emitAncestors()

emitAncestors(...args): void

Defined in: packages/core/src/widgets/node.ts:343

Emit event for element, and recursively emit same event for all ancestors.

Parameters

args

...any[]

Returns

void

Inherited from

Box.emitAncestors


hasDescendant()

hasDescendant(target): boolean

Defined in: packages/core/src/widgets/node.ts:359

Check if target is a descendant of this node.

Parameters

target

any

Returns

boolean

Inherited from

Box.hasDescendant


hasAncestor()

hasAncestor(target): boolean

Defined in: packages/core/src/widgets/node.ts:377

Check if target is an ancestor of this node.

Parameters

target

any

Returns

boolean

Inherited from

Box.hasAncestor


get()

get(name, value?): any

Defined in: packages/core/src/widgets/node.ts:388

Get user property with a potential default value.

Parameters

name

string

value?

any

Returns

any

Inherited from

Box.get


set()

set(name, value): any

Defined in: packages/core/src/widgets/node.ts:398

Set user property to value.

Parameters

name

string

value

any

Returns

any

Inherited from

Box.set


ask()

ask(text, callback): void

Defined in: packages/core/src/widgets/question.ts:80

Ask a question and wait for yes/no response. Displays Okay and Cancel buttons. Returns true for yes, false for no. Accepts y, n, enter, escape, q keys for responses.

Parameters

text

string

Question text to display

callback

(err, data) => void

Callback function receiving (err, result) where result is boolean

Returns

void

Example

question.ask("Are you sure?", (err, result) => {
if (err) return console.error(err);
if (result) console.log("User confirmed");
});