MAIDR Documentation - v4.4.0
    Preparing search index...
    • Build a MAIDR figure, and its selection index, from worksheet snapshots.

      One worksheet becomes one subplot holding one layer. How those subplots are arranged has two answers, and the fallback is always available:

      • A geometry-aware grid, when the snapshots carry the dashboard geometry the binder read off dashboard.objects and that geometry is unambiguous. Worksheets that share a row of the dashboard share a row of the figure, left to right, and the dashboard's bottom row is row 0 — see layOutByGeometry for the banding rule, for why the bottom comes first, and for the five ways a grid is declined.
      • N rows × 1 column otherwise: one worksheet per subplot, in the order the snapshots arrive. This is what an older embedding library gets, since it reports no geometry at all; it is also what a single worksheet, a layout: 'column' option, and every ambiguous dashboard get. Tableau documents that "screen readers read views or objects in a dashboard in the order in which they were added", and dashboard.worksheets is that order, so this ordering is one a reader has already been narrated.

      Layer ids are assigned before any layout happens, as the running count of survivors, and are never derived from a grid position. That is load-bearing: SelectionIndex.cells, .points and .worksheets are keyed by them, and the binder turns those keys into live worksheets. Numbering after banding would hand out duplicate ids the moment a row held more than one subplot and would route highlights to the wrong worksheet. Banding is only ever a permutation of an already-numbered list, so the ids — and the whole selection index — are identical for the same input whichever layout is chosen. Nothing downstream reads a row or a column out of a layer id; the model stores it and echoes it back.

      A worksheet that yields no layer contributes no subplot: Figure crashes on a subplot with zero layers, and the controller refuses to construct itself when no subplot has any. It is therefore never a band member either, so a skipped worksheet leaves no hole in the grid. When every worksheet is skipped the result has an empty subplots array, which the binder reads as "leave the page alone".

      maidr.onNavigate is not set here. Extraction is pure; the binder spreads its own callback on.

      Parameters

      Returns TableauExtraction

      The MAIDR data object and the selection index that addresses it.