@acrool/react-table
Version:
Table library based for Reactjs
49 lines (48 loc) • 1.57 kB
TypeScript
import { TTableTitle, TBodyDataID, TBodyDataFieldKey, ITableBody, TTitleCol } from './types';
import { CSSProperties } from 'react';
export declare const getTemplate: <D extends string>(titles: TTableTitle<D>, gap: string) => CSSProperties;
export declare const getCol: (col: TTitleCol) => {
'--td-width': string;
} | {
'--td-width': true | `${number}em` | `${number}px` | `${number}%` | `${number}fr` | `${number}rem` | "auto";
};
/**
* 計算 sticky top
* @param isSticky
*/
export declare const getCalcStickyTopStyles: (isSticky?: boolean) => CSSProperties;
/**
* 計算 sticky left
* @param calcLeft
* @param sticky
*/
export declare const getCalcStickyLeftStyles: (calcLeft?: TTitleCol[], sticky?: 'left' | 'right') => CSSProperties;
/**
* 計算分頁
* @param totalItem
* @param pageLimit
*/
export declare const calcPageInfo: (totalItem: number, pageLimit: number) => number;
interface ITableTitleData<K extends TBodyDataFieldKey, I extends TBodyDataID> {
title: TTableTitle<K>;
data: ITableBody<K, I>[];
}
/**
* 綁定的方式產生 data,
* tableTitleData({
* title: {text: 'title', col: 'auto'},
* name: {text: 'name', col: 'auto'},
* }, [
* {
* id: 'name',
* field: {
* name: 'xx',
* title: 'xxx',
* }
* }
* ]);
* @param title
* @param data
*/
export declare const genericsTitleData: <K extends string, I extends TBodyDataID>(title: TTableTitle<K>, data: ITableBody<K, I>[]) => ITableTitleData<K, I>;
export { arrayMove } from '@dnd-kit/sortable';