/**
 * 表格列过滤，参考https://2x.antdv.com/components/table-cn
 */
export interface FilterColumn<T = unknown> {
    key: string,
    filteredValue: string[],
    onFilter: (value: string, record: T) => boolean
}

/**
 * 过滤选择框
 */
export interface FilterSelect<T = unknown> {
    key: keyof T,
    alias?: string, // key 的别名，如果过滤的 key 不存在 column 中，就需要用到把过滤的结果映射到 column 中的任意一个 key 上
    selectedValue: string | number,
    options: {
        label: string,
        value: string | number,
    }[],
    onChange?: (value: string | number) => void
}

/**
 * 过滤输入框
 */
export interface FilterInput<T = unknown> {
    keys: (keyof T)[],
    alias?: string, // key 的别名，如果过滤的 key 不存在 column 中，就需要用到把过滤的结果映射到 column 中的任意一个 key 上
    value: string,
    placeholder: string
}

export interface FilterButton {
    lable: string;
    event: () => void;
    className?: string;
}