Home / Docs / gn-vtable

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.