Capability contract
GridServerAggregateOp, GridServerCapabilities, GridServerFilterCapability, GridServerFilterType: generated from the source of active-grid.
Exported by @workspace/. Generated from the package source; part of the index of every export.
Types#
Mirror of active-' Aggregate.
type GridServerAggregateOp = 'sum' | 'avg' | 'min' | 'max' | 'count';Server-declared UI capabilities for a resource-backed grid. FULL structural mirror of active-' Resource — a consumer passes the resource capability map straight through, nothing is narrowed away: operators, filterType, nullable, aggregate, search and presets all reach the client.
This is the single source of a resource grid's interaction surface, down to operator granularity. When present it REPLACES the per-column column. contract: the setup synthesizes an internal contract from it (apply) so enable-flag resolution and the hydration pruning run unchanged, and stamps the per-field filter capability on column. so the filter components derive their operators, filter semantics and nullability from the map instead of the built-in per-type defaults.
interface GridServerCapabilities {
filter: Record<string, GridServerFilterCapability>;
sort: string[];
group: string[];
aggregate: Record<string, GridServerAggregateOp[]>;
search: boolean;
presets: string[];
}Per-field filter capability as the server declares it. Structural mirror of active-' Resource — the grid stays decoupled (no import); the contract-parity test in active- asserts the two types stay identical.
interface GridServerFilterCapability {
filterType: GridServerFilterType;
nullable?: boolean;
nullValueToken?: string;
operators: FilterOperator[];
}Server-side filter type vocabulary — mirror of active-' Field. Deliberately narrower than the grid's own Column (no 'interval'): the server declares what a field IS, the column declares how it renders.
type GridServerFilterType =
'text' | 'number' | 'date' | 'boolean' | 'select';