import { DependencyList } from 'react'; import type { ColumnsSetting } from '../../components/CustomColumn/types'; import { TableProColumn } from './types'; export interface ColumnSettingOptions { /** 是否固定 */ fixed?: 'left' | 'right' | boolean | string; /** 是否隐藏 */ hidden?: boolean; /** 是否半选状态 */ indeterminate?: boolean; /** 排序 */ order?: number; /** 是否超出隐藏 */ ellipsis?: boolean; } export interface TableColumnsOptions { /** 表格列配置 */ columns?: TableProColumn[]; /** 表格列通用配置 */ globalConfigs?: TableProColumn; /** 表格列配置刷新依赖 */ columnsDeps?: DependencyList; /** 显示序号列 */ showOrder?: boolean; /** 显示排序 */ showSort?: boolean; /** 使用前端排序时,空行排序模式 * @default 'order' * @type ('order' | 'bottom') * @description 'order' 按顺序排序;'bottom' 固定在下方 */ emptySortMode?: 'order' | 'bottom'; /** 序号列宽度 */ orderColumnWidth?: number; /** 序号列是否固定 */ orderFixed?: boolean; /** 自定义序号列 */ extraOrderColumnConfig?: TableProColumn; /** 允许拖拽调整列宽 */ resizable?: boolean; /** 默认列宽 */ defaultColumnWidth?: number; /** 自定义列配置 */ columnsSetting?: ColumnsSetting; /** 默认列配置 */ defaultColumnsSetting?: ColumnsSetting; /** 自定义列配置调整 */ setColumnsSetting?: (options: ColumnsSetting) => void; } /** 获取列唯一标识 */ export declare const getColumnKey: (column: RS) => string; /** 判断是否业务列 */ export declare const isBusinessColumn: (column: RS) => boolean; export interface ExpandTableProColumn extends TableProColumn { /** 父节点 key */ parentKey?: string; /** 祖先节点 keys */ ancestorKeys?: string[]; } export default function useTableColumns(options: TableColumnsOptions): { tableColumns: TableProColumn[]; unfilteredColumns: TableProColumn[]; scrollWidth: string | number; sortColumns: any; toggleColumnOrder: (key: string, targetIndex: number) => void; toggleColumnVisibility: (key: string, visible: boolean) => void; toggleColumnFixed: (key: string, fixed?: 'left' | 'right' | boolean) => void; toggleColumnEllipsis: (key: string, ellipsis?: boolean) => void; resetColumnsSetting: () => void; };