Dockview
    Preparing search index...

    Interface IMultiRowTabsHost

    The narrow surface the multi-row (wrapping) tabs service needs from the host (DockviewComponent). The wrap layout itself is CSS; the service only toggles the wrap class on a group's tab list, measures the wrapped row count, and asks the host to relayout so the now-taller header shrinks the content area (the free header-aware content-sizing seam does the actual subtraction). It owns no tab model, overflow detection, or panel sizing math.

    interface IMultiRowTabsHost {
        onDidAddGroup: DockviewEvent<DockviewGroupPanel>;
        onDidOptionsChange: DockviewEvent<void>;
        onDidRemoveGroup: DockviewEvent<DockviewGroupPanel>;
        options: DockviewComponentOptions;
        getTabsListElement(group: DockviewGroupPanel): HTMLElement | undefined;
        relayoutGroup(group: DockviewGroupPanel): void;
        setForcedOverflow(
            group: DockviewGroupPanel,
            fn: (panelId: string) => boolean,
        ): void;
    }

    Implemented by

    Index

    Properties

    Fires when any group is added; the service attaches a wrap controller.

    onDidOptionsChange: DockviewEvent<void>

    Fires after updateOptions; the service re-applies wrap to every group so a runtime overflow.mode change takes effect.

    Methods

    • The scrollable tab list element (.dv-tabs-container) for a group: the element the wrap class is toggled on and whose child tab geometry the row-count measurement reads. Undefined if the group has no tab header.

      Parameters

      Returns HTMLElement | undefined

    • Force a set of the group's panels into the overflow dropdown regardless of horizontal fit: the wrap controller's surplus set (the tabs on rows beyond overflow.maxRows). In wrap mode nothing clips horizontally, so the free OverflowObserver never surfaces these; this seam routes them to the dropdown and re-evaluates it immediately. Passing () => false clears the forcing.

      Parameters

      Returns void