Skip to main content

Control

Defined in: js-api/src/u2core/component.ts:422

A component that renders: everything visual in u2 is one.

Extends

Extended by

Constructors

Constructor

new Control(root?, scope?): Control

Defined in: js-api/src/u2core/component.ts:425

Parameters

ParameterType
root?HTMLElement
scope?Scope

Returns

Control

Overrides

Component.constructor

Properties

PropertyModifierTypeDescriptionInherited fromDefined in
_rootprotectedHTMLElement--js-api/src/u2core/component.ts:423
_u2readonlyComponentState-Component._u2js-api/src/u2core/component.ts:76
componentMeta?publicComponentMetaBaseThe registry metadata of the tag that built this component, stamped by the spec renderer — the single source the introspection surface below is generated from.Component.componentMetajs-api/src/u2core/component.ts:71
specProps?publicRecord<string, unknown>The props the registry's create was handed, stamped alongside componentMeta: the last resort of the property read below, for a component that keeps a prop under another name or not at all (a create wrapping a bare element). Construction-time values — a live one always wins.Component.specPropsjs-api/src/u2core/component.ts:75

Accessors

aiDescription

Get Signature

get aiDescription(): string | null

Defined in: js-api/src/u2core/component.ts:146

A short AI-facing briefing, seeded from the registry's usage or description.

Returns

string | null

Set Signature

set aiDescription(x): void

Defined in: js-api/src/u2core/component.ts:150

Parameters
ParameterType
xstring | null
Returns

void

Inherited from

DomainGrid.aiDescription


ambientAdoption

Get Signature

get protected ambientAdoption(): boolean

Defined in: js-api/src/u2core/component.ts:233

Whether a component constructed inside an ambient scope is disposed with it.

Returns

boolean

Inherited from

Component.ambientAdoption


name

Get Signature

get name(): string | undefined

Defined in: js-api/src/u2core/component.ts:67

Unique within a spec: the anchor for selection, patches and automation. An accessor pair (not a field), so a platform descendant's own name accessors override it legally (TS2611).

Returns

string | undefined

Set Signature

set name(x): void

Defined in: js-api/src/u2core/component.ts:68

Parameters
ParameterType
xstring | undefined
Returns

void

Inherited from

Component.name


propertyTarget

Get Signature

get propertyTarget(): unknown

Defined in: js-api/src/u2core/component.ts:228

What this component's properties are read from and written to — prop.get(target) / prop.set(target, v): the component itself, unless an adoption says otherwise.

Returns

unknown

Inherited from

Component.propertyTarget


propertyTier

Get Signature

get propertyTier(): boolean

Defined in: js-api/src/u2core/component.ts:222

The second binding tier is on: every property getProperties declares is a bind step, read and written on propertyTarget. Off for a plain u2 component, whose signal-less meta props are construction-time options.

Returns

boolean

Inherited from

Component.propertyTier


root

Get Signature

get root(): HTMLElement

Defined in: js-api/src/u2core/component.ts:431

Returns

HTMLElement

Set Signature

set root(x): void

Defined in: js-api/src/u2core/component.ts:435

Parameters
ParameterType
xHTMLElement
Returns

void


scope

Get Signature

get scope(): Scope

Defined in: js-api/src/u2core/component.ts:53

Minted on first use; assigned before _scopeMinted fires, so the hook's own this.scope.own(...) reads the stored scope instead of re-entering the mint.

Returns

Scope

Inherited from

Component.scope

Methods

_scopeMinted()

protected _scopeMinted(_scope): void

Defined in: js-api/src/u2core/component.ts:64

First-mint hook: a platform descendant wires its lifecycle here. Never fired for a scope provided to init — that path runs inside the constructor chain.

Parameters

ParameterType
_scopeScope

Returns

void

Inherited from

Component._scopeMinted


bindProps()

bindProps(): BindProp[]

Defined in: js-api/src/u2core/component.ts:285

The signal-backed subset of the meta props — what a binding picker offers on a named node — plus, under propertyTier, every declared property. Allocates no signal.

Returns

BindProp[]

Inherited from

Component.bindProps


bindStep()

bindStep(name): BindSource | Signal<unknown> | null

Defined in: js-api/src/u2core/component.ts:274

One binding step (DD5): a meta-declared prop's same-named Signal member — a named node is a bind source, generated off componentMeta the way getProperties is — then, under propertyTier, a cached signal over the declared property. '' answers the default binding: the component's own value signal, where one exists.

Parameters

ParameterType
namestring

Returns

BindSource | Signal<unknown> | null

Inherited from

Component.bindStep


dispose()

dispose(): void

Defined in: js-api/src/u2core/component.ts:141

On a never-engaged wrapper the getter mints here and _scopeMinted wires the lifecycle (own(kill) + the platform cleanup for Dart-owned), so dispose still kills it; re-entry from the kill cleanup is a no-op via the scope's disposed flag.

Returns

void

Inherited from

Component.dispose


effect()

effect(fn): this

Defined in: js-api/src/u2core/component.ts:128

Parameters

ParameterType
fn() => void

Returns

this

Inherited from

Component.effect


fireEvent()

protected fireEvent(eventId, args?): void

Defined in: js-api/src/u2core/component.ts:413

Parameters

ParameterType
eventIdstring
args?unknown

Returns

void

Inherited from

Component.fireEvent


getFunctions()

getFunctions(): FuncLike[]

Defined in: js-api/src/u2core/component.ts:181

Returns

FuncLike[]

Inherited from

Component.getFunctions


getProperties()

getProperties(): NamedProperty[]

Defined in: js-api/src/u2core/component.ts:161

The props componentMeta declares, each closed over the component's own state: a same-named signal reads and writes live, a same-named plain member, an options entry or — last — a specProps entry reads read-only. name — the component's spec identity — is never a property; an input's declared name prop is its form key, a different thing that IS a property like any other. A component never hand-writes its property list. The list is generated once per componentMeta: the accessors read live state, so only a re-stamp invalidates it.

Returns

NamedProperty[]

Inherited from

Component.getProperties


getWidgetStatus()

getWidgetStatus(): IWidgetStatus

Defined in: js-api/src/u2core/component.ts:208

Returns

IWidgetStatus

Inherited from

Component.getWidgetStatus


link(name, source, twoWay): void

Defined in: js-api/src/u2core/component.ts:246

Keeps this component's name step and source equal, echo-suppressed by value; the reverse direction only where twoWay. A component that took source as its own signal needs no link and gets none; a read-only step cannot follow anything and gets none either.

Parameters

ParameterType
namestring
sourceSignal<unknown>
twoWayboolean

Returns

void

Inherited from

Component.link


onEvent()

onEvent(eventId?): ObservableLike<unknown>

Defined in: js-api/src/u2core/component.ts:445

Component events plus the DOM events of that name raised on root — the listener is wired per subscription and dropped with it, or with the scope if the subscriber never does.

Parameters

ParameterTypeDefault value
eventIdstring | nullnull

Returns

ObservableLike<unknown>

Overrides

Component.onEvent


own()

own(dispose): this

Defined in: js-api/src/u2core/component.ts:133

Parameters

ParameterType
dispose() => void

Returns

this

Inherited from

Component.own


propertyChanges()

protected propertyChanges(): ObservableLike<PropertyChange> | null

Defined in: js-api/src/u2core/component.ts:239

What refreshes the property tier's cached signals from outside: null where nothing announces a change (one-way).

Returns

ObservableLike<PropertyChange> | null

Inherited from

Component.propertyChanges


registerFunction()

protected registerFunction(f): void

Defined in: js-api/src/u2core/component.ts:409

Parameters

ParameterType
fFuncLike

Returns

void

Inherited from

Component.registerFunction


run()

run<T>(fn): T

Defined in: js-api/src/u2core/component.ts:124

Type Parameters

Type Parameter
T

Parameters

ParameterType
fn() => T

Returns

T

Inherited from

Component.run


build()

static build(builder): Control

Defined in: js-api/src/u2core/component.ts:470

Builds a control out of plain elements: builder runs with the new control's scope ambient, so signal bindings and nested components inside it are owned by the result. The ambient scope only spans the synchronous part of builder — components constructed after an await inside it are adopted by nobody and must be disposed by hand, or constructed before the first await.

Parameters

ParameterType
builder() => HTMLElement | (string | HTMLElement | Control)[]

Returns

Control


init()

static init(self, scope?): void

Defined in: js-api/src/u2core/component.ts:83

Per-instance state, for a constructed component and for an adopted platform object alike.

Parameters

ParameterType
selfComponent
scope?Scope

Returns

void

Inherited from

Component.init


is()

static is(x): x is Control

Defined in: js-api/src/u2core/component.ts:439

Structural probe by methods only — never .scope: the accessor mints.

Parameters

ParameterType
xunknown

Returns

x is Control

Overrides

Component.is


sameValue()

static sameValue(a, b): boolean

Defined in: js-api/src/u2core/component.ts:105

The equality the property tier and link suppress echoes by: Object.is, arrays element-wise, plain objects key-wise (recursive), everything else by identity.

Parameters

ParameterType
aunknown
bunknown

Returns

boolean

Inherited from

Component.sameValue