@thi.ng/layout
Version:
Configurable nested 2D grid layout generators
45 lines • 1.56 kB
TypeScript
import type { CellSpan, IGridLayout, LayoutBox } from "./api.js";
/** @internal */
export declare const __DEFAULT_SPANS: CellSpan;
export declare class GridLayout implements IGridLayout<GridLayout> {
readonly parent: GridLayout | null;
readonly cols: number;
readonly width: number;
readonly x: number;
readonly y: number;
readonly cellW: number;
readonly cellH: number;
readonly cellWG: number;
readonly cellHG: number;
readonly gap: number;
protected currCol: number;
protected currRow: number;
protected rows: number;
constructor(parent: GridLayout | null, x: number, y: number, width: number, cols: number, rowH: number, gap: number);
colsForWidth(w: number): number;
rowsForHeight(h: number): number;
spanForSize(size: ArrayLike<number>): CellSpan;
spanForSize(w: number, h: number): CellSpan;
next(spans?: CellSpan): LayoutBox;
nextSquare(): LayoutBox;
nest(cols: number, spans?: CellSpan, gap?: number): GridLayout;
/**
* Updates max rows used in this layout and all of its parents.
*
* @param rspan -
*/
propagateSize(rspan: number): void;
}
/**
* Syntax sugar for {@link GridLayout} ctor. By default creates a
* single-column layout at given position and width.
*
* @param x -
* @param y -
* @param width -
* @param cols -
* @param rowH -
* @param gap -
*/
export declare const gridLayout: (x: number, y: number, width: number, cols?: number, rowH?: number, gap?: number) => GridLayout;
//# sourceMappingURL=grid-layout.d.ts.map