Skip to main content

U2

Classes​

ClassDescription
ComponentBase 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.
ControlA component that renders: everything visual in u2 is one.
ScopeOwner of effects, cleanups, listeners, timers and child scopes. Everything registered on a scope is released by a single dispose() call. Errors raised in what it owns are reported to onError, then up the parent chain, then to Scope.onUnhandledError — never thrown at whoever happened to write a signal.
SignalThe base class for plain and computed signals.

Interfaces​

InterfaceDescription
BindPropOne enumerated binding step: a property (typed, semType included) plus what the picker needs — no probing, no signal creation during enumeration.
BindSourceThe DD5 binding protocol: a source resolves one path step at a time and enumerates what a picker may offer without allocating a single signal — laziness is the contract, not an optimization. Every Component answers it off its registry meta.
ColumnLikeDeliberately structural, not DG.Column/DG.DataFrame: every real frame satisfies these, while the headless suite feeds plain fakes — a Dart-handle class could never type them.
ComponentMetaBaseThe registry metadata a component introspects itself through; the spec layer's ComponentMeta extends it (structural, so the core never imports the spec layer).
ComponentStateThe per-instance u2 state, kept under one own field so that Component.init can be applied to a platform DG.Widget (a Component by inheritance) without clobbering its own fields.
DataFrameLike-
DebugSnapshotWhat was live at one moment — the baseline U2Debug.diff compares against.
FuncLikeA callable a component exposes, params as properties. The invocation is named after DG.Func.apply so that a real platform function IS a FuncLike — the host hands out either. Deliberately NOT DG.Func: components mint plain callables no registry knows.
IItemsStateThe items of a collection-like control.
IItemStateOne addressable item of a collection-like control: a list/tree/table row, a chip, an option, a radio/checkbox item, a tab, a wizard step, a menu item, a breadcrumb.
LeakReportWhat a U2Debug.diff found live that was not live at the snapshot.
ListenerRecordA listener on window, document or body added through a scope helper or while a u2 scope was current.
NamedPropertyA property whose name is guaranteed — what descriptors and bind steps carry.
ObservableLikeThe subscription surface of an event stream; an rxjs Observable satisfies it structurally. Deliberately NOT rxjs Observable: the notification seams return hand-rolled literals, and the dependency-free core never types against rxjs (a webpack external). What Component.onEvent emits is a union: a component event's own payload, or a DOM Event where the control's root raises one of the same name. Nothing wraps or tags them — a subscriber that cares tests for instanceof Event.
PropStateOne declared property of a control, as props reports it.
ReadonlySignalAn interface for read-only signals.
ScopeRecordA live scope, as U2Debug.liveScopes reports it.
TimerRecordA pending timeout, interval or animation frame created through a scope helper or while a u2 scope was current.
U2DebugThe in-page leak and ownership inspector, DG.U2.debug.

Type Aliases​

Type AliasDescription
ErrorHandlerReceives an error a scope caught: from an effect, a bound handler, a listener or a cleanup.
JsonValueJSON-safe projection of a value — what crosses page.evaluate. Dates become ISO strings, entities/objects with a name become that name, arrays map element-wise, plain objects key-wise, functions/elements become undefined, everything else String(x). Produced by Control.jsonValue.
PropertyChangeWhat a widget announces when one of its properties changed: the property's name, or null when several changed at once (or the widget cannot say which). Structural — nothing platform-typed.
U2GestureWhat the user does to a control or an item — the bdd library's gesture verbs.

Variables​

VariableDescription
debugDG.U2.debug — live scopes with creation stacks, owned timers and global listeners, the snapshot/diff the BDD leak check runs, and the orphan sweep.
DF_STEPSThe seven steps every DataFrame answers — static, so a source that IS a frame enumerates them without building the frame's bindings first.
ITEMS_CAPItem cap of IItemsState.list.

Functions​

FunctionDescription
batchCombine multiple value updates into one "commit" at the end of the provided callback.
computedCreate a new signal that is computed based on the values of other signals.
controlThe u2 control owning el: the nearest control root at or above it, or the owner of the popup it sits in. Platform widget wrappers are passed over — whether one exists depends on who asked the platform for it. Undefined for an element outside any u2 control.
dfBindingsThe BindSource over a DataFrame signal. Subscriptions and signals live on scope. Lazy: a currentRow.<col> signal is created on first bindStep and cached; a repoint (the frame signal changing identity) resubscribes events and refreshes every cached signal. A column step always answers a signal — an absent frame or column reads undefined and refuses writes, so bound inputs show empty instead of breaking (the containment posture).
isWritableSignalWhether s is a signal whose value can be written — the two-way gate. A prototype-descriptor check: the vendored Computed defines a getter-only value, so computeds classify read-only without any engine knowledge.
itemsItems of the control owning el (the state's items), uncapped with all: true; null when it lists none.
propertyFieldsA plain copy of the named fields — a spread of a DG.Property copies nothing but its dart handle, since every field is a prototype getter.
propsThe declared properties of the control owning el, values JSON-projected.
rawEffectCreate an effect to run arbitrary code in response to signal changes.
revealItemBrings an item of the control owning el into view by key or label (see Control.revealItem); rejects naming the candidates when a label matches several.
setPropWrites a declared property of the control owning el through its setter — for putting a control in a state from a test. Throws when the control has no such property or it is read-only.
signalCreate a new plain signal.
stateJSON-safe state of the control owning el — what page.evaluate hands to a test runner; null outside a u2 control. Synchronous and side-effect free.
statusFull status of the control owning el; its parts are elements, so use it inside the page only.
untrackedRun a callback function that can access signal values without subscribing to the signal updates.
uuid4A random v4 UUID. Unlike crypto.randomUUID() this also works outside a secure context — a stand served over plain HTTP on a hostname has no randomUUID.

References​

BitArray​

Re-exports BitArray


BitPredicate​

Re-exports BitPredicate


COLUMN_TYPE​

Re-exports COLUMN_TYPE


IControlState​

Re-exports IControlState


IEventType​

Re-exports IEventType


IInputStatus​

Re-exports IInputStatus


IProperty​

Re-exports IProperty


IPropertyMeta​

Re-exports IPropertyMeta


IRectBounds​

Re-exports IRectBounds


IWidgetStatus​

Re-exports IWidgetStatus


SEMTYPE​

Re-exports SEMTYPE


TYPE​

Re-exports TYPE


TYPES_SCALAR​

Re-exports TYPES_SCALAR