-import Popover from '../popover/popover';
-import { formatFileSize, formatDate } from '../../common/formatters';
-import { DataItem } from './data-item';
-
-interface DataExplorerProps {
- items: DataItem[];
- onItemClick: (item: DataItem) => void;
+import ColumnSelector from "../column-selector/column-selector";
+import DataTable, { DataColumns } from "../data-table/data-table";
+import { DataColumn } from "../data-table/data-column";
+import { DataTableFilterItem } from '../data-table-filters/data-table-filters';
+import SearchInput from '../search-input/search-input';
+
+interface DataExplorerProps<T> {
+ items: T[];
+ itemsAvailable: number;
+ columns: DataColumns<T>;
+ searchValue: string;
+ rowsPerPage: number;
+ rowsPerPageOptions?: number[];
+ page: number;
+ onSearch: (value: string) => void;
+ onRowClick: (item: T) => void;
+ onRowDoubleClick: (item: T) => void;
+ onColumnToggle: (column: DataColumn<T>) => void;
+ onContextMenu: (event: React.MouseEvent<HTMLElement>, item: T) => void;
+ onSortToggle: (column: DataColumn<T>) => void;
+ onFiltersChange: (filters: DataTableFilterItem[], column: DataColumn<T>) => void;
+ onChangePage: (page: number) => void;
+ onChangeRowsPerPage: (rowsPerPage: number) => void;
+ extractKey?: (item: T) => React.Key;