Skip to main content

Control

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

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:448

Parameters​

ParameterType
root?HTMLElement
scope?Scope

Returns​

Control

Overrides​

Component.constructor

Properties​

PropertyModifierTypeDescriptionInherited fromDefined in
_rootprotectedHTMLElement--js-api/src/u2core/component.ts:445
_u2readonlyComponentState-Component._u2js-api/src/u2core/component.ts:82
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:77
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:81

Accessors​

aiDescription​

Get Signature​

get aiDescription(): string | null

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

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:156

Parameters​
ParameterType
xstring | null
Returns​

void

Inherited from​

ColumnGrid.aiDescription


ambientAdoption​

Get Signature​

get protected ambientAdoption(): boolean

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

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:469

A named control carries its name in the DOM: data-u2-name is the stable automation id selectors, tutorials and agents address the control by — the same attribute the spec renderer stamps on named nodes, so hand-built and spec-built UI share one selector vocabulary. Derived names (an input's label fallback) never stamp — see Component.deriveName.

Returns​

string | undefined

Set Signature​

set name(x): void

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

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

Parameters​
ParameterType
xstring | undefined
Returns​

void

Overrides​

Component.name


propertyTarget​

Get Signature​

get propertyTarget(): unknown

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

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:244

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:455

Returns​

HTMLElement

Set Signature​

set root(x): void

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

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:307

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:296

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


deriveName()​

protected deriveName(x): void

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

Sets the introspection/form key without claiming an automation id — the label-fallback path: a caption is not a stable identity, so it never reaches data-u2-name.

Parameters​

ParameterType
xstring | undefined

Returns​

void

Inherited from​

Component.deriveName


dispose()​

dispose(): void

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

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:134

Parameters​

ParameterType
fn() => void

Returns​

this

Inherited from​

Component.effect


fireEvent()​

protected fireEvent(eventId, args?): void

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

Parameters​

ParameterType
eventIdstring
args?unknown

Returns​

void

Inherited from​

Component.fireEvent


getFunctions()​

getFunctions(): FuncLike[]

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

Returns​

FuncLike[]

Inherited from​

Component.getFunctions


getProperties()​

getProperties(): NamedProperty[]

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

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:230

Returns​

IWidgetStatus

Inherited from​

Component.getWidgetStatus


link(name, source, twoWay): void

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

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:504

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:139

Parameters​

ParameterType
dispose() => void

Returns​

this

Inherited from​

Component.own


propertyChanges()​

protected propertyChanges(): ObservableLike<PropertyChange> | null

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

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:431

Parameters​

ParameterType
fFuncLike

Returns​

void

Inherited from​

Component.registerFunction


runInScope()​

runInScope<T>(fn): T

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

Type Parameters​

Type Parameter
T

Parameters​

ParameterType
fn() => T

Returns​

T

Inherited from​

Component.runInScope


build()​

static build(builder): Control

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

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


forElement()​

static forElement(el): Control | undefined

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

The nearest control owning el — the DOM → component door for tooling, automation and inspectors (the u2 counterpart of the platform's Widget.find). Best-effort: the last control constructed on (or assigned) a root wins it.

Parameters​

ParameterType
elElement | null

Returns​

Control | undefined


init()​

static init(self, scope?): void

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

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:498

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:111

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