import React from 'react'; import { StockGraphProps } from '../StockGraph/interfaces'; /* eslint-disable @typescript-eslint/no-explicit-any */ export interface Props { headers: Array; data: Array; fixedRowsData: Array; isLoading?: boolean; isExpandable: boolean; defaultOrderBy: string; defaultOrderType: 'asc' | 'desc'; customMultipleOrder: { orderBy: string[]; orderType: ('asc' | 'desc')[]; customOrderByFunc: Function; }; minWidth: string; maxHeight: string; customModalIcon?: string; labelEmptyState?: string; iconEmptyState?: React.FunctionComponent>; iconSizeEmptyState?: string; labelModalEmptyState?: string; modalTitle?: string; modalHeaders?: Array; theme: any; graphEmptyStateLabel: string; languageCode: string; hasNestedData: boolean; hasPagination: boolean; maxPerPage: number; setMaxPerPage: Function; setCurrentPage: Function; currentPage: number; itemsCount: number; maxPerPageOptions: Array; hideAllPerPageOption: boolean; customSortProperty?: string; customSortFunc?: ( data: Array, orderType: 'asc' | 'desc', customSortProperty: string ) => Array; customNestedContentPadding: string; customContentHeight?: string; } export interface ItemGlobal { graphContent?: () => StockGraphProps; nestedContent?: () => React.ReactElement; isHighlighted: boolean; opened: boolean; nestedData: Array; } export interface PropsHeader { headers: Array; orderBy: string; orderType: 'asc' | 'desc'; setOrderColumn: (columnPropertyKey) => void; theme: any; hasNestedData?: boolean; } export interface HeaderInterface { id: number; name: string; propertyKey: string; isNumber?: boolean; unit?: string; tooltipDisplay?: string; isSortable?: boolean; large?: boolean; narrow?: boolean; minWidth?: number; render?: (value, item) => void; customModalRender?: boolean; displayBigger?: boolean; isHidden?: boolean; hideRow?: boolean; } export interface LoadingProps { headers: Array; hasNestedData?: boolean; } export interface ModalHeaderInterface { propertyKey: string; bold?: boolean; render?: (value, item) => void; } export interface LoadingModalProps { headers: Array; } export interface PropsRow { headers: Array; item: ItemGlobal; openRow: () => void; customModalIcon?: string; openModal: () => void; modalTitle: string; isExpandable: boolean; isHighlighted: boolean; modalHeaders: Array; labelModalEmptyState: string; theme: any; graphEmptyStateLabel: string; customNestedContentPadding: string; isBold: boolean; hasNestedData: boolean; } export interface PropsModalRow { headers: Array; item: any; theme: any; } export interface ModalIconProps { icon?: string; openModal: () => void; openedModal: boolean; modalContent: () => Array; modalTitle: string; modalHeaders: Array; labelModalEmptyState: string; theme: any; } export interface ModalContentProps { theme: any; title: string; modalHeaders: Array; labelModalEmptyState: string; modalContent: () => Array; openModal: (() => void) | ((index?: number, childIndex?: number) => void); } export interface PropsActionButton { open?: boolean; visibility?: boolean; isLoading?: boolean; isDisabled?: boolean; theme?: any; } export interface PropsItemDisplay { value: string | number | void; id?: string | number | undefined; nbColumn: number; large?: boolean; narrow?: boolean; isHighlighted?: boolean; minWidth?: number; isLoading?: boolean; height?: number; hasNestedData?: boolean; isBold?: boolean; displayBigger: boolean; } export interface UseInteractDataRowAndGraphProps { headers: Array; orderType: 'asc' | 'desc'; data: Array; orderBy: string; maxPerPage: number; currentPage: number; hasPagination: boolean; customSortProperty?: string; customSortFunc?: ( data: Array, orderType: 'asc' | 'desc', customSortProperty: string ) => Array; multipleOrderBy?: string[]; multipleOrderType?: ('asc' | 'desc')[]; customMultipleOrder?: { customOrderByFunc: Function; }; } export interface ReturnFromInteractDataRowAndGraph { dataState: Array; openRow: (index, keepOthersOpen: boolean) => void; openModal: (index: number, selected: string) => void; } export interface Indexes { index: number; } export interface NestedItemGlobal extends ItemGlobal { link?: string; } export interface NestedDataProps { theme?: any; data: Array; headers: Array; } export interface NestedDataItemProps { value: string | number | void; large?: boolean; narrow?: boolean; nbColumn: number; isFirst: boolean; theme?: any; link?: string | null; }