Skip to main content

Interface: EntryInput<TProps>

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

What a consumer writes; Entry is what the library stores. The two differ only in how loose the input may be: ids are plain strings (the EntryId brand is applied on the way in) and dates are any InstantInput. An Entry is itself a valid EntryInput, so a consumer that already holds branded values passes them through unchanged.

Dataset reads this into a StoredEntry once, at construction, in the Dataset's own zone — a date-only end always means through that day (time/toEndInstant).

Every optional key admits an explicit undefined, which is what keeps the sentence above true under exactOptionalPropertyTypes: a live Entry's start is Instant | undefined, and entry.toInput() hands one straight back to entries.add.

Type Parameters​

TProps​

TProps = Record<string, unknown>

Properties​

end?​

optional end?: InstantInput

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

Exclusive — see plans/01 §5. A date-only string always means through that day. See start for when this may be omitted.


id​

id: string

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


locked?​

optional locked?: boolean

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

A locked Entry refuses a gesture on every cell but this one (ADR 0038). Omit it, or set it to undefined, to leave the Entry unlocked.


name?​

optional name?: string

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

No stored classification (ADR 0013). An Entry derives when it has children — gaining one promotes it, losing the last one demotes it, and nothing here says which.

Optional (#421 C5): a booking with no title is still a row. Omit it and the Grid's name column, and the default bar label, both read an empty value.


parentId?​

optional parentId?: string

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

Hierarchy; roots have none.


props?​

optional props?: Partial<TProps>

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

Passenger data, and a bag a consumer already holds (ADR 0011). A declared Field key belongs at the top level instead — entries.add({ id, name, owner: 'Ali' }) — and naming one both here and at the top throws. An unknown top-level key, or a key here that names a core key, warns and is ignored rather than thrown: this Entry may come from an API this consumer does not own.


siblingIndex?​

optional siblingIndex?: number

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

This Entry's rank among its siblings (ADR 0034). add() places a new entry at this index when given one; the constructor and load read list position instead and drop an authored value that disagrees with it, with one aggregated warning (data/error-reporting.ts, 'sibling-index-dropped'). Omit it to append.


start?​

optional start?: InstantInput

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

Optional on every kind (ADR 0012, revises this comment's earlier "required for an authored span"): an Entry spans if and only if start and end are both present, and draws no bar otherwise. One date with no other is legal and stores as written. An unreadable date is still an InvalidInstantError.