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
| Parameter | Type |
|---|---|
root? | HTMLElement |
scope? | Scope |
Returns
Control
Overrides
Properties
| Property | Modifier | Type | Description | Inherited from | Defined in |
|---|---|---|---|---|---|
_root | protected | HTMLElement | - | - | js-api/src/u2core/component.ts:423 |
_u2 | readonly | ComponentState | - | Component._u2 | js-api/src/u2core/component.ts:76 |
componentMeta? | public | ComponentMetaBase | The 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.componentMeta | js-api/src/u2core/component.ts:71 |
specProps? | public | Record<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.specProps | js-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
| Parameter | Type |
|---|---|
x | string | null |
Returns
void
Inherited from
ambientAdoption
Get Signature
get
protectedambientAdoption():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
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
| Parameter | Type |
|---|---|
x | string | undefined |
Returns
void
Inherited from
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
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
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
| Parameter | Type |
|---|---|
x | HTMLElement |
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
Inherited from
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
| Parameter | Type |
|---|---|
_scope | Scope |
Returns
void
Inherited from
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
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
| Parameter | Type |
|---|---|
name | string |
Returns
BindSource | Signal<unknown> | null
Inherited from
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
effect()
effect(
fn):this
Defined in: js-api/src/u2core/component.ts:128
Parameters
| Parameter | Type |
|---|---|
fn | () => void |
Returns
this
Inherited from
fireEvent()
protectedfireEvent(eventId,args?):void
Defined in: js-api/src/u2core/component.ts:413
Parameters
| Parameter | Type |
|---|---|
eventId | string |
args? | unknown |
Returns
void
Inherited from
getFunctions()
getFunctions():
FuncLike[]
Defined in: js-api/src/u2core/component.ts:181
Returns
FuncLike[]
Inherited from
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
Inherited from
getWidgetStatus()
getWidgetStatus():
IWidgetStatus
Defined in: js-api/src/u2core/component.ts:208
Returns
Inherited from
link()
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
| Parameter | Type |
|---|---|
name | string |
source | Signal<unknown> |
twoWay | boolean |
Returns
void
Inherited from
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
| Parameter | Type | Default value |
|---|---|---|
eventId | string | null | null |
Returns
ObservableLike<unknown>
Overrides
own()
own(
dispose):this
Defined in: js-api/src/u2core/component.ts:133
Parameters
| Parameter | Type |
|---|---|
dispose | () => void |
Returns
this
Inherited from
propertyChanges()
protectedpropertyChanges():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
registerFunction()
protectedregisterFunction(f):void
Defined in: js-api/src/u2core/component.ts:409
Parameters
| Parameter | Type |
|---|---|
f | FuncLike |
Returns
void
Inherited from
run()
run<
T>(fn):T
Defined in: js-api/src/u2core/component.ts:124
Type Parameters
| Type Parameter |
|---|
T |
Parameters
| Parameter | Type |
|---|---|
fn | () => T |
Returns
T
Inherited from
build()
staticbuild(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
| Parameter | Type |
|---|---|
builder | () => HTMLElement | (string | HTMLElement | Control)[] |
Returns
Control
init()
staticinit(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
| Parameter | Type |
|---|---|
self | Component |
scope? | Scope |
Returns
void
Inherited from
is()
staticis(x):x is Control
Defined in: js-api/src/u2core/component.ts:439
Structural probe by methods only — never .scope: the accessor mints.
Parameters
| Parameter | Type |
|---|---|
x | unknown |
Returns
x is Control
Overrides
sameValue()
staticsameValue(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
| Parameter | Type |
|---|---|
a | unknown |
b | unknown |
Returns
boolean