import { ColDef, ICellRendererParams } from 'ag-grid-community'; /** * 扩展的列状态接口 */ export interface ExtendedColumnState { field?: string; cellClass?: string; suppressHeaderFilterButton?: boolean; groupName?: string; [key: string]: any; } /** * 列单元格配置映射 */ export interface ColumnCellConfig { cellClass?: string; suppressHeaderFilterButton?: boolean; groupName?: string; } /** * 枚举值项 */ export interface ValueEnumItem { value: any; label: string; color?: string; default?: boolean; } /** * 数据类型推断结果 */ export interface DataTypeInference { type: 'number' | 'string' | 'boolean' | 'date'; calculateType?: 'sum' | 'avg' | 'standardDeviation' | false; } /** * 处理列状态,提取单元格配置 * * @param columnState 列状态数组 * @returns 字段到配置的映射 */ export declare function handleGridPlusColumnState(columnState: ExtendedColumnState[]): Record; /** * 推断数据类型 * * @param data 数据对象 * @param colName 列名 * @param valueEnum 枚举值 * @returns 数据类型推断结果 */ export declare function inferDataType(data: any, colName: string, valueEnum?: ValueEnumItem[]): DataTypeInference | undefined; /** * 把「推断出的数据类型」翻译成列定义片段。 * * dataType.type 是数据类型(number/string/...),不是 AG Grid 的列类型(columnTypes)。 * 早先是把整个 dataType 摊进 colDef,等于给列设了 type:"number"——而注册的 columnTypes 里 * 根本没有叫 number 的类型,这个字段一直没生效。 * * 普通数值列右对齐;合计另由 calculateType 显式控制。 * 用 valueEnum 表示分类的数值列(状态码之类)不动。 * * @author nokecy */ export declare function toColumnType(dataType?: DataTypeInference): { calculateType?: any; type?: string; }; /** 显式列类型只控制显示方式,不遮蔽数值对齐或显式合计配置。@author nokecy */ export declare function mergeInferredColumnType(column: T, dataType?: DataTypeInference): T & ReturnType; /** * 处理枚举列定义 —— **枚举列渲染的唯一实现**。 * * `cellRenderer` 必须在 `...col` 展开**之后**写入:否则业务传入的 `cellRenderer` 会把枚举映射盖掉, * 列退回原始码;反过来,业务也无法靠自己的 `cellRenderer` 接管枚举列(这正是本函数的职责边界)。 * * 命中枚举项:按 `match.color` 上色。`color` 是 **CSS 颜色**,语义档名(`success` 等)不是合法 CSS, * 会被浏览器静默忽略、整列退回正文色 —— 消费方需用 `gridValueEnum()` 之类适配层先转成色值。 * * **未命中枚举**(`null` / `undefined` / 空串 / 后端新增了码值而前端枚举未跟上): * - 列上配了 `enumFallbackRenderer` → 交给它渲染。业务侧据此输出中性「—」/「未知(原码)」, * 不必再改壳; * - 没配 → 原样返回该值(历史行为,保持向后兼容)。 * * @param col 原始列定义 * @param dataType 数据类型(决定是否右对齐,见 {@link toColumnType}) * @param background 单元格底色(hex)。传入则把枚举颜色压/提到够读的对比度;不传则 color 原样输出 * @returns 处理后的列定义 * @author nokecy */ export declare function processEnumColumn(col: any, dataType?: DataTypeInference, background?: string): ColDef; /** * 处理省略列定义 * * @param col 原始列定义 * @returns 处理后的列定义 */ export declare function processEllipsisColumn(col: any): ColDef; /** * 默认单元格渲染:固定行(合计等)显示原值;数据行有自定义渲染器(`customCellRenderer`)时交给它; * 否则显示 `valueFormatted`(列上配了 `valueFormatter` 时由 AG Grid 算好),没配则显示原值。 * * 以前这里直接返回 `params.value`,普通列(没有 `type`、没有自定义渲染器)上写的 `valueFormatter` * 被绕过:状态码列显示原码、「0/1」列显示 0/1,而不是格式化后的文字。 * 固定行保持原行为:格式化函数多按数据行写,空值常被格式化成「—」,不能让合计行冒出占位符。 * * @author nokecy */ export declare function renderDefaultCell(params: ICellRendererParams): any; /** * 创建自定义单元格渲染器包装 * * @param _customRenderer 保留参数,实际取列上的 `customCellRenderer` * @returns 包装后的渲染器 */ export declare function createCellRenderer(_customRenderer?: any): typeof renderDefaultCell; /** * 构建查询表单项 * * @param colDefs 列定义数组 * @returns 查询表单项数组 */ export declare function buildQueryFormItems(colDefs: any[]): any[]; /** * 应用列单元格配置 * * @param columnDefs 列定义数组 * @param columnCellConfig 单元格配置映射 * @returns 应用配置后的列定义 */ export declare function applyColumnCellConfig(columnDefs: any[], columnCellConfig: Record): any[]; /** * 过滤隐藏列 * * @param columnDefs 列定义数组 * @returns 过滤后的列定义 */ export declare function filterHiddenColumns(columnDefs: any[]): any[];