asb_cloud_front/src/components/Table/index.tsx

55 lines
1.4 KiB
TypeScript
Raw Normal View History

export { makeDateSorter, makeNumericSorter, makeStringSorter } from './sorters'
export { EditableTable, makeActionHandler } from './EditableTable'
export { DatePickerWrapper } from './DatePickerWrapper'
export { Table } from './Table'
export {
RegExpIsFloat,
timezoneOptions,
TimezoneSelect,
makeGroupColumn,
makeColumn,
makeColumnsPlanFact,
makeFilterTextMatch,
makeNumericRender,
makeNumericColumn,
makeNumericColumnOptions,
makeNumericColumnPlanFact,
makeNumericStartEnd,
makeNumericMinMax,
makeNumericAvgRange,
makeSelectColumn,
makeTagColumn,
makeTagInput,
makeTextColumn,
makeTimezoneColumn,
makeTimezoneRenderer,
} from './Columns'
export type {
DataType,
RenderMethod,
SorterMethod,
TagInputProps,
columnPropsOther,
} from './Columns'
export type { BaseTableColumn, TableColumns, TableContainer } from './Table'
export const defaultPagination = {
defaultPageSize: 14,
showSizeChanger: true,
}
type PaginationContainer = {
skip?: number
take?: number
count?: number
items?: any[] | null
}
export const makePaginationObject = (сontainer: PaginationContainer, ...other: any) => ({
...other,
pageSize: сontainer.take,
total: сontainer.count ?? сontainer.items?.length ?? 0,
current: 1 + Math.floor((сontainer.skip ?? 0) / (сontainer.take ?? 1))
})