DateComponent class final
date / datetime / time. One class, because the three differ only in
which parts of a moment they carry.
The step keys are advisory and nothing here acts on them. A
datetime/time node publishes hoursStep/minutesStep/secondsStep
only when the panel configured a value > 1 — the contract states what the
field was configured with, for a host rendering its own picker (the
repeater reorderable precedent). This client parses them so a host
reading the same document sees one model, but the stock Material pickers
have no step grid (they derive their behaviour from the device locale,
like first-day-of-week), and the server does not enforce steps either —
silently snapping or rejecting a picked time would make mobile stricter
than the web panel it mirrors. Nothing reading this contract should infer
server-side enforcement from these keys.
- Inheritance
-
- Object
- SchemaComponent
- DateComponent
Properties
- columnSpan → int
-
Out of 12, matching Filament. A phone renderer treats anything >= 6 as
full width; the value is carried so a tablet renderer can use it later.
finalinherited
- defaultValue → String?
-
Kept as the raw ISO string — the renderer owns formatting.
final
- direction → ComponentDirection?
-
Optional field/entry override. Null inherits the nearest panel-level
Directionality, so old servers and undeclared fields behave unchanged.
finalinherited
- disabled → bool
-
finalinherited
- hashCode → int
-
The hash code for this object.
no setterinherited
- helperText → String?
-
finalinherited
-
finalinherited
- hoursStep → int
-
The panel's picker steps, 1 when unpublished. Advisory only — see the
class doc for why the widgets deliberately ignore them.
final
- kind → DateKind
-
final
- label → String?
-
finalinherited
- live → bool
-
When true, a change to this field triggers a
/stateround-trip so the server can re-evaluate the schema.finalinherited - maxDate → DateTime?
-
final
- minDate → DateTime?
-
For DateKind.time these are times of day on the canonical day
timeOfDay anchors to, not calendar instants.
final
- minutesStep → int
-
final
- name → String?
-
Field key. Null for layout containers, which hold no value.
finalinherited
-
props
→ List<
Object?> -
Equality is
(type, name, writable)— meaningful only within a single container.nameis a field key that's unique within one form or infolist, not globally, so two components from different resources, or from a form vs its infolist, can compare equal here while differing in every other property. Do not put components from different containers into the sameSetor diff them against each other on this equality.writableis included: a/stateround-trip can flip it on a field whose type and name are otherwise unchanged, and a rebuild that depends on that difference needs the equality to see it.translatableis included for the same reasonwritableis: it is what decides whether this leaf renders inside a locale-chip group at all.directioncan also be closure-backed and flip on/state, so it must participate too or a widget diff may retain the old override.no setterinherited - rules → ValidationRules
-
Client-side validation hints. A base-node property in the contract (§5.3),
so every consumer can ask "is this required?" without switching over the
sealed hierarchy. Containers and entries simply carry
ValidationRules.none.
finalinherited
- runtimeType → Type
-
A representation of the runtime type of the object.
no setterinherited
- seconds → bool
-
Whether the picker offers seconds. Also decides the wire format of a
timevalue —HH:mm:ssagainstHH:mm, matching TimePicker's ownH:i:s/H:i.final - secondsStep → int
-
final
- stringify → bool?
-
If set to
true, thetoStringmethod will be overridden to output this instance'sprops.no setterinherited - translatable → bool
-
True only on a dotted leaf (
caption.ar) whose head attribute (caption) is translatable on the model — thewritable/placeholderprecedent: published only when true, absent everywhere else, including the undotted scalar sibling. The form screen groups every leaf sharing a head-of-name into one field slot with locale chips instead of one stacked field per locale; seeResourceFormScreen's node walk.finalinherited - type → String
-
The raw contract discriminator, kept so an UnknownComponent can name
itself and so debug output matches the JSON.
finalinherited
-
unreadableBounds
→ Set<
String> -
Config keys (
minDate/maxDate) the server sent and this build could not read. Empty in the normal case, including when the panel declared no bound at all — that is not a violation, and conflating the two is how a deleted bound stays invisible.final - writable → bool
-
False only when the server marks a field it cannot persist — distinct
from disabled, which is a UI decision the user may be able to change
elsewhere. Absent in the contract means
true: most fields are writable, and the key exists to name the exception, not the rule.finalinherited
Methods
-
noSuchMethod(
Invocation invocation) → dynamic -
Invoked when a nonexistent method or property is accessed.
inherited
-
toString(
) → String -
A string representation of this object.
inherited
Operators
-
operator ==(
Object other) → bool -
The equality operator.
inherited
Static Methods
-
parseTime(
String raw) → DateTime? -
Reads a clock time — a
timenode's bound, and its stored value. -
timeOfDay(
int hour, int minute, int second) → DateTime -
A time carries no date — the panel never chose one — so every
timevalue is anchored to the same arbitrary UTC day and only itshour,minuteandsecondmean anything.