\n {rowVirtualizer.getVirtualItems().map((virtualRow, visibleRowIndex) => {\n const row = rows[virtualRow.index];\n const rowIndexWithHeader = virtualRow.index + 1;\n if (!row || row.groupByVal === 'undefined') {\n const alternate = alternateRowColor && virtualRow.index % 2 !== 0;\n if (!lastNonEmptyRow.current?.cells) {\n return (\n
\n );\n }\n const cells = lastNonEmptyRow.current.cells;\n\n return (\n
\n {cells.map((item) => {\n const cellProps = item.getCellProps();\n const {\n 'aria-colindex': _0,\n 'aria-selected': _1,\n 'aria-label': _2,\n tabIndex: _3,\n ...emptyRowCellProps\n } = cellProps;\n return (\n \n );\n })}\n \n );\n } else {\n lastNonEmptyRow.current = row;\n }\n prepareRow(row);\n const rowProps = row.getRowProps({ 'aria-rowindex': virtualRow.index });\n const isNavigatedCell = markNavigatedRow(row);\n const RowSubComponent = typeof renderRowSubComponent === 'function' ? renderRowSubComponent(row) : undefined;\n\n if (!RowSubComponent && subComponentsHeight && subComponentsHeight?.[virtualRow.index]?.subComponentHeight) {\n dispatch({\n type: 'SUB_COMPONENTS_HEIGHT',\n payload: {\n ...subComponentsHeight,\n [virtualRow.index]: { subComponentHeight: 0, rowId: row.id }\n }\n });\n }\n let updatedHeight = rowHeight;\n if (\n renderRowSubComponent &&\n (rows[virtualRow.index]?.isExpanded || alwaysShowSubComponent) &&\n subComponentsHeight?.[virtualRow.index]?.rowId === rows[virtualRow.index]?.id\n ) {\n updatedHeight += subComponentsHeight?.[virtualRow.index]?.subComponentHeight ?? 0;\n }\n return (\n // eslint-disable-next-line react/jsx-key\n
{\n virtualRow.measureElement(node);\n }}\n aria-rowindex={rowProps['aria-rowindex'] + 1}\n >\n {RowSubComponent && (row.isExpanded || alwaysShowSubComponent) && (\n
\n {RowSubComponent}\n \n )}\n {columnVirtualizer.getVirtualItems().map((virtualColumn, visibleColumnIndex) => {\n const cell = row.cells[virtualColumn.index];\n const directionStyles = isRtl\n ? {\n transform: `translateX(-${virtualColumn.start}px)`,\n right: 0\n }\n : { transform: `translateX(${virtualColumn.start}px)`, left: 0 };\n if (!cell) {\n return null;\n }\n const cellProps = cell.getCellProps();\n const allCellProps = {\n ...cellProps,\n ['data-visible-column-index']: visibleColumnIndex,\n ['data-column-index']: virtualColumn.index,\n ['data-visible-row-index']: visibleRowIndex + 1,\n ['data-row-index']: rowIndexWithHeader,\n style: {\n ...cellProps.style,\n position: 'absolute',\n width: `${virtualColumn.size}px`,\n top: 0,\n height: `${rowHeight}px`,\n ...directionStyles\n }\n };\n let contentToRender;\n if (\n cell.column.id === '__ui5wcr__internal_highlight_column' ||\n cell.column.id === '__ui5wcr__internal_selection_column' ||\n cell.column.id === '__ui5wcr__internal_navigation_column'\n ) {\n contentToRender = 'Cell';\n } else if (isTreeTable || (!alwaysShowSubComponent && RowSubComponent)) {\n contentToRender = 'Expandable';\n } else if (\n cell.isGrouped ||\n (manualGroupBy &&\n cell.column.isGrouped &&\n getSubRowsByString(subRowsKey, row.original) != null &&\n cell.value !== undefined)\n ) {\n contentToRender = 'Grouped';\n } else if (cell.isAggregated) {\n contentToRender = 'Aggregated';\n } else if (cell.isPlaceholder) {\n contentToRender = 'RepeatedValue';\n } else {\n contentToRender = 'Cell';\n }\n\n return (\n // eslint-disable-next-line react/jsx-key\n
\n {popInRowHeight !== internalRowHeight && popInColumn.id === cell.column.id\n ? cell.render('PopIn', { contentToRender, internalRowHeight })\n : cell.render(contentToRender, isNavigatedCell === true ? { isNavigatedCell } : {})}\n
\n );\n })}\n
\n );\n })}\n
\n );\n};\n","import { enrichEventWithDetails } from '@ui5/webcomponents-react-base';\nimport { clsx } from 'clsx';\nimport type { MutableRefObject } from 'react';\nimport React, { useCallback, useEffect, useRef, useState } from 'react';\nimport type { AnalyticalTablePropTypes } from '../index.js';\n\ninterface VirtualTableBodyContainerProps {\n tableBodyHeight: number;\n totalColumnsWidth: number;\n children: any;\n parentRef: MutableRefObject