Companion pane API (gn-vgantt / split views)
GnVTableComponent exposes a row-geometry contract so a sibling pane (Gantt timeline, heatmap, …) can virtualize the same vertical window.
| Member | Meaning |
|---|---|
companionLayout() |
{ visibleRange, scrollTop, headerBandHeight, effectiveRowHeight } |
companionVisibleRange() |
{ start, end, overscan } display indices |
companionScrollTop() |
Scrollport scrollTop |
companionHeaderBandHeight() |
Sticky thead height (fractional px) |
effectiveRowHeight() |
Locked row band (do not grow cells past this) |
visibleRows() |
Currently painted row views (placeholders included) |
setScrollTop(px) |
Drive Y scroll; the companion must not own a second vertical scrollbar |
Column template (<vtable-column>…<ng-template let-row="row">) is rendered for data cells. Outline / WBS L-rails use the same row-height lock: whats-new/1.1.0.md. Consumer notes: whats-new/1.2.0.md.
Invariant: every data row is exactly effectiveRowHeight() border-box. Extra per-row borders accumulate and desync group rails and Gantt bars. See docs/HANDBACK-respect-group-rail-row-sync.md.