|
|
|
@ -22,10 +22,11 @@ import { Pagination } from '../Pagination/Pagination'; |
|
|
|
|
import { FooterRow } from './FooterRow'; |
|
|
|
|
import { HeaderRow } from './HeaderRow'; |
|
|
|
|
import { RowsList } from './RowsList'; |
|
|
|
|
import { TableCellInspector } from './TableCellInspector'; |
|
|
|
|
import { useFixScrollbarContainer, useResetVariableListSizeCache } from './hooks'; |
|
|
|
|
import { getInitialState, useTableStateReducer } from './reducer'; |
|
|
|
|
import { useTableStyles } from './styles'; |
|
|
|
|
import { FooterItem, GrafanaTableState, Props } from './types'; |
|
|
|
|
import { FooterItem, GrafanaTableState, InspectCell, Props } from './types'; |
|
|
|
|
import { |
|
|
|
|
getColumns, |
|
|
|
|
sortCaseInsensitive, |
|
|
|
@ -72,6 +73,7 @@ export const Table = memo((props: Props) => { |
|
|
|
|
const headerHeight = noHeader ? 0 : tableStyles.rowHeight; |
|
|
|
|
const [footerItems, setFooterItems] = useState<FooterItem[] | undefined>(footerValues); |
|
|
|
|
const noValuesDisplayText = fieldConfig?.defaults?.noValue ?? NO_DATA_TEXT; |
|
|
|
|
const [inspectCell, setInspectCell] = useState<InspectCell | null>(null); |
|
|
|
|
|
|
|
|
|
const footerHeight = useMemo(() => { |
|
|
|
|
const EXTENDED_ROW_HEIGHT = FOOTER_ROW_HEIGHT; |
|
|
|
@ -324,6 +326,7 @@ export const Table = memo((props: Props) => { |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
return ( |
|
|
|
|
<> |
|
|
|
|
<div |
|
|
|
|
{...getTableProps()} |
|
|
|
|
className={tableStyles.table} |
|
|
|
@ -338,7 +341,10 @@ export const Table = memo((props: Props) => { |
|
|
|
|
<HeaderRow headerGroups={headerGroups} showTypeIcons={showTypeIcons} tableStyles={tableStyles} /> |
|
|
|
|
)} |
|
|
|
|
{itemCount > 0 ? ( |
|
|
|
|
<div data-testid={selectors.components.Panels.Visualization.Table.body} ref={variableSizeListScrollbarRef}> |
|
|
|
|
<div |
|
|
|
|
data-testid={selectors.components.Panels.Visualization.Table.body} |
|
|
|
|
ref={variableSizeListScrollbarRef} |
|
|
|
|
> |
|
|
|
|
<RowsList |
|
|
|
|
headerGroups={headerGroups} |
|
|
|
|
data={data} |
|
|
|
@ -364,6 +370,7 @@ export const Table = memo((props: Props) => { |
|
|
|
|
textWrapField={textWrapField} |
|
|
|
|
getActions={getActions} |
|
|
|
|
replaceVariables={replaceVariables} |
|
|
|
|
setInspectCell={setInspectCell} |
|
|
|
|
/> |
|
|
|
|
</div> |
|
|
|
|
) : ( |
|
|
|
@ -384,6 +391,17 @@ export const Table = memo((props: Props) => { |
|
|
|
|
</CustomScrollbar> |
|
|
|
|
{paginationEl} |
|
|
|
|
</div> |
|
|
|
|
|
|
|
|
|
{inspectCell !== null && ( |
|
|
|
|
<TableCellInspector |
|
|
|
|
mode={inspectCell.mode} |
|
|
|
|
value={inspectCell.value} |
|
|
|
|
onDismiss={() => { |
|
|
|
|
setInspectCell(null); |
|
|
|
|
}} |
|
|
|
|
/> |
|
|
|
|
)} |
|
|
|
|
</> |
|
|
|
|
); |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|