@seasketch/geoprocessing
Version:
Geoprocessing and reporting framework for SeaSketch 2.0
31 lines (30 loc) • 1.56 kB
TypeScript
import React, { ReactElement } from "react";
import { TableOptions } from "./Table.js";
/** Custom table data filter */
export interface FilterSelectOption<D extends object = {}> {
/** The label displayed for the select filter */
name: string;
/** Whether to select by default */
defaultValue: boolean;
/** The function used to filter the set. */
filterFn: (row: D) => boolean;
}
/** Custom table data filters that are only active when selected by the user */
export interface FilterSelect<D extends object = {}> {
/** Filter a row if `every` selected filter function returns true (logical AND), or at least `some` (logical OR) */
type?: "every" | "some";
/** filter functions called for every data row */
filters: FilterSelectOption<D>[];
filterPosition?: "top" | "bottom";
}
export declare const FilterSelectTableStyled: import("styled-components/dist/types.js").IStyledComponentBase<"web", import("styled-components").FastOmit<React.DetailedHTMLProps<React.HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
export interface FilterSelectTableOptions<D extends object = {}> extends TableOptions<D> {
filterSelect: FilterSelect<D>;
}
/**
* Table with customizable filter functions as CheckboxGroup that when selected
* filter the rows if the function return true. By default only 'some' filter function
* has to match for it to filter the row
*/
export declare function FilterSelectTable<D extends object>(props: FilterSelectTableOptions<D>): ReactElement;
export default FilterSelectTable;