/** * DataList 过滤工具栏的表达式构建。 * * 过滤器用 FilterConfig 描述(类型可插拔),值收集在 FilterValues 中, * buildFilterExpression 把两者翻译成数据源的 filter 表达式字符串。 * 该模块为纯函数,不依赖 React。 */ export type FilterOption = { label: string; value: any; }; /** 过滤器类型;string 允许应用注册自定义类型 */ export type FilterType = "group" | "select" | "search" | "dateRange" | (string & {}); export interface FilterConfig { /** 过滤器控件类型 */ type: FilterType; /** 数据字段名(search 类型为字段别名,实际字段见 fields) */ field: string; label?: string; defaultValue?: V; placeholder?: string; /** group/select 的选项;select 支持 multiple */ options?: FilterOption[]; multiple?: boolean; /** search 类型:多字段模糊,产出括号 OR 组 */ fields?: string[]; /** 覆盖默认表达式规则 */ buildExpression?: (value: any) => string | undefined; } export type FilterValues = Record; /** 空值(undefined/null/空串)不产出表达式,"全部"选项用空串表示 */ export declare function isEmptyFilterValue(value: any): boolean; /** * 把过滤器值翻译成 filter 表达式。 * * - 各条件以 and 连接,空值跳过; * - config.buildExpression 优先于类型默认规则(返回 undefined 表示该条件不成立); * - 全部为空时返回 undefined。 */ export declare function buildFilterExpression(filters: FilterConfig[], values: FilterValues): string | undefined;