- Name
cache- Kind
- parameter
- Type
GridRowProjectionCache<T>- Requirement
- required
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
applyTransaction
functiondeclare 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>;cacheGridRowProjectionCache<T>transaction{
readonly add?: readonly {
readonly row: T;
readonly index?: number;
}[];
readonly update?: readonly T[];
readonly remove?: readonly string[];
}modelGridRowProjectionModel<T>returnGridRowProjection<T>- 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
computeColumnWindow
functiondeclare function computeColumnWindow(params: { readonly scrollOffset: number; readonly viewportSize: number; readonly columnCount: number; readonly estimatedColumnSize: number; readonly overscan?: number;}): VirtualWindow;params{
readonly scrollOffset: number;
readonly viewportSize: number;
readonly columnCount: number;
readonly estimatedColumnSize: number;
readonly overscan?: number;
}returnVirtualWindow- 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
computeVirtualWindow
functiondeclare function computeVirtualWindow(params: { readonly scrollOffset: number; readonly viewportSize: number; readonly itemCount: number; readonly estimatedItemSize: number; readonly measuredSizes?: ReadonlyMap<number, number>; readonly overscan?: number;}): VirtualWindow;params{
readonly scrollOffset: number;
readonly viewportSize: number;
readonly itemCount: number;
readonly estimatedItemSize: number;
readonly measuredSizes?: ReadonlyMap<number, number>;
readonly overscan?: number;
}returnVirtualWindow- 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
functiondeclare function connectGrid<T>(service: GridService<T>, scope: PartScope, options: GridConnectOptions<T>, remoteSnapshot?: GridRemoteSnapshot<T> | (() => GridRemoteSnapshot<T>)): GridApi<T>;serviceGridService<T>scopePartScopeoptionsGridConnectOptions<T>remoteSnapshotGridRemoteSnapshot<T> | (() => GridRemoteSnapshot<T>)returnGridApi<T>- 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
functiondeclare function createGridInput<T>(options: GridConnectOptions<T>, remoteSnapshot?: GridRemoteSnapshot<T>): GridInput<T>;optionsGridConnectOptions<T>remoteSnapshotGridRemoteSnapshot<T>returnGridInput<T>- 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
createGridRemoteRows
functiondeclare function createGridRemoteRows<T>(options: GridRemoteRowsOptions<T>): GridRemoteRows<T>;optionsGridRemoteRowsOptions<T>returnGridRemoteRows<T>- Name
options- Kind
- parameter
- Type
GridRemoteRowsOptions<T>- Requirement
- required
- Name
return- Kind
- return value
- Type
GridRemoteRows<T>- Requirement
- n/a
createGridRemoteRunCommand
functionThe one shared promise boundary for every Grid mount.
declare function createGridRemoteRunCommand<T>(options: GridRemoteRunCommandOptions<T>): RunCommand<GridCommand, GridEvent>;optionsGridRemoteRunCommandOptions<T>returnRunCommand<GridCommand, GridEvent>- Name
options- Kind
- parameter
- Type
GridRemoteRunCommandOptions<T>- Requirement
- required
- Name
return- Kind
- return value
- Type
RunCommand<GridCommand, GridEvent>- Requirement
- n/a
createGridRowProjectionCache
functiondeclare function createGridRowProjectionCache<T>(): GridRowProjectionCache<T>;returnGridRowProjectionCache<T>- Name
return- Kind
- return value
- Type
GridRowProjectionCache<T>- Requirement
- n/a
exportGridCSV
functiondeclare function exportGridCSV<T>(projection: GridRowProjection<T>, columnDefs: readonly GridColumnDef<T>[], options?: { readonly includeHeader?: boolean; readonly delimiter?: string;}): string;projectionGridRowProjection<T>columnDefsreadonly GridColumnDef<T>[]options{
readonly includeHeader?: boolean;
readonly delimiter?: string;
}returnstring- 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
GRID_ROW_HEIGHT
valueexport declare const GRID_ROW_HEIGHT: 44;export declare const GRID_SELECTION_COLUMN_WIDTH: 44;GRID_VIEWPORT_HEIGHT
valueexport declare const GRID_VIEWPORT_HEIGHT: 352;gridAnatomy
valueexport 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"];};partsreadonly ["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"]scope"grid"- 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
interfaceinterface 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[];}bodyProps() => PartPropscellEditorProps(rowId: string, columnKey: string) => PartPropscellProps(rowId: string, columnKey: string, columnIndex: number) => PartPropscolumnDefsreadonly GridColumnDef<T>[]columnFilterPanelProps(columnKey: string) => PartPropscolumnMenuTriggerProps(columnKey: string) => PartPropscolumnProjection() => GridColumnProjection<T>columnResizeHandleProps(columnKey: string) => PartPropscontentProps() => PartPropsgroupRowProps(groupKey: string, index: number) => PartPropsgroupToggleProps(groupKey: string) => PartPropsheaderCellProps(columnKey: string) => PartPropsheaderProps() => PartPropsheaderRowProps() => PartProps- 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
functiondeclare function gridCellParams<T>(service: GridService<T>, options: GridConnectOptions<T>, row: T, rowId: string, column: GridColumnDef<T>): GridCellParams<T>;serviceGridService<T>optionsGridConnectOptions<T>rowTrowIdstringcolumnGridColumnDef<T>returnGridCellParams<T>- 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
GridCellValidation
typetype GridCellValidation = boolean | { readonly valid: boolean; readonly message?: string;};GridColumnProjection
typetype GridColumnProjection<T = unknown> = { readonly columns: readonly GridColumnDef<T>[]; readonly widths: Readonly<Record<string, number>>; readonly pinnedOffsets: Readonly<Record<string, number>>; readonly gridTemplateColumns: string;};columnsreadonly GridColumnDef<T>[]gridTemplateColumnsstringpinnedOffsetsReadonly<Record<string, number>>widthsReadonly<Record<string, number>>- 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
GridConnectOptions
typetype GridConnectOptions<T = unknown> = GridCommonOptions<T> & GridRowsInput<T>;GridDataSource
typetype GridDataSource<T> = (query: GridRemoteQuery, tools: { readonly signal: AbortSignal;}) => PromiseLike<{ readonly rows: readonly T[]; readonly total?: number; readonly nextCursor?: import("@grassroot/statechart").JsonValue | null;}>;GridEditCommitDetail
interfaceinterface 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>;}colKeystringcolumnGridColumnDef<T>previousValueunknownreasonstringrowTrowIdstringvalueunknown- 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
typetype GridGroup<T> = { readonly key: string; readonly level: number; readonly ids: readonly string[]; readonly rows: readonly T[];};idsreadonly string[]keystringlevelnumberrowsreadonly T[]- 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
gridKeyboardEvent
functiondeclare function gridKeyboardEvent(event: GridKeyboardEventLike, position: GridKeyboardPosition, rowCount: number, columnCount: number): GridKeyboardResult | null;eventGridKeyboardEventLikepositionGridKeyboardPositionrowCountnumbercolumnCountnumberreturnGridKeyboardResult | null- 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
type GridKeyboardEventLike = { readonly key?: string; readonly ctrlKey?: boolean; readonly metaKey?: boolean; readonly shiftKey?: boolean; preventDefault?: () => void;};ctrlKeybooleankeystringmetaKeybooleanpreventDefault() => voidshiftKeyboolean- 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
GridKeyboardPosition
typetype GridKeyboardPosition = { readonly rowIndex: number; readonly columnIndex: number;};columnIndexnumberrowIndexnumber- Name
columnIndex- Kind
- property
- Type
number- Requirement
- required
- Name
rowIndex- Kind
- property
- Type
number- Requirement
- required
GridKeyboardResult
typetype GridKeyboardResult = { readonly direction: GridFocusDirection; readonly extend?: boolean;};directionGridFocusDirectionextendboolean- Name
direction- Kind
- property
- Type
GridFocusDirection- Requirement
- required
- Name
extend- Kind
- property
- Type
boolean- Requirement
- optional
GridMount
interfaceinterface GridMount<T> { destroy(): void; service: ReturnType<typeof createService>; api: GridApi<T>; remote?: GridRemoteRows<T>;}apiGridApi<T>destroy() => voidremoteGridRemoteRows<T>serviceReturnType<typeof createService>- 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
typetype GridPart = (typeof parts)[number];gridProjection
functiondeclare function gridProjection<T>(service: GridService<T>, options: GridConnectOptions<T>, remoteSnapshot?: GridRemoteSnapshot<T> | (() => GridRemoteSnapshot<T>)): GridRowProjection<T>;serviceGridService<T>optionsGridConnectOptions<T>remoteSnapshotGridRemoteSnapshot<T> | (() => GridRemoteSnapshot<T>)returnGridRowProjection<T>- 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
GridRemoteRows
typetype 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;};begin(request: GridRemoteQuery) => booleancovers(range: {
readonly start: number;
readonly end: number;
}) => booleandestroy() => voidgetSnapshot() => GridRemoteSnapshot<T>handleCommand(command: GridRemoteCommand) => booleannextAppendRequest() => GridRemoteQuery | nullselectWindow(range: {
readonly start: number;
readonly end: number;
}) => voidsubscribe(listener: () => void) => () => void- 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
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;};blockSizenumbergetRowId(row: T, absoluteIndex: number) => stringinitialRowsreadonly T[]initialTotalnumberonDiagnostic(diagnostic: DiagnosticObject) => voidrowModel"server" | "infinite"- 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
type GridRemoteRunCommandOptions<T> = { readonly dataSource: GridDataSource<T>; readonly sidecar: GridRemoteRows<T>; readonly scheduler?: Scheduler; readonly next?: RunCommand<GridCommand, GridEvent>; readonly onDiagnostic?: (diagnostic: DiagnosticObject) => void;};dataSourceGridDataSource<T>nextRunCommand<GridCommand, GridEvent>onDiagnostic(diagnostic: DiagnosticObject) => voidschedulerSchedulersidecarGridRemoteRows<T>- 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
GridRemoteSnapshot
typetype 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;};baseIndexnumbererrorunknownlastRequestGridRemoteQueryloadedRangesreadonly {
readonly start: number;
readonly end: number;
}[]nextCursorimport("@grassroot/statechart").JsonValue | nullrowsreadonly T[]statusGridRemoteStatustotalnumber- 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
- —
GridRemoteStatus
typetype GridRemoteStatus = "idle" | "loading" | "refreshing" | "loading-more" | "error";gridRemoteWindowEvent
functionTurns a real virtual window into the one serializable Grid event adapters may send.
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;options{
readonly rowModel: "server" | "infinite";
readonly mode?: "virtualized" | "paginated";
readonly sidecar: GridRemoteRows<T>;
readonly start: number;
readonly end: number;
readonly loadMoreThreshold?: number;
}returnGridEvent | null- 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
GridRowProjection
typetype 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>;};aggregatesReadonlyMap<string, Readonly<Record<string, number>>>baseIndexnumbercacheGridRowProjectionCache<T>groupsreadonly GridGroup<T>[]orderedIdsreadonly string[]rowIndexByIdReadonlyMap<string, number>rowsByIdReadonlyMap<string, T>totalnumber- 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
- —
GridRowProjectionCache
interfaceinterface GridRowProjectionCache<T> { rows?: readonly T[]; model?: GridRowProjectionModel<T>; projection?: GridRowProjection<T>;}modelGridRowProjectionModel<T>projectionGridRowProjection<T>rowsreadonly T[]- 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
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>>;};columnDefsreadonly GridColumnDef<T>[]customFiltersReadonly<Record<string, (row: T, value: unknown) => boolean>>filterModelGridFilterModelgetRowId(row: T, index: number) => stringgroupModel{
readonly groupBy: readonly string[];
readonly expandedGroupKeys: readonly string[];
readonly aggFor?: Readonly<Record<string, "sum" | "avg" | "count" | "min" | "max" | "custom">>;
}page{
readonly page: number;
readonly pageSize: number;
}sortModelreadonly GridSortEntry[]- 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
GridService
typetype GridService<T = unknown> = Service<GridInput<T>, "ready", GridContext, GridEvent, GridCommand>;gridValue
functiondeclare function gridValue<T>(row: T, column: GridColumnDef<T>): unknown;rowTcolumnGridColumnDef<T>returnunknown- 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
functiondeclare function mountGrid<T>(container: HTMLElement, options: MountGridOptions<T>): GridMount<T>;containerHTMLElementoptionsMountGridOptions<T>returnGridMount<T>- 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
MountGridOptions
typetype MountGridOptions<T> = GridConnectOptions<T> & { readonly input?: Parameters<typeof gridMachine.initial>[0]; readonly seed?: string;};inputParameters<typeof gridMachine.initial>[0]seedstring- Name
input- Kind
- property
- Type
Parameters<typeof gridMachine.initial>[0]- Requirement
- optional
- Name
seed- Kind
- property
- Type
string- Requirement
- optional
projectColumns
functiondeclare function projectColumns<T>(columnDefs: readonly GridColumnDef<T>[], columnState: GridColumnState): GridColumnProjection<T>;columnDefsreadonly GridColumnDef<T>[]columnStateGridColumnStatereturnGridColumnProjection<T>- 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
projectRemoteRows
functionRemote rows are already sorted, filtered and paged by their source.
declare function projectRemoteRows<T>(rows: readonly T[], options: { readonly getRowId: (row: T, absoluteIndex: number) => string; readonly baseIndex?: number; readonly total: number;}): GridRowProjection<T>;rowsreadonly T[]options{
readonly getRowId: (row: T, absoluteIndex: number) => string;
readonly baseIndex?: number;
readonly total: number;
}returnGridRowProjection<T>- 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
functiondeclare function projectRows<T>(rows: readonly T[], model: GridRowProjectionModel<T>, cache?: GridRowProjectionCache<T>): GridRowProjection<T>;rowsreadonly T[]modelGridRowProjectionModel<T>cacheGridRowProjectionCache<T>returnGridRowProjection<T>- 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
resolveGridKeyboardTarget
functiondeclare function resolveGridKeyboardTarget(result: GridKeyboardResult, position: GridKeyboardPosition, rowCount: number, columnCount: number): GridKeyboardPosition;resultGridKeyboardResultpositionGridKeyboardPositionrowCountnumbercolumnCountnumberreturnGridKeyboardPosition- 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
functiondeclare function runGridCommand<T>(command: GridCommand, options: GridConnectOptions<T>, _service: GridService<T>): void;commandGridCommandoptionsGridConnectOptions<T>_serviceGridService<T>returnvoid- 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
validateGridRowIds
functiondeclare function validateGridRowIds<T>(rows: readonly T[], getRowId: (row: T, index: number) => string): readonly DiagnosticObject[];rowsreadonly T[]getRowId(row: T, index: number) => stringreturnreadonly DiagnosticObject[]- 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
VirtualWindow
typetype VirtualWindow = { readonly start: number; readonly end: number; readonly offsets: readonly number[]; readonly totalSize: number;};endnumberoffsetsreadonly number[]startnumbertotalSizenumber- 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 imports
import { DataGrid } from "@grassroot/ui-headless-react/grid";Vue imports
<script setup lang="ts">import { DataGrid } from "@grassroot/ui-headless-vue/grid";</script>Angular imports
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
<script lang="ts"> import { DataGrid } from "@grassroot/ui-headless-svelte/grid";</script>Solid imports
import { DataGrid } from "@grassroot/ui-headless-solid/grid";@grassroot/ui-headless-react/grid
React adapter
DataGrid
functiondeclare function DataGrid<T>(props: DataGridProps<T>): ReactNode;propsDataGridProps<T>returnReactNode- Name
props- Kind
- parameter
- Type
DataGridProps<T>- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
DataGridProps
typetype 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;};classNamestringemptyMessageReactNodeerrorunknownloadingbooleanonExportCSV(csv: string) => voidrenderCell(context: GridCellContext<T>) => ReactNodeshowExportButtonbooleanshowQuickFilterboolean- 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
functiondeclare function DataGrid<T>(props: DataGridProps<T>): ReactNode;propsDataGridProps<T>returnReactNode- Name
props- Kind
- parameter
- Type
DataGridProps<T>- Requirement
- required
- Name
return- Kind
- return value
- Type
ReactNode- Requirement
- n/a
GridCellContext
typetype GridCellContext<T = unknown> = { readonly row: T; readonly value: unknown; readonly column: GridColumnDef<T>; readonly rowIndex: number;};columnGridColumnDef<T>rowTrowIndexnumbervalueunknown- 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
DataGrid
valueexport 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>;DataGridProps
typetype 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;};classNamestringemptyMessageunknownerrorunknownloadingbooleanonExportCSV(csv: string) => voidshowExportButtonbooleanshowQuickFilterboolean- 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
valueexport 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
GR_GRID_DECLARATIONS
valueexport declare const GR_GRID_DECLARATIONS: readonly [typeof GrDataGrid];GrDataGrid
classexport 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>;}aggForimport("@angular/core").InputSignal<Readonly<Record<string, "count" | "min" | "max" | "sum" | "avg" | "custom">> | undefined>allSelectedimport("@angular/core").Signal<boolean>blockSizeimport("@angular/core").InputSignal<number | undefined>captionimport("@angular/core").InputSignal<string>cellContext(row: unknown, column: GridColumnDef<unknown>, rowIndex: number) => GridCellTemplateContextcellTemplateimport("@angular/core").InputSignal<TemplateRef<GridCellTemplateContext> | undefined>cellValue(row: unknown, column: GridColumnDef<unknown>) => stringchangeEdit(event: Event) => voidclassNameimport("@angular/core").InputSignal<string | undefined>clearColumnFilter() => voidcolumnDefsimport("@angular/core").InputSignal<readonly GridColumnDef<unknown>[]>columnProjectionimport("@angular/core").Signal<import("@grassroot/ui-headless-core").GridColumnProjection<unknown>>columnStateChangeimport("@angular/core").OutputEmitterRef<GridColumnState>commitEdit(row: unknown, rowId: string, column: GridColumnDef<unknown>, reason: "blur" | "enter") => void- 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
- —
GridCellTemplateContext
interfaceexport interface GridCellTemplateContext { readonly row: unknown; readonly value: unknown; readonly column: GridColumnDef<unknown>; readonly rowIndex: number;}columnGridColumnDef<unknown>rowunknownrowIndexnumbervalueunknown- 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
DataGrid
valueexport declare const DataGrid: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- 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
DataGridProps
typeexport type DataGridProps = GridConnectOptions<unknown> & { cell?: Snippet<[GridCellContext]>; className?: string; loading?: boolean; error?: Snippet; emptyMessage?: Snippet; showQuickFilter?: boolean; showExportButton?: boolean; onExportCSV?: (csv: string) => void;};cellSnippet<[GridCellContext]>classNamestringemptyMessageSnippeterrorunknownloadingbooleanonExportCSV(csv: string) => voidshowExportButtonbooleanshowQuickFilterboolean- 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
valueexport declare const default: LegacyComponentType;argsParameters<Component<Record<string, any>>>returnReturnType<Component<Record<string, any>, Record<string, any>>>- 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
GridCellContext
typeexport type GridCellContext = { readonly row: unknown; readonly value: unknown; readonly column: import("@grassroot/ui-machines/grid").GridColumnDef<unknown>; readonly rowIndex: number;};columnimport("@grassroot/ui-machines/grid").GridColumnDef<unknown>rowunknownrowIndexnumbervalueunknown- 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
DataGrid
valueexport declare const DataGrid: Component<DataGridProps>;propsPreturnJSX.Element- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a
DataGridProps
typeexport 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;};classNamestringemptyMessageJSX.ElementerrorunknownloadingbooleanonExportCSV(csv: string) => voidrenderCell(context: GridCellContext) => JSX.ElementshowExportButtonbooleanshowQuickFilterboolean- 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
valueexport declare const default: Component<DataGridProps>;propsPreturnJSX.Element- Name
props- Kind
- parameter
- Type
P- Requirement
- required
- Name
return- Kind
- return value
- Type
JSX.Element- Requirement
- n/a
GridCellContext
typeexport type GridCellContext = { readonly row: unknown; readonly value: unknown; readonly column: GridColumnDef<unknown>; readonly rowIndex: number;};columnGridColumnDef<unknown>rowunknownrowIndexnumbervalueunknown- 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