@sap-ux/ui-components
Version:
SAP UI Components Library
144 lines • 4.21 kB
TypeScript
import type { IItemProps } from 'react-movable/lib/types';
export declare enum UIFlexibleTableLayout {
InlineFlex = "InlineFlex",
Wrapping = "Wrapping"
}
export interface UIFlexibleTableColumnType {
title: string;
key: string;
className?: string;
hidden?: boolean;
tooltip?: string;
}
export type TableRowCells<T> = {
[key: string]: T;
};
export interface UIFlexibleTableRowType<T> {
key: string;
cells: TableRowCells<T>;
title?: string;
className?: string;
tooltip?: string;
}
export interface TableRowEventHandlerParameters<T> {
readonly: boolean;
rowIndex: number;
rowKey: string;
cells: TableRowCells<T>;
}
export interface TitleCellRendererParams {
colIndex?: number;
colKey?: string;
isActionsColumn?: boolean;
isIndexColumn?: boolean;
}
export interface CellRendererParams<T> extends TableRowEventHandlerParameters<T> {
colIndex: number;
colKey: string;
isInRowLayout: boolean;
value: T;
}
export interface CellRendererResult {
content: React.ReactNode;
title?: string | React.ReactNode;
isSpan?: boolean;
cellClassNames?: string | string[];
tooltip?: string;
}
export type AddRowResultType = {
scrollToRow?: number;
} | undefined;
export interface UIFlexibleTableProps<T> {
addRowButton?: {
ariaLabel?: string;
label: string;
title?: string;
onClick?: () => AddRowResultType | Promise<AddRowResultType>;
};
columns: UIFlexibleTableColumnType[];
id: string;
isAddItemDisabled?: boolean;
isContentLoading?: boolean;
inRowLayoutMinWidth?: number;
layout: UIFlexibleTableLayout;
maxScrollableContentHeight?: number;
maxWidth?: number;
noRowBackground?: boolean;
onBeforeTableRender?: (params: {
rows: UIFlexibleTableRowType<T>[];
}) => {
rows: (UIFlexibleTableRowType<T> & {
disabled: boolean;
})[];
};
onDeleteRow?: (params: TableRowEventHandlerParameters<T>) => void;
onRenderPrimaryTableActions?: (params: {
readonly: boolean;
}) => React.ReactElement[];
onRenderSecondaryTableActions?: (params: {
readonly: boolean;
}) => React.ReactElement[];
onRenderActions?: (params: TableRowEventHandlerParameters<T>) => React.ReactElement[];
onRenderReorderActions?: (params: TableRowEventHandlerParameters<T>) => undefined | {
up?: {
disabled: boolean;
tooltip?: string;
};
down?: {
disabled: boolean;
tooltip?: string;
};
};
onRenderDeleteAction?: (params: TableRowEventHandlerParameters<T>) => {
isDeleteDisabled: boolean;
tooltip?: string;
};
onStartDragging?: (params: {
elements: Element[];
index: number;
}) => void;
onRenderRowContainer?: (params: {
readonly: boolean;
rowIndex?: number;
isDragged: boolean;
}) => {
isDropWarning?: boolean;
};
onRenderCell: (params: CellRendererParams<T>) => CellRendererResult;
onRenderRowDataContent?: (params: TableRowEventHandlerParameters<T>) => React.ReactNode | undefined;
onRenderTitleColumnCell?: (params: TitleCellRendererParams) => CellRendererResult;
onTableReorder?: (params: {
oldIndex: number;
newIndex: number;
}) => void | {
isDropDisabled: boolean;
};
onContentSizeChange?: (params: {
height: number;
width: number;
}) => void;
readonly?: boolean;
rows: UIFlexibleTableRowType<T>[];
showIndexColumn?: boolean;
showColumnTitles?: boolean;
showColumnTitlesInCells?: boolean;
showRowTitles?: boolean;
lockVertically?: boolean;
reverseBackground?: boolean;
noDataText?: string | React.ReactElement;
isTouchDragDisabled?: boolean;
}
export interface NodeDragAndDropSortingParams {
index?: number;
isDragged: boolean;
isOutOfBounds: boolean;
isSelected: boolean;
props: IItemProps;
value: unknown;
}
export declare enum UIFlexibleTableNoDataAlignment {
Left = "left",
Right = "right",
Center = "center"
}
//# sourceMappingURL=types.d.ts.map