UNPKG

2.79 kBTypeScriptView Raw
1import React, { Component, MouseEventHandler } from 'react';
2import { ColumnProps, TableStateFilters } from './interface';
3import { LabeledValue, OptionProps } from '../select';
4export declare const VALUE_OR = "OR";
5export interface FilterSelectProps<T> {
6 prefixCls?: string;
7 placeholder?: string;
8 dataSource?: T[];
9 filters?: string[];
10 columnFilters?: TableStateFilters;
11 columns?: ColumnProps<T>[];
12 onFilter?: (column: ColumnProps<T>, nextFilters: string[]) => void;
13 onChange?: (filters?: any[]) => void;
14 onClear?: () => void;
15 multiple?: boolean;
16 getPopupContainer?: (triggerNode?: Element) => HTMLElement;
17}
18export interface FilterSelectState<T> {
19 columns: ColumnProps<T>[];
20 filters: string[];
21 columnFilters: TableStateFilters;
22 selectColumn?: ColumnProps<T>;
23 inputValue: string;
24 checked: any[];
25}
26export default class FilterSelect<T> extends Component<FilterSelectProps<T>, FilterSelectState<T>> {
27 constructor(props: any);
28 state: FilterSelectState<T>;
29 rcSelect: any;
30 columnRefs: any;
31 componentWillReceiveProps(nextProps: FilterSelectProps<T>): void;
32 getPrefixCls(): string;
33 handleDropdownMouseDown: MouseEventHandler<any>;
34 render(): JSX.Element;
35 renderColumnsTitle(): JSX.Element[];
36 isMultiple(): boolean | undefined;
37 saveRef: (node: any) => void;
38 saveColumnRef: (key: string | number, node: any) => void;
39 handleInputKeyDown: (e: any) => void;
40 handleInput: (value: string) => void;
41 handleChoiceItemClick: ({ key }: LabeledValue) => void;
42 handleSelect: ({ key }: LabeledValue) => boolean;
43 handleMultiCheckConfirm: () => void;
44 handleClear: () => void;
45 handleChange: (changedValue: LabeledValue[]) => void;
46 fireChange(filters: any[]): void;
47 fireColumnFilterChange(columnKey: string | number, value: any[]): void;
48 changeValue(changedValue: LabeledValue[], oldValue: any[]): string[];
49 getColumnFiltersValues(): any[];
50 getValue(): ("" | {
51 key: string;
52 label: ({} | null | undefined)[];
53 })[];
54 getInputFilterOptions(inputValue: string): React.ReactElement<OptionProps, string | ((props: any) => React.ReactElement<any, string | any | (new (props: any) => React.Component<any, any, any>)> | null) | (new (props: any) => React.Component<any, any, any>)>[];
55 getOptions(): any[] | null | undefined;
56 getColumnsWidthFilters(props?: Readonly<FilterSelectProps<T>> & Readonly<{
57 children?: React.ReactNode;
58 }>): ColumnProps<T>[];
59 findColumn(myKey: string | number): ColumnProps<T> | undefined;
60 toValueString: (item: any) => "" | {
61 key: string;
62 label: ({} | null | undefined)[];
63 };
64 getRootDomNode: () => HTMLElement;
65 getColumnTitle(column: ColumnProps<T>): string;
66}