The row the charting library bound to the mark — a
Chart.js datum, a Highcharts point.options, an amCharts
dataItem.dataContext, a d3 element.__data__. Typed
unknown because most of those arrive that way; anything
that is not an object resolves to nothing.
The field the author named, or undefined to default.
The grammar field name being filled, e.g. 'yMin'.
Optionaltype: The declared type being read, where one of its fields
defaults differently from the shared chain — 'value' on
a choropleth. Omitted, the shared chain applies.
The value read, or undefined when nothing resolves.
Reads one declared fact off an author's row.
An explicit
refis used verbatim with no fallback: a name the author wrote that misses is their error, and reporting it — with warnUnresolvedRef, once the series is read — beats papering over it with a column they did not name. Only the defaulted path walks the chain, tryingcanonicalfirst and then each alternative in order — the type's own chain from DECLARED_FIELD_REF_FALLBACKS where it has one, and FIELD_REF_FALLBACKS otherwise.Every name, explicit or defaulted, is looked for in three places in turn: the row's own key, the dotted path it spells, and the row's
properties— see readFromRow. Name priority dominates:properties.namebeats a top-levelidon a GeoJSON feature, because a region is called by its name rather than by its FIPS code.undefinedandnullboth mean "no ref given" here, exactly as they do in validateDeclaration: the slots this rides in are frequently untyped chart config, wherenullis how an author writes "not set", and readingrow['null']for one would be a puzzle with no explanation attached.Returns
undefinedwhen nothing resolves, and the field is then omitted from the payload. Never substitute a zero, a false or a placeholder: a missing weight is a forest plot without weights, while a weight of 0 is a study that counted for nothing.A falsy value that is present —
0,'',false,null— resolves and stops the walk. Only anundefinedreading moves on to the next name.An array counts as a row here rather than being rejected: a d3-hexbin bin is the array of points that fell in it, which is why
lengthis one ofcount's fallbacks.