Skip to main content

Component

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

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

Parameters

ParameterType
scope?Scope

Returns

Component

Properties

PropertyModifierTypeDescriptionDefined in
_u2readonlyComponentState-js-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.js-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.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
ParameterType
xstring | null
Returns

void


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


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


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


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


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

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


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

Implementation of

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

Implementation of

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


effect()

effect(fn): this

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

Parameters

ParameterType
fn() => void

Returns

this


fireEvent()

protected fireEvent(eventId, args?): void

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

Parameters

ParameterType
eventIdstring
args?unknown

Returns

void


getFunctions()

getFunctions(): FuncLike[]

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

Returns

FuncLike[]


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


getWidgetStatus()

getWidgetStatus(): IWidgetStatus

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

Returns

IWidgetStatus


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


onEvent()

onEvent(eventId?): ObservableLike<unknown>

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

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

Parameters

ParameterType
dispose() => void

Returns

this


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


registerFunction()

protected registerFunction(f): void

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

Parameters

ParameterType
fFuncLike

Returns

void


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


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


is()

static is(x): x is Component

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

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