import * as React from 'react'; import { UpPaginationProps } from './UpPagination'; import { ActionFactory } from './UpDataGridRow'; import { ICellFormatter } from './UpDefaultCellFormatter'; import { IntentType, WithThemeProps } from '../../../Common/theming/types'; import { ActionType } from '../../../Common/actions'; import { UpDataGridFooterProps } from './UpDataGridFooter'; import { UpDataGridHeaderProps } from './UpDataGridHeader'; import { TestableComponentProps } from '../../../Common/utils/types'; import { IconName } from '../../../Common/theming/icons'; export declare function isActionEnabled(props: { actions?: ActionFactory | Array; displayRowActionsWithinCell?: boolean; }): boolean; export interface Action { type: ActionType; iconName?: IconName; intent?: IntentType; description: string; action: (row: Row) => void; libelle?: string; borderless?: boolean; isVisible?: (value: any) => boolean; getProps?: (value: any) => any; additionalStyles?: { backgroundColor?: string; hoverBackgroundColor?: string; }; } export interface ToolTip { title?: JSX.Element | string; content: JSX.Element | string; icon?: IconName; } export declare type RenderValue = { value: any; column: Column; }; export interface Column { label: string | JSX.Element; field?: string; formatter?: ICellFormatter; getFormatterProps?: (value: string) => any; render?: (value: RenderValue) => JSX.Element; type?: any; isSortable?: boolean; isSorted?: boolean; sortDir?: SortDirection; tooltip?: ToolTip; } export interface Row { isSelected?: boolean; value?: any; } export declare type Method = 'GET' | 'POST'; export declare type PaginationPosition = 'top' | 'bottom' | 'both'; export interface exportCsv { fileName: string; textButton?: string; } export interface UpDataGridProps extends TestableComponentProps, WithThemeProps { className?: string; columns: Array; rowActions?: ActionFactory | Array; labelToDisplayRowActionsInCell?: string; isSelectionEnabled?: boolean; isPaginationEnabled?: boolean; paginationPosition?: PaginationPosition; isOddEvenEnabled?: boolean; isSortEnabled?: boolean; rowsSelected?: Array; lastFetchedDataTime?: Date; rowTemplate?: any; data?: Array; idKey?: string; dataKey?: string; isDataFetching?: boolean; alignCells?: 'top' | 'bottom' | 'middle' | 'initial'; textAlignCells?: 'center' | 'left' | 'right' | 'initial'; exportCsv?: exportCsv; dataSource?: { query: string; method?: Method; entityKey?: string; orderParamName?: string; dirParamName?: string; skipParamName?: string; takeParamName?: string; }; loadingMessage?: string; paginationProps?: Partial; injectRow?: (previous: any, next: any, colum: Column[]) => JSX.Element; onSortChange?: (c: Column, dir: SortDirection) => void; onSelectionChange?: (lastUpdatedRow: Row, dataSelected: any[], allRowsSelected?: Row[], isAllRowsSelected?: boolean) => void; onRowClick?: (rowIndex: number, row: any) => void; isRowClickable?: boolean; getRowCustomClassName?: (rowIndex: number, row: any) => string; footerProps?: Partial; headerProps?: Partial; displayRowActionsWithinCell?: boolean; onlyOneRowCanBeSelected?: boolean; isDataInitialized?: boolean; setIsDataInitializedToFalse?: () => void; } export interface UpDataGridState { rows: Array; columns: Array; page?: number; skip?: number; take?: number; total?: number; isDataFetching?: boolean; allRowsSelected?: boolean; rowsSelected?: Array; lastFetchedDataTime?: Date; data?: any; } export declare type SortDirection = 'ASC' | 'DESC'; export declare const mapDataToRow: (data: Array, allRowsSelected: boolean, rowsSelected: Array) => Array; declare const _default: { new (props: any, context: any): { render(): JSX.Element; context: any; setState(state: {} | ((prevState: Readonly<{}>, props: Readonly>) => {} | Pick<{}, K>) | Pick<{}, K>, callback?: () => void): void; forceUpdate(callback?: () => void): void; readonly props: Readonly> & Readonly<{ children?: React.ReactNode; }>; state: Readonly<{}>; refs: { [key: string]: React.ReactInstance; }; componentDidMount?(): void; shouldComponentUpdate?(nextProps: Readonly>, nextState: Readonly<{}>, nextContext: any): boolean; componentWillUnmount?(): void; componentDidCatch?(error: Error, errorInfo: React.ErrorInfo): void; getSnapshotBeforeUpdate?(prevProps: Readonly>, prevState: Readonly<{}>): any; componentDidUpdate?(prevProps: Readonly>, prevState: Readonly<{}>, snapshot?: any): void; componentWillMount?(): void; UNSAFE_componentWillMount?(): void; componentWillReceiveProps?(nextProps: Readonly>, nextContext: any): void; UNSAFE_componentWillReceiveProps?(nextProps: Readonly>, nextContext: any): void; componentWillUpdate?(nextProps: Readonly>, nextState: Readonly<{}>, nextContext: any): void; UNSAFE_componentWillUpdate?(nextProps: Readonly>, nextState: Readonly<{}>, nextContext: any): void; }; displayName: string; contextTypes: { theme: import("prop-types").Requireable; }; contextType?: React.Context; }; export default _default;