Skip to main content

Component

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

Base of every u2 component, visual or not: a name, an effect/cleanup scope, and the widget introspection surface (DD7) generated from componentMeta — what the shell, the context panel, automation and the copilot ask of a widget, implemented by DG.Widget through inheritance. A component constructed inside another's scope is disposed with it. Platform-free; in Datagrok, DG.Widget extends Control, so the kill channel and the introspection surface are this class's own — nothing wires or delegates. Standalone hosts (gallery, tests) call dispose directly.

Extended by​

Implements​

Constructors​

Constructor​

new Component(scope?): Component

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

Parameters​

ParameterType
scope?Scope

Returns​

Component

Properties​

PropertyModifierTypeDescriptionDefined in
_u2readonlyComponentState-js-api/src/u2core/component.ts:98
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.js-api/src/u2core/component.ts:93
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.js-api/src/u2core/component.ts:97

Accessors​

aiDescription​

Get Signature​

get aiDescription(): string | null

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

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

Parameters​
ParameterType
xstring | null
Returns​

void


ambientAdoption​

Get Signature​

get protected ambientAdoption(): boolean

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

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

Returns​

boolean


name​

Get Signature​

get name(): string | undefined

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

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

Parameters​
ParameterType
xstring | undefined
Returns​

void


propertyTarget​

Get Signature​

get propertyTarget(): unknown

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

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


propertyTier​

Get Signature​

get propertyTier(): boolean

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

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


scope​

Get Signature​

get scope(): Scope

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

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

Methods​

_scopeMinted()​

protected _scopeMinted(_scope): void

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

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


bindProps()​

bindProps(): BindProp[]

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

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[]

Implementation of​

BindSource.bindProps


bindStep()​

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

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

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

Implementation of​

BindSource.bindStep


deriveName()​

protected deriveName(x): void

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

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


dispose()​

dispose(): void

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

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


effect()​

effect(fn): this

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

Runs fn now and on every change of the signals it reads, until this component is disposed. Called while a row of each() or an effect run is being built, it belongs on a control built there (input.effect(...)) — on a longer-lived one it piles up with every rebuild, and u2 warns.

Parameters​

ParameterType
fn() => void

Returns​

this


fireEvent()​

protected fireEvent(eventId, args?): void

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

Every matching listener runs inside one batch; a throwing one is reported to this component's scope and does not stop the rest.

Parameters​

ParameterType
eventIdstring
args?unknown

Returns​

void


getFunctions()​

getFunctions(): FuncLike[]

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

Returns​

FuncLike[]


getProperties()​

getProperties(): NamedProperty[]

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

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[]


getWidgetStatus()​

getWidgetStatus(): IWidgetStatus

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

Returns​

IWidgetStatus


link(name, source, twoWay): void

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

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


on()​

on(eventId, handler): () => void

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

Subscribes handler to onEvent(eventId); it gets the payload and this component. Owned by the ambient scope when there is one (the subscriber's), else by this component; runs as Scope.bind runs a handler. Answers the unsubscribe.

Parameters​

ParameterType
eventIdstring
handler(arg, source) => void

Returns​

() => void


onEvent()​

onEvent(eventId?): ObservableLike<unknown>

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

Events fired by this component, and — on a Control — the DOM events of that name raised on its root. Without an id, every component event. The two streams are merged as they are, so a subscriber sees either payload and must discriminate (see ObservableLike).

Parameters​

ParameterTypeDefault value
eventIdstring | nullnull

Returns​

ObservableLike<unknown>


own()​

own(dispose): this

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

Registers a cleanup that runs when this component is disposed.

Parameters​

ParameterType
dispose() => void

Returns​

this


propertyChanges()​

protected propertyChanges(): ObservableLike<PropertyChange> | null

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

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

Returns​

ObservableLike<PropertyChange> | null


registerFunction()​

protected registerFunction(f): void

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

Parameters​

ParameterType
fFuncLike

Returns​

void


runInScope()​

runInScope<T>(fn): T

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

Runs fn with this component's scope ambient: what it builds is owned by this component.

Type Parameters​

Type Parameter
T

Parameters​

ParameterType
fn() => T

Returns​

T


_isPlain()​

protected static _isPlain(x): x is Record<string, unknown>

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

Parameters​

ParameterType
xunknown

Returns​

x is Record<string, unknown>


init()​

static init(self, scope?): void

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

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

Parameters​

ParameterType
selfComponent
scope?Scope

Returns​

void


is()​

static is(x): x is Component

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

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

Parameters​

ParameterType
xunknown

Returns​

x is Component


sameValue()​

static sameValue(a, b): boolean

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

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