| /* |
| * Licensed to the Apache Software Foundation (ASF) under one or more |
| * contributor license agreements. See the NOTICE file distributed with |
| * this work for additional information regarding copyright ownership. |
| * The ASF licenses this file to You under the Apache License, Version 2.0 |
| * (the "License"); you may not use this file except in compliance with |
| * the License. You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| import { Cell, ColumnDef, Row } from "@tanstack/react-table"; |
| |
| export interface TableProps { |
| fetchData?: any; |
| data: any[]; |
| columns: ColumnDef<any>[]; |
| isFetching?: boolean; |
| skeletonCount?: number; |
| skeletonHeight?: number; |
| headerComponent?: JSX.Element; |
| pageCount?: number; |
| totalCount?: number; |
| defaultColumnVisibility?: any; |
| page?: (page: number) => void; |
| onClickRow?: (cell: Cell<any, unknown>, row: Row<any>) => void; |
| emptyText?: string; |
| children?: React.ReactNode | React.ReactElement; |
| handleRow?: () => void; |
| defaultColumnParams?: string; |
| columnVisibility: boolean; |
| currentpageIndex?: number; |
| currentpageSize?: number; |
| refreshTable?: () => void; |
| defaultSortCol?: any; |
| clientSideSorting?: boolean; |
| columnSort: boolean; |
| showPagination: boolean; |
| showRowSelection: boolean; |
| tableFilters?: boolean; |
| expandRow?: boolean; |
| auditTableDetails?: any; |
| assignFilters?: { classifications: boolean; term: boolean } | null; |
| queryBuilder?: boolean; |
| allTableFilters?: boolean; |
| columnVisibilityParams?: boolean; |
| setUpdateTable?: any; |
| isfilterQuery?: any; |
| isClientSidePagination?: boolean; |
| isEmptyData?: boolean; |
| setIsEmptyData?: React.Dispatch<React.SetStateAction<boolean>>; |
| showGoToPage?: boolean; |
| customLeftButton?: React.ReactNode; |
| /** Client pagination: default rows per page (e.g. schema tab uses 100 to match relationship API). */ |
| defaultPageSize?: number; |
| /** Client pagination: invoked when the user changes page size (e.g. sync schema relationship chunk limit). */ |
| onClientPageSizeChange?: (pageSize: number) => void; |
| } |