import type { VNodeChild, VNodeNormalizedChildren } from 'vue'; import type { IconName } from '../Icon'; export type DataTableItem = Record & { selectable?: boolean; }; export type DataTableHeader = Record & { value: string; rowHeader?: boolean; sortable?: boolean; label?: string; scopedSlots?: VNodeNormalizedChildren & { header?: () => VNodeChild; }; hideLabel?: boolean; isContentCentered?: boolean; }; export type DataTablePagination = { currentPage: number; pageSize?: number; perPage?: number; }; export type DataTableContext = () => { rowFieldIdentifier: string; selectRow: (row: DataTableItem) => void; deselectRow: (row: DataTableItem) => void; selectAll: () => void; deselectAll: () => void; toggleTableOrder: (order: number, key: string) => void; resetTableOrder: () => void; }; export type DataTableAction = { label: string; value: string; icon: IconName; isLoading?: boolean; disabled?: boolean; disabledText?: string; };