@linzjs/step-ag-grid
Version:
[](https://github.com/semantic-release/semantic-release) > Reusable [ag-grid](https://www.ag-grid.com/) component for LINZ / Toitū te whenua.
37 lines (36 loc) • 1.64 kB
TypeScript
import { ReactElement } from 'react';
import { CellEditorCommon } from '../GridCell';
import { GridBaseRow } from '../types';
export interface MultiSelectOption {
value: any;
label?: string;
subComponent?: (props: any) => ReactElement;
subValue?: any;
filter?: string;
checked?: boolean;
warning?: string | undefined;
}
export interface GridFormMultiSelectGroup {
header: string;
filter?: string;
}
export interface GridFormMultiSelectSaveProps<TData extends GridBaseRow> {
selectedRows: TData[];
selectedOptions: MultiSelectOption[];
}
export interface GridFormMultiSelectProps<TData extends GridBaseRow> extends CellEditorCommon {
className?: 'GridMultiSelect-containerSmall' | 'GridMultiSelect-containerMedium' | 'GridMultiSelect-containerLarge' | 'GridMultiSelect-containerUnlimited' | string | undefined;
filtered?: boolean;
filterPlaceholder?: string;
filterHelpText?: string | ((filter: string, options: MultiSelectOption[]) => string | undefined);
noOptionsMessage?: string;
onSelectFilter?: (props: {
filter: string;
options: MultiSelectOption[];
}) => void;
onSave?: (props: GridFormMultiSelectSaveProps<TData>) => Promise<boolean>;
headers?: GridFormMultiSelectGroup[];
options: MultiSelectOption[] | ((selectedRows: TData[]) => Promise<MultiSelectOption[]> | MultiSelectOption[]);
invalid?: (selectedRows: TData[], selectedOptions: MultiSelectOption[]) => boolean;
}
export declare const GridFormMultiSelect: <TData extends GridBaseRow>(props: GridFormMultiSelectProps<TData>) => import("react/jsx-runtime").JSX.Element;