@vaadin/hilla-react-crud
Version:
Hilla CRUD utils for React
35 lines (34 loc) • 1.82 kB
TypeScript
import type { AbstractModel, DetachedModelConstructor } from '@vaadin/hilla-lit-form';
import { type GridElement, type GridProps } from '@vaadin/react-components/Grid.js';
import { type ComponentType, type ForwardedRef, type JSX } from 'react';
import { type ColumnOptions } from './autogrid-columns.js';
import type { ListService } from './crud.js';
import { type ItemCounts } from './data-provider.js';
import { type HeaderFilterRendererProps } from './header-filter';
import type FilterUnion from './types/com/vaadin/hilla/crud/filter/FilterUnion.js';
export interface AutoGridRef<TItem = any> {
grid: GridElement<TItem> | null;
refresh(): void;
}
interface AutoGridOwnProps<TItem> {
service: ListService<TItem>;
model: DetachedModelConstructor<AbstractModel<TItem>>;
itemIdProperty?: string;
experimentalFilter?: FilterUnion;
visibleColumns?: string[];
hiddenColumns?: string[];
noHeaderFilters?: boolean;
customColumns?: JSX.Element[];
columnOptions?: Record<string, ColumnOptions>;
rowNumbers?: boolean;
totalCount?: boolean;
filteredCount?: boolean;
footerCountRenderer?: ComponentType<ItemCounts>;
}
export type AutoGridProps<TItem> = GridProps<TItem> & Readonly<AutoGridOwnProps<TItem>>;
declare function AutoGridInner<TItem>({ service, model, itemIdProperty, experimentalFilter, visibleColumns, hiddenColumns, noHeaderFilters, customColumns, columnOptions, rowNumbers, totalCount, filteredCount, footerCountRenderer, ...gridProps }: AutoGridProps<TItem>, ref: ForwardedRef<AutoGridRef<TItem>>): JSX.Element;
type AutoGrid = <TItem>(props: AutoGridProps<TItem> & {
ref?: ForwardedRef<AutoGridRef<TItem>>;
}) => ReturnType<typeof AutoGridInner>;
export declare const AutoGrid: AutoGrid;
export type { ColumnOptions, HeaderFilterRendererProps };