Skip to content

Multi Row Header

AdditionalData (Extended from @revolist/revogrid)

Section titled “AdditionalData (Extended from @revolist/revogrid)”
interface AdditionalData {
multiRowHeader?: MultiRowHeaderConfig
}

ColumnRegular (Extended from @revolist/revogrid)

Section titled “ColumnRegular (Extended from @revolist/revogrid)”
interface ColumnRegular {
/**
* Prevent this leaf header from spanning unused multi-row header depth.
*/
suppressSpanHeaderHeight?: boolean
}

HTMLRevoGridElement (Extended from global)

Section titled “HTMLRevoGridElement (Extended from global)”
interface HTMLRevoGridElement {
multiRowHeader?: MultiRowHeaderConfig;
'multi-row-header'?: MultiRowHeaderConfig
}

Enhances RevoGrid grouped column headers with AG Grid / DevExtreme-style multi-row leaf header spanning while keeping the existing ColumnGrouping API.

  • Config integration grid.multiRowHeader: Reads multi-row header configuration from the grid multiRowHeader DOM property.
  • Config integration additionalData.multiRowHeader: Reads legacy multi-row header configuration from additionalData.multiRowHeader.
class MultiRowHeaderPlugin {
destroy(): void;
}

export function getMultiRowHeaderLeafKey(
colType: DimensionCols,
columnIndex: number,
): string;

export function createMultiRowHeaderLayout(
columns: MultiRowHeaderColumn[] = [],
): MultiRowHeaderLayout;

export function resolveMultiRowHeaderConfig(
config?: MultiRowHeaderConfig,
): ResolvedMultiRowHeaderConfig;

export type MultiRowHeaderConfig = boolean | {
/**
* Let shallow leaf headers fill unused group header depth.
* Defaults to true.
*/
spanLeafHeaders?: boolean;
};

export type ResolvedMultiRowHeaderConfig = {
enabled: boolean;
spanLeafHeaders: boolean;
};

export type MultiRowHeaderColumn = ColumnRegular | ColumnGrouping;

export type MultiRowHeaderLeafInfo = {
colType: DimensionCols;
columnIndex: number;
depth: number;
spanRows: number;
suppressSpanHeaderHeight: boolean;
};

export type MultiRowHeaderLayout = {
maxDepth: number;
leaves: Map<string, MultiRowHeaderLeafInfo>;
};