UNPKG

copper-ui

Version:

Modern React UI components library with TypeScript support, built on top of Ant Design

129 lines 4.43 kB
import { ColumnDef } from '@tanstack/react-table'; import { DatePickerProps, InputNumberProps, InputProps, SelectProps } from 'antd'; import { RangePickerProps } from 'antd/es/date-picker'; import { CSSProperties, ReactNode } from '../../../../node_modules/.pnpm/react@19.1.1/node_modules/react'; import { TTableCell } from './cell.types'; import { TTableFilterOption, TTableFilterType } from './filter.types'; import { TTableSortOrder } from './sort.types'; import { TTableItem } from './table.types'; export type TTableColumnSort = { enabled: boolean; default?: TTableSortOrder; id?: string; }; export type TTableColumnFilterSelectProps = Omit<SelectProps, "value" | "onChange" | "options" | "className" | "style" | "styles">; export type TTableColumnFilter = { type: "multiselect"; options: TTableFilterOption[]; id?: string; className?: string; style?: CSSProperties; styles?: SelectProps["styles"]; props?: Omit<SelectProps, "value" | "onChange" | "options" | "mode" | "className" | "style" | "styles">; } | { type: "select"; options: TTableFilterOption[]; id?: string; className?: string; style?: CSSProperties; styles?: SelectProps["styles"]; props?: Omit<SelectProps, "value" | "onChange" | "options" | "className" | "style" | "styles">; } | { type: "date"; id?: string; className?: string; style?: CSSProperties; styles?: DatePickerProps["styles"]; props?: Omit<DatePickerProps, "value" | "onChange" | "open" | "onOpenChange" | "className" | "style" | "styles" | "format"> & { format: string; }; } | { type: "date-range"; id?: string; className?: string; style?: CSSProperties; styles?: DatePickerProps["styles"]; props?: Omit<RangePickerProps, "value" | "onChange" | "open" | "onOpenChange" | "className" | "style" | "styles" | "format"> & { format: string; }; } | { type: "input"; id?: string; className?: string; style?: CSSProperties; styles?: CSSProperties; props?: Omit<InputProps, "value" | "onChange" | "className" | "style">; } | { type: "input-number"; id?: string; className?: string; style?: CSSProperties; styles?: CSSProperties; props?: Omit<InputNumberProps, "value" | "onChange" | "className" | "style">; } | { type: Exclude<TTableFilterType, "multiselect" | "select" | "custom" | "date" | "date-range" | "input" | "input-number">; id?: string; className?: string; style?: CSSProperties; styles?: CSSProperties; props?: Record<string, unknown>; } | { type: "custom"; isMultiple?: false; render: (value: { value: string; label: string; }, onChange: (value: { value: string; label: string; }) => void, children: ReactNode) => ReactNode; id?: string; className?: string; style?: CSSProperties; styles?: CSSProperties; props?: Record<string, unknown>; } | { type: "custom"; isMultiple: true; render: (value: { value: string; label: string; }[], onChange: (value: { value: string; label: string; }[]) => void, children: ReactNode) => ReactNode; id?: string; className?: string; style?: CSSProperties; styles?: CSSProperties; props?: Record<string, unknown>; }; export type TTableColumnMapping = { value: string | number; label: string | number; }; export type TTableColumn<TItem extends TTableItem> = { sort?: TTableColumnSort; filter?: TTableColumnFilter; dataType?: "string" | "number"; definition: ColumnDef<TItem> & { id: string; cell: TTableCell<TItem>; headerTooltip?: { content: string; }; mapping?: TTableColumnMapping[]; headerRightBorder?: boolean; }; }; export type TTableColumnGroup<TItem extends TTableItem> = { header: string; headerTooltip?: { content: string; }; columns: readonly TTableColumnOrGroup<TItem>[]; }; export type TTableColumnOrGroup<TItem extends TTableItem> = TTableColumn<TItem> | TTableColumnGroup<TItem>; export declare const isColumnGroup: <TItem extends TTableItem>(col: TTableColumnOrGroup<TItem>) => col is TTableColumnGroup<TItem>; export declare const flattenColumns: <TItem extends TTableItem>(cols: readonly TTableColumnOrGroup<TItem>[]) => TTableColumn<TItem>[]; //# sourceMappingURL=col.types.d.ts.map