Skip to main content

Interface: StoredEntry<TProps>

Defined in: model/stored-entry.ts:18

The values one row stores at one moment (ADR 0017). Entry (entry.ts) is the other half of the pair: it answers questions about a row now — read(key), children(), hasChildren. This type answers none of them, and that is deliberate. A pass may hold a row no store holds — the Rollup's own effective tree is one — so the questions belong to the pass, and every pass that hands a StoredEntry hands the answers beside it: an Aggregator reads ctx.read(key), ctx.children(row), ctx.descendants(row), ctx.leaves(row) and ctx.hasChildren(row), a compute Field reads ComputeContext the same way (#466).

It is not a second concept. It is one row, with no questions attached.

An app author meets it in DatasetOptions.aggregators, in a Field's compute, and on ChangeSet.added[].entity / .removed[].entity.

Type Parameters​

TProps​

TProps = Record<string, unknown>

Properties​

end?​

optional end?: Instant

Defined in: model/stored-entry.ts:41

Exclusive — see plans/01 §5. Omitted iff this Entry does not span (ADR 0012); see start.


id​

id: EntryId

Defined in: model/stored-entry.ts:19


locked?​

optional locked?: boolean

Defined in: model/stored-entry.ts:36

A locked Entry refuses a gesture on every cell but this one (ADR 0038). undefined and false both read as unlocked; a user sets it through the locked grid column, and app code sets it too.


name?​

optional name?: string

Defined in: model/stored-entry.ts:33

What this row is called, or undefined when no author gave it one (#421 C5). Not a required field: a row with no name still stores, still spans, still draws — core defaults nothing off it beyond the Grid's name column and the default bar label reading the same Field.


parentId?​

optional parentId?: EntryId

Defined in: model/stored-entry.ts:22

Hierarchy; roots have none. An Entry has no stored classification (ADR 0013): it derives when it has children, and Entry.hasChildren is what answers that.


props​

props: Readonly<Partial<TProps>>

Defined in: model/stored-entry.ts:47

Consumer-owned. A Field key is the whole address (ADR 0011): { key: 'cost' } reads and writes entry.props.cost, and nothing declares a source. Always present — ingest fills {}, so no reader carries a "no props" branch. Partial<TProps> because a required key on TProps is still one a stored record may lack: add({ id, name }) reaches that state on its own, with no write to refuse it.


siblingIndex​

siblingIndex: number

Defined in: model/stored-entry.ts:29

This Entry's rank among its siblings — an ordinary integer index, always present, never negative (ADR 0034). List position carries the value at construction and at load; after that, an explicit write moves an entry and the write's own group renumbers around it. Read it with entry.read('siblingIndex'), the same way parentId has no dedicated Entry member either. HierarchySource never reads this key — a source answers before an entry's index exists (UnplacedEntry, data/hierarchy-source.ts).


start?​

optional start?: Instant

Defined in: model/stored-entry.ts:39

Omitted iff this Entry does not span (ADR 0012). Present with end if and only if this Entry draws a bar.