visual-grid
Version:
JavaScript Data Table
74 lines (73 loc) • 1.74 kB
TypeScript
import { CellRenderer, CellEditor, CellTransformer } from "./grid/cell";
import Grid from "./grid";
export interface MenuItem {
separator?: boolean;
disabled?: boolean;
name?: string;
icon?: string;
action?: () => void;
subMenus?: MenuItem[];
}
export interface GetContextMenuItemsParams {
row: string;
column: string;
grid: Grid;
}
export interface Styles {
[key: string]: string;
}
export interface CellPosition {
row: string;
column: string;
}
export interface Coordinate {
x: number;
y: number;
}
export interface Boundary {
left: boolean;
right: boolean;
top: boolean;
bottom: boolean;
}
export interface RowData {
id: string;
[key: string]: any;
}
interface ICellRenderer {
new (): CellRenderer<unknown>;
}
interface ICellEditor {
new (): CellEditor<unknown>;
}
export declare type Pinned = 'left' | 'right' | undefined;
export interface BaseColumnOptions {
width?: number;
minWidth?: number;
flex?: number;
resizable?: boolean;
pinned?: Pinned;
transformer?: CellTransformer;
cellRender?: ICellRenderer;
cellParams?: any;
cellEditor?: ICellEditor;
}
export interface ColumnOptions extends BaseColumnOptions {
field: string;
headerName?: string;
readonly?: boolean;
}
export declare type Fillable = 'x' | 'y' | 'xy' | undefined;
export interface GridOptions {
width?: string;
height?: string;
columns: ColumnOptions[];
defaultColumnOption?: BaseColumnOptions;
rows: RowData[];
headerHeight?: number;
rowHeight?: number;
preloadRowCount?: number;
fillable?: Fillable;
getContextMenuItems?: (params: GetContextMenuItemsParams) => MenuItem[];
}
export {};