UNPKG

@ui5/webcomponents-react

Version:

React Wrapper for UI5 Web Components and additional components

69 lines 2.45 kB
import { forwardRef, Fragment } from 'react'; import { RenderColumnTypes } from '../types/index.js'; import { ColumnHeader } from './index.js'; import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime"; export const ColumnHeaderContainer = /*#__PURE__*/forwardRef((props, ref) => { const { headerProps, headerGroup, resizeInfo, isRtl, columnVirtualizer, uniqueId, showVerticalEndBorder, classNames } = props; const { key, ...reactTableHeaderProps } = headerProps; return /*#__PURE__*/_jsx("div", { ...reactTableHeaderProps, style: { width: `${columnVirtualizer.getTotalSize()}px` }, ref: ref, "data-component-name": "AnalyticalTableHeaderRow", children: columnVirtualizer.getVirtualItems().map((virtualColumn, index) => { const column = headerGroup.headers[virtualColumn.index]; if (!column) { return null; } const isLastColumn = !column.disableResizing && virtualColumn.index + 1 === headerGroup.headers.length; const resizerDirectionStyle = isRtl ? { right: `${column.totalFlexWidth + column.totalLeft - (isLastColumn ? 3 : 0)}px`, transform: 'translateX(50%)' } : { left: `${column.totalFlexWidth + column.totalLeft - (isLastColumn ? 3 : 0)}px`, transform: 'translateX(-50%)' }; const { key, ...rest } = column.getHeaderProps(); return /*#__PURE__*/_jsxs(Fragment, { children: [column.canResize && column.getResizerProps && /*#__PURE__*/_jsx("div", { ...column.getResizerProps(), "data-resizer": true, "data-component-name": "AnalyticalTableResizer", className: classNames.resizer, style: resizerDirectionStyle }), /*#__PURE__*/_jsx(ColumnHeader, { ...rest, showVerticalEndBorder: showVerticalEndBorder, id: `${uniqueId}${rest?.id ?? ''}`, columnId: rest.id, visibleColumnIndex: index, headerTooltip: column.headerTooltip, isDraggable: !column.disableDragAndDrop && !resizeInfo.isResizingColumn, virtualColumn: virtualColumn, columnVirtualizer: columnVirtualizer, isRtl: isRtl, classNames: classNames, children: column.render(RenderColumnTypes.Header) })] }, key); }) }, key); }); ColumnHeaderContainer.displayName = 'ColumnHeaderContainer';