es-grid-template
Version:
es-grid-template
55 lines (54 loc) • 1.46 kB
TypeScript
import type { ArtColumn } from '../interfaces';
export type VirtualEnum = false | true | 'auto';
export interface VerticalRenderRange {
topIndex: number;
topBlank: number;
bottomIndex: number;
bottomBlank: number;
}
export interface HorizontalRenderRange {
leftIndex: number;
leftBlank: number;
rightIndex: number;
rightBlank: number;
}
export type VisibleColumnDescriptor = {
type: 'blank';
blankSide: 'left' | 'right';
width: number;
} | {
type: 'normal';
colIndex: number;
col: ArtColumn;
};
export interface ResolvedUseVirtual {
horizontal: boolean;
vertical: boolean;
header: boolean;
}
export interface RenderInfo {
verticalRenderRange: VerticalRenderRange;
horizontalRenderRange: HorizontalRenderRange;
visible: VisibleColumnDescriptor[];
flat: {
full: ArtColumn[];
left: ArtColumn[];
center: ArtColumn[];
right: ArtColumn[];
};
nested: {
full: ArtColumn[];
left: ArtColumn[];
center: ArtColumn[];
right: ArtColumn[];
};
stickyLeftMap: Map<number, number>;
stickyRightMap: Map<number, number>;
useVirtual: ResolvedUseVirtual;
/** Whether props.columns contains any valid locked columns */
hasLockColumn: boolean;
/** Total width of left locked columns */
leftLockTotalWidth: number;
/** Total width of right locked columns */
rightLockTotalWidth: number;
}