@1771technologies/lytenyte-pro
Version:
Blazingly fast headless React data grid with 100s of features.
39 lines (38 loc) • 1.33 kB
TypeScript
import type { Column, FilterDateOperator, FilterNumberOperator, FilterStringOperator, Grid } from "../+types";
export interface UseFilterSelectParams<T> {
readonly grid: Grid<T>;
readonly column: Column<T>;
readonly maxCount?: number;
}
export type FilterSelectFlatFunc = {
kind: "function";
func: any;
};
export type FilterSelectFlatNumber = {
kind: "number";
operator?: FilterNumberOperator;
value?: string | number | null;
nextExtender?: null | "AND" | "OR";
};
export type FilterSelectFlatString = {
kind: "string";
operator?: FilterStringOperator;
value?: string | number | null;
nextExtender?: null | "AND" | "OR";
};
export type FilterSelectFlatDate = {
kind: "date";
operator?: FilterDateOperator;
value?: string | number | null;
nextExtender?: null | "AND" | "OR";
};
export type FilterSelectFlat = FilterSelectFlatFunc | FilterSelectFlatNumber | FilterSelectFlatString | FilterSelectFlatDate;
export declare const useFilterSelect: <T>({ grid, column, maxCount }: UseFilterSelectParams<T>) => {
reset: () => void;
apply: () => void;
clear: () => void;
defaultFilter: FilterSelectFlat;
filters: FilterSelectFlat[];
setFilters: (v: FilterSelectFlat[] | ((v: FilterSelectFlat[]) => FilterSelectFlat[])) => void;
maxCount: number;
};