DocsAPI referenceHeadlessgrid

grid headless API

The core connector and vanilla mount are always visible. Use the framework choice to inspect native composition, props, outputs, context and hooks for the selected adapter.

@grassroot/ui-headless-core/grid

Core connector and vanilla API

48 exports
View source packages/ui-headless/core/src/grid/index.ts

applyTransaction

function
DeclarationView source
applyTransactionts
declare function applyTransaction<T>(cache: GridRowProjectionCache<T>, transaction: {
readonly add?: readonly {
readonly row: T;
readonly index?: number;
}[];
readonly update?: readonly T[];
readonly remove?: readonly string[];
}, model: GridRowProjectionModel<T>): GridRowProjection<T>;
Name
Kind
Type
Requirement
cache
parameter
GridRowProjectionCache<T>
required
transaction
parameter
{ readonly add?: readonly { readonly row: T; readonly index?: number; }[]; readonly update?: readonly T[]; readonly remove?: readonly string[]; }
required
model
parameter
GridRowProjectionModel<T>
required
return
return value
GridRowProjection<T>
n/a
Name
cache
Kind
parameter
Type
GridRowProjectionCache<T>
Requirement
required
Name
transaction
Kind
parameter
Type
{ readonly add?: readonly { readonly row: T; readonly index?: number; }[]; readonly update?: readonly T[]; readonly remove?: readonly string[]; }
Requirement
required
Name
model
Kind
parameter
Type
GridRowProjectionModel<T>
Requirement
required
Name
return
Kind
return value
Type
GridRowProjection<T>
Requirement
n/a
DeclarationView source
computeColumnWindowts
declare function computeColumnWindow(params: {
readonly scrollOffset: number;
readonly viewportSize: number;
readonly columnCount: number;
readonly estimatedColumnSize: number;
readonly overscan?: number;
}): VirtualWindow;
Name
Kind
Type
Requirement
params
parameter
{ readonly scrollOffset: number; readonly viewportSize: number; readonly columnCount: number; readonly estimatedColumnSize: number; readonly overscan?: number; }
required
return
return value
VirtualWindow
n/a
Name
params
Kind
parameter
Type
{ readonly scrollOffset: number; readonly viewportSize: number; readonly columnCount: number; readonly estimatedColumnSize: number; readonly overscan?: number; }
Requirement
required
Name
return
Kind
return value
Type
VirtualWindow
Requirement
n/a
DeclarationView source
computeVirtualWindowts
declare function computeVirtualWindow(params: {
readonly scrollOffset: number;
readonly viewportSize: number;
readonly itemCount: number;
readonly estimatedItemSize: number;
readonly measuredSizes?: ReadonlyMap<number, number>;
readonly overscan?: number;
}): VirtualWindow;
Name
Kind
Type
Requirement
params
parameter
{ readonly scrollOffset: number; readonly viewportSize: number; readonly itemCount: number; readonly estimatedItemSize: number; readonly measuredSizes?: ReadonlyMap<number, number>; readonly overscan?: number; }
required
return
return value
VirtualWindow
n/a
Name
params
Kind
parameter
Type
{ readonly scrollOffset: number; readonly viewportSize: number; readonly itemCount: number; readonly estimatedItemSize: number; readonly measuredSizes?: ReadonlyMap<number, number>; readonly overscan?: number; }
Requirement
required
Name
return
Kind
return value
Type
VirtualWindow
Requirement
n/a

connectGrid

function
DeclarationView source
connectGridts
declare function connectGrid<T>(service: GridService<T>, scope: PartScope, options: GridConnectOptions<T>, remoteSnapshot?: GridRemoteSnapshot<T> | (() => GridRemoteSnapshot<T>)): GridApi<T>;
Name
Kind
Type
Requirement
service
parameter
GridService<T>
required
scope
parameter
PartScope
required
options
parameter
GridConnectOptions<T>
required
remoteSnapshot
parameter
GridRemoteSnapshot<T> | (() => GridRemoteSnapshot<T>)
optional
return
return value
GridApi<T>
n/a
Name
service
Kind
parameter
Type
GridService<T>
Requirement
required
Name
scope
Kind
parameter
Type
PartScope
Requirement
required
Name
options
Kind
parameter
Type
GridConnectOptions<T>
Requirement
required
Name
remoteSnapshot
Kind
parameter
Type
GridRemoteSnapshot<T> | (() => GridRemoteSnapshot<T>)
Requirement
optional
Name
return
Kind
return value
Type
GridApi<T>
Requirement
n/a

createGridInput

function
DeclarationView source
createGridInputts
declare function createGridInput<T>(options: GridConnectOptions<T>, remoteSnapshot?: GridRemoteSnapshot<T>): GridInput<T>;
Name
Kind
Type
Requirement
options
parameter
GridConnectOptions<T>
required
remoteSnapshot
parameter
GridRemoteSnapshot<T>
optional
return
return value
GridInput<T>
n/a
Name
options
Kind
parameter
Type
GridConnectOptions<T>
Requirement
required
Name
remoteSnapshot
Kind
parameter
Type
GridRemoteSnapshot<T>
Requirement
optional
Name
return
Kind
return value
Type
GridInput<T>
Requirement
n/a
DeclarationView source
createGridRemoteRowsts
declare function createGridRemoteRows<T>(options: GridRemoteRowsOptions<T>): GridRemoteRows<T>;
Name
Kind
Type
Requirement
options
parameter
GridRemoteRowsOptions<T>
required
return
return value
GridRemoteRows<T>
n/a
Name
options
Kind
parameter
Type
GridRemoteRowsOptions<T>
Requirement
required
Name
return
Kind
return value
Type
GridRemoteRows<T>
Requirement
n/a

The one shared promise boundary for every Grid mount.

DeclarationView source
createGridRemoteRunCommandts
declare function createGridRemoteRunCommand<T>(options: GridRemoteRunCommandOptions<T>): RunCommand<GridCommand, GridEvent>;
Name
Kind
Type
Requirement
options
parameter
GridRemoteRunCommandOptions<T>
required
return
return value
RunCommand<GridCommand, GridEvent>
n/a
Name
options
Kind
parameter
Type
GridRemoteRunCommandOptions<T>
Requirement
required
Name
return
Kind
return value
Type
RunCommand<GridCommand, GridEvent>
Requirement
n/a
DeclarationView source
createGridRowProjectionCachets
declare function createGridRowProjectionCache<T>(): GridRowProjectionCache<T>;
Name
Kind
Type
Requirement
return
return value
GridRowProjectionCache<T>
n/a
Name
return
Kind
return value
Type
GridRowProjectionCache<T>
Requirement
n/a

exportGridCSV

function
DeclarationView source
exportGridCSVts
declare function exportGridCSV<T>(projection: GridRowProjection<T>, columnDefs: readonly GridColumnDef<T>[], options?: {
readonly includeHeader?: boolean;
readonly delimiter?: string;
}): string;
Name
Kind
Type
Requirement
projection
parameter
GridRowProjection<T>
required
columnDefs
parameter
readonly GridColumnDef<T>[]
required
options
parameter
{ readonly includeHeader?: boolean; readonly delimiter?: string; }
optional
return
return value
string
n/a
Name
projection
Kind
parameter
Type
GridRowProjection<T>
Requirement
required
Name
columnDefs
Kind
parameter
Type
readonly GridColumnDef<T>[]
Requirement
required
Name
options
Kind
parameter
Type
{ readonly includeHeader?: boolean; readonly delimiter?: string; }
Requirement
optional
Name
return
Kind
return value
Type
string
Requirement
n/a
DeclarationView source
GRID_ROW_HEIGHTts
export declare const GRID_ROW_HEIGHT: 44;
DeclarationView source
GRID_SELECTION_COLUMN_WIDTHts
export declare const GRID_SELECTION_COLUMN_WIDTH: 44;
DeclarationView source
GRID_VIEWPORT_HEIGHTts
export declare const GRID_VIEWPORT_HEIGHT: 352;

gridAnatomy

value
DeclarationView source
gridAnatomyts
export declare const gridAnatomy: {
readonly scope: "grid";
readonly parts: readonly ["root", "scroller", "content", "header", "header-row", "header-cell", "column-resize-handle", "column-menu-trigger", "body", "row", "group-row", "group-toggle", "cell", "cell-editor", "select-all", "row-checkbox", "quick-filter-input", "column-filter-panel", "overlay", "live-region"];
};
Name
Kind
Type
Requirement
parts
property
readonly ["root", "scroller", "content", "header", "header-row", "header-cell", "column-resize-handle", "column-menu-trigger", "body", "row", "group-row", "group-toggle", "cell", "cell-editor", "select-all", "row-checkbox", "quick-filter-input", "column-filter-panel", "overlay", "live-region"]
required
scope
property
"grid"
required
Name
parts
Kind
property
Type
readonly ["root", "scroller", "content", "header", "header-row", "header-cell", "column-resize-handle", "column-menu-trigger", "body", "row", "group-row", "group-toggle", "cell", "cell-editor", "select-all", "row-checkbox", "quick-filter-input", "column-filter-panel", "overlay", "live-region"]
Requirement
required
Name
scope
Kind
property
Type
"grid"
Requirement
required

GridApi

interface
DeclarationView source
GridApits
interface GridApi<T = unknown> {
rootProps(): PartProps;
scrollerProps(): PartProps;
contentProps(): PartProps;
headerProps(): PartProps;
headerRowProps(): PartProps;
selectionHeaderProps(): PartProps;
headerCellProps(columnKey: string): PartProps;
columnResizeHandleProps(columnKey: string): PartProps;
columnMenuTriggerProps(columnKey: string): PartProps;
bodyProps(): PartProps;
rowProps(rowId: string, index: number): PartProps;
groupRowProps(groupKey: string, index: number): PartProps;
groupToggleProps(groupKey: string): PartProps;
selectionCellProps(rowId: string): PartProps;
cellProps(rowId: string, columnKey: string, columnIndex: number): PartProps;
cellEditorProps(rowId: string, columnKey: string): PartProps;
selectAllProps(): PartProps;
rowCheckboxProps(rowId: string): PartProps;
quickFilterInputProps(): PartProps;
columnFilterPanelProps(columnKey: string): PartProps;
overlayProps(kind: "loading" | "empty" | "error"): PartProps;
liveRegionProps(): PartProps;
columnDefs: readonly GridColumnDef<T>[];
columnProjection(): GridColumnProjection<T>;
projection(): GridRowProjection<T>;
rowIdDiagnostics(): readonly DiagnosticObject[];
readonly selectionMode: SelectionMode;
readonly selectedIds: readonly string[];
}
Name
Kind
Type
Requirement
bodyProps
method
() => PartProps
required
cellEditorProps
method
(rowId: string, columnKey: string) => PartProps
required
cellProps
method
(rowId: string, columnKey: string, columnIndex: number) => PartProps
required
columnDefs
property
readonly GridColumnDef<T>[]
required
columnFilterPanelProps
method
(columnKey: string) => PartProps
required
columnMenuTriggerProps
method
(columnKey: string) => PartProps
required
columnProjection
method
() => GridColumnProjection<T>
required
columnResizeHandleProps
method
(columnKey: string) => PartProps
required
contentProps
method
() => PartProps
required
groupRowProps
method
(groupKey: string, index: number) => PartProps
required
groupToggleProps
method
(groupKey: string) => PartProps
required
headerCellProps
method
(columnKey: string) => PartProps
required
headerProps
method
() => PartProps
required
headerRowProps
method
() => PartProps
required
Name
bodyProps
Kind
method
Type
() => PartProps
Requirement
required
Name
cellEditorProps
Kind
method
Type
(rowId: string, columnKey: string) => PartProps
Requirement
required
Name
cellProps
Kind
method
Type
(rowId: string, columnKey: string, columnIndex: number) => PartProps
Requirement
required
Name
columnDefs
Kind
property
Type
readonly GridColumnDef<T>[]
Requirement
required
Name
columnFilterPanelProps
Kind
method
Type
(columnKey: string) => PartProps
Requirement
required
Name
columnMenuTriggerProps
Kind
method
Type
(columnKey: string) => PartProps
Requirement
required
Name
columnProjection
Kind
method
Type
() => GridColumnProjection<T>
Requirement
required
Name
columnResizeHandleProps
Kind
method
Type
(columnKey: string) => PartProps
Requirement
required
Name
contentProps
Kind
method
Type
() => PartProps
Requirement
required
Name
groupRowProps
Kind
method
Type
(groupKey: string, index: number) => PartProps
Requirement
required
Name
groupToggleProps
Kind
method
Type
(groupKey: string) => PartProps
Requirement
required
Name
headerCellProps
Kind
method
Type
(columnKey: string) => PartProps
Requirement
required
Name
headerProps
Kind
method
Type
() => PartProps
Requirement
required
Name
headerRowProps
Kind
method
Type
() => PartProps
Requirement
required
Name
liveRegionProps
Kind
method
Type
() => PartProps
Requirement
required
Name
overlayProps
Kind
method
Type
(kind: "loading" | "empty" | "error") => PartProps
Requirement
required
Name
projection
Kind
method
Type
() => GridRowProjection<T>
Requirement
required
Name
quickFilterInputProps
Kind
method
Type
() => PartProps
Requirement
required
Name
rootProps
Kind
method
Type
() => PartProps
Requirement
required
Name
rowCheckboxProps
Kind
method
Type
(rowId: string) => PartProps
Requirement
required
Name
rowIdDiagnostics
Kind
method
Type
() => readonly DiagnosticObject[]
Requirement
required
Name
rowProps
Kind
method
Type
(rowId: string, index: number) => PartProps
Requirement
required
Name
scrollerProps
Kind
method
Type
() => PartProps
Requirement
required
Name
selectAllProps
Kind
method
Type
() => PartProps
Requirement
required
Name
selectedIds
Kind
property
Type
readonly string[]
Requirement
required
Name
selectionCellProps
Kind
method
Type
(rowId: string) => PartProps
Requirement
required
Name
selectionHeaderProps
Kind
method
Type
() => PartProps
Requirement
required
Name
selectionMode
Kind
property
Type
SelectionMode
Requirement
required

gridCellParams

function
DeclarationView source
gridCellParamsts
declare function gridCellParams<T>(service: GridService<T>, options: GridConnectOptions<T>, row: T, rowId: string, column: GridColumnDef<T>): GridCellParams<T>;
Name
Kind
Type
Requirement
service
parameter
GridService<T>
required
options
parameter
GridConnectOptions<T>
required
row
parameter
T
required
rowId
parameter
string
required
column
parameter
GridColumnDef<T>
required
return
return value
GridCellParams<T>
n/a
Name
service
Kind
parameter
Type
GridService<T>
Requirement
required
Name
options
Kind
parameter
Type
GridConnectOptions<T>
Requirement
required
Name
row
Kind
parameter
Type
T
Requirement
required
Name
rowId
Kind
parameter
Type
string
Requirement
required
Name
column
Kind
parameter
Type
GridColumnDef<T>
Requirement
required
Name
return
Kind
return value
Type
GridCellParams<T>
Requirement
n/a
DeclarationView source
GridCellValidationts
type GridCellValidation = boolean | {
readonly valid: boolean;
readonly message?: string;
};
DeclarationView source
GridColumnProjectionts
type GridColumnProjection<T = unknown> = {
readonly columns: readonly GridColumnDef<T>[];
readonly widths: Readonly<Record<string, number>>;
readonly pinnedOffsets: Readonly<Record<string, number>>;
readonly gridTemplateColumns: string;
};
Name
Kind
Type
Requirement
columns
property
readonly GridColumnDef<T>[]
required
gridTemplateColumns
property
string
required
pinnedOffsets
property
Readonly<Record<string, number>>
required
widths
property
Readonly<Record<string, number>>
required
Name
columns
Kind
property
Type
readonly GridColumnDef<T>[]
Requirement
required
Name
gridTemplateColumns
Kind
property
Type
string
Requirement
required
Name
pinnedOffsets
Kind
property
Type
Readonly<Record<string, number>>
Requirement
required
Name
widths
Kind
property
Type
Readonly<Record<string, number>>
Requirement
required
DeclarationView source
GridConnectOptionsts
type GridConnectOptions<T = unknown> = GridCommonOptions<T> & GridRowsInput<T>;
DeclarationView source
GridDataSourcets
type GridDataSource<T> = (query: GridRemoteQuery, tools: {
readonly signal: AbortSignal;
}) => PromiseLike<{
readonly rows: readonly T[];
readonly total?: number;
readonly nextCursor?: import("@grassroot/statechart").JsonValue | null;
}>;
DeclarationView source
GridEditCommitDetailts
interface GridEditCommitDetail<T = unknown> {
readonly rowId: string;
readonly colKey: string;
readonly value: unknown;
readonly previousValue: unknown;
readonly reason: string;
readonly row?: T;
readonly column?: GridColumnDef<T>;
}
Name
Kind
Type
Requirement
colKey
property
string
required
column
property
GridColumnDef<T>
optional
previousValue
property
unknown
required
reason
property
string
required
row
property
T
optional
rowId
property
string
required
value
property
unknown
required
Name
colKey
Kind
property
Type
string
Requirement
required
Name
column
Kind
property
Type
GridColumnDef<T>
Requirement
optional
Name
previousValue
Kind
property
Type
unknown
Requirement
required
Name
reason
Kind
property
Type
string
Requirement
required
Name
row
Kind
property
Type
T
Requirement
optional
Name
rowId
Kind
property
Type
string
Requirement
required
Name
value
Kind
property
Type
unknown
Requirement
required

GridGroup

type
DeclarationView source
GridGroupts
type GridGroup<T> = {
readonly key: string;
readonly level: number;
readonly ids: readonly string[];
readonly rows: readonly T[];
};
Name
Kind
Type
Requirement
ids
property
readonly string[]
required
key
property
string
required
level
property
number
required
rows
property
readonly T[]
required
Name
ids
Kind
property
Type
readonly string[]
Requirement
required
Name
key
Kind
property
Type
string
Requirement
required
Name
level
Kind
property
Type
number
Requirement
required
Name
rows
Kind
property
Type
readonly T[]
Requirement
required
DeclarationView source
gridKeyboardEventts
declare function gridKeyboardEvent(event: GridKeyboardEventLike, position: GridKeyboardPosition, rowCount: number, columnCount: number): GridKeyboardResult | null;
Name
Kind
Type
Requirement
event
parameter
GridKeyboardEventLike
required
position
parameter
GridKeyboardPosition
required
rowCount
parameter
number
required
columnCount
parameter
number
required
return
return value
GridKeyboardResult | null
n/a
Name
event
Kind
parameter
Type
GridKeyboardEventLike
Requirement
required
Name
position
Kind
parameter
Type
GridKeyboardPosition
Requirement
required
Name
rowCount
Kind
parameter
Type
number
Requirement
required
Name
columnCount
Kind
parameter
Type
number
Requirement
required
Name
return
Kind
return value
Type
GridKeyboardResult | null
Requirement
n/a
DeclarationView source
GridKeyboardEventLikets
type GridKeyboardEventLike = {
readonly key?: string;
readonly ctrlKey?: boolean;
readonly metaKey?: boolean;
readonly shiftKey?: boolean;
preventDefault?: () => void;
};
Name
Kind
Type
Requirement
ctrlKey
property
boolean
optional
key
property
string
optional
metaKey
property
boolean
optional
preventDefault
property
() => void
optional
shiftKey
property
boolean
optional
Name
ctrlKey
Kind
property
Type
boolean
Requirement
optional
Name
key
Kind
property
Type
string
Requirement
optional
Name
metaKey
Kind
property
Type
boolean
Requirement
optional
Name
preventDefault
Kind
property
Type
() => void
Requirement
optional
Name
shiftKey
Kind
property
Type
boolean
Requirement
optional
DeclarationView source
GridKeyboardPositionts
type GridKeyboardPosition = {
readonly rowIndex: number;
readonly columnIndex: number;
};
Name
Kind
Type
Requirement
columnIndex
property
number
required
rowIndex
property
number
required
Name
columnIndex
Kind
property
Type
number
Requirement
required
Name
rowIndex
Kind
property
Type
number
Requirement
required
DeclarationView source
GridKeyboardResultts
type GridKeyboardResult = {
readonly direction: GridFocusDirection;
readonly extend?: boolean;
};
Name
Kind
Type
Requirement
direction
property
GridFocusDirection
required
extend
property
boolean
optional
Name
direction
Kind
property
Type
GridFocusDirection
Requirement
required
Name
extend
Kind
property
Type
boolean
Requirement
optional

GridMount

interface
DeclarationView source
GridMountts
interface GridMount<T> {
destroy(): void;
service: ReturnType<typeof createService>;
api: GridApi<T>;
remote?: GridRemoteRows<T>;
}
Name
Kind
Type
Requirement
api
property
GridApi<T>
required
destroy
method
() => void
required
remote
property
GridRemoteRows<T>
optional
service
property
ReturnType<typeof createService>
required
Name
api
Kind
property
Type
GridApi<T>
Requirement
required
Name
destroy
Kind
method
Type
() => void
Requirement
required
Name
remote
Kind
property
Type
GridRemoteRows<T>
Requirement
optional
Name
service
Kind
property
Type
ReturnType<typeof createService>
Requirement
required

GridPart

type
DeclarationView source
GridPartts
type GridPart = (typeof parts)[number];

gridProjection

function
DeclarationView source
gridProjectionts
declare function gridProjection<T>(service: GridService<T>, options: GridConnectOptions<T>, remoteSnapshot?: GridRemoteSnapshot<T> | (() => GridRemoteSnapshot<T>)): GridRowProjection<T>;
Name
Kind
Type
Requirement
service
parameter
GridService<T>
required
options
parameter
GridConnectOptions<T>
required
remoteSnapshot
parameter
GridRemoteSnapshot<T> | (() => GridRemoteSnapshot<T>)
optional
return
return value
GridRowProjection<T>
n/a
Name
service
Kind
parameter
Type
GridService<T>
Requirement
required
Name
options
Kind
parameter
Type
GridConnectOptions<T>
Requirement
required
Name
remoteSnapshot
Kind
parameter
Type
GridRemoteSnapshot<T> | (() => GridRemoteSnapshot<T>)
Requirement
optional
Name
return
Kind
return value
Type
GridRowProjection<T>
Requirement
n/a
DeclarationView source
GridRemoteRowsts
type GridRemoteRows<T> = {
readonly getSnapshot: () => GridRemoteSnapshot<T>;
readonly subscribe: (listener: () => void) => () => void;
readonly begin: (request: GridRemoteQuery) => boolean;
readonly handleCommand: (command: GridRemoteCommand) => boolean;
readonly covers: (range: {
readonly start: number;
readonly end: number;
}) => boolean;
readonly nextAppendRequest: () => GridRemoteQuery | null;
readonly selectWindow: (range: {
readonly start: number;
readonly end: number;
}) => void;
readonly destroy: () => void;
};
Name
Kind
Type
Requirement
begin
property
(request: GridRemoteQuery) => boolean
required
covers
property
(range: { readonly start: number; readonly end: number; }) => boolean
required
destroy
property
() => void
required
getSnapshot
property
() => GridRemoteSnapshot<T>
required
handleCommand
property
(command: GridRemoteCommand) => boolean
required
nextAppendRequest
property
() => GridRemoteQuery | null
required
selectWindow
property
(range: { readonly start: number; readonly end: number; }) => void
required
subscribe
property
(listener: () => void) => () => void
required
Name
begin
Kind
property
Type
(request: GridRemoteQuery) => boolean
Requirement
required
Name
covers
Kind
property
Type
(range: { readonly start: number; readonly end: number; }) => boolean
Requirement
required
Name
destroy
Kind
property
Type
() => void
Requirement
required
Name
getSnapshot
Kind
property
Type
() => GridRemoteSnapshot<T>
Requirement
required
Name
handleCommand
Kind
property
Type
(command: GridRemoteCommand) => boolean
Requirement
required
Name
nextAppendRequest
Kind
property
Type
() => GridRemoteQuery | null
Requirement
required
Name
selectWindow
Kind
property
Type
(range: { readonly start: number; readonly end: number; }) => void
Requirement
required
Name
subscribe
Kind
property
Type
(listener: () => void) => () => void
Requirement
required
DeclarationView source
GridRemoteRowsOptionsts
type GridRemoteRowsOptions<T> = {
readonly rowModel: "server" | "infinite";
readonly getRowId: (row: T, absoluteIndex: number) => string;
readonly blockSize?: number;
readonly initialRows?: readonly T[];
readonly initialTotal?: number;
readonly onDiagnostic?: (diagnostic: DiagnosticObject) => void;
};
Name
Kind
Type
Requirement
blockSize
property
number
optional
getRowId
property
(row: T, absoluteIndex: number) => string
required
initialRows
property
readonly T[]
optional
initialTotal
property
number
optional
onDiagnostic
property
(diagnostic: DiagnosticObject) => void
optional
rowModel
property
"server" | "infinite"
required
Name
blockSize
Kind
property
Type
number
Requirement
optional
Name
getRowId
Kind
property
Type
(row: T, absoluteIndex: number) => string
Requirement
required
Name
initialRows
Kind
property
Type
readonly T[]
Requirement
optional
Name
initialTotal
Kind
property
Type
number
Requirement
optional
Name
onDiagnostic
Kind
property
Type
(diagnostic: DiagnosticObject) => void
Requirement
optional
Name
rowModel
Kind
property
Type
"server" | "infinite"
Requirement
required
DeclarationView source
GridRemoteRunCommandOptionsts
type GridRemoteRunCommandOptions<T> = {
readonly dataSource: GridDataSource<T>;
readonly sidecar: GridRemoteRows<T>;
readonly scheduler?: Scheduler;
readonly next?: RunCommand<GridCommand, GridEvent>;
readonly onDiagnostic?: (diagnostic: DiagnosticObject) => void;
};
Name
Kind
Type
Requirement
dataSource
property
GridDataSource<T>
required
next
property
RunCommand<GridCommand, GridEvent>
optional
onDiagnostic
property
(diagnostic: DiagnosticObject) => void
optional
scheduler
property
Scheduler
optional
sidecar
property
GridRemoteRows<T>
required
Name
dataSource
Kind
property
Type
GridDataSource<T>
Requirement
required
Name
next
Kind
property
Type
RunCommand<GridCommand, GridEvent>
Requirement
optional
Name
onDiagnostic
Kind
property
Type
(diagnostic: DiagnosticObject) => void
Requirement
optional
Name
scheduler
Kind
property
Type
Scheduler
Requirement
optional
Name
sidecar
Kind
property
Type
GridRemoteRows<T>
Requirement
required
DeclarationView source
GridRemoteSnapshotts
type GridRemoteSnapshot<T> = {
readonly rows: readonly T[];
/** Absolute index represented by rows[0] for a server virtual window. */
readonly baseIndex?: number;
readonly total?: number;
readonly nextCursor?: import("@grassroot/statechart").JsonValue | null;
readonly status: GridRemoteStatus;
readonly error?: unknown;
readonly loadedRanges: readonly {
readonly start: number;
readonly end: number;
}[];
readonly lastRequest?: GridRemoteQuery;
};
Name
Kind
Type
Requirement
Description
baseIndex
property
number
optional
Absolute index represented by rows[0] for a server virtual window.
error
property
unknown
optional
lastRequest
property
GridRemoteQuery
optional
loadedRanges
property
readonly { readonly start: number; readonly end: number; }[]
required
nextCursor
property
import("@grassroot/statechart").JsonValue | null
optional
rows
property
readonly T[]
required
status
property
GridRemoteStatus
required
total
property
number
optional
Name
baseIndex
Kind
property
Type
number
Requirement
optional
Description
Absolute index represented by rows[0] for a server virtual window.
Name
error
Kind
property
Type
unknown
Requirement
optional
Description
Name
lastRequest
Kind
property
Type
GridRemoteQuery
Requirement
optional
Description
Name
loadedRanges
Kind
property
Type
readonly { readonly start: number; readonly end: number; }[]
Requirement
required
Description
Name
nextCursor
Kind
property
Type
import("@grassroot/statechart").JsonValue | null
Requirement
optional
Description
Name
rows
Kind
property
Type
readonly T[]
Requirement
required
Description
Name
status
Kind
property
Type
GridRemoteStatus
Requirement
required
Description
Name
total
Kind
property
Type
number
Requirement
optional
Description
DeclarationView source
GridRemoteStatusts
type GridRemoteStatus = "idle" | "loading" | "refreshing" | "loading-more" | "error";

Turns a real virtual window into the one serializable Grid event adapters may send.

DeclarationView source
gridRemoteWindowEventts
declare function gridRemoteWindowEvent<T>(options: {
readonly rowModel: "server" | "infinite";
readonly mode?: "virtualized" | "paginated";
readonly sidecar: GridRemoteRows<T>;
readonly start: number;
readonly end: number;
readonly loadMoreThreshold?: number;
}): GridEvent | null;
Name
Kind
Type
Requirement
options
parameter
{ readonly rowModel: "server" | "infinite"; readonly mode?: "virtualized" | "paginated"; readonly sidecar: GridRemoteRows<T>; readonly start: number; readonly end: number; readonly loadMoreThreshold?: number; }
required
return
return value
GridEvent | null
n/a
Name
options
Kind
parameter
Type
{ readonly rowModel: "server" | "infinite"; readonly mode?: "virtualized" | "paginated"; readonly sidecar: GridRemoteRows<T>; readonly start: number; readonly end: number; readonly loadMoreThreshold?: number; }
Requirement
required
Name
return
Kind
return value
Type
GridEvent | null
Requirement
n/a
DeclarationView source
GridRowProjectionts
type GridRowProjection<T> = {
readonly orderedIds: readonly string[];
readonly rowsById: ReadonlyMap<string, T>;
readonly groups: readonly GridGroup<T>[];
readonly aggregates: ReadonlyMap<string, Readonly<Record<string, number>>>;
readonly total: number;
/** Absolute index represented by orderedIds[0]; zero for client and infinite rows. */
readonly baseIndex?: number;
readonly rowIndexById?: ReadonlyMap<string, number>;
readonly cache?: GridRowProjectionCache<T>;
};
Name
Kind
Type
Requirement
Description
aggregates
property
ReadonlyMap<string, Readonly<Record<string, number>>>
required
baseIndex
property
number
optional
Absolute index represented by orderedIds[0]; zero for client and infinite rows.
cache
property
GridRowProjectionCache<T>
optional
groups
property
readonly GridGroup<T>[]
required
orderedIds
property
readonly string[]
required
rowIndexById
property
ReadonlyMap<string, number>
optional
rowsById
property
ReadonlyMap<string, T>
required
total
property
number
required
Name
aggregates
Kind
property
Type
ReadonlyMap<string, Readonly<Record<string, number>>>
Requirement
required
Description
Name
baseIndex
Kind
property
Type
number
Requirement
optional
Description
Absolute index represented by orderedIds[0]; zero for client and infinite rows.
Name
cache
Kind
property
Type
GridRowProjectionCache<T>
Requirement
optional
Description
Name
groups
Kind
property
Type
readonly GridGroup<T>[]
Requirement
required
Description
Name
orderedIds
Kind
property
Type
readonly string[]
Requirement
required
Description
Name
rowIndexById
Kind
property
Type
ReadonlyMap<string, number>
Requirement
optional
Description
Name
rowsById
Kind
property
Type
ReadonlyMap<string, T>
Requirement
required
Description
Name
total
Kind
property
Type
number
Requirement
required
Description
DeclarationView source
GridRowProjectionCachets
interface GridRowProjectionCache<T> {
rows?: readonly T[];
model?: GridRowProjectionModel<T>;
projection?: GridRowProjection<T>;
}
Name
Kind
Type
Requirement
model
property
GridRowProjectionModel<T>
optional
projection
property
GridRowProjection<T>
optional
rows
property
readonly T[]
optional
Name
model
Kind
property
Type
GridRowProjectionModel<T>
Requirement
optional
Name
projection
Kind
property
Type
GridRowProjection<T>
Requirement
optional
Name
rows
Kind
property
Type
readonly T[]
Requirement
optional
DeclarationView source
GridRowProjectionModelts
type GridRowProjectionModel<T> = {
readonly filterModel: GridFilterModel;
readonly sortModel: readonly GridSortEntry[];
readonly groupModel: {
readonly groupBy: readonly string[];
readonly expandedGroupKeys: readonly string[];
readonly aggFor?: Readonly<Record<string, "sum" | "avg" | "count" | "min" | "max" | "custom">>;
};
readonly getRowId: (row: T, index: number) => string;
readonly columnDefs: readonly GridColumnDef<T>[];
readonly page?: {
readonly page: number;
readonly pageSize: number;
};
readonly customFilters?: Readonly<Record<string, (row: T, value: unknown) => boolean>>;
};
Name
Kind
Type
Requirement
columnDefs
property
readonly GridColumnDef<T>[]
required
customFilters
property
Readonly<Record<string, (row: T, value: unknown) => boolean>>
optional
filterModel
property
GridFilterModel
required
getRowId
property
(row: T, index: number) => string
required
groupModel
property
{ readonly groupBy: readonly string[]; readonly expandedGroupKeys: readonly string[]; readonly aggFor?: Readonly<Record<string, "sum" | "avg" | "count" | "min" | "max" | "custom">>; }
required
page
property
{ readonly page: number; readonly pageSize: number; }
optional
sortModel
property
readonly GridSortEntry[]
required
Name
columnDefs
Kind
property
Type
readonly GridColumnDef<T>[]
Requirement
required
Name
customFilters
Kind
property
Type
Readonly<Record<string, (row: T, value: unknown) => boolean>>
Requirement
optional
Name
filterModel
Kind
property
Type
GridFilterModel
Requirement
required
Name
getRowId
Kind
property
Type
(row: T, index: number) => string
Requirement
required
Name
groupModel
Kind
property
Type
{ readonly groupBy: readonly string[]; readonly expandedGroupKeys: readonly string[]; readonly aggFor?: Readonly<Record<string, "sum" | "avg" | "count" | "min" | "max" | "custom">>; }
Requirement
required
Name
page
Kind
property
Type
{ readonly page: number; readonly pageSize: number; }
Requirement
optional
Name
sortModel
Kind
property
Type
readonly GridSortEntry[]
Requirement
required
DeclarationView source
GridServicets
type GridService<T = unknown> = Service<GridInput<T>, "ready", GridContext, GridEvent, GridCommand>;

gridValue

function
DeclarationView source
gridValuets
declare function gridValue<T>(row: T, column: GridColumnDef<T>): unknown;
Name
Kind
Type
Requirement
row
parameter
T
required
column
parameter
GridColumnDef<T>
required
return
return value
unknown
n/a
Name
row
Kind
parameter
Type
T
Requirement
required
Name
column
Kind
parameter
Type
GridColumnDef<T>
Requirement
required
Name
return
Kind
return value
Type
unknown
Requirement
n/a

mountGrid

function
DeclarationView source
mountGridts
declare function mountGrid<T>(container: HTMLElement, options: MountGridOptions<T>): GridMount<T>;
Name
Kind
Type
Requirement
container
parameter
HTMLElement
required
options
parameter
MountGridOptions<T>
required
return
return value
GridMount<T>
n/a
Name
container
Kind
parameter
Type
HTMLElement
Requirement
required
Name
options
Kind
parameter
Type
MountGridOptions<T>
Requirement
required
Name
return
Kind
return value
Type
GridMount<T>
Requirement
n/a
DeclarationView source
MountGridOptionsts
type MountGridOptions<T> = GridConnectOptions<T> & {
readonly input?: Parameters<typeof gridMachine.initial>[0];
readonly seed?: string;
};
Name
Kind
Type
Requirement
input
property
Parameters<typeof gridMachine.initial>[0]
optional
seed
property
string
optional
Name
input
Kind
property
Type
Parameters<typeof gridMachine.initial>[0]
Requirement
optional
Name
seed
Kind
property
Type
string
Requirement
optional

projectColumns

function
DeclarationView source
projectColumnsts
declare function projectColumns<T>(columnDefs: readonly GridColumnDef<T>[], columnState: GridColumnState): GridColumnProjection<T>;
Name
Kind
Type
Requirement
columnDefs
parameter
readonly GridColumnDef<T>[]
required
columnState
parameter
GridColumnState
required
return
return value
GridColumnProjection<T>
n/a
Name
columnDefs
Kind
parameter
Type
readonly GridColumnDef<T>[]
Requirement
required
Name
columnState
Kind
parameter
Type
GridColumnState
Requirement
required
Name
return
Kind
return value
Type
GridColumnProjection<T>
Requirement
n/a

Remote rows are already sorted, filtered and paged by their source.

DeclarationView source
projectRemoteRowsts
declare function projectRemoteRows<T>(rows: readonly T[], options: {
readonly getRowId: (row: T, absoluteIndex: number) => string;
readonly baseIndex?: number;
readonly total: number;
}): GridRowProjection<T>;
Name
Kind
Type
Requirement
rows
parameter
readonly T[]
required
options
parameter
{ readonly getRowId: (row: T, absoluteIndex: number) => string; readonly baseIndex?: number; readonly total: number; }
required
return
return value
GridRowProjection<T>
n/a
Name
rows
Kind
parameter
Type
readonly T[]
Requirement
required
Name
options
Kind
parameter
Type
{ readonly getRowId: (row: T, absoluteIndex: number) => string; readonly baseIndex?: number; readonly total: number; }
Requirement
required
Name
return
Kind
return value
Type
GridRowProjection<T>
Requirement
n/a

projectRows

function
DeclarationView source
projectRowsts
declare function projectRows<T>(rows: readonly T[], model: GridRowProjectionModel<T>, cache?: GridRowProjectionCache<T>): GridRowProjection<T>;
Name
Kind
Type
Requirement
rows
parameter
readonly T[]
required
model
parameter
GridRowProjectionModel<T>
required
cache
parameter
GridRowProjectionCache<T>
optional
return
return value
GridRowProjection<T>
n/a
Name
rows
Kind
parameter
Type
readonly T[]
Requirement
required
Name
model
Kind
parameter
Type
GridRowProjectionModel<T>
Requirement
required
Name
cache
Kind
parameter
Type
GridRowProjectionCache<T>
Requirement
optional
Name
return
Kind
return value
Type
GridRowProjection<T>
Requirement
n/a
DeclarationView source
resolveGridKeyboardTargetts
declare function resolveGridKeyboardTarget(result: GridKeyboardResult, position: GridKeyboardPosition, rowCount: number, columnCount: number): GridKeyboardPosition;
Name
Kind
Type
Requirement
result
parameter
GridKeyboardResult
required
position
parameter
GridKeyboardPosition
required
rowCount
parameter
number
required
columnCount
parameter
number
required
return
return value
GridKeyboardPosition
n/a
Name
result
Kind
parameter
Type
GridKeyboardResult
Requirement
required
Name
position
Kind
parameter
Type
GridKeyboardPosition
Requirement
required
Name
rowCount
Kind
parameter
Type
number
Requirement
required
Name
columnCount
Kind
parameter
Type
number
Requirement
required
Name
return
Kind
return value
Type
GridKeyboardPosition
Requirement
n/a

runGridCommand

function
DeclarationView source
runGridCommandts
declare function runGridCommand<T>(command: GridCommand, options: GridConnectOptions<T>, _service: GridService<T>): void;
Name
Kind
Type
Requirement
command
parameter
GridCommand
required
options
parameter
GridConnectOptions<T>
required
_service
parameter
GridService<T>
required
return
return value
void
n/a
Name
command
Kind
parameter
Type
GridCommand
Requirement
required
Name
options
Kind
parameter
Type
GridConnectOptions<T>
Requirement
required
Name
_service
Kind
parameter
Type
GridService<T>
Requirement
required
Name
return
Kind
return value
Type
void
Requirement
n/a
DeclarationView source
validateGridRowIdsts
declare function validateGridRowIds<T>(rows: readonly T[], getRowId: (row: T, index: number) => string): readonly DiagnosticObject[];
Name
Kind
Type
Requirement
rows
parameter
readonly T[]
required
getRowId
parameter
(row: T, index: number) => string
required
return
return value
readonly DiagnosticObject[]
n/a
Name
rows
Kind
parameter
Type
readonly T[]
Requirement
required
Name
getRowId
Kind
parameter
Type
(row: T, index: number) => string
Requirement
required
Name
return
Kind
return value
Type
readonly DiagnosticObject[]
Requirement
n/a
DeclarationView source
VirtualWindowts
type VirtualWindow = {
readonly start: number;
readonly end: number;
readonly offsets: readonly number[];
readonly totalSize: number;
};
Name
Kind
Type
Requirement
end
property
number
required
offsets
property
readonly number[]
required
start
property
number
required
totalSize
property
number
required
Name
end
Kind
property
Type
number
Requirement
required
Name
offsets
Kind
property
Type
readonly number[]
Requirement
required
Name
start
Kind
property
Type
number
Requirement
required
Name
totalSize
Kind
property
Type
number
Requirement
required

Framework adapters

Each panel keeps its adapter's public vocabulary. React compound exports, Vue composables, standalone Angular declarations, Svelte components, and Solid hooks stay native to their framework.

React example follows below.

React imports

@grassroot/ui-headless-react/gridts
import { DataGrid } from "@grassroot/ui-headless-react/grid";

Vue imports

@grassroot/ui-headless-vue/gridts
<script setup lang="ts">
import { DataGrid } from "@grassroot/ui-headless-vue/grid";
</script>

Angular imports

@grassroot/ui-headless-angular/gridts
import { Component } from "@angular/core";
import { GR_GRID_DECLARATIONS } from "@grassroot/ui-headless-angular/grid";
@Component({ standalone: true, imports: [GR_GRID_DECLARATIONS], template: `<!-- compose the grid parts here -->` })
export class Example {}

Svelte imports

@grassroot/ui-headless-svelte/gridts
<script lang="ts">
import { DataGrid } from "@grassroot/ui-headless-svelte/grid";
</script>

Solid imports

@grassroot/ui-headless-solid/gridts
import { DataGrid } from "@grassroot/ui-headless-solid/grid";

@grassroot/ui-headless-react/grid

React adapter

4 exports
View source packages/ui-headless/react/src/grid/index.tsx

DataGrid

function
DeclarationView source
DataGridts
declare function DataGrid<T>(props: DataGridProps<T>): ReactNode;
Name
Kind
Type
Requirement
props
parameter
DataGridProps<T>
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
DataGridProps<T>
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a
DeclarationView source
DataGridPropsts
type DataGridProps<T = unknown> = OmitGridRenderCell<GridConnectOptions<T>> & {
readonly renderCell?: (context: GridCellContext<T>) => ReactNode;
readonly className?: string;
readonly loading?: boolean;
readonly error?: ReactNode;
readonly emptyMessage?: ReactNode;
readonly showQuickFilter?: boolean;
readonly showExportButton?: boolean;
readonly onExportCSV?: (csv: string) => void;
};
Name
Kind
Type
Requirement
className
property
string
optional
emptyMessage
property
ReactNode
optional
error
property
unknown
optional
loading
property
boolean
optional
onExportCSV
property
(csv: string) => void
optional
renderCell
property
(context: GridCellContext<T>) => ReactNode
optional
showExportButton
property
boolean
optional
showQuickFilter
property
boolean
optional
Name
className
Kind
property
Type
string
Requirement
optional
Name
emptyMessage
Kind
property
Type
ReactNode
Requirement
optional
Name
error
Kind
property
Type
unknown
Requirement
optional
Name
loading
Kind
property
Type
boolean
Requirement
optional
Name
onExportCSV
Kind
property
Type
(csv: string) => void
Requirement
optional
Name
renderCell
Kind
property
Type
(context: GridCellContext<T>) => ReactNode
Requirement
optional
Name
showExportButton
Kind
property
Type
boolean
Requirement
optional
Name
showQuickFilter
Kind
property
Type
boolean
Requirement
optional

default

function
DeclarationView source
defaultts
declare function DataGrid<T>(props: DataGridProps<T>): ReactNode;
Name
Kind
Type
Requirement
props
parameter
DataGridProps<T>
required
return
return value
ReactNode
n/a
Name
props
Kind
parameter
Type
DataGridProps<T>
Requirement
required
Name
return
Kind
return value
Type
ReactNode
Requirement
n/a
DeclarationView source
GridCellContextts
type GridCellContext<T = unknown> = {
readonly row: T;
readonly value: unknown;
readonly column: GridColumnDef<T>;
readonly rowIndex: number;
};
Name
Kind
Type
Requirement
column
property
GridColumnDef<T>
required
row
property
T
required
rowIndex
property
number
required
value
property
unknown
required
Name
column
Kind
property
Type
GridColumnDef<T>
Requirement
required
Name
row
Kind
property
Type
T
Requirement
required
Name
rowIndex
Kind
property
Type
number
Requirement
required
Name
value
Kind
property
Type
unknown
Requirement
required

@grassroot/ui-headless-vue/grid

Vue adapter

3 exports
View source packages/ui-headless/vue/src/grid/index.ts

DataGrid

value
DeclarationView source
DataGridts
export declare const DataGrid: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
rowData: {
type: PropType<readonly unknown[]>;
default: () => never[];
};
rowModel: {
type: PropType<"client" | "server" | "infinite">;
default: string;
};
dataSource: {
type: PropType<NonNullable<GridConnectOptions<unknown> extends (infer O) ? O extends {
dataSource: infer D;
} ? D : never : never>>;
default: undefined;
};
initialRowData: {
type: PropType<readonly unknown[]>;
default: undefined;
};
initialRowCount: {
type: NumberConstructor;
default: undefined;
};
blockSize: {
type: NumberConstructor;
default: undefined;
};
loadMoreThreshold: {
type: NumberConstructor;
default: undefined;
};
columnDefs: {
type: PropType<readonly GridColumnDef<unknown>[]>;
default: () => never[];
};
getRowId: {
type: PropType<(row: unknown, index: number) => string>;
required: true;
};
caption: {
type: StringConstructor;
default: string;
};
selectionMode: {
type: PropType<SelectionMode>;
default: string;
};
selectedIds: {
type: PropType<readonly string[]>;
default: undefined;
};
defaultSelectedIds: {
type: PropType<readonly string[]>;
default: undefined;
};
filterModel: {
type: PropType<GridFilterModel>;
default: undefined;
};
defaultFilterModel: {
type: PropType<GridFilterModel>;
default: undefined;
};
groupBy: {
type: PropType<readonly string[]>;
default: undefined;
};
defaultGroupBy: {
type: PropType<readonly string[]>;
default: undefined;
};
aggFor: {
type: PropType<Record<string, "sum" | "avg" | "count" | "min" | "max" | "custom">>;
default: undefined;
};
mode: {
type: PropType<"virtualized" | "paginated">;
default: string;
};
pagination: {
type: PropType<{
total: number;
pageSize: number;
page?: number;
defaultPage?: number;
}>;
default: undefined;
};
onSelectedIdsChange: {
type: PropType<(detail: SelectionChangeDetail) => void>;
default: undefined;
};
onSortModelChange: {
type: PropType<(sortModel: readonly {
readonly key: string;
readonly dir: "asc" | "desc";
}[]) => void>;
default: undefined;
};
onFilterModelChange: {
type: PropType<(filterModel: GridFilterModel) => void>;
default: undefined;
};
onGroupByChange: {
type: PropType<(groupBy: readonly string[]) => void>;
default: undefined;
};
onPageChange: {
type: PropType<(page: number) => void>;
default: undefined;
};
onEditCommit: {
type: PropType<NonNullable<GridConnectOptions<unknown>["onEditCommit"]>>;
default: undefined;
};
onEditCancel: {
type: PropType<NonNullable<GridConnectOptions<unknown>["onEditCancel"]>>;
default: undefined;
};
onColumnStateChange: {
type: PropType<NonNullable<GridConnectOptions<unknown>["onColumnStateChange"]>>;
default: undefined;
};
renderCell: {
type: PropType<NonNullable<GridConnectOptions<unknown>["renderCell"]>>;
default: undefined;
};
loading: {
type: BooleanConstructor;
default: boolean;
};
error: {
type: PropType<unknown>;
default: undefined;
};
emptyMessage: {
type: PropType<unknown>;
default: string;
};
showQuickFilter: {
type: BooleanConstructor;
default: boolean;
};
showExportButton: {
type: BooleanConstructor;
default: boolean;
};
ssrRowCount: {
type: NumberConstructor;
default: undefined;
};
className: {
type: StringConstructor;
default: undefined;
};
onExportCSV: {
type: PropType<(csv: string) => void>;
default: undefined;
};
validateCell: {
type: PropType<GridConnectOptions<unknown>["validateCell"]>;
default: undefined;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
selectedIdsChange: (_detail: SelectionChangeDetail) => true;
sortModelChange: (_sortModel: readonly {
readonly key: string;
readonly dir: "asc" | "desc";
}[]) => true;
filterModelChange: (_model: GridFilterModel) => true;
groupByChange: (_groupBy: readonly string[]) => true;
pageChange: (_page: number) => true;
editCommit: (_detail: GridEditCommitDetail<unknown>) => true;
editCancel: (_detail: {
readonly rowId: string;
readonly colKey: string;
}) => true;
columnStateChange: (_columnState: GridColumnState) => true;
exportCSV: (_csv: string) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
rowData: {
type: PropType<readonly unknown[]>;
default: () => never[];
};
rowModel: {
type: PropType<"client" | "server" | "infinite">;
default: string;
};
dataSource: {
type: PropType<NonNullable<GridConnectOptions<unknown> extends (infer O) ? O extends {
dataSource: infer D;
} ? D : never : never>>;
default: undefined;
};
initialRowData: {
type: PropType<readonly unknown[]>;
default: undefined;
};
initialRowCount: {
type: NumberConstructor;
default: undefined;
};
blockSize: {
type: NumberConstructor;
default: undefined;
};
loadMoreThreshold: {
type: NumberConstructor;
default: undefined;
};
columnDefs: {
type: PropType<readonly GridColumnDef<unknown>[]>;
default: () => never[];
};
getRowId: {
type: PropType<(row: unknown, index: number) => string>;
required: true;
};
caption: {
type: StringConstructor;
default: string;
};
selectionMode: {
type: PropType<SelectionMode>;
default: string;
};
selectedIds: {
type: PropType<readonly string[]>;
default: undefined;
};
defaultSelectedIds: {
type: PropType<readonly string[]>;
default: undefined;
};
filterModel: {
type: PropType<GridFilterModel>;
default: undefined;
};
defaultFilterModel: {
type: PropType<GridFilterModel>;
default: undefined;
};
groupBy: {
type: PropType<readonly string[]>;
default: undefined;
};
defaultGroupBy: {
type: PropType<readonly string[]>;
default: undefined;
};
aggFor: {
type: PropType<Record<string, "sum" | "avg" | "count" | "min" | "max" | "custom">>;
default: undefined;
};
mode: {
type: PropType<"virtualized" | "paginated">;
default: string;
};
pagination: {
type: PropType<{
total: number;
pageSize: number;
page?: number;
defaultPage?: number;
}>;
default: undefined;
};
onSelectedIdsChange: {
type: PropType<(detail: SelectionChangeDetail) => void>;
default: undefined;
};
onSortModelChange: {
type: PropType<(sortModel: readonly {
readonly key: string;
readonly dir: "asc" | "desc";
}[]) => void>;
default: undefined;
};
onFilterModelChange: {
type: PropType<(filterModel: GridFilterModel) => void>;
default: undefined;
};
onGroupByChange: {
type: PropType<(groupBy: readonly string[]) => void>;
default: undefined;
};
onPageChange: {
type: PropType<(page: number) => void>;
default: undefined;
};
onEditCommit: {
type: PropType<NonNullable<GridConnectOptions<unknown>["onEditCommit"]>>;
default: undefined;
};
onEditCancel: {
type: PropType<NonNullable<GridConnectOptions<unknown>["onEditCancel"]>>;
default: undefined;
};
onColumnStateChange: {
type: PropType<NonNullable<GridConnectOptions<unknown>["onColumnStateChange"]>>;
default: undefined;
};
renderCell: {
type: PropType<NonNullable<GridConnectOptions<unknown>["renderCell"]>>;
default: undefined;
};
loading: {
type: BooleanConstructor;
default: boolean;
};
error: {
type: PropType<unknown>;
default: undefined;
};
emptyMessage: {
type: PropType<unknown>;
default: string;
};
showQuickFilter: {
type: BooleanConstructor;
default: boolean;
};
showExportButton: {
type: BooleanConstructor;
default: boolean;
};
ssrRowCount: {
type: NumberConstructor;
default: undefined;
};
className: {
type: StringConstructor;
default: undefined;
};
onExportCSV: {
type: PropType<(csv: string) => void>;
default: undefined;
};
validateCell: {
type: PropType<GridConnectOptions<unknown>["validateCell"]>;
default: undefined;
};
}>> & Readonly<{
onColumnStateChange?: ((_columnState: GridColumnState) => any) | undefined;
onEditCancel?: ((_detail: {
readonly rowId: string;
readonly colKey: string;
}) => any) | undefined;
onEditCommit?: ((_detail: GridEditCommitDetail<unknown>) => any) | undefined;
onExportCSV?: ((_csv: string) => any) | undefined;
onFilterModelChange?: ((_model: GridFilterModel) => any) | undefined;
onGroupByChange?: ((_groupBy: readonly string[]) => any) | undefined;
onPageChange?: ((_page: number) => any) | undefined;
onSelectedIdsChange?: ((_detail: SelectionChangeDetail) => any) | undefined;
onSortModelChange?: ((_sortModel: readonly {
readonly key: string;
readonly dir: "asc" | "desc";
}[]) => any) | undefined;
}>, {
rowData: readonly unknown[];
rowModel: "client" | "infinite" | "server";
dataSource: import("@grassroot/ui-headless-core").GridDataSource<unknown>;
initialRowData: readonly unknown[];
initialRowCount: number;
blockSize: number;
loadMoreThreshold: number;
columnDefs: readonly GridColumnDef<unknown>[];
caption: string;
selectionMode: SelectionMode;
selectedIds: readonly string[];
defaultSelectedIds: readonly string[];
filterModel: GridFilterModel;
defaultFilterModel: GridFilterModel;
groupBy: readonly string[];
defaultGroupBy: readonly string[];
aggFor: Record<string, "avg" | "count" | "custom" | "max" | "min" | "sum">;
mode: "paginated" | "virtualized";
pagination: {
total: number;
pageSize: number;
page?: number;
defaultPage?: number;
};
onSelectedIdsChange: (detail: SelectionChangeDetail) => void;
onSortModelChange: (sortModel: readonly {
readonly key: string;
readonly dir: "asc" | "desc";
}[]) => void;
onFilterModelChange: (filterModel: GridFilterModel) => void;
onGroupByChange: (groupBy: readonly string[]) => void;
onPageChange: (page: number) => void;
onEditCommit: (detail: GridEditCommitDetail<unknown>) => void;
onEditCancel: (detail: {
readonly rowId: string;
readonly colKey: string;
}) => void;
onColumnStateChange: (columnState: GridColumnState) => void;
renderCell: (row: unknown, column: GridColumnDef<unknown>) => unknown;
loading: boolean;
error: undefined;
emptyMessage: string;
showQuickFilter: boolean;
showExportButton: boolean;
ssrRowCount: number;
className: string;
onExportCSV: (csv: string) => void;
validateCell: ((value: unknown, params: import("@grassroot/ui-machines/grid").GridCellParams<unknown>) => import("@grassroot/ui-headless-core").GridCellValidation) | undefined;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;
DeclarationView source
DataGridPropsts
type DataGridProps = GridConnectOptions<unknown> & {
readonly className?: string;
readonly loading?: boolean;
readonly error?: unknown;
readonly emptyMessage?: unknown;
readonly showQuickFilter?: boolean;
readonly showExportButton?: boolean;
readonly onExportCSV?: (csv: string) => void;
};
Name
Kind
Type
Requirement
className
property
string
optional
emptyMessage
property
unknown
optional
error
property
unknown
optional
loading
property
boolean
optional
onExportCSV
property
(csv: string) => void
optional
showExportButton
property
boolean
optional
showQuickFilter
property
boolean
optional
Name
className
Kind
property
Type
string
Requirement
optional
Name
emptyMessage
Kind
property
Type
unknown
Requirement
optional
Name
error
Kind
property
Type
unknown
Requirement
optional
Name
loading
Kind
property
Type
boolean
Requirement
optional
Name
onExportCSV
Kind
property
Type
(csv: string) => void
Requirement
optional
Name
showExportButton
Kind
property
Type
boolean
Requirement
optional
Name
showQuickFilter
Kind
property
Type
boolean
Requirement
optional

default

value
DeclarationView source
defaultts
export declare const default: import("vue").DefineComponent<import("vue").ExtractPropTypes<{
rowData: {
type: PropType<readonly unknown[]>;
default: () => never[];
};
rowModel: {
type: PropType<"client" | "server" | "infinite">;
default: string;
};
dataSource: {
type: PropType<NonNullable<GridConnectOptions<unknown> extends (infer O) ? O extends {
dataSource: infer D;
} ? D : never : never>>;
default: undefined;
};
initialRowData: {
type: PropType<readonly unknown[]>;
default: undefined;
};
initialRowCount: {
type: NumberConstructor;
default: undefined;
};
blockSize: {
type: NumberConstructor;
default: undefined;
};
loadMoreThreshold: {
type: NumberConstructor;
default: undefined;
};
columnDefs: {
type: PropType<readonly GridColumnDef<unknown>[]>;
default: () => never[];
};
getRowId: {
type: PropType<(row: unknown, index: number) => string>;
required: true;
};
caption: {
type: StringConstructor;
default: string;
};
selectionMode: {
type: PropType<SelectionMode>;
default: string;
};
selectedIds: {
type: PropType<readonly string[]>;
default: undefined;
};
defaultSelectedIds: {
type: PropType<readonly string[]>;
default: undefined;
};
filterModel: {
type: PropType<GridFilterModel>;
default: undefined;
};
defaultFilterModel: {
type: PropType<GridFilterModel>;
default: undefined;
};
groupBy: {
type: PropType<readonly string[]>;
default: undefined;
};
defaultGroupBy: {
type: PropType<readonly string[]>;
default: undefined;
};
aggFor: {
type: PropType<Record<string, "sum" | "avg" | "count" | "min" | "max" | "custom">>;
default: undefined;
};
mode: {
type: PropType<"virtualized" | "paginated">;
default: string;
};
pagination: {
type: PropType<{
total: number;
pageSize: number;
page?: number;
defaultPage?: number;
}>;
default: undefined;
};
onSelectedIdsChange: {
type: PropType<(detail: SelectionChangeDetail) => void>;
default: undefined;
};
onSortModelChange: {
type: PropType<(sortModel: readonly {
readonly key: string;
readonly dir: "asc" | "desc";
}[]) => void>;
default: undefined;
};
onFilterModelChange: {
type: PropType<(filterModel: GridFilterModel) => void>;
default: undefined;
};
onGroupByChange: {
type: PropType<(groupBy: readonly string[]) => void>;
default: undefined;
};
onPageChange: {
type: PropType<(page: number) => void>;
default: undefined;
};
onEditCommit: {
type: PropType<NonNullable<GridConnectOptions<unknown>["onEditCommit"]>>;
default: undefined;
};
onEditCancel: {
type: PropType<NonNullable<GridConnectOptions<unknown>["onEditCancel"]>>;
default: undefined;
};
onColumnStateChange: {
type: PropType<NonNullable<GridConnectOptions<unknown>["onColumnStateChange"]>>;
default: undefined;
};
renderCell: {
type: PropType<NonNullable<GridConnectOptions<unknown>["renderCell"]>>;
default: undefined;
};
loading: {
type: BooleanConstructor;
default: boolean;
};
error: {
type: PropType<unknown>;
default: undefined;
};
emptyMessage: {
type: PropType<unknown>;
default: string;
};
showQuickFilter: {
type: BooleanConstructor;
default: boolean;
};
showExportButton: {
type: BooleanConstructor;
default: boolean;
};
ssrRowCount: {
type: NumberConstructor;
default: undefined;
};
className: {
type: StringConstructor;
default: undefined;
};
onExportCSV: {
type: PropType<(csv: string) => void>;
default: undefined;
};
validateCell: {
type: PropType<GridConnectOptions<unknown>["validateCell"]>;
default: undefined;
};
}>, () => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
[key: string]: any;
}>, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
selectedIdsChange: (_detail: SelectionChangeDetail) => true;
sortModelChange: (_sortModel: readonly {
readonly key: string;
readonly dir: "asc" | "desc";
}[]) => true;
filterModelChange: (_model: GridFilterModel) => true;
groupByChange: (_groupBy: readonly string[]) => true;
pageChange: (_page: number) => true;
editCommit: (_detail: GridEditCommitDetail<unknown>) => true;
editCancel: (_detail: {
readonly rowId: string;
readonly colKey: string;
}) => true;
columnStateChange: (_columnState: GridColumnState) => true;
exportCSV: (_csv: string) => true;
}, string, import("vue").PublicProps, Readonly<import("vue").ExtractPropTypes<{
rowData: {
type: PropType<readonly unknown[]>;
default: () => never[];
};
rowModel: {
type: PropType<"client" | "server" | "infinite">;
default: string;
};
dataSource: {
type: PropType<NonNullable<GridConnectOptions<unknown> extends (infer O) ? O extends {
dataSource: infer D;
} ? D : never : never>>;
default: undefined;
};
initialRowData: {
type: PropType<readonly unknown[]>;
default: undefined;
};
initialRowCount: {
type: NumberConstructor;
default: undefined;
};
blockSize: {
type: NumberConstructor;
default: undefined;
};
loadMoreThreshold: {
type: NumberConstructor;
default: undefined;
};
columnDefs: {
type: PropType<readonly GridColumnDef<unknown>[]>;
default: () => never[];
};
getRowId: {
type: PropType<(row: unknown, index: number) => string>;
required: true;
};
caption: {
type: StringConstructor;
default: string;
};
selectionMode: {
type: PropType<SelectionMode>;
default: string;
};
selectedIds: {
type: PropType<readonly string[]>;
default: undefined;
};
defaultSelectedIds: {
type: PropType<readonly string[]>;
default: undefined;
};
filterModel: {
type: PropType<GridFilterModel>;
default: undefined;
};
defaultFilterModel: {
type: PropType<GridFilterModel>;
default: undefined;
};
groupBy: {
type: PropType<readonly string[]>;
default: undefined;
};
defaultGroupBy: {
type: PropType<readonly string[]>;
default: undefined;
};
aggFor: {
type: PropType<Record<string, "sum" | "avg" | "count" | "min" | "max" | "custom">>;
default: undefined;
};
mode: {
type: PropType<"virtualized" | "paginated">;
default: string;
};
pagination: {
type: PropType<{
total: number;
pageSize: number;
page?: number;
defaultPage?: number;
}>;
default: undefined;
};
onSelectedIdsChange: {
type: PropType<(detail: SelectionChangeDetail) => void>;
default: undefined;
};
onSortModelChange: {
type: PropType<(sortModel: readonly {
readonly key: string;
readonly dir: "asc" | "desc";
}[]) => void>;
default: undefined;
};
onFilterModelChange: {
type: PropType<(filterModel: GridFilterModel) => void>;
default: undefined;
};
onGroupByChange: {
type: PropType<(groupBy: readonly string[]) => void>;
default: undefined;
};
onPageChange: {
type: PropType<(page: number) => void>;
default: undefined;
};
onEditCommit: {
type: PropType<NonNullable<GridConnectOptions<unknown>["onEditCommit"]>>;
default: undefined;
};
onEditCancel: {
type: PropType<NonNullable<GridConnectOptions<unknown>["onEditCancel"]>>;
default: undefined;
};
onColumnStateChange: {
type: PropType<NonNullable<GridConnectOptions<unknown>["onColumnStateChange"]>>;
default: undefined;
};
renderCell: {
type: PropType<NonNullable<GridConnectOptions<unknown>["renderCell"]>>;
default: undefined;
};
loading: {
type: BooleanConstructor;
default: boolean;
};
error: {
type: PropType<unknown>;
default: undefined;
};
emptyMessage: {
type: PropType<unknown>;
default: string;
};
showQuickFilter: {
type: BooleanConstructor;
default: boolean;
};
showExportButton: {
type: BooleanConstructor;
default: boolean;
};
ssrRowCount: {
type: NumberConstructor;
default: undefined;
};
className: {
type: StringConstructor;
default: undefined;
};
onExportCSV: {
type: PropType<(csv: string) => void>;
default: undefined;
};
validateCell: {
type: PropType<GridConnectOptions<unknown>["validateCell"]>;
default: undefined;
};
}>> & Readonly<{
onColumnStateChange?: ((_columnState: GridColumnState) => any) | undefined;
onEditCancel?: ((_detail: {
readonly rowId: string;
readonly colKey: string;
}) => any) | undefined;
onEditCommit?: ((_detail: GridEditCommitDetail<unknown>) => any) | undefined;
onExportCSV?: ((_csv: string) => any) | undefined;
onFilterModelChange?: ((_model: GridFilterModel) => any) | undefined;
onGroupByChange?: ((_groupBy: readonly string[]) => any) | undefined;
onPageChange?: ((_page: number) => any) | undefined;
onSelectedIdsChange?: ((_detail: SelectionChangeDetail) => any) | undefined;
onSortModelChange?: ((_sortModel: readonly {
readonly key: string;
readonly dir: "asc" | "desc";
}[]) => any) | undefined;
}>, {
rowData: readonly unknown[];
rowModel: "client" | "infinite" | "server";
dataSource: import("@grassroot/ui-headless-core").GridDataSource<unknown>;
initialRowData: readonly unknown[];
initialRowCount: number;
blockSize: number;
loadMoreThreshold: number;
columnDefs: readonly GridColumnDef<unknown>[];
caption: string;
selectionMode: SelectionMode;
selectedIds: readonly string[];
defaultSelectedIds: readonly string[];
filterModel: GridFilterModel;
defaultFilterModel: GridFilterModel;
groupBy: readonly string[];
defaultGroupBy: readonly string[];
aggFor: Record<string, "avg" | "count" | "custom" | "max" | "min" | "sum">;
mode: "paginated" | "virtualized";
pagination: {
total: number;
pageSize: number;
page?: number;
defaultPage?: number;
};
onSelectedIdsChange: (detail: SelectionChangeDetail) => void;
onSortModelChange: (sortModel: readonly {
readonly key: string;
readonly dir: "asc" | "desc";
}[]) => void;
onFilterModelChange: (filterModel: GridFilterModel) => void;
onGroupByChange: (groupBy: readonly string[]) => void;
onPageChange: (page: number) => void;
onEditCommit: (detail: GridEditCommitDetail<unknown>) => void;
onEditCancel: (detail: {
readonly rowId: string;
readonly colKey: string;
}) => void;
onColumnStateChange: (columnState: GridColumnState) => void;
renderCell: (row: unknown, column: GridColumnDef<unknown>) => unknown;
loading: boolean;
error: undefined;
emptyMessage: string;
showQuickFilter: boolean;
showExportButton: boolean;
ssrRowCount: number;
className: string;
onExportCSV: (csv: string) => void;
validateCell: ((value: unknown, params: import("@grassroot/ui-machines/grid").GridCellParams<unknown>) => import("@grassroot/ui-headless-core").GridCellValidation) | undefined;
}, {}, {}, {}, string, import("vue").ComponentProvideOptions, true, {}, any>;

@grassroot/ui-headless-angular/grid

Angular adapter

3 exports
View source packages/ui-headless/angular/src/grid/index.ts
DeclarationView source
GR_GRID_DECLARATIONSts
export declare const GR_GRID_DECLARATIONS: readonly [typeof GrDataGrid];

GrDataGrid

class
DeclarationView source
GrDataGridts
export declare class GrDataGrid implements OnInit, OnDestroy, AfterContentChecked {
private readonly errorContentRef?;
private readonly emptyMessageContentRef?;
readonly hasErrorContent: import("@angular/core").WritableSignal<boolean>;
readonly hasEmptyMessageContent: import("@angular/core").WritableSignal<boolean>;
ngAfterContentChecked(): void;
readonly rowData: import("@angular/core").InputSignal<readonly unknown[]>;
readonly rowModel: import("@angular/core").InputSignal<"client" | "server" | "infinite">;
readonly dataSource: import("@angular/core").InputSignal<GridDataSource<unknown> | undefined>;
readonly initialRowData: import("@angular/core").InputSignal<readonly unknown[] | undefined>;
readonly initialRowCount: import("@angular/core").InputSignal<number | undefined>;
readonly blockSize: import("@angular/core").InputSignal<number | undefined>;
readonly loadMoreThreshold: import("@angular/core").InputSignal<number | undefined>;
readonly columnDefs: import("@angular/core").InputSignal<readonly GridColumnDef<unknown>[]>;
readonly getRowId: import("@angular/core").InputSignal<(row: unknown, index: number) => string>;
readonly caption: import("@angular/core").InputSignal<string>;
readonly selectionMode: import("@angular/core").InputSignal<"single" | "multiple" | "none">;
readonly selectedIdsInput: import("@angular/core").InputSignal<readonly string[] | undefined>;
readonly defaultSelectedIds: import("@angular/core").InputSignal<readonly string[] | undefined>;
readonly onSelectedIdsChange: import("@angular/core").InputSignal<((detail: SelectionChangeDetail) => void) | undefined>;
readonly onSortModelChange: import("@angular/core").InputSignal<((sortModel: readonly GridSortEntry[]) => void) | undefined>;
readonly filterModel: import("@angular/core").InputSignal<GridFilterModel | undefined>;
readonly defaultFilterModel: import("@angular/core").InputSignal<GridFilterModel | undefined>;
readonly groupBy: import("@angular/core").InputSignal<readonly string[] | undefined>;
readonly defaultGroupBy: import("@angular/core").InputSignal<readonly string[] | undefined>;
readonly aggFor: import("@angular/core").InputSignal<Readonly<Record<string, "count" | "min" | "max" | "sum" | "avg" | "custom">> | undefined>;
readonly mode: import("@angular/core").InputSignal<"virtualized" | "paginated">;
readonly paginationInput: import("@angular/core").InputSignal<{
total: number;
pageSize: number;
page?: number;
defaultPage?: number;
} | undefined>;
readonly onFilterModelChange: import("@angular/core").InputSignal<((filterModel: GridFilterModel) => void) | undefined>;
readonly onGroupByChange: import("@angular/core").InputSignal<((groupBy: readonly string[]) => void) | undefined>;
readonly onPageChange: import("@angular/core").InputSignal<((page: number) => void) | undefined>;
readonly validateCell: import("@angular/core").InputSignal<((value: unknown, params: GridCellParams<unknown>) => GridCellValidation) | undefined>;
readonly onEditCommit: import("@angular/core").InputSignal<((detail: GridEditCommitDetail<unknown>) => void) | undefined>;
readonly onEditCancel: import("@angular/core").InputSignal<((detail: {
readonly rowId: string;
readonly colKey: string;
}) => void) | undefined>;
readonly onColumnStateChange: import("@angular/core").InputSignal<((columnState: GridColumnState) => void) | undefined>;
readonly renderCell: import("@angular/core").InputSignal<((row: unknown, column: GridColumnDef<unknown>) => unknown) | undefined>;
readonly cellTemplate: import("@angular/core").InputSignal<TemplateRef<GridCellTemplateContext> | undefined>;
readonly loading: import("@angular/core").InputSignal<boolean>;
readonly error: import("@angular/core").InputSignal<unknown>;
readonly emptyMessage: import("@angular/core").InputSignal<unknown>;
readonly showQuickFilter: import("@angular/core").InputSignal<boolean>;
readonly showExportButton: import("@angular/core").InputSignal<boolean>;
readonly onExportCSV: import("@angular/core").InputSignal<((csv: string) => void) | undefined>;
readonly ssrRowCount: import("@angular/core").InputSignal<number | undefined>;
readonly className: import("@angular/core").InputSignal<string | undefined>;
readonly selectedIdsChange: import("@angular/core").OutputEmitterRef<SelectionChangeDetail>;
readonly sortModelChange: import("@angular/core").OutputEmitterRef<readonly {
readonly key: string;
readonly dir: "asc" | "desc";
}[]>;
readonly filterModelChange: import("@angular/core").OutputEmitterRef<GridFilterModel>;
readonly groupByChange: import("@angular/core").OutputEmitterRef<readonly string[]>;
readonly pageChange: import("@angular/core").OutputEmitterRef<number>;
readonly editCommit: import("@angular/core").OutputEmitterRef<GridEditCommitDetail<unknown>>;
readonly editCancel: import("@angular/core").OutputEmitterRef<{
readonly rowId: string;
readonly colKey: string;
}>;
readonly columnStateChange: import("@angular/core").OutputEmitterRef<GridColumnState>;
readonly exportCSV: import("@angular/core").OutputEmitterRef<string>;
private readonly started;
private readonly version;
private readonly scrollTop;
private readonly viewportHeight;
private service;
private remote?;
private unsubscribe?;
readonly rowHeight = 44;
constructor();
private options;
private snapshot;
readonly projection: import("@angular/core").Signal<import("@grassroot/ui-headless-core").GridRowProjection<unknown>>;
readonly columnProjection: import("@angular/core").Signal<import("@grassroot/ui-headless-core").GridColumnProjection<unknown>>;
readonly visibleColumns: import("@angular/core").Signal<readonly GridColumnDef<unknown>[]>;
readonly gridWidth: import("@angular/core").Signal<number>;
readonly gridTemplate: import("@angular/core").Signal<string>;
readonly virtualWindow: import("@angular/core").Signal<import("@grassroot/ui-headless-core").VirtualWindow>;
readonly visibleRows: import("@angular/core").Signal<{
id: string;
index: number;
row: unknown;
}[]>;
readonly selectedIds: import("@angular/core").Signal<import("@grassroot/ui-machines/selection").SelectionValue>;
readonly pagination: import("@angular/core").Signal<import("@grassroot/ui-machines/pagination").PaginationMachineState | null>;
readonly overlay: import("@angular/core").Signal<"error" | "empty" | "loading" | null>;
readonly filterPanelColumn: import("@angular/core").WritableSignal<string | null>;
readonly quickText: import("@angular/core").Signal<string>;
readonly editSession: import("@angular/core").Signal<import("@grassroot/ui-machines/grid").GridEditSession | null>;
readonly allSelected: import("@angular/core").Signal<boolean>;
readonly filterPanelValue: import("@angular/core").Signal<string>;
ngOnInit(): void;
ngOnDestroy(): void;
remoteErrorMessage(): string;
remoteRequestAvailable(): boolean;
retryRemote(): void;
/** Test-only fixture seam; remote rows remain outside machine context. */
remoteDebug(): {
readonly rowModel: string;
readonly columns: number;
readonly hasDataSource: boolean;
readonly remote: unknown;
};
rowId(row: unknown, index: number): string;
groupExpanded(key: string): boolean;
toggleGroup(key: string): void;
onScroll(event: Event): void;
rowTransform(index: number): string;
selectRow(id: string): void;
toggleRow(id: string): void;
selectAll(): void;
cellContext(row: unknown, column: GridColumnDef<unknown>, rowIndex: number): GridCellTemplateContext;
cellValue(row: unknown, column: GridColumnDef<unknown>): string;
sortDirection(key: string): "ascending" | "descending" | "none";
toggleSort(column: GridColumnDef<unknown>, reason?: "pointer" | "keyboard"): void;
keySort(event: KeyboardEvent, column: GridColumnDef<unknown>): void;
isEditing(rowId: string, colKey: string): boolean;
editDraft(): string;
editInvalid(): boolean;
startEdit(row: unknown, rowId: string, column: GridColumnDef<unknown>): void;
changeEdit(event: Event): void;
keyEdit(event: KeyboardEvent, row: unknown, rowId: string, column: GridColumnDef<unknown>): void;
commitEdit(row: unknown, rowId: string, column: GridColumnDef<unknown>, reason: "blur" | "enter"): void;
setQuickFilter(event: Event): void;
conditionFor(column: GridColumnDef<unknown>, value: string): GridFilterCondition | null;
setColumnFilter(event: Event): void;
clearColumnFilter(): void;
toggleFilterPanel(key: string): void;
previousPage(): void;
nextPage(): void;
exportCsv(): void;
copy(event: ClipboardEvent): void;
paste(event: ClipboardEvent): void;
static ɵfac: i0.ɵɵFactoryDeclaration<GrDataGrid, never>;
static ɵcmp: i0.ɵɵComponentDeclaration<GrDataGrid, "gr-data-grid", never, { "rowData": { "alias": "rowData"; "required": false; "isSignal": true; }; "rowModel": { "alias": "rowModel"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "initialRowData": { "alias": "initialRowData"; "required": false; "isSignal": true; }; "initialRowCount": { "alias": "initialRowCount"; "required": false; "isSignal": true; }; "blockSize": { "alias": "blockSize"; "required": false; "isSignal": true; }; "loadMoreThreshold": { "alias": "loadMoreThreshold"; "required": false; "isSignal": true; }; "columnDefs": { "alias": "columnDefs"; "required": true; "isSignal": true; }; "getRowId": { "alias": "getRowId"; "required": true; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "selectedIdsInput": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "defaultSelectedIds": { "alias": "defaultSelectedIds"; "required": false; "isSignal": true; }; "onSelectedIdsChange": { "alias": "onSelectedIdsChange"; "required": false; "isSignal": true; }; "onSortModelChange": { "alias": "onSortModelChange"; "required": false; "isSignal": true; }; "filterModel": { "alias": "filterModel"; "required": false; "isSignal": true; }; "defaultFilterModel": { "alias": "defaultFilterModel"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "defaultGroupBy": { "alias": "defaultGroupBy"; "required": false; "isSignal": true; }; "aggFor": { "alias": "aggFor"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "paginationInput": { "alias": "pagination"; "required": false; "isSignal": true; }; "onFilterModelChange": { "alias": "onFilterModelChange"; "required": false; "isSignal": true; }; "onGroupByChange": { "alias": "onGroupByChange"; "required": false; "isSignal": true; }; "onPageChange": { "alias": "onPageChange"; "required": false; "isSignal": true; }; "validateCell": { "alias": "validateCell"; "required": false; "isSignal": true; }; "onEditCommit": { "alias": "onEditCommit"; "required": false; "isSignal": true; }; "onEditCancel": { "alias": "onEditCancel"; "required": false; "isSignal": true; }; "onColumnStateChange": { "alias": "onColumnStateChange"; "required": false; "isSignal": true; }; "renderCell": { "alias": "renderCell"; "required": false; "isSignal": true; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "showQuickFilter": { "alias": "showQuickFilter"; "required": false; "isSignal": true; }; "showExportButton": { "alias": "showExportButton"; "required": false; "isSignal": true; }; "onExportCSV": { "alias": "onExportCSV"; "required": false; "isSignal": true; }; "ssrRowCount": { "alias": "ssrRowCount"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "selectedIdsChange": "selectedIdsChange"; "sortModelChange": "sortModelChange"; "filterModelChange": "filterModelChange"; "groupByChange": "groupByChange"; "pageChange": "pageChange"; "editCommit": "editCommit"; "editCancel": "editCancel"; "columnStateChange": "columnStateChange"; "exportCSV": "exportCSV"; }, ["errorContentRef", "emptyMessageContentRef"], ["[grDataGridError]", "[grDataGridEmptyMessage]"], true, never>;
}
Name
Kind
Type
Requirement
Description
aggFor
property
import("@angular/core").InputSignal<Readonly<Record<string, "count" | "min" | "max" | "sum" | "avg" | "custom">> | undefined>
required
allSelected
property
import("@angular/core").Signal<boolean>
required
blockSize
property
import("@angular/core").InputSignal<number | undefined>
required
caption
property
import("@angular/core").InputSignal<string>
required
cellContext
method
(row: unknown, column: GridColumnDef<unknown>, rowIndex: number) => GridCellTemplateContext
required
cellTemplate
property
import("@angular/core").InputSignal<TemplateRef<GridCellTemplateContext> | undefined>
required
cellValue
method
(row: unknown, column: GridColumnDef<unknown>) => string
required
changeEdit
method
(event: Event) => void
required
className
property
import("@angular/core").InputSignal<string | undefined>
required
clearColumnFilter
method
() => void
required
columnDefs
property
import("@angular/core").InputSignal<readonly GridColumnDef<unknown>[]>
required
columnProjection
property
import("@angular/core").Signal<import("@grassroot/ui-headless-core").GridColumnProjection<unknown>>
required
columnStateChange
property
import("@angular/core").OutputEmitterRef<GridColumnState>
required
commitEdit
method
(row: unknown, rowId: string, column: GridColumnDef<unknown>, reason: "blur" | "enter") => void
required
Name
aggFor
Kind
property
Type
import("@angular/core").InputSignal<Readonly<Record<string, "count" | "min" | "max" | "sum" | "avg" | "custom">> | undefined>
Requirement
required
Description
Name
allSelected
Kind
property
Type
import("@angular/core").Signal<boolean>
Requirement
required
Description
Name
blockSize
Kind
property
Type
import("@angular/core").InputSignal<number | undefined>
Requirement
required
Description
Name
caption
Kind
property
Type
import("@angular/core").InputSignal<string>
Requirement
required
Description
Name
cellContext
Kind
method
Type
(row: unknown, column: GridColumnDef<unknown>, rowIndex: number) => GridCellTemplateContext
Requirement
required
Description
Name
cellTemplate
Kind
property
Type
import("@angular/core").InputSignal<TemplateRef<GridCellTemplateContext> | undefined>
Requirement
required
Description
Name
cellValue
Kind
method
Type
(row: unknown, column: GridColumnDef<unknown>) => string
Requirement
required
Description
Name
changeEdit
Kind
method
Type
(event: Event) => void
Requirement
required
Description
Name
className
Kind
property
Type
import("@angular/core").InputSignal<string | undefined>
Requirement
required
Description
Name
clearColumnFilter
Kind
method
Type
() => void
Requirement
required
Description
Name
columnDefs
Kind
property
Type
import("@angular/core").InputSignal<readonly GridColumnDef<unknown>[]>
Requirement
required
Description
Name
columnProjection
Kind
property
Type
import("@angular/core").Signal<import("@grassroot/ui-headless-core").GridColumnProjection<unknown>>
Requirement
required
Description
Name
columnStateChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<GridColumnState>
Requirement
required
Description
Name
commitEdit
Kind
method
Type
(row: unknown, rowId: string, column: GridColumnDef<unknown>, reason: "blur" | "enter") => void
Requirement
required
Description
Name
conditionFor
Kind
method
Type
(column: GridColumnDef<unknown>, value: string) => GridFilterCondition | null
Requirement
required
Description
Name
copy
Kind
method
Type
(event: ClipboardEvent) => void
Requirement
required
Description
Name
dataSource
Kind
property
Type
import("@angular/core").InputSignal<GridDataSource<unknown> | undefined>
Requirement
required
Description
Name
defaultFilterModel
Kind
property
Type
import("@angular/core").InputSignal<GridFilterModel | undefined>
Requirement
required
Description
Name
defaultGroupBy
Kind
property
Type
import("@angular/core").InputSignal<readonly string[] | undefined>
Requirement
required
Description
Name
defaultSelectedIds
Kind
property
Type
import("@angular/core").InputSignal<readonly string[] | undefined>
Requirement
required
Description
Name
editCancel
Kind
property
Type
import("@angular/core").OutputEmitterRef<{ readonly rowId: string; readonly colKey: string; }>
Requirement
required
Description
Name
editCommit
Kind
property
Type
import("@angular/core").OutputEmitterRef<GridEditCommitDetail<unknown>>
Requirement
required
Description
Name
editDraft
Kind
method
Type
() => string
Requirement
required
Description
Name
editInvalid
Kind
method
Type
() => boolean
Requirement
required
Description
Name
editSession
Kind
property
Type
import("@angular/core").Signal<import("@grassroot/ui-machines/grid").GridEditSession | null>
Requirement
required
Description
Name
emptyMessage
Kind
property
Type
import("@angular/core").InputSignal<unknown>
Requirement
required
Description
Name
emptyMessageContentRef
Kind
property
Type
any
Requirement
optional
Description
Name
error
Kind
property
Type
import("@angular/core").InputSignal<unknown>
Requirement
required
Description
Name
errorContentRef
Kind
property
Type
any
Requirement
optional
Description
Name
exportCsv
Kind
method
Type
() => void
Requirement
required
Description
Name
exportCSV
Kind
property
Type
import("@angular/core").OutputEmitterRef<string>
Requirement
required
Description
Name
filterModel
Kind
property
Type
import("@angular/core").InputSignal<GridFilterModel | undefined>
Requirement
required
Description
Name
filterModelChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<GridFilterModel>
Requirement
required
Description
Name
filterPanelColumn
Kind
property
Type
import("@angular/core").WritableSignal<string | null>
Requirement
required
Description
Name
filterPanelValue
Kind
property
Type
import("@angular/core").Signal<string>
Requirement
required
Description
Name
getRowId
Kind
property
Type
import("@angular/core").InputSignal<(row: unknown, index: number) => string>
Requirement
required
Description
Name
gridTemplate
Kind
property
Type
import("@angular/core").Signal<string>
Requirement
required
Description
Name
gridWidth
Kind
property
Type
import("@angular/core").Signal<number>
Requirement
required
Description
Name
groupBy
Kind
property
Type
import("@angular/core").InputSignal<readonly string[] | undefined>
Requirement
required
Description
Name
groupByChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<readonly string[]>
Requirement
required
Description
Name
groupExpanded
Kind
method
Type
(key: string) => boolean
Requirement
required
Description
Name
hasEmptyMessageContent
Kind
property
Type
import("@angular/core").WritableSignal<boolean>
Requirement
required
Description
Name
hasErrorContent
Kind
property
Type
import("@angular/core").WritableSignal<boolean>
Requirement
required
Description
Name
initialRowCount
Kind
property
Type
import("@angular/core").InputSignal<number | undefined>
Requirement
required
Description
Name
initialRowData
Kind
property
Type
import("@angular/core").InputSignal<readonly unknown[] | undefined>
Requirement
required
Description
Name
isEditing
Kind
method
Type
(rowId: string, colKey: string) => boolean
Requirement
required
Description
Name
keyEdit
Kind
method
Type
(event: KeyboardEvent, row: unknown, rowId: string, column: GridColumnDef<unknown>) => void
Requirement
required
Description
Name
keySort
Kind
method
Type
(event: KeyboardEvent, column: GridColumnDef<unknown>) => void
Requirement
required
Description
Name
loading
Kind
property
Type
import("@angular/core").InputSignal<boolean>
Requirement
required
Description
Name
loadMoreThreshold
Kind
property
Type
import("@angular/core").InputSignal<number | undefined>
Requirement
required
Description
Name
mode
Kind
property
Type
import("@angular/core").InputSignal<"virtualized" | "paginated">
Requirement
required
Description
Name
nextPage
Kind
method
Type
() => void
Requirement
required
Description
Name
ngAfterContentChecked
Kind
method
Type
() => void
Requirement
required
Description
Name
ngOnDestroy
Kind
method
Type
() => void
Requirement
required
Description
Name
ngOnInit
Kind
method
Type
() => void
Requirement
required
Description
Name
onColumnStateChange
Kind
property
Type
import("@angular/core").InputSignal<((columnState: GridColumnState) => void) | undefined>
Requirement
required
Description
Name
onEditCancel
Kind
property
Type
import("@angular/core").InputSignal<((detail: { readonly rowId: string; readonly colKey: string; }) => void) | undefined>
Requirement
required
Description
Name
onEditCommit
Kind
property
Type
import("@angular/core").InputSignal<((detail: GridEditCommitDetail<unknown>) => void) | undefined>
Requirement
required
Description
Name
onExportCSV
Kind
property
Type
import("@angular/core").InputSignal<((csv: string) => void) | undefined>
Requirement
required
Description
Name
onFilterModelChange
Kind
property
Type
import("@angular/core").InputSignal<((filterModel: GridFilterModel) => void) | undefined>
Requirement
required
Description
Name
onGroupByChange
Kind
property
Type
import("@angular/core").InputSignal<((groupBy: readonly string[]) => void) | undefined>
Requirement
required
Description
Name
onPageChange
Kind
property
Type
import("@angular/core").InputSignal<((page: number) => void) | undefined>
Requirement
required
Description
Name
onScroll
Kind
method
Type
(event: Event) => void
Requirement
required
Description
Name
onSelectedIdsChange
Kind
property
Type
import("@angular/core").InputSignal<((detail: SelectionChangeDetail) => void) | undefined>
Requirement
required
Description
Name
onSortModelChange
Kind
property
Type
import("@angular/core").InputSignal<((sortModel: readonly GridSortEntry[]) => void) | undefined>
Requirement
required
Description
Name
options
Kind
property
Type
any
Requirement
required
Description
Name
overlay
Kind
property
Type
import("@angular/core").Signal<"error" | "empty" | "loading" | null>
Requirement
required
Description
Name
ɵcmp
Kind
property
Type
i0.ɵɵComponentDeclaration<GrDataGrid, "gr-data-grid", never, { "rowData": { "alias": "rowData"; "required": false; "isSignal": true; }; "rowModel": { "alias": "rowModel"; "required": false; "isSignal": true; }; "dataSource": { "alias": "dataSource"; "required": false; "isSignal": true; }; "initialRowData": { "alias": "initialRowData"; "required": false; "isSignal": true; }; "initialRowCount": { "alias": "initialRowCount"; "required": false; "isSignal": true; }; "blockSize": { "alias": "blockSize"; "required": false; "isSignal": true; }; "loadMoreThreshold": { "alias": "loadMoreThreshold"; "required": false; "isSignal": true; }; "columnDefs": { "alias": "columnDefs"; "required": true; "isSignal": true; }; "getRowId": { "alias": "getRowId"; "required": true; "isSignal": true; }; "caption": { "alias": "caption"; "required": false; "isSignal": true; }; "selectionMode": { "alias": "selectionMode"; "required": false; "isSignal": true; }; "selectedIdsInput": { "alias": "selectedIds"; "required": false; "isSignal": true; }; "defaultSelectedIds": { "alias": "defaultSelectedIds"; "required": false; "isSignal": true; }; "onSelectedIdsChange": { "alias": "onSelectedIdsChange"; "required": false; "isSignal": true; }; "onSortModelChange": { "alias": "onSortModelChange"; "required": false; "isSignal": true; }; "filterModel": { "alias": "filterModel"; "required": false; "isSignal": true; }; "defaultFilterModel": { "alias": "defaultFilterModel"; "required": false; "isSignal": true; }; "groupBy": { "alias": "groupBy"; "required": false; "isSignal": true; }; "defaultGroupBy": { "alias": "defaultGroupBy"; "required": false; "isSignal": true; }; "aggFor": { "alias": "aggFor"; "required": false; "isSignal": true; }; "mode": { "alias": "mode"; "required": false; "isSignal": true; }; "paginationInput": { "alias": "pagination"; "required": false; "isSignal": true; }; "onFilterModelChange": { "alias": "onFilterModelChange"; "required": false; "isSignal": true; }; "onGroupByChange": { "alias": "onGroupByChange"; "required": false; "isSignal": true; }; "onPageChange": { "alias": "onPageChange"; "required": false; "isSignal": true; }; "validateCell": { "alias": "validateCell"; "required": false; "isSignal": true; }; "onEditCommit": { "alias": "onEditCommit"; "required": false; "isSignal": true; }; "onEditCancel": { "alias": "onEditCancel"; "required": false; "isSignal": true; }; "onColumnStateChange": { "alias": "onColumnStateChange"; "required": false; "isSignal": true; }; "renderCell": { "alias": "renderCell"; "required": false; "isSignal": true; }; "cellTemplate": { "alias": "cellTemplate"; "required": false; "isSignal": true; }; "loading": { "alias": "loading"; "required": false; "isSignal": true; }; "error": { "alias": "error"; "required": false; "isSignal": true; }; "emptyMessage": { "alias": "emptyMessage"; "required": false; "isSignal": true; }; "showQuickFilter": { "alias": "showQuickFilter"; "required": false; "isSignal": true; }; "showExportButton": { "alias": "showExportButton"; "required": false; "isSignal": true; }; "onExportCSV": { "alias": "onExportCSV"; "required": false; "isSignal": true; }; "ssrRowCount": { "alias": "ssrRowCount"; "required": false; "isSignal": true; }; "className": { "alias": "className"; "required": false; "isSignal": true; }; }, { "selectedIdsChange": "selectedIdsChange"; "sortModelChange": "sortModelChange"; "filterModelChange": "filterModelChange"; "groupByChange": "groupByChange"; "pageChange": "pageChange"; "editCommit": "editCommit"; "editCancel": "editCancel"; "columnStateChange": "columnStateChange"; "exportCSV": "exportCSV"; }, ["errorContentRef", "emptyMessageContentRef"], ["[grDataGridError]", "[grDataGridEmptyMessage]"], true, never>
Requirement
required
Description
Name
ɵfac
Kind
property
Type
i0.ɵɵFactoryDeclaration<GrDataGrid, never>
Requirement
required
Description
Name
pageChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<number>
Requirement
required
Description
Name
pagination
Kind
property
Type
import("@angular/core").Signal<import("@grassroot/ui-machines/pagination").PaginationMachineState | null>
Requirement
required
Description
Name
paginationInput
Kind
property
Type
import("@angular/core").InputSignal<{ total: number; pageSize: number; page?: number; defaultPage?: number; } | undefined>
Requirement
required
Description
Name
paste
Kind
method
Type
(event: ClipboardEvent) => void
Requirement
required
Description
Name
previousPage
Kind
method
Type
() => void
Requirement
required
Description
Name
projection
Kind
property
Type
import("@angular/core").Signal<import("@grassroot/ui-headless-core").GridRowProjection<unknown>>
Requirement
required
Description
Name
quickText
Kind
property
Type
import("@angular/core").Signal<string>
Requirement
required
Description
Name
remote
Kind
property
Type
any
Requirement
optional
Description
Name
remoteDebug
Kind
method
Type
() => { readonly rowModel: string; readonly columns: number; readonly hasDataSource: boolean; readonly remote: unknown; }
Requirement
required
Description
Test-only fixture seam; remote rows remain outside machine context.
Name
remoteErrorMessage
Kind
method
Type
() => string
Requirement
required
Description
Name
remoteRequestAvailable
Kind
method
Type
() => boolean
Requirement
required
Description
Name
renderCell
Kind
property
Type
import("@angular/core").InputSignal<((row: unknown, column: GridColumnDef<unknown>) => unknown) | undefined>
Requirement
required
Description
Name
retryRemote
Kind
method
Type
() => void
Requirement
required
Description
Name
rowData
Kind
property
Type
import("@angular/core").InputSignal<readonly unknown[]>
Requirement
required
Description
Name
rowHeight
Kind
property
Type
44
Requirement
required
Description
Name
rowId
Kind
method
Type
(row: unknown, index: number) => string
Requirement
required
Description
Name
rowModel
Kind
property
Type
import("@angular/core").InputSignal<"client" | "server" | "infinite">
Requirement
required
Description
Name
rowTransform
Kind
method
Type
(index: number) => string
Requirement
required
Description
Name
scrollTop
Kind
property
Type
any
Requirement
required
Description
Name
selectAll
Kind
method
Type
() => void
Requirement
required
Description
Name
selectedIds
Kind
property
Type
import("@angular/core").Signal<import("@grassroot/ui-machines/selection").SelectionValue>
Requirement
required
Description
Name
selectedIdsChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<SelectionChangeDetail>
Requirement
required
Description
Name
selectedIdsInput
Kind
property
Type
import("@angular/core").InputSignal<readonly string[] | undefined>
Requirement
required
Description
Name
selectionMode
Kind
property
Type
import("@angular/core").InputSignal<"single" | "multiple" | "none">
Requirement
required
Description
Name
selectRow
Kind
method
Type
(id: string) => void
Requirement
required
Description
Name
service
Kind
property
Type
any
Requirement
required
Description
Name
setColumnFilter
Kind
method
Type
(event: Event) => void
Requirement
required
Description
Name
setQuickFilter
Kind
method
Type
(event: Event) => void
Requirement
required
Description
Name
showExportButton
Kind
property
Type
import("@angular/core").InputSignal<boolean>
Requirement
required
Description
Name
showQuickFilter
Kind
property
Type
import("@angular/core").InputSignal<boolean>
Requirement
required
Description
Name
snapshot
Kind
property
Type
any
Requirement
required
Description
Name
sortDirection
Kind
method
Type
(key: string) => "ascending" | "descending" | "none"
Requirement
required
Description
Name
sortModelChange
Kind
property
Type
import("@angular/core").OutputEmitterRef<readonly { readonly key: string; readonly dir: "asc" | "desc"; }[]>
Requirement
required
Description
Name
ssrRowCount
Kind
property
Type
import("@angular/core").InputSignal<number | undefined>
Requirement
required
Description
Name
started
Kind
property
Type
any
Requirement
required
Description
Name
startEdit
Kind
method
Type
(row: unknown, rowId: string, column: GridColumnDef<unknown>) => void
Requirement
required
Description
Name
toggleFilterPanel
Kind
method
Type
(key: string) => void
Requirement
required
Description
Name
toggleGroup
Kind
method
Type
(key: string) => void
Requirement
required
Description
Name
toggleRow
Kind
method
Type
(id: string) => void
Requirement
required
Description
Name
toggleSort
Kind
method
Type
(column: GridColumnDef<unknown>, reason?: "pointer" | "keyboard") => void
Requirement
required
Description
Name
unsubscribe
Kind
property
Type
any
Requirement
optional
Description
Name
validateCell
Kind
property
Type
import("@angular/core").InputSignal<((value: unknown, params: GridCellParams<unknown>) => GridCellValidation) | undefined>
Requirement
required
Description
Name
version
Kind
property
Type
any
Requirement
required
Description
Name
viewportHeight
Kind
property
Type
any
Requirement
required
Description
Name
virtualWindow
Kind
property
Type
import("@angular/core").Signal<import("@grassroot/ui-headless-core").VirtualWindow>
Requirement
required
Description
Name
visibleColumns
Kind
property
Type
import("@angular/core").Signal<readonly GridColumnDef<unknown>[]>
Requirement
required
Description
Name
visibleRows
Kind
property
Type
import("@angular/core").Signal<{ id: string; index: number; row: unknown; }[]>
Requirement
required
Description
DeclarationView source
GridCellTemplateContextts
export interface GridCellTemplateContext {
readonly row: unknown;
readonly value: unknown;
readonly column: GridColumnDef<unknown>;
readonly rowIndex: number;
}
Name
Kind
Type
Requirement
column
property
GridColumnDef<unknown>
required
row
property
unknown
required
rowIndex
property
number
required
value
property
unknown
required
Name
column
Kind
property
Type
GridColumnDef<unknown>
Requirement
required
Name
row
Kind
property
Type
unknown
Requirement
required
Name
rowIndex
Kind
property
Type
number
Requirement
required
Name
value
Kind
property
Type
unknown
Requirement
required

@grassroot/ui-headless-svelte/grid

Svelte adapter

4 exports
View source packages/ui-headless/svelte/src/grid/index.ts

DataGrid

value
DeclarationView source
DataGridts
export declare const DataGrid: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a
DeclarationView source
DataGridPropsts
export type DataGridProps = GridConnectOptions<unknown> & {
cell?: Snippet<[GridCellContext]>;
className?: string;
loading?: boolean;
error?: Snippet;
emptyMessage?: Snippet;
showQuickFilter?: boolean;
showExportButton?: boolean;
onExportCSV?: (csv: string) => void;
};
Name
Kind
Type
Requirement
cell
property
Snippet<[GridCellContext]>
optional
className
property
string
optional
emptyMessage
property
Snippet
optional
error
property
unknown
optional
loading
property
boolean
optional
onExportCSV
property
(csv: string) => void
optional
showExportButton
property
boolean
optional
showQuickFilter
property
boolean
optional
Name
cell
Kind
property
Type
Snippet<[GridCellContext]>
Requirement
optional
Name
className
Kind
property
Type
string
Requirement
optional
Name
emptyMessage
Kind
property
Type
Snippet
Requirement
optional
Name
error
Kind
property
Type
unknown
Requirement
optional
Name
loading
Kind
property
Type
boolean
Requirement
optional
Name
onExportCSV
Kind
property
Type
(csv: string) => void
Requirement
optional
Name
showExportButton
Kind
property
Type
boolean
Requirement
optional
Name
showQuickFilter
Kind
property
Type
boolean
Requirement
optional

default

value
DeclarationView source
defaultts
export declare const default: LegacyComponentType;
Name
Kind
Type
Requirement
args
parameter
Parameters<Component<Record<string, any>>>
optional
return
return value
ReturnType<Component<Record<string, any>, Record<string, any>>>
n/a
Name
args
Kind
parameter
Type
Parameters<Component<Record<string, any>>>
Requirement
optional
Name
return
Kind
return value
Type
ReturnType<Component<Record<string, any>, Record<string, any>>>
Requirement
n/a
DeclarationView source
GridCellContextts
export type GridCellContext = {
readonly row: unknown;
readonly value: unknown;
readonly column: import("@grassroot/ui-machines/grid").GridColumnDef<unknown>;
readonly rowIndex: number;
};
Name
Kind
Type
Requirement
column
property
import("@grassroot/ui-machines/grid").GridColumnDef<unknown>
required
row
property
unknown
required
rowIndex
property
number
required
value
property
unknown
required
Name
column
Kind
property
Type
import("@grassroot/ui-machines/grid").GridColumnDef<unknown>
Requirement
required
Name
row
Kind
property
Type
unknown
Requirement
required
Name
rowIndex
Kind
property
Type
number
Requirement
required
Name
value
Kind
property
Type
unknown
Requirement
required

@grassroot/ui-headless-solid/grid

Solid adapter

4 exports
View source packages/ui-headless/solid/src/grid/index.tsx

DataGrid

value
DeclarationView source
DataGridts
export declare const DataGrid: Component<DataGridProps>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
DataGridPropsts
export type DataGridProps = Omit<GridConnectOptions<unknown>, "renderCell"> & {
readonly renderCell?: (context: GridCellContext) => JSX.Element;
readonly className?: string;
readonly loading?: boolean;
readonly error?: JSX.Element;
readonly emptyMessage?: JSX.Element;
readonly showQuickFilter?: boolean;
readonly showExportButton?: boolean;
readonly onExportCSV?: (csv: string) => void;
};
Name
Kind
Type
Requirement
className
property
string
optional
emptyMessage
property
JSX.Element
optional
error
property
unknown
optional
loading
property
boolean
optional
onExportCSV
property
(csv: string) => void
optional
renderCell
property
(context: GridCellContext) => JSX.Element
optional
showExportButton
property
boolean
optional
showQuickFilter
property
boolean
optional
Name
className
Kind
property
Type
string
Requirement
optional
Name
emptyMessage
Kind
property
Type
JSX.Element
Requirement
optional
Name
error
Kind
property
Type
unknown
Requirement
optional
Name
loading
Kind
property
Type
boolean
Requirement
optional
Name
onExportCSV
Kind
property
Type
(csv: string) => void
Requirement
optional
Name
renderCell
Kind
property
Type
(context: GridCellContext) => JSX.Element
Requirement
optional
Name
showExportButton
Kind
property
Type
boolean
Requirement
optional
Name
showQuickFilter
Kind
property
Type
boolean
Requirement
optional

default

value
DeclarationView source
defaultts
export declare const default: Component<DataGridProps>;
Name
Kind
Type
Requirement
props
parameter
P
required
return
return value
JSX.Element
n/a
Name
props
Kind
parameter
Type
P
Requirement
required
Name
return
Kind
return value
Type
JSX.Element
Requirement
n/a
DeclarationView source
GridCellContextts
export type GridCellContext = {
readonly row: unknown;
readonly value: unknown;
readonly column: GridColumnDef<unknown>;
readonly rowIndex: number;
};
Name
Kind
Type
Requirement
column
property
GridColumnDef<unknown>
required
row
property
unknown
required
rowIndex
property
number
required
value
property
unknown
required
Name
column
Kind
property
Type
GridColumnDef<unknown>
Requirement
required
Name
row
Kind
property
Type
unknown
Requirement
required
Name
rowIndex
Kind
property
Type
number
Requirement
required
Name
value
Kind
property
Type
unknown
Requirement
required