@opensig/opendesign
Version:
32 lines (31 loc) • 1.26 kB
TypeScript
import { ToRefs, Ref, ComputedRef } from 'vue';
import { DataTablePropsT, EffectiveDataTableColumnT } from './types';
type RemovedBodyCellInfo = {
/** 当前单元格的索引 */
index: string;
/** 被如何合并的 */
removedMethod: 'colspan' | 'rowspan';
/** 由哪一列触发的合并 */
removedBy: string;
};
export declare const useDataColumn: (options: ToRefs<DataTablePropsT> & {
tableEl: Ref<HTMLTableElement | undefined>;
containerWidth: Ref<number>;
}) => {
dataColumnMap: Map<string, EffectiveDataTableColumnT>;
dataColumns: Ref<EffectiveDataTableColumnT[]>;
groupColumns: Ref<EffectiveDataTableColumnT[][]>;
removedBodyCellsBySpan: ComputedRef<RemovedBodyCellInfo[]>;
isBodyCellRemoved: (rowIndex: number, colIndex: number) => boolean;
isLastLeftFixedCell: (rowIndex: number, colIndex: number) => boolean;
isFirstRightFixedCell: (rowIndex: number, colIndex: number) => boolean;
hasLeftFixedColumn: ComputedRef<boolean>;
hasRightFixedColumn: ComputedRef<boolean>;
handleColumnResizerMousedown: (options: {
event: MouseEvent;
column: EffectiveDataTableColumnT;
colIndex: number;
}) => void;
resizingColumnKey: Ref<string, string>;
};
export {};