MAIDR JavaScript API
    Preparing search index...

    Per-layer lookups that translate a MAIDR navigation position into the original Chart.js element index. MAIDR extraction skips gap markers, so these maps re-derive the raw indices from the chart to keep highlights aligned.

    interface TargetMaps {
        pointTargets: Map<string, ChartJsActiveElement[]>;
        barLineIndices: Map<string, number[][]>;
        heatmapIndices: Map<string, Map<string, number>>;
        ganttTargets: Map<string, ChartJsActiveElement[][]>;
        treemapIndices: Map<string, Map<string, number>>;
        distributionTargets: Map<string, ChartJsActiveElement[]>;
        parallelTargets: Map<string, ChartJsActiveElement[][]>;
    }
    Index

    Properties

    pointTargets: Map<string, ChartJsActiveElement[]>

    Point clouds: pointTargets[layerId][i] is the element drawing the layer's data[i] — the table in the layer's own data order, not a grouping of it.

    MAIDR names a cloud's selection by data index (see NavigateCallback.pointIndices), because a scatter selects a set of points and no row/column pair can name one. Keeping the table in data order is what lets this adapter answer that without re-deriving the model's x-bucketing or its grid binning, which would drift from the model silently.

    Each entry names its own dataset rather than the layer naming one for all of them, because a merged volcano or Manhattan is a single layer drawn from several datasets — one per chromosome, typically.

    barLineIndices: Map<string, number[][]>

    Bar/line: barLineIndices[layerId][row][col] is the original Chart.js element index (gaps skipped).

    heatmapIndices: Map<string, Map<string, number>>

    Heatmap: heatmapIndices[layerId] maps "x\0y" to the flat Chart.js element index.

    ganttTargets: Map<string, ChartJsActiveElement[][]>

    Gantt: ganttTargets[layerId][lane][interval] is the element drawing it.

    treemapIndices: Map<string, Map<string, number>>

    Treemap: treemapIndices[layerId] maps "depth\0index" to the flat Chart.js element index.

    TreemapTrace addresses a node by depth and by its position within that depth across parents, and the position is the order the nodes were declared in. The extractor emits one point per drawn rectangle in the plugin's own layout order, so counting the points per depth reproduces exactly the addresses the model will use -- without re-deriving the tree, which would drift from the model silently.

    distributionTargets: Map<string, ChartJsActiveElement[]>

    Box / violin: distributionTargets[layerId][i] is the element drawing the layer's i-th distribution, in the payload's own order.

    A box is one mark however many sections a reader walks along it, so the table is flat: the column of the pair says which section, which is a reading of the box and not a mark of its own.

    parallelTargets: Map<string, ChartJsActiveElement[][]>

    Parallel coordinates: parallelTargets[layerId][row][col] is the element drawing observation row on axis col.

    A pcp payload is the transpose of the chart's datasets -- one dataset is one axis -- so both halves of the pair have to be translated, and neither is the other's index space.