UNPKG

@vaadin/hilla-react-crud

Version:

Hilla CRUD utils for React

35 lines (34 loc) 1.82 kB
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 };