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

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