type

Comp

@Js
mixin Comp

Component or function block

methods

add

Add a slot.

addNotNull

Add a slot if value is not null.

child

Lookup a child component by name

dis

Return display string for this component

each

Iterate slot name/value pairs using same semantics as get.

eachChild

Iterate children components in the tree structure

eachWhile

Iterate name/value pairs until callback returns non-null

get

Get the given slot value or null if slot name not defined.

has

Return true if this component has a slot by given name.

hasChild

Check if a child component is mapped by the given name

id

Return id that uniquely identifies this component within its space.

isAbove

Is this is an ancestor in the tree of the given component.

isBelow

Is this component is a descendant in the tree of the given component.

isMounted

Return if this component is mounted into a component space

links

Gets links slot as dict of incoming component links

missing

Return true if the component does not have a slot by given name.

name

Slot name under parent or "" if parent is null

onChange

Callback when a slot is modified on this instance.

onExecute

Callback to recompute component state.

onExecuteFreq

How often should this component have its onExecute callback invoked.

parent

Parent component or null if root/unmounted

remove

Remove a slot by name.

reorder

Reorder the slots.

set

Set a slot by name.

spec

Xeto type for this component

toStr

Return debug string

trap

Get or set the slot mapped by the given name.

Slot Details

add

@Operator
This add(Obj val, Str? name := null)

Add a slot. If name is null one is auto-generated otherwise the name must be unique.

addNotNull

This addNotNull(Obj? val, Str? name := null)

Add a slot if value is not null. If name is null one is auto-generated.

child

virtual Comp? child(Str name, Bool checked := true)

Lookup a child component by name

dis

Str dis()

Return display string for this component

each

Void each(|Obj,Str| f)

Iterate slot name/value pairs using same semantics as get.

eachChild

Void eachChild(|Comp,Str| f)

Iterate children components in the tree structure

eachWhile

Obj? eachWhile(|Obj,Str->Obj?| f)

Iterate name/value pairs until callback returns non-null

get

@Operator
Obj? get(Str name)

Get the given slot value or null if slot name not defined.

has

Bool has(Str name)

Return true if this component has a slot by given name.

hasChild

Bool hasChild(Str name)

Check if a child component is mapped by the given name

id

Ref id()

Return id that uniquely identifies this component within its space.

isAbove

Bool isAbove(Comp child)

Is this is an ancestor in the tree of the given component. If the given component is this, then return true.

isBelow

Bool isBelow(Comp parent)

Is this component is a descendant in the tree of the given component. If the given component is this, then return true.

isMounted

Bool isMounted()

Return if this component is mounted into a component space

Links links()

Gets links slot as dict of incoming component links

missing

Bool missing(Str name)

Return true if the component does not have a slot by given name.

name

Str name()

Slot name under parent or "" if parent is null

onChange

virtual Void onChange(Str name, Obj? newVal)

Callback when a slot is modified on this instance. Value is null if slot removed.

onExecute

virtual Void onExecute()

Callback to recompute component state. This is always called within a CompContext.

onExecuteFreq

virtual Duration? onExecuteFreq()

How often should this component have its onExecute callback invoked. Return null if this component has no time based computation.

parent

virtual Comp? parent()

Parent component or null if root/unmounted

remove

This remove(Str name)

Remove a slot by name. Do nothing is name isn't mapped.

reorder

This reorder(Str[] names)

Reorder the slots. The given list of names must match the existing slot names. Slots defined statically by the spec cannot be reordered and will have indetermine behavior if they are not included in the their original order (in the future this may raise an exception).

set

@Operator
This set(Str name, Obj? val)

Set a slot by name. If val is null, then this is a convenience for remove.

spec

Spec spec()

Xeto type for this component

toStr

virtual override Str toStr()

Return debug string

trap

override Obj? trap(Str name, Obj?[]? args := null)

Get or set the slot mapped by the given name.