Skip to main content

Class: Node

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

Node

Extends

  • EventEmitter

Extended by

Constructors

Constructor

new Node(options): Node

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

Parameters

options

NodeOptions = {}

Returns

Node

Overrides

EventEmitter.constructor

Properties

_events

_events: any

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

Inherited from

EventEmitter._events


_maxListeners?

optional _maxListeners: number

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

Inherited from

EventEmitter._maxListeners


uid

static uid: number = 0

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


ScreenRegistry

static ScreenRegistry: any

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


type

type: string = "node"

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

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

Overrides

EventEmitter.type


options

options: NodeOptions

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


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.


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.

Overrides

EventEmitter.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.


$

$: Record<string, unknown>

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

An object for any miscellaneous user data.


_

_: Record<string, unknown>

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

An object for any miscellaneous user data.


data

data: Record<string, unknown>

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

An object for any miscellaneous user data.


uid

uid: number

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


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.


detached?

optional detached: boolean

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


destroyed?

optional destroyed: boolean

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


runtime

runtime: Runtime

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

Methods

setMaxListeners()

setMaxListeners(n): void

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

Parameters

n

number

Returns

void

Inherited from

EventEmitter.setMaxListeners


addListener()

addListener(type, listener): void

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

Parameters

type

string

listener

Function

Returns

void

Inherited from

EventEmitter.addListener


on()

on(type, listener): any

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

Parameters

type

string

listener

Function

Returns

any

Inherited from

EventEmitter.on


removeListener()

removeListener(type, listener): void

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

Parameters

type

string

listener

Function

Returns

void

Inherited from

EventEmitter.removeListener


off()

off(type, listener): any

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

Parameters

type

string

listener

Function

Returns

any

Inherited from

EventEmitter.off


removeAllListeners()

removeAllListeners(type?): void

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

Parameters

type?

string

Returns

void

Inherited from

EventEmitter.removeAllListeners


once()

once(type, listener): any

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

Parameters

type

string

listener

Function

Returns

any

Inherited from

EventEmitter.once


listeners()

listeners(type): Function[]

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

Parameters

type

string

Returns

Function[]

Inherited from

EventEmitter.listeners


_emit()

_emit(type, args): any

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

Parameters

type

string

args

any[]

Returns

any

Inherited from

EventEmitter._emit


emit()

emit(type, ...rest): boolean

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

Parameters

type

string

rest

...any[]

Returns

boolean

Inherited from

EventEmitter.emit


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


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


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


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


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


remove()

remove(element): void

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

Remove child node from node.

Parameters

element

any

Returns

void


detach()

detach(): void

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

Remove node from its parent.

Returns

void


free()

free(): void

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

Free up the element. Automatically unbind all events that may have been bound to the screen object. This prevents memory leaks.

Returns

void


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


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


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


collectDescendants()

collectDescendants(s?): any[]

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

Collect all descendants into an array.

Parameters

s?

any

Returns

any[]


collectAncestors()

collectAncestors(s?): any[]

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

Collect all ancestors into an array.

Parameters

s?

any

Returns

any[]


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


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


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


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


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


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