@join-x5/react-data-grid 1.4.0 → 1.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.cjs","sources":["../src/DataGridContext.tsx","../src/Table/index.tsx","../src/TableCell/hook.ts","../src/TableHeadCell/types.ts","../src/TableHeadCell/index.tsx","../src/TableHeadRow/index.tsx","../src/TableHead/index.tsx","../src/TableCell/index.tsx","../src/TableRow/index.tsx","../src/TableBody/DataGridTableBody.tsx","../src/TableBody/hook.ts","../src/TableBody/DataGridTableBodyVirtual.tsx","../src/hook.ts","../src/DataGrid.tsx","../src/TableDropdown/index.tsx","../src/TableInputCell/hook.ts","../src/TableInputCell/button.tsx","../src/TableInputCell/checkbox.tsx","../src/TableInputCell/date.tsx","../src/TableInputCell/dropdown.tsx","../src/TableInputCell/expanding.tsx","../src/TableInputCell/icon.tsx","../src/TableInputCell/label.tsx","../src/TableInputCell/switch.tsx","../src/TableInputCell/text.tsx","../src/TableInputCell/textarea.tsx"],"sourcesContent":["'use client';\n\nimport {createContext, useState} from 'react';\n\nimport type {PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridProps} from 'types';\n\ntype CommonProps = Pick<\n DataGridProps,\n | 'isMultiline'\n | 'isShadowed'\n | 'qa'\n | 'isBordered'\n | 'size'\n | 'verticalAlign'\n | 'textAlign'\n | 'writingMode'\n | 'userSelect'\n | 'wordBreak'\n | 'whiteSpace'\n | 'cellProps'\n | 'headCellProps'\n>;\n\ntype DataGridContextProps = {\n activeCell: string | null;\n setActiveCell: (newActiveCell: string | null) => void;\n} & CommonProps;\n\nexport const DataGridContext = createContext<DataGridContextProps>({\n activeCell: null,\n setActiveCell: () => {},\n});\n\nexport const DataGridContextProvider: React.FC<PropsWithChildren & CommonProps> = ({children, ...rest}) => {\n const [activeCell, setActiveCell] = useState<string | null>(null);\n\n return <DataGridContext.Provider value={{activeCell, setActiveCell, ...rest}}>{children}</DataGridContext.Provider>;\n};\n","'use client';\n\nimport {useContext, useMemo} from 'react';\nimport styled from '@emotion/styled';\n\nimport baseTheme, {forwardRef} from '@join-x5/react-theme';\n\nimport {DataGridContext} from 'DataGridContext';\n\nimport type {Table as ReactTableTable} from '@tanstack/react-table';\nimport type {CSSProperties, FRC} from '@join-x5/react-theme';\nimport type {TableProps} from './types';\n\nexport const TableWrapper = styled.div`\n position: relative;\n width: 100%;\n box-sizing: border-box;\n border-collapse: collapse;\n border-radius: 8px 8px 0 0;\n overflow: auto;\n\n ${baseTheme.scroll}\n\n ${props => ({\n border: `1px solid ${props => props.theme.colors.grey[10]}`,\n backgroundColor: props.theme.colors.white,\n })}\n`;\n\nexport const TableFooter = styled.div`\n display: flex;\n padding: 8px;\n align-items: center;\n justify-content: space-between;\n border-radius: 0 0 8px 8px;\n gap: 12px;\n\n ${props => ({\n border: `1px solid ${props => props.theme.colors.grey[10]}`,\n backgroundColor: props.theme.colors.white,\n })}\n`;\n\nexport const ControlPanel = styled.div`\n display: flex;\n padding: 8px;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n border-radius: 8px;\n background-color: ${props => props.theme.colors.white};\n`;\n\nexport const ControlPanelContent = styled.div`\n display: flex;\n gap: 8px;\n align-items: center;\n`;\n\nconst Container = styled.table`\n border-collapse: separate;\n table-layout: fixed;\n border-spacing: 0;\n\n &[data-is-resizing] {\n cursor: col-resize;\n }\n`;\n\nexport const Table: FRC<HTMLTableElement, TableProps> = forwardRef(({isResizing, ...rest}, ref) => {\n const resultProps = {\n ...rest,\n\n 'data-is-resizing': isResizing ? true : undefined,\n };\n\n return <Container ref={ref} cellSpacing={0} cellPadding={0} {...resultProps}></Container>;\n});\n\ntype DataGridTableProps = {table: ReactTableTable<unknown>} & Omit<TableProps, 'isResizing'>;\n\nexport const DataGridTable: FRC<HTMLTableElement, DataGridTableProps> = forwardRef(({table, ...props}, ref) => {\n const context = useContext(DataGridContext);\n\n const columnSizeVars = useMemo(() => {\n const headers = table.getFlatHeaders();\n const colSizes: CSSProperties = {};\n\n for (const header of headers) {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n }\n\n return colSizes;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [table.getState().columnSizingInfo, table.getState().columnSizing]);\n\n const isResizing = !!table.getState().columnSizingInfo.isResizingColumn;\n\n const resultProps = {\n ...props,\n\n isResizing,\n\n style: {\n width: table.getTotalSize(),\n\n ...props.style,\n ...columnSizeVars,\n },\n\n 'data-qa': context.qa,\n };\n\n return <Table ref={ref} {...resultProps} />;\n});\n","'use client';\n\nimport {useContext} from 'react';\n\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport {DataGridContext} from 'DataGridContext';\n\nimport type {Column, Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {TableCellProps} from './types';\n\nexport const areaProps = (column: Column<unknown>, props: TableCellProps): void => {\n const isPinned = column.getIsPinned();\n\n props.columnArea = (() => {\n switch (column.getIsPinned()) {\n case 'left':\n return ColumnArea.FixedLeft;\n case 'right':\n return ColumnArea.FixedRight;\n }\n\n return ColumnArea.Default;\n })();\n\n if (!isPinned) {\n return;\n }\n\n props.style ??= {};\n\n if (isPinned === 'left') {\n props.style.left = `${column.getStart('left')}px`;\n props.isLastFixed = column.getIsLastColumn('left');\n } else {\n props.style.right = `${column.getAfter('right')}px`;\n props.isLastFixed = column.getIsFirstColumn('right');\n }\n};\n\nexport const useDataGridTableCell = (cell: ReactTableCell<unknown, unknown>) => {\n const context = useContext(DataGridContext);\n\n const isMultiline = typeof context.isMultiline === 'boolean' ? context.isMultiline : context.isMultiline?.(cell);\n const width = `calc(var(--header-${cell.column?.id}-size) * 1px)`;\n\n const resultProps: TableCellProps = {\n isMultiline,\n\n qa: context.qa,\n isBordered: context.isBordered,\n isShadowed: context.isShadowed,\n size: context.size,\n verticalAlign: context.verticalAlign,\n writingMode: context.writingMode,\n userSelect: context.userSelect,\n wordBreak: context.wordBreak,\n whiteSpace: context.whiteSpace,\n\n isRowSelected: cell.row.getIsSelected(),\n isResizing: cell.column.getIsResizing(),\n\n style: {\n width,\n maxWidth: width,\n },\n };\n\n areaProps(cell.column, resultProps);\n\n if (context.cellProps) {\n Object.assign(resultProps, typeof context.cellProps === 'function' ? context.cellProps(cell) : context.cellProps);\n }\n\n return resultProps;\n};\n","// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport {SizeTokenValue} from '@join-x5/react-theme';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport type {ReactNode, ThHTMLAttributes} from 'react';\nimport type {CSSProperties, QA} from '@join-x5/react-theme';\nimport type {DropdownProps} from '@join-x5/react';\n\nexport enum TableHeadCellVariant {\n Default = 'default',\n Checkbox = 'checkbox',\n}\n\nexport type TableHeadCellProps = {\n /** Размер */\n size?: SizeTokenValue;\n\n /** Вариант */\n variant?: TableHeadCellVariant;\n\n /** Установка состояния \"Отключен\" */\n isDisabled?: boolean;\n /** Установка состояния \"Активен\" */\n isActive?: boolean;\n /** С границей */\n isBordered?: boolean;\n /** Показывать тень вместо границы, в закрепленных столбцах и шапке */\n isShadowed?: boolean;\n\n /** Расположение колонки */\n columnArea?: ColumnArea;\n /** Последняя закрепленная колонка\n *\n * Добавляет тень в зависимости от `columnArea`\n */\n isLastFixed?: boolean;\n\n /** Иконка | Контент слева */\n startAdornment?: ReactNode;\n /** Иконка | Контент справа */\n endAdornment?: ReactNode;\n\n /** Контрол смены размера */\n resizer?: ReactNode;\n\n /** Контент дропдауна */\n dropdown?: React.FC<DropdownProps>;\n} & QA &\n Pick<CSSProperties, 'verticalAlign' | 'textAlign' | 'writingMode' | 'userSelect'> &\n ThHTMLAttributes<HTMLTableCellElement>;\n","'use client';\n\nimport {useContext, useState} from 'react';\nimport styled from '@emotion/styled';\nimport {flexRender} from '@tanstack/react-table';\n\nimport {forwardRef, SizeTokenValue, useRefMerge} from '@join-x5/react-theme';\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport {DataGridContext} from 'DataGridContext';\n\nimport {areaProps} from 'TableCell/hook';\n\nimport {TableHeadCellVariant} from './types';\n\nimport type {KeyboardEventHandler, MouseEventHandler} from 'react';\nimport type {Header} from '@tanstack/react-table';\nimport type {FRC} from '@join-x5/react-theme';\nimport type {TableHeadCellProps} from './types';\n\nexport const TableHeadCellResizer = styled.div`\n display: flex;\n position: absolute;\n align-items: center;\n justify-content: center;\n top: 0;\n width: 10px;\n height: 100%;\n cursor: col-resize;\n z-index: 1;\n\n ::before {\n content: '';\n display: block;\n width: 3px;\n height: 24px;\n border-radius: 8px;\n user-select: none;\n pointer-events: none;\n opacity: 0;\n\n background-color: ${props => props.theme.colors.accent[80]};\n }\n\n &[data-resizing]::before {\n opacity: 1;\n }\n`;\n\nconst Cell = styled.th`\n position: relative;\n box-sizing: border-box;\n\n ${props => ({\n color: props.theme.colors.grey[100],\n backgroundColor: props.theme.colors.white,\n\n '--border-color': props.theme.colors.grey[10],\n })};\n\n &[data-${SizeTokenValue.Large.toLocaleLowerCase()}] {\n padding: 12px;\n min-height: 44px;\n\n &[data-${TableHeadCellVariant.Checkbox.toLocaleLowerCase()}] {\n padding: 14px 12px;\n\n &[data-has-end-adornment] {\n padding-right: 8px;\n }\n }\n\n ${props => props.theme.typography.h4}\n }\n\n &[data-${SizeTokenValue.Medium.toLocaleLowerCase()}] {\n padding: 12px;\n min-height: 40px;\n\n &[data-${TableHeadCellVariant.Checkbox.toLocaleLowerCase()}] {\n padding: 12px;\n\n &[data-has-end-adornment] {\n padding-right: 8px;\n }\n }\n\n ${props => props.theme.typography.h5}\n }\n\n &[data-${SizeTokenValue.Small.toLocaleLowerCase()}] {\n padding: 8px;\n min-height: 32px;\n\n ${props => props.theme.typography.h5}\n }\n\n &[data-shadowed] {\n filter: drop-shadow(8px 0px 8px rgba(80, 86, 94, 0.08));\n\n &::before {\n border-bottom-width: 0;\n }\n }\n\n &[data-${ColumnArea.FixedLeft.toLocaleLowerCase()}] {\n position: sticky;\n z-index: 1;\n\n &[data-shadowed][data-last-fixed] {\n filter: drop-shadow(8px 0px 8px rgba(80, 86, 94, 0.08));\n }\n }\n\n &[data-${ColumnArea.FixedRight.toLocaleLowerCase()}] {\n position: sticky;\n z-index: 1;\n\n &[data-shadowed][data-last-fixed] {\n filter: drop-shadow(-8px 0px 8px rgba(80, 86, 94, 0.08));\n }\n }\n\n :hover {\n ${props => ({\n backgroundColor: props.theme.colors.grey[10],\n\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n\n &[data-has-active] {\n cursor: pointer;\n\n &[data-active],\n :active {\n ${props => ({\n backgroundColor: props.theme.colors.grey[30],\n\n '--border-color': 'transparent',\n })}\n }\n }\n\n :focus {\n outline: none;\n }\n\n &[data-disabled] {\n :hover {\n ${props => ({\n backgroundColor: props.theme.colors.grey[10],\n\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n\n ${props => ({\n color: props.theme.colors.grey[40],\n })}\n }\n\n ::before {\n content: '';\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n border-width: 0 0 2px 0;\n border-style: solid;\n border-color: var(--border-color);\n }\n\n ::after {\n content: '';\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: calc(50% - 8px);\n right: 0;\n width: 2px;\n height: 16px;\n user-select: none;\n pointer-events: none;\n background-color: var(--border-color, transparent);\n }\n\n &[data-bordered] {\n ::before {\n border-width: 0 1px 2px 0;\n }\n\n :last-of-type::before {\n border-width: 0 0 2px 0;\n }\n\n ::after {\n display: none;\n }\n }\n\n :last-of-type::after {\n display: none;\n }\n\n [data-resizer] {\n right: -5px;\n }\n\n :last-of-type [data-resizer] {\n right: 0;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n position: relative;\n box-sizing: border-box;\n gap: 8px;\n`;\n\nconst Content = styled.div`\n flex-grow: 1;\n`;\n\nexport const TableHeadCell: FRC<HTMLTableCellElement, TableHeadCellProps> = forwardRef((props, baseRef) => {\n const {\n children,\n\n isDisabled,\n isActive,\n isBordered,\n isLastFixed,\n isShadowed,\n\n writingMode,\n verticalAlign = 'top',\n textAlign = 'left',\n userSelect = 'none',\n\n startAdornment,\n endAdornment,\n resizer,\n dropdown: Dropdown,\n\n variant = TableHeadCellVariant.Default,\n size = SizeTokenValue.Medium,\n columnArea = ColumnArea.Default,\n\n ...rest\n } = props;\n\n const ref = useRefMerge(baseRef);\n const [isDropdownOpen, setIsDropdownOpen] = useState<boolean>(false);\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n if (e.code === 'Escape') {\n e.currentTarget.blur();\n }\n\n if (e.code === 'Enter' || e.code === 'NumpadEnter') {\n e.currentTarget.click();\n }\n\n props.onKeyDown?.(e);\n };\n\n const onClick: MouseEventHandler<HTMLTableCellElement> = () => {\n if (Dropdown && !isDropdownOpen) {\n setIsDropdownOpen(true);\n }\n };\n\n const dropdown = Dropdown ? <Dropdown targetRef={ref} isOpen={isDropdownOpen} setIsOpen={setIsDropdownOpen} /> : null;\n const hasActive = !!props.onClick || !!Dropdown || !!isActive;\n\n const cellProps = {\n ...rest,\n\n onKeyDown,\n\n style: {\n verticalAlign,\n textAlign,\n writingMode,\n userSelect,\n\n ...props.style,\n },\n\n 'data-cell': true,\n 'data-disabled': isDisabled ? true : undefined,\n 'data-active': isActive || isDropdownOpen ? true : undefined,\n 'data-bordered': isBordered ? true : undefined,\n 'data-shadowed': isShadowed ? true : undefined,\n 'data-has-active': hasActive ? true : undefined,\n 'data-has-end-adornment': endAdornment ? true : undefined,\n 'data-last-fixed': isLastFixed ? true : undefined,\n\n [`data-${size.toLowerCase()}`]: true,\n [`data-${variant.toLowerCase()}`]: true,\n [`data-${columnArea.toLowerCase()}`]: true,\n };\n\n return (\n <Cell ref={ref} tabIndex={0} {...cellProps}>\n <Container onClick={onClick}>\n {startAdornment}\n <Content>{children}</Content>\n {endAdornment}\n </Container>\n {resizer}\n {dropdown}\n </Cell>\n );\n});\n\ntype DataGridTableHeadCellProps = {\n header: Header<unknown, unknown>;\n};\n\nexport const DataGridTableHeadCell: React.FC<DataGridTableHeadCellProps> = ({header}) => {\n const context = useContext(DataGridContext);\n\n const resizer = (() => {\n if (header.column.getCanResize() === false) {\n return null;\n }\n\n return (\n <TableHeadCellResizer\n data-resizer\n onDoubleClick={() => header.column.resetSize()}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n data-resizing={header.column.getIsResizing() ? true : undefined}\n />\n );\n })();\n\n const content = header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext());\n\n const resultProps: TableHeadCellProps = {\n resizer,\n\n qa: context.qa,\n isBordered: context.isBordered,\n isShadowed: context.isShadowed,\n size: context.size,\n verticalAlign: context.verticalAlign,\n\n colSpan: header.colSpan,\n rowSpan: header.rowSpan,\n\n style: {\n width: `calc(var(--header-${header?.id}-size) * 1px)`,\n },\n };\n\n areaProps(header.column, resultProps);\n\n if (context.headCellProps) {\n Object.assign(\n resultProps,\n typeof context.headCellProps === 'function' ? context.headCellProps(header) : context.headCellProps\n );\n }\n\n return (\n <TableHeadCell key={header.id} {...resultProps}>\n {content}\n </TableHeadCell>\n );\n};\n\nexport const getDataGridTableHeadCell = (header: DataGridTableHeadCellProps['header']) => {\n return <DataGridTableHeadCell key={header.id} header={header} />;\n};\n\nexport * from './types';\n","'use client';\n\nimport styled from '@emotion/styled';\n\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport type {FRC} from '@join-x5/react-theme';\nimport type {TableHeadRowProps} from './types';\n\nconst Container = styled.tr``;\n\nexport const TableHeadRow: FRC<HTMLTableRowElement, TableHeadRowProps> = forwardRef((props, ref) => {\n return <Container ref={ref} {...props} />;\n});\n","'use client';\n\nimport {useContext} from 'react';\nimport styled from '@emotion/styled';\n\nimport {DataGridContext} from 'DataGridContext';\nimport {getDataGridTableHeadCell} from 'TableHeadCell';\nimport {TableHeadRow} from 'TableHeadRow';\n\nimport type {HTMLAttributes} from 'react';\nimport type {Table} from '@tanstack/react-table';\n\nexport type TableHeadProps = HTMLAttributes<HTMLTableSectionElement>;\n\nexport const TableHead = styled.thead`\n position: sticky;\n top: 0;\n z-index: 2;\n`;\n\ntype DataGridTableHeadProps = {\n table: Table<unknown>;\n} & TableHeadProps;\n\nconst DataGridTableHead: React.FC<DataGridTableHeadProps> = ({table, ...props}) => {\n const context = useContext(DataGridContext);\n\n const content = table\n .getHeaderGroups()\n .map(headerGroup => (\n <TableHeadRow key={headerGroup.id}>\n {headerGroup.headers.map(header => getDataGridTableHeadCell(header))}\n </TableHeadRow>\n ));\n\n return (\n <TableHead data-qa={`${context.qa}-head`} {...props}>\n {content}\n </TableHead>\n );\n};\n\nexport const getDataGridTableHead = (table: Table<unknown>, props?: TableHeadProps) => {\n return <DataGridTableHead table={table} {...props} />;\n};\n","'use client';\n\nimport React from 'react';\nimport styled from '@emotion/styled';\nimport {flexRender} from '@tanstack/react-table';\n\nimport {forwardRef, SizeTokenValue, useRefMerge} from '@join-x5/react-theme';\nimport {EditOnIcon} from '@join-x5/react-icons';\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport {useDataGridTableCell} from './hook';\n\nimport type {HTMLAttributes, KeyboardEventHandler} from 'react';\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from './types';\n\nconst sizePadding: Record<SizeTokenValue, number> = {\n [SizeTokenValue.XXSmall]: 8,\n [SizeTokenValue.XSmall]: 8,\n [SizeTokenValue.Small]: 8,\n [SizeTokenValue.Medium]: 12,\n [SizeTokenValue.Large]: 12,\n [SizeTokenValue.XLarge]: 12,\n};\n\nconst Cell = styled.td`\n position: relative;\n box-sizing: border-box;\n height: 1px;\n border-radius: 0;\n border-spacing: 0;\n background-color: var(--background-color, transparent);\n\n ${props => ({\n color: props.theme.colors.grey[100],\n\n '--background-color': props.theme.colors.white,\n '--border-color': props.theme.colors.grey[10],\n })};\n\n &[data-${SizeTokenValue.Large.toLocaleLowerCase()}] {\n min-height: 44px;\n\n ${props => props.theme.typography.p1compact}\n }\n\n &[data-${SizeTokenValue.Medium.toLocaleLowerCase()}] {\n min-height: 40px;\n\n ${props => props.theme.typography.p2}\n }\n\n &[data-${SizeTokenValue.Small.toLocaleLowerCase()}] {\n min-height: 32px;\n\n ${props => props.theme.typography.p2}\n }\n\n &[data-${ColumnArea.FixedLeft.toLocaleLowerCase()}] {\n position: sticky;\n z-index: 1;\n\n &[data-shadowed][data-last-fixed] {\n filter: drop-shadow(8px 0px 8px rgba(80, 86, 94, 0.08));\n }\n }\n\n &[data-${ColumnArea.FixedRight.toLocaleLowerCase()}] {\n position: sticky;\n z-index: 1;\n\n &[data-shadowed][data-last-fixed] {\n filter: drop-shadow(-8px 0px 8px rgba(80, 86, 94, 0.08));\n }\n }\n\n &[data-row-hover] {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n\n :hover {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[40],\n })}\n }\n\n :not([data-disabled]):hover::before {\n border-width: 1px;\n }\n\n &[data-disabled] {\n :hover {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n\n ${props => ({\n color: props.theme.colors.grey[40],\n })}\n }\n\n &[data-row-selected] {\n ${props => ({\n '--background-color': props.theme.colors.accent[10],\n '--border-color': props.theme.colors.accent[20],\n })}\n }\n\n &[data-focused],\n :focus {\n outline: none;\n\n ::before {\n display: none;\n }\n\n ::after {\n display: block;\n }\n\n [data-edit-icon] {\n visibility: visible;\n }\n\n ${props => ({\n '--border-color': 'transparent',\n '--background-color': props.theme.colors.white,\n '--outline-color': props.theme.colors.accent[90],\n })}\n }\n\n &[data-active] {\n outline: none;\n\n ::before {\n display: none;\n }\n\n ::after {\n display: block;\n }\n\n [data-edit-icon] {\n visibility: hidden;\n }\n\n ${props => ({\n '--border-color': 'transparent',\n '--background-color': props.theme.colors.white,\n '--outline-color': props.theme.colors.accent[90],\n })}\n }\n\n &[data-error] {\n ::after {\n display: block;\n }\n\n ${props => ({\n caretColor: props.theme.colors.additional.red[80],\n\n '--background-color': props.theme.colors.white,\n '--border-color': 'transparent',\n '--outline-color': props.theme.colors.additional.red[80],\n })}\n }\n\n ::before {\n content: '';\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n border-width: 0 0 1px 0;\n border-style: solid;\n border-color: var(--border-color);\n }\n\n &[data-bordered] {\n ::before {\n border-width: 0 1px 1px 0;\n }\n\n :last-of-type::before {\n border-width: 0 0 1px 0;\n }\n }\n\n &[data-resizing] {\n border-right: 1px solid ${props => props.theme.colors.accent[20]};\n }\n\n ::after {\n content: '';\n display: none;\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n border-width: 2px;\n border-style: solid;\n border-radius: 4px;\n border-color: var(--outline-color, transparent);\n }\n\n [data-edit-icon] {\n display: none;\n position: absolute;\n visibility: hidden;\n right: 0;\n top: 0;\n background-color: var(--background-color, transparent);\n }\n\n &[data-editable] [data-edit-icon] {\n display: block;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n position: relative;\n box-sizing: border-box;\n gap: 8px;\n`;\n\nconst Content = styled.div`\n position: relative;\n flex-grow: 1;\n word-break: break-word;\n\n :not([data-is-multiline]) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`;\n\nconst Caption = styled.div`\n padding: 4px 0 0;\n width: 100%;\n word-break: break-all;\n\n ${props => ({\n ...props.theme.typography.p3,\n\n color: props.theme.colors.additional.red[80],\n })}\n`;\n\ntype TableCellContentProps = Partial<Pick<TableCellProps, 'children' | 'isMultiline' | 'whiteSpace' | 'wordBreak'>> &\n HTMLAttributes<HTMLDivElement>;\n\nexport const TableCellContent: FRC<HTMLDivElement, TableCellContentProps> = forwardRef((props, ref) => {\n const {children, style, isMultiline, whiteSpace, wordBreak = 'break-word', ...rest} = props;\n\n const contentProps = {\n ...rest,\n\n style: {\n whiteSpace,\n wordBreak,\n\n ...style,\n },\n\n 'data-content': true,\n 'data-is-multiline': isMultiline ? true : undefined,\n };\n\n return (\n <Content ref={ref} {...contentProps}>\n {children}\n </Content>\n );\n});\n\nexport const TableCell: FRC<HTMLTableCellElement, TableCellProps> = forwardRef((props, baseRef) => {\n const ref = useRefMerge(baseRef);\n\n const {\n children,\n\n isDisabled,\n isRowHover,\n isRowSelected,\n isBordered,\n isShadowed,\n isFocused,\n isActive,\n isResizing,\n isLastFixed,\n error,\n\n textAlign,\n writingMode,\n verticalAlign,\n padding,\n userSelect = 'none',\n\n startAdornment,\n endAdornment,\n\n size = SizeTokenValue.Medium,\n columnArea = ColumnArea.Default,\n\n ...rest\n } = props;\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n props.onKeyDown?.(e);\n\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (isEnterCode) {\n const child = ref.current?.querySelector('[data-action]') as HTMLElement;\n\n if (isEnterCode && child) {\n child.click();\n }\n\n return;\n }\n\n if (e.code === 'Escape') {\n ref.current?.blur();\n return;\n }\n\n if (e.code === 'ArrowUp' || e.code === 'ArrowDown' || e.code === 'ArrowLeft' || e.code === 'ArrowRight') {\n const parent = ref.current?.parentElement as HTMLElement;\n const curIndex = Array.from(parent?.childNodes).indexOf(ref.current as HTMLElement);\n\n switch (e.code) {\n case 'ArrowUp':\n case 'ArrowDown':\n {\n const sibling = (\n e.code === 'ArrowUp' ? parent?.previousElementSibling : parent?.nextElementSibling\n ) as HTMLElement;\n\n if (parent?.nodeName === sibling?.nodeName) {\n const nextFocus = sibling?.children[curIndex] as HTMLElement;\n\n nextFocus?.focus();\n }\n }\n break;\n\n case 'ArrowLeft':\n if (curIndex > 0) {\n const prevSibling = parent?.children[curIndex - 1] as HTMLElement;\n prevSibling?.focus();\n } else {\n const prevRow = parent?.previousElementSibling as HTMLElement;\n if (parent?.nodeName === prevRow?.nodeName) {\n const lastCell = prevRow.lastElementChild as HTMLElement;\n lastCell?.focus();\n }\n }\n break;\n case 'ArrowRight':\n if (curIndex < parent?.children.length - 1) {\n const nextSibling = parent?.children[curIndex + 1] as HTMLElement;\n nextSibling?.focus();\n } else {\n const nextRow = parent?.nextElementSibling as HTMLElement;\n if (parent?.nodeName === nextRow?.nodeName) {\n const firstCell = nextRow.firstElementChild as HTMLElement;\n firstCell?.focus();\n }\n }\n break;\n }\n }\n };\n\n const cellProps = {\n ...rest,\n\n onKeyDown,\n\n style: {\n verticalAlign,\n textAlign,\n writingMode,\n userSelect,\n\n padding: padding ?? sizePadding[size],\n\n ...props.style,\n },\n\n 'data-cell': true,\n 'data-disabled': isDisabled ? true : undefined,\n 'data-focused': isFocused ? true : undefined,\n 'data-error': error ? true : undefined,\n 'data-row-hover': isRowHover ? true : undefined,\n 'data-row-selected': isRowSelected ? true : undefined,\n 'data-bordered': isBordered ? true : undefined,\n 'data-shadowed': isShadowed ? true : undefined,\n 'data-resizing': isResizing ? true : undefined,\n 'data-active': isActive ? true : undefined,\n 'data-last-fixed': isLastFixed ? true : undefined,\n\n [`data-${size.toLowerCase()}`]: true,\n [`data-${columnArea.toLowerCase()}`]: true,\n };\n\n const caption = typeof error === 'string' ? <Caption>{error}</Caption> : null;\n\n return (\n <Cell ref={ref} tabIndex={0} {...cellProps}>\n <Container>\n {startAdornment}\n {children}\n {endAdornment}\n <EditOnIcon data-edit-icon size={SizeTokenValue.Small} />\n </Container>\n {caption}\n </Cell>\n );\n});\n\nexport const DataGridTableCell: FRC<HTMLTableCellElement, DataGridTableCellProps & PropsWithChildren> = forwardRef(\n (props, ref) => {\n const resultProps = useDataGridTableCell(props.cell);\n\n const contentProps = {\n isMultiline: resultProps.isMultiline,\n whiteSpace: resultProps.whiteSpace,\n wordBreak: resultProps.wordBreak,\n };\n\n return (\n <TableCell ref={ref} {...resultProps}>\n <TableCellContent {...contentProps}>{props.children}</TableCellContent>\n </TableCell>\n );\n }\n);\n\nexport const getDataGridTableCell = (cell: DataGridTableCellProps['cell']) => {\n const content = flexRender(cell.column.columnDef.cell, cell.getContext());\n\n if (cell.column.columnDef.meta?.isCustom) {\n return <React.Fragment key={cell.id}>{content}</React.Fragment>;\n }\n\n return (\n <DataGridTableCell key={cell.id} cell={cell}>\n {content}\n </DataGridTableCell>\n );\n};\n\nexport * from './types';\n","'use client';\n\nimport styled from '@emotion/styled';\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {getDataGridTableCell} from 'TableCell';\n\nimport type {HTMLAttributes} from 'react';\nimport type {Row} from '@tanstack/react-table';\nimport type {FRC} from '@join-x5/react-theme';\nimport type {GetDataGridTableRow} from '../types';\n\nexport type TableRowProps = HTMLAttributes<HTMLTableRowElement>;\n\nconst TableRow = styled.tr`\n :hover [data-cell] {\n :not([data-focused], [data-active], [data-disabled]) [data-edit-icon] {\n visibility: visible;\n }\n\n :not([data-focused], [data-active]):not(:focus) {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n }\n`;\n\ntype DataGridTableRowProps = {row: Row<unknown>} & TableRowProps;\n\nconst DataGridTableRow: FRC<HTMLTableRowElement, DataGridTableRowProps> = forwardRef((props, ref) => {\n const {row, ...rest} = props;\n\n const content = row.getVisibleCells().map(getDataGridTableCell);\n\n return (\n <TableRow ref={ref} {...rest}>\n {content}\n </TableRow>\n );\n});\n\nexport const getDataGridTableRow: GetDataGridTableRow = (row, props) => (\n <DataGridTableRow key={row.id} row={row} {...props} />\n);\n","'use client';\n\nimport {memo, useContext} from 'react';\nimport styled from '@emotion/styled';\n\nimport {DataGridContext} from 'DataGridContext';\nimport {getDataGridTableRow} from 'TableRow';\n\nimport type {Table} from '@tanstack/react-table';\nimport type {DataGridProps} from 'types';\nimport type {TableBodyProps} from './types';\n\nexport const TableBody = styled.tbody`\n position: relative;\n`;\n\ntype DataGridTableBodyProps = {\n table: Table<unknown>;\n} & Pick<DataGridProps, 'components' | 'rowProps'> &\n TableBodyProps;\n\nconst DataGridTableBody: React.FC<DataGridTableBodyProps> = props => {\n const {table, components, rowProps, ...rest} = props;\n const context = useContext(DataGridContext);\n const rows = table.getRowModel().rows;\n\n const iterator = components?.row ?? getDataGridTableRow;\n\n const child = rows.map(item => {\n const itemProps = typeof rowProps === 'function' ? rowProps(rows[item.index]) : rowProps;\n\n return iterator(item, itemProps);\n });\n\n return (\n <TableBody data-qa={`${context.qa}-body`} {...rest}>\n {child}\n </TableBody>\n );\n};\n\nconst MemoizedDataGridTableBody = memo(\n DataGridTableBody,\n (prev, next) => prev.table.options.data === next.table.options.data\n);\n\nexport const getDataGridTableBody = (props: DataGridTableBodyProps) => {\n const isResizing = props.table.getState().columnSizingInfo.isResizingColumn;\n const Component = isResizing ? MemoizedDataGridTableBody : DataGridTableBody;\n\n return <Component {...props} />;\n};\n","'use client';\n\nimport {useContext} from 'react';\nimport {useVirtualizer} from '@tanstack/react-virtual';\n\nimport {DataGridContext} from 'DataGridContext';\nimport {getDataGridTableRow} from 'TableRow';\n\nimport type {Table} from '@tanstack/react-table';\nimport type {VirtualItem} from '@tanstack/react-virtual';\nimport type {TableRowProps} from 'TableRow';\nimport type {DataGridProps} from 'types';\nimport type {TableBodyProps} from './types';\n\nexport type DataGridTableBodyVirtualProps = {\n table: Table<unknown>;\n} & Pick<DataGridProps, 'components' | 'rowProps'> &\n Required<Pick<DataGridProps, 'virtualize' | 'wrapperRef'>> &\n TableBodyProps;\n\nexport const useVirtualTableBody = (props: DataGridTableBodyVirtualProps) => {\n const {table, components, rowProps, wrapperRef, virtualize, ...rest} = props;\n\n const context = useContext(DataGridContext);\n const rows = table.getRowModel().rows;\n\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: () => 40,\n getScrollElement: () => wrapperRef.current,\n measureElement: el => el.getBoundingClientRect().height,\n overscan: 5,\n\n ...(typeof virtualize === 'object' ? virtualize : undefined),\n });\n\n const iterator = components?.row ?? getDataGridTableRow;\n const rowRef = (node: HTMLTableRowElement) => rowVirtualizer.measureElement(node);\n\n const child = rowVirtualizer.getVirtualItems().map((item: VirtualItem) => {\n const row = rows[item.index];\n\n const itemProps = {\n ref: rowRef,\n\n 'data-index': item.index,\n\n style: {\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n transform: `translateY(${item.start}px)`,\n },\n } as TableRowProps;\n\n if (rowProps) {\n Object.assign(itemProps, typeof rowProps === 'function' ? rowProps(row) : rowProps);\n }\n\n return iterator(row, itemProps);\n });\n\n const containerProps = {\n 'data-qa': `${context.qa}-body`,\n\n style: {\n height: rowVirtualizer.getTotalSize(),\n\n ...rest.style,\n },\n };\n\n if (!wrapperRef.current) {\n setTimeout(rowVirtualizer.measure);\n }\n\n return {containerProps, child};\n};\n","import {memo} from 'react';\n\nimport {TableBody} from './DataGridTableBody';\nimport {useVirtualTableBody} from './hook';\n\nimport type {DataGridTableBodyVirtualProps} from './hook';\n\nconst DataGridTableBody: React.FC<DataGridTableBodyVirtualProps> = props => {\n const {containerProps, child} = useVirtualTableBody(props);\n return <TableBody {...containerProps}>{child}</TableBody>;\n};\n\nconst MemoizedDataGridTableBody = memo(\n DataGridTableBody,\n (prev, next) => prev.table.options.data === next.table.options.data\n);\n\nexport const getDataGridTableBodyVirtual = (props: DataGridTableBodyVirtualProps) => {\n const isResizing = props.table.getState().columnSizingInfo.isResizingColumn;\n const Component = isResizing ? MemoizedDataGridTableBody : DataGridTableBody;\n\n return <Component {...props} />;\n};\n","'use client';\n\nimport {useMemo, useState} from 'react';\n\nimport {useUpdateEffect} from '@join-x5/react-theme';\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport type {ColumnOrderState, ColumnPinningState, TableState, VisibilityState} from '@tanstack/react-table';\nimport type {ColumnItem} from '@join-x5/react-data-grid-settings';\nimport type {DataGridProps} from 'types';\n\nconst convertVisibility = (settings?: ColumnItem[]): VisibilityState => {\n if (!settings || !settings.length) {\n return {};\n }\n\n return settings.reduce((acc, item) => {\n acc[item.id] = item.isVisible;\n return acc;\n }, {} as VisibilityState);\n};\n\nconst convertOrder = (settings?: ColumnItem[]): ColumnOrderState => {\n if (!settings || !settings.length) {\n return [];\n }\n\n return settings.sort((a, b) => a.sort - b.sort).map(item => String(item.id));\n};\n\nconst convertPinning = (settings?: ColumnItem[]): ColumnPinningState => {\n if (!settings || !settings.length) {\n return {};\n }\n\n return settings.reduce((acc, item) => {\n if (item.area === ColumnArea.FixedLeft) {\n acc.left ??= [];\n acc.left?.push(String(item.id));\n } else if (item.area === ColumnArea.FixedRight) {\n acc.right ??= [];\n acc.right?.push(String(item.id));\n }\n\n return acc;\n }, {} as ColumnPinningState);\n};\n\nexport const useDataGridColumnSettings = (\n settings?: DataGridProps['columnSettings'],\n tableProps?: DataGridProps['tableProps']\n) => {\n const [columnVisibility, onColumnVisibilityChange] = useState<VisibilityState>(convertVisibility(settings));\n const [columnOrder, onColumnOrderChange] = useState<ColumnOrderState>(convertOrder(settings));\n const [columnPinning, onColumnPinningChange] = useState<ColumnPinningState>(convertPinning(settings));\n\n const externalState = tableProps?.state;\n\n const state = useMemo((): Partial<TableState> => {\n return {columnVisibility, columnOrder, columnPinning, ...externalState};\n }, [externalState, columnVisibility, columnOrder, columnPinning]);\n\n useUpdateEffect(() => {\n const newVisibility = convertVisibility(settings);\n const newOrder = convertOrder(settings);\n const newPinning = convertPinning(settings);\n\n onColumnVisibilityChange(oldState =>\n JSON.stringify(oldState) === JSON.stringify(newVisibility) ? oldState : newVisibility\n );\n\n onColumnOrderChange(oldState => (JSON.stringify(oldState) === JSON.stringify(newOrder) ? oldState : newOrder));\n\n onColumnPinningChange(oldState =>\n JSON.stringify(oldState) === JSON.stringify(newPinning) ? oldState : newPinning\n );\n }, [settings]);\n\n return state;\n};\n","'use client';\n\nimport {useEffect} from 'react';\nimport {getCoreRowModel, getExpandedRowModel, useReactTable} from '@tanstack/react-table';\n\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {DataGridTable} from 'Table';\n\nimport {DataGridContextProvider} from 'DataGridContext';\nimport {getDataGridTableHead} from 'TableHead';\nimport {getDataGridTableBody, getDataGridTableBodyVirtual} from 'TableBody';\n\nimport {useDataGridColumnSettings} from './hook';\n\nimport type {FRC} from '@join-x5/react-theme';\nimport type {DataGridProps} from './types';\n\nexport const DataGrid: FRC<HTMLTableElement, DataGridProps> = forwardRef((props, ref) => {\n const {\n qa = 'datagrid',\n\n isBordered,\n isMultiline,\n isShadowed,\n\n size,\n width,\n textAlign,\n writingMode,\n userSelect,\n wordBreak,\n whiteSpace,\n\n cellProps,\n headCellProps,\n rowProps,\n bodyProps,\n headProps,\n virtualize,\n wrapperRef,\n\n columns,\n data,\n tableProps,\n setTable,\n columnSettings,\n components,\n children,\n\n verticalAlign = props.isMultiline ? 'top' : 'center',\n\n ...rest\n } = props;\n\n const state = useDataGridColumnSettings(columnSettings, tableProps);\n\n const table = useReactTable({\n columns,\n data,\n\n manualSorting: true,\n manualFiltering: true,\n manualPagination: true,\n columnResizeMode: 'onChange',\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n\n ...tableProps,\n\n state,\n });\n\n const context = {\n size,\n verticalAlign,\n isBordered,\n isMultiline,\n isShadowed,\n textAlign,\n writingMode,\n userSelect,\n wordBreak,\n whiteSpace,\n\n cellProps,\n headCellProps,\n qa,\n };\n\n const tableComponentProps = {\n ...rest,\n\n table,\n style: width ? {width, ...rest.style} : rest.style,\n 'data-qa': qa,\n };\n\n const head = getDataGridTableHead(table, headProps);\n const body =\n virtualize && wrapperRef\n ? getDataGridTableBodyVirtual({table, components, rowProps, virtualize, wrapperRef, ...bodyProps})\n : getDataGridTableBody({table, components, rowProps, ...bodyProps});\n\n useEffect(() => {\n setTable?.(table);\n }, [table, setTable]);\n\n return (\n <DataGridContextProvider {...context}>\n <DataGridTable ref={ref} {...tableComponentProps}>\n {head}\n {children}\n {body}\n </DataGridTable>\n </DataGridContextProvider>\n );\n});\n","import styled from '@emotion/styled';\n\nexport const TableDropdownHeader = styled.div`\n padding: 8px 12px 4px;\n user-select: none;\n\n ${props => ({\n ...props.theme.typography.h6,\n\n color: props.theme.colors.grey[70],\n })}\n`;\n\nexport const TableDropdownItem = styled.div`\n padding: 6px 12px;\n user-select: none;\n cursor: pointer;\n\n ${props => ({\n ...props.theme.typography.p1compact,\n\n color: props.theme.colors.grey[100],\n })}\n\n :hover {\n background-color: ${props => props.theme.colors.grey[10]};\n }\n\n &[data-checked] {\n ${props => ({\n color: props.theme.colors.white,\n backgroundColor: props.theme.colors.accent[90],\n })}\n }\n`;\n","'use client';\n\nimport {useContext, useRef} from 'react';\nimport {useRefMerge} from '@join-x5/react-theme';\n\nimport {DataGridContext} from '../DataGridContext';\nimport {useDataGridTableCell} from '../TableCell/hook';\n\nimport type {KeyboardEventHandler, MouseEventHandler, Ref} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {TableCellProps} from 'TableCell';\n\nexport const useTableCellTextInput = <T extends HTMLInputElement | HTMLTextAreaElement>(\n props: TableCellProps,\n baseRef: Ref<HTMLTableCellElement>\n) => {\n const {isDisabled, isActive, setIsActive} = props;\n\n const ref = useRefMerge(baseRef);\n const inputRef = useRef<T>(null);\n\n const onEdit = () => {\n const input = inputRef.current;\n if (isDisabled || !input) {\n return;\n }\n\n setIsActive?.(true);\n\n setTimeout(() => {\n input.selectionStart = input.value.length;\n input.focus();\n });\n };\n\n const onClick: MouseEventHandler<HTMLTableCellElement> = e => {\n if (!isActive) {\n e.currentTarget.focus();\n }\n\n props.onClick?.(e);\n };\n\n const onDoubleClick: MouseEventHandler<HTMLTableCellElement> = e => {\n onEdit();\n\n props.onDoubleClick?.(e);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n props.onKeyDown?.(e);\n\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (!isActive && isEnterCode) {\n onEdit();\n }\n };\n\n const cellProps = {\n ...props,\n\n ref,\n onClick,\n onDoubleClick,\n onKeyDown,\n\n 'data-editable': !isDisabled ? true : undefined,\n };\n\n return {cellProps, ref, inputRef};\n};\n\nexport const useDataGridInputCell = (cell: ReactTableCell<unknown, unknown>) => {\n const props = useDataGridTableCell(cell);\n const context = useContext(DataGridContext);\n\n const isActive = cell.id === context.activeCell;\n const setIsActive = newIsActive => context.setActiveCell(newIsActive ? cell.id : null);\n\n return {...props, isActive, setIsActive};\n};\n","'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {FRC, PropsWithChildren, CSSProperties} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TButtonCell = FRC<HTMLTableCellElement, TableCellProps>;\n\nconst sizePadding: Record<SizeTokenValue, CSSProperties['padding']> = {\n [SizeTokenValue.XXSmall]: 4,\n [SizeTokenValue.XSmall]: 4,\n [SizeTokenValue.Small]: 4,\n [SizeTokenValue.Medium]: 8,\n [SizeTokenValue.Large]: 6,\n [SizeTokenValue.XLarge]: 6,\n};\n\nexport const ButtonCell: TButtonCell = forwardRef((props, ref) => {\n const {padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return <TableCell ref={ref} padding={padding} {...rest} />;\n});\n\nexport type DataGridButtonCellProps<T = DefaultAny, V = DefaultAny> = DataGridTableCellProps<T, V> & PropsWithChildren;\n\nexport const DataGridButtonCell: FRC<HTMLTableCellElement, DataGridButtonCellProps> = forwardRef((props, ref) => {\n const {cell, children} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n return (\n <ButtonCell ref={ref} {...cellProps}>\n {children}\n </ButtonCell>\n );\n});\n","'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\nimport {Checkbox} from '@join-x5/react';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {FRC} from '@join-x5/react-theme';\nimport type {CheckboxProps} from '@join-x5/react';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TCheckboxCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: CheckboxProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nconst sizePadding: Record<SizeTokenValue, number> = {\n [SizeTokenValue.XXSmall]: 8,\n [SizeTokenValue.XSmall]: 8,\n [SizeTokenValue.Small]: 8,\n [SizeTokenValue.Medium]: 12,\n [SizeTokenValue.Large]: 14,\n [SizeTokenValue.XLarge]: 14,\n};\n\nexport const CheckboxCell: TCheckboxCell = forwardRef((props, ref) => {\n const {inputProps, padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return (\n <TableCell ref={ref} padding={padding} {...rest}>\n <Checkbox data-action tabIndex={-1} disabled={props.isDisabled} {...inputProps} />\n </TableCell>\n );\n});\n\nexport type DataGridCheckboxCellProps<T = DefaultAny, V = DefaultAny> = CheckboxProps & DataGridTableCellProps<T, V>;\n\nexport const DataGridCheckboxCell: FRC<HTMLTableCellElement, DataGridCheckboxCellProps> = forwardRef((props, ref) => {\n const {cell, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as CheckboxProps;\n\n return <CheckboxCell ref={ref} {...cellProps} inputProps={inputProps} />;\n});\n","'use client';\n\nimport {forwardRef} from '@join-x5/react-theme';\nimport {Datepicker} from '@join-x5/react';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {KeyboardEventHandler, MouseEventHandler} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\nimport type {CalendarValue, DatepickerProps} from '@join-x5/react';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TDateCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: DatepickerProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const DateCell: TDateCell = forwardRef(({inputProps, ...props}, ref) => {\n const setIsOpen: DatepickerProps['setIsOpen'] = newIsOpen => {\n props.setIsActive?.(newIsOpen);\n };\n\n const onClick: MouseEventHandler<HTMLTableCellElement> = e => {\n props.onClick?.(e);\n\n if (!props.isDisabled && !props.isActive) {\n props.setIsActive?.(true);\n }\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n props.onKeyDown?.(e);\n\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (!props.isDisabled && !props.isActive && isEnterCode) {\n props.setIsActive?.(true);\n }\n };\n\n return (\n <TableCell ref={ref} padding={0} {...props} onKeyDown={onKeyDown} onClick={onClick}>\n <Datepicker\n isTable\n size={props.size}\n disabled={props.isDisabled}\n isOpen={props.isActive}\n setIsOpen={setIsOpen}\n {...inputProps}\n />\n </TableCell>\n );\n});\n\nexport type DataGridDateCellProps<T = DefaultAny, V = DefaultAny> = {\n getValue: (cell: ReactTableCell<T, V>) => CalendarValue;\n onChange: (cell: ReactTableCell<T, V>, newValue: CalendarValue) => void;\n} & Omit<DatepickerProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V>;\n\nexport const DataGridDateCell: FRC<HTMLTableCellElement, DataGridDateCellProps> = forwardRef((props, ref) => {\n const {cell, getValue, onChange, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as DatepickerProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = newValue => onChange(cell, newValue);\n\n return <DateCell ref={ref} {...cellProps} inputProps={inputProps} />;\n});\n\nexport type GetDataGridDateCellArgs<T = DefaultAny, V = DefaultAny> = Omit<DataGridDateCellProps<T, V>, 'cell'>;\n\nexport const getDataGridDateCell = <T, V>(args: GetDataGridDateCellArgs<T, V>): ColumnDefTemplate<T, V> => {\n return ({cell}) => <DataGridDateCell key={cell.id} cell={cell} {...args} />;\n};\n","'use client';\n\nimport {forwardRef} from '@join-x5/react-theme';\nimport {Select} from '@join-x5/react';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {ChangeEvent, KeyboardEventHandler, MouseEventHandler} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC} from '@join-x5/react-theme';\nimport type {DatepickerProps, SelectOption, SelectProps} from '@join-x5/react';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TDropdownCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: SelectProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const DropdownCell: TDropdownCell = forwardRef(({inputProps, ...props}, ref) => {\n const setIsOpen: DatepickerProps['setIsOpen'] = newIsOpen => {\n props.setIsActive?.(newIsOpen);\n };\n\n const onClick: MouseEventHandler<HTMLTableCellElement> = e => {\n props.onClick?.(e);\n\n if (!props.isDisabled && !props.isActive) {\n props.setIsActive?.(true);\n }\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n props.onKeyDown?.(e);\n\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (!props.isDisabled && !props.isActive && isEnterCode) {\n props.setIsActive?.(true);\n }\n };\n\n return (\n <TableCell ref={ref} padding={0} {...props} onKeyDown={onKeyDown} onClick={onClick}>\n <Select\n isTable\n size={props.size}\n disabled={props.isDisabled}\n isOpen={props.isActive}\n setIsOpen={setIsOpen}\n {...inputProps}\n />\n </TableCell>\n );\n});\n\nexport type DataGridDropdownCellProps<T = DefaultAny, V = DefaultAny, O = unknown> = {\n getValue: (cell: ReactTableCell<T, V>) => SelectProps['value'];\n onChange: (\n cell: ReactTableCell<T, V>,\n newValue: SelectProps['value'],\n option?: SelectOption<O>,\n event?: ChangeEvent<HTMLInputElement>\n ) => void;\n} & Omit<SelectProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V>;\n\nexport const DataGridDropdownCell: FRC<HTMLTableCellElement, DataGridDropdownCellProps> = forwardRef((props, ref) => {\n const {cell, getValue, onChange, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as SelectProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = (...args) => onChange(cell, ...args);\n\n return <DropdownCell ref={ref} {...cellProps} inputProps={inputProps} />;\n});\n\nexport type GetDataGridDropdownCellArgs<T = DefaultAny, V = DefaultAny> = Omit<DataGridDropdownCellProps<T, V>, 'cell'>;\n\nexport const getDataGridDropdownCell = <T, V>(args: GetDataGridDropdownCellArgs<T, V>): ColumnDefTemplate<T, V> => {\n return ({cell}) => <DataGridDropdownCell key={cell.id} cell={cell} {...args} />;\n};\n","'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\nimport {ChevronDownIcon, ChevronRightIcon} from '@join-x5/react-icons';\nimport {IconButton, ButtonVariant} from '@join-x5/react';\n\nimport {TableCell, TableCellContent} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {FRC, PropsWithChildren, CSSProperties} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TExpandingCell = FRC<\n HTMLTableCellElement,\n {\n depth: number;\n isParent?: boolean;\n } & TableCellProps\n>;\n\nconst sizePadding = (depth: number, size?: SizeTokenValue, isParent?: boolean): CSSProperties['padding'] => {\n const paddingOffset = depth * 20 + (isParent ? 0 : 8);\n\n switch (size) {\n case SizeTokenValue.XXSmall:\n return `4px 8px 4px ${paddingOffset + 4}px`;\n case SizeTokenValue.XSmall:\n return `4px 8px 4px ${paddingOffset + 4}px`;\n case SizeTokenValue.Small:\n return `4px 8px 4px ${paddingOffset + 4}px`;\n case SizeTokenValue.Large:\n return `10px 12px 10px ${paddingOffset + 8}px`;\n case SizeTokenValue.XLarge:\n return `10px 12px 10px ${paddingOffset + 8}px`;\n default:\n return `8px 12px 8px ${paddingOffset + 8}px`;\n }\n};\n\nexport const ExpandingCell: TExpandingCell = forwardRef((props, ref) => {\n const {depth, isParent, padding, ...rest} = props;\n\n const resultPadding = padding ?? sizePadding(depth, props.size, isParent);\n\n return <TableCell ref={ref} padding={resultPadding} {...rest} />;\n});\n\nexport type DataGridExpandingCellProps<T = DefaultAny, V = DefaultAny> = DataGridTableCellProps<T, V> &\n PropsWithChildren;\n\nexport const DataGridExpandingCell: FRC<HTMLTableCellElement, DataGridExpandingCellProps> = forwardRef((props, ref) => {\n const {cell, children} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n if (!cell.row.getCanExpand()) {\n return (\n <ExpandingCell ref={ref} depth={cell.row.depth} {...cellProps}>\n <TableCellContent>{children}</TableCellContent>\n </ExpandingCell>\n );\n }\n\n const button = (() => {\n const Icon = cell.row.getIsExpanded() ? ChevronDownIcon : ChevronRightIcon;\n\n return (\n <IconButton\n data-action\n tabIndex={-1}\n variant={ButtonVariant.InnerInput}\n size={SizeTokenValue.XSmall}\n onClick={cell.row.getToggleExpandedHandler()}\n >\n <Icon size={SizeTokenValue.Small} />\n </IconButton>\n );\n })();\n\n const contentStyle = {\n display: 'flex',\n gap: '4px',\n width: '100%',\n height: '100%',\n alignItems: 'center',\n };\n\n return (\n <ExpandingCell isParent ref={ref} depth={cell.row.depth} {...cellProps}>\n <div style={contentStyle}>\n {button}\n <TableCellContent>{children}</TableCellContent>\n </div>\n </ExpandingCell>\n );\n});\n","'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TIconCell = FRC<HTMLTableCellElement, TableCellProps>;\n\nconst sizePadding: Record<SizeTokenValue, number> = {\n [SizeTokenValue.XXSmall]: 8,\n [SizeTokenValue.XSmall]: 8,\n [SizeTokenValue.Small]: 8,\n [SizeTokenValue.Medium]: 12,\n [SizeTokenValue.Large]: 14,\n [SizeTokenValue.XLarge]: 14,\n};\n\nexport const IconCell: TIconCell = forwardRef((props, ref) => {\n const {padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return <TableCell ref={ref} padding={padding} {...rest} />;\n});\n\nexport type DataGridIconCellProps<T = DefaultAny, V = DefaultAny> = DataGridTableCellProps<T, V> & PropsWithChildren;\n\nexport const DataGridIconCell: FRC<HTMLTableCellElement, DataGridIconCellProps> = forwardRef((props, ref) => {\n const {cell, children} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n return (\n <IconCell ref={ref} {...cellProps}>\n {children}\n </IconCell>\n );\n});\n","'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TLabelCell = FRC<HTMLTableCellElement, TableCellProps>;\n\nconst sizePadding: Record<SizeTokenValue, string> = {\n [SizeTokenValue.XXSmall]: '6px 8px',\n [SizeTokenValue.XSmall]: '6px 8px',\n [SizeTokenValue.Small]: '6px 8px',\n [SizeTokenValue.Medium]: '10px 12px',\n [SizeTokenValue.Large]: '12px',\n [SizeTokenValue.XLarge]: '12px',\n};\n\nexport const LabelCell: TLabelCell = forwardRef((props, ref) => {\n const {padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return <TableCell ref={ref} padding={padding} {...rest} />;\n});\n\nexport type DataGridLabelCellProps<T = DefaultAny, V = DefaultAny> = DataGridTableCellProps<T, V> & PropsWithChildren;\n\nexport const DataGridLabelCell: FRC<HTMLTableCellElement, DataGridLabelCellProps> = forwardRef((props, ref) => {\n const {cell, children} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n return (\n <LabelCell ref={ref} {...cellProps}>\n {children}\n </LabelCell>\n );\n});\n","'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\nimport {Switch} from '@join-x5/react';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {SwitchProps} from '@join-x5/react';\nimport type {FRC, CSSProperties} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TSwitchCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: SwitchProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nconst sizePadding: Record<SizeTokenValue, CSSProperties['padding']> = {\n [SizeTokenValue.XXSmall]: '8px',\n [SizeTokenValue.XSmall]: '8px',\n [SizeTokenValue.Small]: '8px',\n [SizeTokenValue.Medium]: '12px',\n [SizeTokenValue.Large]: '14px 12px 14px 14px',\n [SizeTokenValue.XLarge]: '14px 12px 14px 14px',\n};\n\nexport const SwitchCell: TSwitchCell = forwardRef((props, ref) => {\n const {inputProps, padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return (\n <TableCell ref={ref} padding={padding} {...rest}>\n <Switch data-action tabIndex={-1} disabled={props.isDisabled} size={SizeTokenValue.Small} {...inputProps} />\n </TableCell>\n );\n});\n\nexport type DataGridSwitchCellProps<T = DefaultAny, V = DefaultAny> = SwitchProps & DataGridTableCellProps<T, V>;\n\nexport const DataGridSwitchCell: FRC<HTMLTableCellElement, DataGridSwitchCellProps> = forwardRef((props, ref) => {\n const {cell, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as SwitchProps;\n\n return <SwitchCell ref={ref} {...cellProps} inputProps={inputProps} />;\n});\n","'use client';\n\nimport styled from '@emotion/styled';\n\nimport {useEffect, useState} from 'react';\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {TableCell, TableCellContent} from '../TableCell';\n\nimport {useDataGridInputCell, useTableCellTextInput} from './hook';\n\nimport type {\n ChangeEventHandler,\n FocusEvent,\n FocusEventHandler,\n InputHTMLAttributes,\n KeyboardEventHandler,\n ReactNode,\n} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\n\nconst ChildContent = styled.div`\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\nconst Input = styled.input`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n min-width: 10px;\n padding: 0;\n background-color: transparent;\n border: none;\n outline: none;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\nexport type TextInputProps = {\n value: string;\n onChange: (newValue: string, e: FocusEvent<HTMLInputElement>) => void;\n} & Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'>;\n\ntype TTextInputCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: TextInputProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const TextInputCell: TTextInputCell = forwardRef(({inputProps, ...props}, baseRef) => {\n const {cellProps, ref, inputRef} = useTableCellTextInput<HTMLInputElement>(props, baseRef);\n\n const [value, setValue] = useState(inputProps.value ?? '');\n\n const onChange: ChangeEventHandler<HTMLInputElement> = e => {\n setValue(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = e => {\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (e.code === 'Escape' || isEnterCode) {\n props.setIsActive?.(false);\n e.currentTarget.blur();\n }\n };\n\n const onBlur: FocusEventHandler<HTMLInputElement> = e => {\n props.setIsActive?.(false);\n\n inputProps.onChange(value, e);\n inputProps.onBlur?.(e);\n ref.current?.blur();\n };\n\n const isChildHidden = props.isActive ? true : undefined;\n\n const resultProps = {\n ...inputProps,\n\n value,\n onChange,\n onKeyDown,\n onBlur,\n\n size: 0,\n 'data-hidden': props.isActive ? undefined : true,\n };\n\n const contentProps = {\n isMultiline: cellProps.isMultiline,\n whiteSpace: cellProps.whiteSpace,\n wordBreak: cellProps.wordBreak,\n };\n\n useEffect(() => {\n setValue(inputProps.value);\n }, [inputProps.value]);\n\n return (\n <TableCell {...cellProps}>\n <TableCellContent {...contentProps}>\n <ChildContent data-hidden={isChildHidden}>{props.children}</ChildContent>\n <Input ref={inputRef} {...resultProps} />\n </TableCellContent>\n </TableCell>\n );\n});\n\nexport type DataGridTextInputCellProps<T = DefaultAny, V = DefaultAny> = {\n getValue: (cell: ReactTableCell<T, V>) => string;\n onChange: (cell: ReactTableCell<T, V>, newValue: string, e: FocusEvent<HTMLInputElement>) => void;\n} & Omit<TextInputProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V> &\n PropsWithChildren;\n\nexport const DataGridTextInputCell: FRC<HTMLTableCellElement, DataGridTextInputCellProps> = forwardRef((props, ref) => {\n const {cell, getValue, onChange, children, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as TextInputProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = (newValue, e) => onChange(cell, newValue, e);\n\n return (\n <TextInputCell ref={ref} {...cellProps} inputProps={inputProps}>\n {children}\n </TextInputCell>\n );\n});\n\nexport type GetDataGridTextInputCellArgs<T = DefaultAny, V = DefaultAny> = Omit<\n DataGridTextInputCellProps<T, V>,\n 'cell' | 'children'\n>;\n\nexport const getDataGridTextInputCell = <T, V>(args: GetDataGridTextInputCellArgs<T, V>): ColumnDefTemplate<T, V> => {\n return ({cell}) => {\n const content = (cell.getValue() ?? null) as ReactNode;\n\n return (\n <DataGridTextInputCell key={cell.id} cell={cell} {...args}>\n {content}\n </DataGridTextInputCell>\n );\n };\n};\n","'use client';\n\nimport styled from '@emotion/styled';\n\nimport {useEffect, useState} from 'react';\nimport baseTheme, {forwardRef} from '@join-x5/react-theme';\n\nimport {TableCell, TableCellContent} from '../TableCell';\n\nimport {useDataGridInputCell, useTableCellTextInput} from './hook';\n\nimport type {\n ChangeEventHandler,\n FocusEvent,\n FocusEventHandler,\n InputHTMLAttributes,\n KeyboardEventHandler,\n ReactNode,\n} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\n\nconst ChildContent = styled.div`\n min-height: 100%;\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\nconst TextArea = styled.textarea`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n min-width: 10px;\n padding: 0;\n background-color: transparent;\n border: none;\n outline: none;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n resize: none;\n\n ${baseTheme.scroll}\n\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\nexport type TextAreaInputProps = {\n value: string;\n onChange: (newValue: string, e: FocusEvent<HTMLTextAreaElement>) => void;\n} & Omit<InputHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onChange'>;\n\ntype TTextAreaInputCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: TextAreaInputProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const TextAreaInputCell: TTextAreaInputCell = forwardRef(({inputProps, ...props}, baseRef) => {\n const {cellProps, ref, inputRef} = useTableCellTextInput<HTMLTextAreaElement>(props, baseRef);\n\n const [value, setValue] = useState(inputProps.value ?? '');\n\n const onChange: ChangeEventHandler<HTMLTextAreaElement> = e => {\n setValue(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLTextAreaElement> = e => {\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (e.code === 'Escape' || (isEnterCode && e.ctrlKey)) {\n props.setIsActive?.(false);\n e.currentTarget.blur();\n }\n };\n\n const onBlur: FocusEventHandler<HTMLTextAreaElement> = e => {\n props.setIsActive?.(false);\n\n inputProps.onChange(value, e);\n inputProps.onBlur?.(e);\n ref.current?.blur();\n };\n\n const isChildHidden = props.isActive ? true : undefined;\n\n const resultProps = {\n ...inputProps,\n\n value,\n onChange,\n onKeyDown,\n onBlur,\n\n size: 0,\n 'data-hidden': props.isActive ? undefined : true,\n };\n\n const content = props.isActive ? value : props.children;\n\n const contentProps = {\n isMultiline: cellProps.isMultiline,\n whiteSpace: cellProps.whiteSpace,\n wordBreak: cellProps.wordBreak,\n };\n\n useEffect(() => {\n setValue(inputProps.value);\n }, [inputProps.value]);\n\n return (\n <TableCell {...cellProps}>\n <TableCellContent {...contentProps}>\n <ChildContent data-hidden={isChildHidden}>{content}</ChildContent>\n <TextArea ref={inputRef} {...resultProps} />\n </TableCellContent>\n </TableCell>\n );\n});\n\nexport type DataGridTextAreaInputCellProps<T = DefaultAny, V = DefaultAny> = {\n getValue: (cell: ReactTableCell<T, V>) => string;\n onChange: (cell: ReactTableCell<T, V>, newValue: string, e: FocusEvent<HTMLTextAreaElement>) => void;\n} & Omit<TextAreaInputProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V> &\n PropsWithChildren;\n\ntype TDataGridTextAreaInputCell = FRC<HTMLTableCellElement, DataGridTextAreaInputCellProps>;\n\nexport const DataGridTextAreaInputCell: TDataGridTextAreaInputCell = forwardRef((props, ref) => {\n const {cell, getValue, onChange, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const content = (cell.getValue() ?? null) as ReactNode;\n\n const inputProps = rest as TextAreaInputProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = (newValue, e) => onChange(cell, newValue, e);\n\n return (\n <TextAreaInputCell ref={ref} {...cellProps} inputProps={inputProps}>\n {content}\n </TextAreaInputCell>\n );\n});\n\nexport type GetDataGridTextAreaInputCellArgs<T = DefaultAny, V = DefaultAny> = Omit<\n DataGridTextAreaInputCellProps<T, V>,\n 'cell' | 'children'\n>;\n\nexport const getDataGridTextAreaInputCell = <T, V>(\n args: GetDataGridTextAreaInputCellArgs<T, V>\n): ColumnDefTemplate<T, V> => {\n return ({cell}) => {\n const content = (cell.getValue() ?? null) as ReactNode;\n\n return (\n <DataGridTextAreaInputCell key={cell.id} cell={cell} {...args}>\n {content}\n </DataGridTextAreaInputCell>\n );\n };\n};\n"],"names":["DataGridContext","createContext","activeCell","setActiveCell","DataGridContextProvider","children","rest","useState","jsx","_EMOTION_STRINGIFIED_CSS_ERROR__","TableWrapper","_styled","process","env","NODE_ENV","target","label","baseTheme","scroll","props","border","theme","colors","grey","backgroundColor","white","TableFooter","ControlPanel","ControlPanelContent","name","styles","toString","Container","Table","forwardRef","isResizing","ref","resultProps","undefined","DataGridTable","table","context","useContext","columnSizeVars","useMemo","headers","getFlatHeaders","colSizes","header","id","getSize","column","getState","columnSizingInfo","columnSizing","isResizingColumn","style","width","getTotalSize","qa","areaProps","isPinned","getIsPinned","columnArea","ColumnArea","FixedLeft","FixedRight","Default","left","getStart","isLastFixed","getIsLastColumn","right","getAfter","getIsFirstColumn","useDataGridTableCell","cell","isMultiline","isBordered","isShadowed","size","verticalAlign","writingMode","userSelect","wordBreak","whiteSpace","isRowSelected","row","getIsSelected","getIsResizing","maxWidth","cellProps","Object","assign","TableHeadCellVariant","Checkbox","TableHeadCellResizer","accent","Cell","color","SizeTokenValue","Large","toLocaleLowerCase","typography","h4","Medium","h5","Small","Content","TableHeadCell","baseRef","isDisabled","isActive","textAlign","startAdornment","endAdornment","resizer","dropdown","Dropdown","variant","useRefMerge","isDropdownOpen","setIsDropdownOpen","onKeyDown","e","code","currentTarget","blur","click","onClick","hasActive","toLowerCase","jsxs","DataGridTableHeadCell","getCanResize","resetSize","getResizeHandler","content","isPlaceholder","flexRender","columnDef","getContext","colSpan","rowSpan","headCellProps","getDataGridTableHeadCell","TableHeadRow","TableHead","DataGridTableHead","getHeaderGroups","map","headerGroup","getDataGridTableHead","sizePadding","XXSmall","XSmall","XLarge","p1compact","p2","caretColor","additional","red","Caption","p3","TableCellContent","contentProps","TableCell","isRowHover","isFocused","error","padding","isEnterCode","child","current","querySelector","parent","parentElement","curIndex","Array","from","childNodes","indexOf","sibling","previousElementSibling","nextElementSibling","nodeName","nextFocus","focus","prevSibling","prevRow","lastCell","lastElementChild","length","nextSibling","nextRow","firstCell","firstElementChild","caption","EditOnIcon","DataGridTableCell","getDataGridTableCell","meta","isCustom","React","TableRow","DataGridTableRow","getVisibleCells","getDataGridTableRow","TableBody","DataGridTableBody","components","rowProps","rows","getRowModel","iterator","item","itemProps","index","MemoizedDataGridTableBody","memo","prev","next","options","data","getDataGridTableBody","Component","useVirtualTableBody","wrapperRef","virtualize","rowVirtualizer","useVirtualizer","count","estimateSize","getScrollElement","measureElement","el","getBoundingClientRect","height","overscan","rowRef","node","getVirtualItems","position","top","transform","start","containerProps","setTimeout","measure","getDataGridTableBodyVirtual","convertVisibility","settings","reduce","acc","isVisible","convertOrder","sort","a","b","String","convertPinning","area","push","useDataGridColumnSettings","tableProps","columnVisibility","onColumnVisibilityChange","columnOrder","onColumnOrderChange","columnPinning","onColumnPinningChange","externalState","state","useUpdateEffect","newVisibility","newOrder","newPinning","oldState","JSON","stringify","DataGrid","bodyProps","headProps","columns","setTable","columnSettings","useReactTable","manualSorting","manualFiltering","manualPagination","columnResizeMode","getCoreRowModel","getExpandedRowModel","tableComponentProps","head","body","useEffect","TableDropdownHeader","h6","TableDropdownItem","useTableCellTextInput","setIsActive","inputRef","useRef","onEdit","input","selectionStart","value","onDoubleClick","useDataGridInputCell","newIsActive","ButtonCell","DataGridButtonCell","CheckboxCell","inputProps","DataGridCheckboxCell","DateCell","setIsOpen","newIsOpen","Datepicker","DataGridDateCell","getValue","onChange","newValue","getDataGridDateCell","args","DropdownCell","Select","DataGridDropdownCell","getDataGridDropdownCell","depth","isParent","paddingOffset","ExpandingCell","resultPadding","DataGridExpandingCell","getCanExpand","button","Icon","getIsExpanded","ChevronDownIcon","ChevronRightIcon","IconButton","ButtonVariant","InnerInput","getToggleExpandedHandler","contentStyle","display","gap","alignItems","IconCell","DataGridIconCell","LabelCell","DataGridLabelCell","SwitchCell","Switch","DataGridSwitchCell","ChildContent","Input","TextInputCell","setValue","onBlur","isChildHidden","DataGridTextInputCell","getDataGridTextInputCell","TextArea","TextAreaInputCell","ctrlKey","DataGridTextAreaInputCell","getDataGridTextAreaInputCell"],"mappings":"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"}
1
+ {"version":3,"file":"index.cjs","sources":["../src/DataGridContext.tsx","../src/Table/index.tsx","../src/TableCell/hook.ts","../src/TableHeadCell/types.ts","../src/TableHeadCell/index.tsx","../src/TableHeadRow/index.tsx","../src/TableHead/index.tsx","../src/TableCell/index.tsx","../src/TableRow/index.tsx","../src/TableBody/DataGridTableBody.tsx","../src/TableBody/hook.ts","../src/TableBody/DataGridTableBodyVirtual.tsx","../src/hook.ts","../src/DataGrid.tsx","../src/TableDropdown/index.tsx","../src/TableInputCell/hook.ts","../src/TableInputCell/button.tsx","../src/TableInputCell/checkbox.tsx","../src/TableInputCell/date.tsx","../src/TableInputCell/dropdown.tsx","../src/TableInputCell/expanding.tsx","../src/TableInputCell/icon.tsx","../src/TableInputCell/label.tsx","../src/TableInputCell/switch.tsx","../src/TableInputCell/text.tsx","../src/TableInputCell/textarea.tsx"],"sourcesContent":["'use client';\n\nimport {createContext, useState} from 'react';\n\nimport type {PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridProps} from 'types';\n\ntype CommonProps = Pick<\n DataGridProps,\n | 'isMultiline'\n | 'isShadowed'\n | 'qa'\n | 'isBordered'\n | 'size'\n | 'verticalAlign'\n | 'textAlign'\n | 'writingMode'\n | 'userSelect'\n | 'wordBreak'\n | 'whiteSpace'\n | 'cellProps'\n | 'headCellProps'\n>;\n\ntype DataGridContextProps = {\n activeCell: string | null;\n setActiveCell: (newActiveCell: string | null) => void;\n} & CommonProps;\n\nexport const DataGridContext = createContext<DataGridContextProps>({\n activeCell: null,\n setActiveCell: () => {},\n});\n\nexport const DataGridContextProvider: React.FC<PropsWithChildren & CommonProps> = ({children, ...rest}) => {\n const [activeCell, setActiveCell] = useState<string | null>(null);\n\n return <DataGridContext.Provider value={{activeCell, setActiveCell, ...rest}}>{children}</DataGridContext.Provider>;\n};\n","'use client';\n\nimport {useContext, useMemo} from 'react';\nimport styled from '@emotion/styled';\n\nimport baseTheme, {forwardRef} from '@join-x5/react-theme';\n\nimport {DataGridContext} from 'DataGridContext';\n\nimport type {Table as ReactTableTable} from '@tanstack/react-table';\nimport type {CSSProperties, FRC} from '@join-x5/react-theme';\nimport type {TableProps} from './types';\n\nexport const TableWrapper = styled.div`\n position: relative;\n width: 100%;\n box-sizing: border-box;\n border-collapse: collapse;\n border-radius: 8px 8px 0 0;\n overflow: auto;\n\n ${baseTheme.scroll}\n\n ${props => ({\n border: `1px solid ${props => props.theme.colors.grey[10]}`,\n backgroundColor: props.theme.colors.white,\n })}\n`;\n\nexport const TableFooter = styled.div`\n display: flex;\n padding: 8px;\n align-items: center;\n justify-content: space-between;\n border-radius: 0 0 8px 8px;\n gap: 12px;\n\n ${props => ({\n border: `1px solid ${props => props.theme.colors.grey[10]}`,\n backgroundColor: props.theme.colors.white,\n })}\n`;\n\nexport const ControlPanel = styled.div`\n display: flex;\n padding: 8px;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n border-radius: 8px;\n background-color: ${props => props.theme.colors.white};\n`;\n\nexport const ControlPanelContent = styled.div`\n display: flex;\n gap: 8px;\n align-items: center;\n`;\n\nconst Container = styled.table`\n border-collapse: separate;\n table-layout: fixed;\n border-spacing: 0;\n\n &[data-is-resizing] {\n cursor: col-resize;\n }\n`;\n\nexport const Table: FRC<HTMLTableElement, TableProps> = forwardRef(({isResizing, ...rest}, ref) => {\n const resultProps = {\n ...rest,\n\n 'data-is-resizing': isResizing ? true : undefined,\n };\n\n return <Container ref={ref} cellSpacing={0} cellPadding={0} {...resultProps}></Container>;\n});\n\ntype DataGridTableProps = {table: ReactTableTable<unknown>} & Omit<TableProps, 'isResizing'>;\n\nexport const DataGridTable: FRC<HTMLTableElement, DataGridTableProps> = forwardRef(({table, ...props}, ref) => {\n const context = useContext(DataGridContext);\n\n const columnSizeVars = useMemo(() => {\n const headers = table.getFlatHeaders();\n const colSizes: CSSProperties = {};\n\n for (const header of headers) {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n }\n\n return colSizes;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [table.getState().columnSizingInfo, table.getState().columnSizing]);\n\n const isResizing = !!table.getState().columnSizingInfo.isResizingColumn;\n\n const resultProps = {\n ...props,\n\n isResizing,\n\n style: {\n width: table.getTotalSize(),\n\n ...props.style,\n ...columnSizeVars,\n },\n\n 'data-qa': context.qa,\n };\n\n return <Table ref={ref} {...resultProps} />;\n});\n","'use client';\n\nimport {useContext} from 'react';\n\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport {DataGridContext} from 'DataGridContext';\n\nimport type {Column, Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {TableCellProps} from './types';\n\nexport const areaProps = (column: Column<unknown>, props: TableCellProps): void => {\n const isPinned = column.getIsPinned();\n\n props.columnArea = (() => {\n switch (column.getIsPinned()) {\n case 'left':\n return ColumnArea.FixedLeft;\n case 'right':\n return ColumnArea.FixedRight;\n }\n\n return ColumnArea.Default;\n })();\n\n if (!isPinned) {\n return;\n }\n\n props.style ??= {};\n\n if (isPinned === 'left') {\n props.style.left = `${column.getStart('left')}px`;\n props.isLastFixed = column.getIsLastColumn('left');\n } else {\n props.style.right = `${column.getAfter('right')}px`;\n props.isLastFixed = column.getIsFirstColumn('right');\n }\n};\n\nexport const useDataGridTableCell = (cell: ReactTableCell<unknown, unknown>) => {\n const context = useContext(DataGridContext);\n\n const isMultiline = typeof context.isMultiline === 'boolean' ? context.isMultiline : context.isMultiline?.(cell);\n const width = `calc(var(--header-${cell.column?.id}-size) * 1px)`;\n\n const resultProps: TableCellProps = {\n isMultiline,\n\n qa: context.qa,\n isBordered: context.isBordered,\n isShadowed: context.isShadowed,\n size: context.size,\n verticalAlign: context.verticalAlign,\n writingMode: context.writingMode,\n userSelect: context.userSelect,\n wordBreak: context.wordBreak,\n whiteSpace: context.whiteSpace,\n\n isRowSelected: cell.row.getIsSelected(),\n isResizing: cell.column.getIsResizing(),\n\n style: {\n width,\n maxWidth: width,\n },\n };\n\n areaProps(cell.column, resultProps);\n\n if (context.cellProps) {\n Object.assign(resultProps, typeof context.cellProps === 'function' ? context.cellProps(cell) : context.cellProps);\n }\n\n if (cell.column.columnDef.meta?.cellProps) {\n Object.assign(resultProps, cell.column.columnDef.meta?.cellProps);\n }\n\n return resultProps;\n};\n","// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport {SizeTokenValue} from '@join-x5/react-theme';\n// eslint-disable-next-line @typescript-eslint/consistent-type-imports\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport type {ReactNode, ThHTMLAttributes} from 'react';\nimport type {CSSProperties, QA} from '@join-x5/react-theme';\nimport type {DropdownProps} from '@join-x5/react';\n\nexport enum TableHeadCellVariant {\n Default = 'default',\n Checkbox = 'checkbox',\n}\n\nexport type TableHeadCellProps = {\n /** Размер */\n size?: SizeTokenValue;\n\n /** Вариант */\n variant?: TableHeadCellVariant;\n\n /** Установка состояния \"Отключен\" */\n isDisabled?: boolean;\n /** Установка состояния \"Активен\" */\n isActive?: boolean;\n /** С границей */\n isBordered?: boolean;\n /** Показывать тень вместо границы, в закрепленных столбцах и шапке */\n isShadowed?: boolean;\n /** Пустая клетка\n *\n * Клетка может быть пустой в ситуации многоуровневых заголовков\n */\n isPlaceholder?: boolean;\n\n /** Расположение колонки */\n columnArea?: ColumnArea;\n /** Последняя закрепленная колонка\n *\n * Добавляет тень в зависимости от `columnArea`\n */\n isLastFixed?: boolean;\n\n /** Иконка | Контент слева */\n startAdornment?: ReactNode;\n /** Иконка | Контент справа */\n endAdornment?: ReactNode;\n\n /** Контрол смены размера */\n resizer?: ReactNode;\n\n /** Контент дропдауна */\n dropdown?: React.FC<DropdownProps>;\n} & QA &\n Pick<CSSProperties, 'verticalAlign' | 'textAlign' | 'writingMode' | 'userSelect'> &\n ThHTMLAttributes<HTMLTableCellElement>;\n","'use client';\n\nimport {useContext, useState} from 'react';\nimport styled from '@emotion/styled';\nimport {flexRender} from '@tanstack/react-table';\n\nimport {forwardRef, SizeTokenValue, useRefMerge} from '@join-x5/react-theme';\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport {DataGridContext} from 'DataGridContext';\n\nimport {areaProps} from 'TableCell/hook';\n\nimport {TableHeadCellVariant} from './types';\n\nimport type {KeyboardEventHandler, MouseEventHandler} from 'react';\nimport type {Header} from '@tanstack/react-table';\nimport type {FRC} from '@join-x5/react-theme';\nimport type {TableHeadCellProps} from './types';\n\nexport const TableHeadCellResizer = styled.div`\n display: flex;\n position: absolute;\n align-items: center;\n justify-content: center;\n top: 0;\n width: 10px;\n height: 100%;\n cursor: col-resize;\n z-index: 1;\n\n ::before {\n content: '';\n display: block;\n width: 3px;\n height: 24px;\n border-radius: 8px;\n user-select: none;\n pointer-events: none;\n opacity: 0;\n\n background-color: ${props => props.theme.colors.accent[80]};\n }\n\n &[data-resizing]::before {\n opacity: 1;\n }\n`;\n\nconst Cell = styled.th`\n position: relative;\n box-sizing: border-box;\n\n ${props => ({\n color: props.theme.colors.grey[100],\n backgroundColor: props.theme.colors.white,\n\n '--border-color': props.theme.colors.grey[10],\n })};\n\n &[data-${SizeTokenValue.Large.toLocaleLowerCase()}] {\n padding: 12px;\n min-height: 44px;\n\n &[data-${TableHeadCellVariant.Checkbox.toLocaleLowerCase()}] {\n padding: 14px 12px;\n\n &[data-has-end-adornment] {\n padding-right: 8px;\n }\n }\n\n ${props => props.theme.typography.h4}\n }\n\n &[data-${SizeTokenValue.Medium.toLocaleLowerCase()}] {\n padding: 12px;\n min-height: 40px;\n\n &[data-${TableHeadCellVariant.Checkbox.toLocaleLowerCase()}] {\n padding: 12px;\n\n &[data-has-end-adornment] {\n padding-right: 8px;\n }\n }\n\n ${props => props.theme.typography.h5}\n }\n\n &[data-${SizeTokenValue.Small.toLocaleLowerCase()}] {\n padding: 8px;\n min-height: 32px;\n\n ${props => props.theme.typography.h5}\n }\n\n &[data-shadowed] {\n filter: drop-shadow(8px 0px 8px rgba(80, 86, 94, 0.08));\n\n &::before {\n border-bottom-width: 0;\n }\n }\n\n &[data-placeholder] {\n pointer-events: none;\n\n &:has(+ [data-placeholder])::after {\n display: none;\n }\n }\n\n &[data-${ColumnArea.FixedLeft.toLocaleLowerCase()}] {\n position: sticky;\n z-index: 1;\n\n &[data-shadowed][data-last-fixed] {\n filter: drop-shadow(8px 0px 8px rgba(80, 86, 94, 0.08));\n }\n }\n\n &[data-${ColumnArea.FixedRight.toLocaleLowerCase()}] {\n position: sticky;\n z-index: 1;\n\n &[data-shadowed][data-last-fixed] {\n filter: drop-shadow(-8px 0px 8px rgba(80, 86, 94, 0.08));\n }\n }\n\n :hover {\n ${props => ({\n backgroundColor: props.theme.colors.grey[10],\n\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n\n &[data-has-active] {\n cursor: pointer;\n\n &[data-active],\n :active {\n ${props => ({\n backgroundColor: props.theme.colors.grey[30],\n\n '--border-color': 'transparent',\n })}\n }\n }\n\n :focus {\n outline: none;\n }\n\n &[data-disabled] {\n :hover {\n ${props => ({\n backgroundColor: props.theme.colors.grey[10],\n\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n\n ${props => ({\n color: props.theme.colors.grey[40],\n })}\n }\n\n ::before {\n content: '';\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n border-width: 0 0 2px 0;\n border-style: solid;\n border-color: var(--border-color);\n }\n\n ::after {\n content: '';\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: calc(50% - 8px);\n right: 0;\n width: 2px;\n height: 16px;\n user-select: none;\n pointer-events: none;\n background-color: var(--border-color, transparent);\n }\n\n &[data-bordered] {\n ::before {\n border-width: 0 1px 2px 0;\n }\n\n :last-of-type::before {\n border-width: 0 0 2px 0;\n }\n\n ::after {\n display: none;\n }\n }\n\n :last-of-type::after {\n display: none;\n }\n\n [data-resizer] {\n right: -5px;\n }\n\n :last-of-type [data-resizer] {\n right: 0;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n position: relative;\n box-sizing: border-box;\n gap: 8px;\n`;\n\nconst Content = styled.div`\n flex-grow: 1;\n`;\n\nexport const TableHeadCell: FRC<HTMLTableCellElement, TableHeadCellProps> = forwardRef((props, baseRef) => {\n const {\n children,\n\n isDisabled,\n isActive,\n isBordered,\n isLastFixed,\n isShadowed,\n isPlaceholder,\n\n writingMode,\n verticalAlign = 'top',\n textAlign = 'left',\n userSelect = 'none',\n\n startAdornment,\n endAdornment,\n resizer,\n dropdown: Dropdown,\n\n variant = TableHeadCellVariant.Default,\n size = SizeTokenValue.Medium,\n columnArea = ColumnArea.Default,\n\n ...rest\n } = props;\n\n const ref = useRefMerge(baseRef);\n const [isDropdownOpen, setIsDropdownOpen] = useState<boolean>(false);\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n if (e.code === 'Escape') {\n e.currentTarget.blur();\n }\n\n if (e.code === 'Enter' || e.code === 'NumpadEnter') {\n e.currentTarget.click();\n }\n\n props.onKeyDown?.(e);\n };\n\n const onClick: MouseEventHandler<HTMLTableCellElement> = () => {\n if (Dropdown && !isDropdownOpen) {\n setIsDropdownOpen(true);\n }\n };\n\n const dropdown = Dropdown ? <Dropdown targetRef={ref} isOpen={isDropdownOpen} setIsOpen={setIsDropdownOpen} /> : null;\n const hasActive = !!props.onClick || !!Dropdown || !!isActive;\n\n const cellProps = {\n ...rest,\n\n onKeyDown,\n\n style: {\n verticalAlign,\n textAlign,\n writingMode,\n userSelect,\n\n ...props.style,\n },\n\n 'data-cell': true,\n 'data-disabled': isDisabled ? true : undefined,\n 'data-active': isActive || isDropdownOpen ? true : undefined,\n 'data-bordered': isBordered ? true : undefined,\n 'data-shadowed': isShadowed ? true : undefined,\n 'data-placeholder': isPlaceholder ? true : undefined,\n 'data-has-active': hasActive ? true : undefined,\n 'data-has-end-adornment': endAdornment ? true : undefined,\n 'data-last-fixed': isLastFixed ? true : undefined,\n\n [`data-${size.toLowerCase()}`]: true,\n [`data-${variant.toLowerCase()}`]: true,\n [`data-${columnArea.toLowerCase()}`]: true,\n };\n\n return (\n <Cell ref={ref} tabIndex={0} {...cellProps}>\n <Container onClick={onClick}>\n {startAdornment}\n <Content>{children}</Content>\n {endAdornment}\n </Container>\n {resizer}\n {dropdown}\n </Cell>\n );\n});\n\ntype DataGridTableHeadCellProps = {\n header: Header<unknown, unknown>;\n};\n\nexport const DataGridTableHeadCell: React.FC<DataGridTableHeadCellProps> = ({header}) => {\n const context = useContext(DataGridContext);\n\n const resizer = (() => {\n if (header.isPlaceholder || header.column.getCanResize() === false) {\n return null;\n }\n\n return (\n <TableHeadCellResizer\n data-resizer\n onDoubleClick={() => header.column.resetSize()}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n data-resizing={header.column.getIsResizing() ? true : undefined}\n />\n );\n })();\n\n const content = header.isPlaceholder ? null : flexRender(header.column.columnDef.header, header.getContext());\n\n const resultProps: TableHeadCellProps = {\n resizer,\n\n qa: context.qa,\n isBordered: context.isBordered,\n isShadowed: context.isShadowed,\n isPlaceholder: header.isPlaceholder,\n size: context.size,\n verticalAlign: context.verticalAlign,\n\n colSpan: header.colSpan || undefined,\n rowSpan: header.rowSpan || undefined,\n\n style: {\n width: `calc(var(--header-${header?.id}-size) * 1px)`,\n },\n };\n\n areaProps(header.column, resultProps);\n\n if (context.headCellProps) {\n Object.assign(\n resultProps,\n typeof context.headCellProps === 'function' ? context.headCellProps(header) : context.headCellProps\n );\n }\n\n if (header.column.columnDef.meta?.headCellProps) {\n Object.assign(resultProps, header.column.columnDef.meta?.headCellProps);\n }\n\n return (\n <TableHeadCell key={header.id} {...resultProps}>\n {content}\n </TableHeadCell>\n );\n};\n\nexport const getDataGridTableHeadCell = (header: DataGridTableHeadCellProps['header']) => {\n return <DataGridTableHeadCell key={header.id} header={header} />;\n};\n\nexport * from './types';\n","'use client';\n\nimport styled from '@emotion/styled';\n\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport type {FRC} from '@join-x5/react-theme';\nimport type {TableHeadRowProps} from './types';\n\nconst Container = styled.tr``;\n\nexport const TableHeadRow: FRC<HTMLTableRowElement, TableHeadRowProps> = forwardRef((props, ref) => {\n return <Container ref={ref} {...props} />;\n});\n","'use client';\n\nimport {useContext} from 'react';\nimport styled from '@emotion/styled';\n\nimport {DataGridContext} from 'DataGridContext';\nimport {getDataGridTableHeadCell} from 'TableHeadCell';\nimport {TableHeadRow} from 'TableHeadRow';\n\nimport type {HTMLAttributes} from 'react';\nimport type {Table} from '@tanstack/react-table';\n\nexport type TableHeadProps = HTMLAttributes<HTMLTableSectionElement>;\n\nexport const TableHead = styled.thead`\n position: sticky;\n top: 0;\n z-index: 2;\n`;\n\ntype DataGridTableHeadProps = {\n table: Table<unknown>;\n} & TableHeadProps;\n\nconst DataGridTableHead: React.FC<DataGridTableHeadProps> = ({table, ...props}) => {\n const context = useContext(DataGridContext);\n\n const content = table\n .getHeaderGroups()\n .map(headerGroup => (\n <TableHeadRow key={headerGroup.id}>\n {headerGroup.headers.map(header => getDataGridTableHeadCell(header))}\n </TableHeadRow>\n ));\n\n return (\n <TableHead data-qa={`${context.qa}-head`} {...props}>\n {content}\n </TableHead>\n );\n};\n\nexport const getDataGridTableHead = (table: Table<unknown>, props?: TableHeadProps) => {\n return <DataGridTableHead table={table} {...props} />;\n};\n","'use client';\n\nimport React from 'react';\nimport styled from '@emotion/styled';\nimport {flexRender} from '@tanstack/react-table';\n\nimport {forwardRef, SizeTokenValue, useRefMerge} from '@join-x5/react-theme';\nimport {EditOnIcon} from '@join-x5/react-icons';\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport {useDataGridTableCell} from './hook';\n\nimport type {HTMLAttributes, KeyboardEventHandler} from 'react';\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from './types';\n\nconst sizePadding: Record<SizeTokenValue, number> = {\n [SizeTokenValue.XXSmall]: 8,\n [SizeTokenValue.XSmall]: 8,\n [SizeTokenValue.Small]: 8,\n [SizeTokenValue.Medium]: 12,\n [SizeTokenValue.Large]: 12,\n [SizeTokenValue.XLarge]: 12,\n};\n\nconst Cell = styled.td`\n position: relative;\n box-sizing: border-box;\n height: 1px;\n border-radius: 0;\n border-spacing: 0;\n background-color: var(--background-color, transparent);\n\n ${props => ({\n color: props.theme.colors.grey[100],\n\n '--background-color': props.theme.colors.white,\n '--border-color': props.theme.colors.grey[10],\n })};\n\n &[data-${SizeTokenValue.Large.toLocaleLowerCase()}] {\n min-height: 44px;\n\n ${props => props.theme.typography.p1compact}\n }\n\n &[data-${SizeTokenValue.Medium.toLocaleLowerCase()}] {\n min-height: 40px;\n\n ${props => props.theme.typography.p2}\n }\n\n &[data-${SizeTokenValue.Small.toLocaleLowerCase()}] {\n min-height: 32px;\n\n ${props => props.theme.typography.p2}\n }\n\n &[data-${ColumnArea.FixedLeft.toLocaleLowerCase()}] {\n position: sticky;\n z-index: 1;\n\n &[data-shadowed][data-last-fixed] {\n filter: drop-shadow(8px 0px 8px rgba(80, 86, 94, 0.08));\n }\n }\n\n &[data-${ColumnArea.FixedRight.toLocaleLowerCase()}] {\n position: sticky;\n z-index: 1;\n\n &[data-shadowed][data-last-fixed] {\n filter: drop-shadow(-8px 0px 8px rgba(80, 86, 94, 0.08));\n }\n }\n\n &[data-row-hover] {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n\n :hover {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[40],\n })}\n }\n\n :not([data-disabled]):hover::before {\n border-width: 1px;\n }\n\n &[data-disabled] {\n :hover {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n\n ${props => ({\n color: props.theme.colors.grey[40],\n })}\n }\n\n &[data-row-selected] {\n ${props => ({\n '--background-color': props.theme.colors.accent[10],\n '--border-color': props.theme.colors.accent[20],\n })}\n }\n\n &[data-focused],\n :focus {\n outline: none;\n\n ::before {\n display: none;\n }\n\n ::after {\n display: block;\n }\n\n [data-edit-icon] {\n visibility: visible;\n }\n\n ${props => ({\n '--border-color': 'transparent',\n '--background-color': props.theme.colors.white,\n '--outline-color': props.theme.colors.accent[90],\n })}\n }\n\n &[data-active] {\n outline: none;\n\n ::before {\n display: none;\n }\n\n ::after {\n display: block;\n }\n\n [data-edit-icon] {\n visibility: hidden;\n }\n\n ${props => ({\n '--border-color': 'transparent',\n '--background-color': props.theme.colors.white,\n '--outline-color': props.theme.colors.accent[90],\n })}\n }\n\n &[data-error] {\n ::after {\n display: block;\n }\n\n ${props => ({\n caretColor: props.theme.colors.additional.red[80],\n\n '--background-color': props.theme.colors.white,\n '--border-color': 'transparent',\n '--outline-color': props.theme.colors.additional.red[80],\n })}\n }\n\n ::before {\n content: '';\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n border-width: 0 0 1px 0;\n border-style: solid;\n border-color: var(--border-color);\n }\n\n &[data-bordered] {\n ::before {\n border-width: 0 1px 1px 0;\n }\n\n :last-of-type::before {\n border-width: 0 0 1px 0;\n }\n }\n\n &[data-resizing] {\n border-right: 1px solid ${props => props.theme.colors.accent[20]};\n }\n\n ::after {\n content: '';\n display: none;\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n border-width: 2px;\n border-style: solid;\n border-radius: 4px;\n border-color: var(--outline-color, transparent);\n }\n\n [data-edit-icon] {\n display: none;\n position: absolute;\n visibility: hidden;\n right: 0;\n top: 0;\n background-color: var(--background-color, transparent);\n }\n\n &[data-editable] [data-edit-icon] {\n display: block;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n position: relative;\n box-sizing: border-box;\n gap: 8px;\n`;\n\nconst Content = styled.div`\n position: relative;\n flex-grow: 1;\n word-break: break-word;\n\n :not([data-is-multiline]) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`;\n\nconst Caption = styled.div`\n padding: 4px 0 0;\n width: 100%;\n word-break: break-all;\n\n ${props => ({\n ...props.theme.typography.p3,\n\n color: props.theme.colors.additional.red[80],\n })}\n`;\n\ntype TableCellContentProps = Partial<Pick<TableCellProps, 'children' | 'isMultiline' | 'whiteSpace' | 'wordBreak'>> &\n HTMLAttributes<HTMLDivElement>;\n\nexport const TableCellContent: FRC<HTMLDivElement, TableCellContentProps> = forwardRef((props, ref) => {\n const {children, style, isMultiline, whiteSpace, wordBreak = 'break-word', ...rest} = props;\n\n const contentProps = {\n ...rest,\n\n style: {\n whiteSpace,\n wordBreak,\n\n ...style,\n },\n\n 'data-content': true,\n 'data-is-multiline': isMultiline ? true : undefined,\n };\n\n return (\n <Content ref={ref} {...contentProps}>\n {children}\n </Content>\n );\n});\n\nexport const TableCell: FRC<HTMLTableCellElement, TableCellProps> = forwardRef((props, baseRef) => {\n const ref = useRefMerge(baseRef);\n\n const {\n children,\n\n isDisabled,\n isRowHover,\n isRowSelected,\n isBordered,\n isShadowed,\n isFocused,\n isActive,\n isResizing,\n isLastFixed,\n error,\n\n textAlign,\n writingMode,\n verticalAlign,\n padding,\n userSelect = 'none',\n\n startAdornment,\n endAdornment,\n\n size = SizeTokenValue.Medium,\n columnArea = ColumnArea.Default,\n\n ...rest\n } = props;\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n props.onKeyDown?.(e);\n\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (isEnterCode) {\n const child = ref.current?.querySelector('[data-action]') as HTMLElement;\n\n if (isEnterCode && child) {\n child.click();\n }\n\n return;\n }\n\n if (e.code === 'Escape') {\n ref.current?.blur();\n return;\n }\n\n if (e.code === 'ArrowUp' || e.code === 'ArrowDown' || e.code === 'ArrowLeft' || e.code === 'ArrowRight') {\n const parent = ref.current?.parentElement as HTMLElement;\n const curIndex = Array.from(parent?.childNodes).indexOf(ref.current as HTMLElement);\n\n switch (e.code) {\n case 'ArrowUp':\n case 'ArrowDown':\n {\n const sibling = (\n e.code === 'ArrowUp' ? parent?.previousElementSibling : parent?.nextElementSibling\n ) as HTMLElement;\n\n if (parent?.nodeName === sibling?.nodeName) {\n const nextFocus = sibling?.children[curIndex] as HTMLElement;\n\n nextFocus?.focus();\n }\n }\n break;\n\n case 'ArrowLeft':\n if (curIndex > 0) {\n const prevSibling = parent?.children[curIndex - 1] as HTMLElement;\n prevSibling?.focus();\n } else {\n const prevRow = parent?.previousElementSibling as HTMLElement;\n if (parent?.nodeName === prevRow?.nodeName) {\n const lastCell = prevRow.lastElementChild as HTMLElement;\n lastCell?.focus();\n }\n }\n break;\n case 'ArrowRight':\n if (curIndex < parent?.children.length - 1) {\n const nextSibling = parent?.children[curIndex + 1] as HTMLElement;\n nextSibling?.focus();\n } else {\n const nextRow = parent?.nextElementSibling as HTMLElement;\n if (parent?.nodeName === nextRow?.nodeName) {\n const firstCell = nextRow.firstElementChild as HTMLElement;\n firstCell?.focus();\n }\n }\n break;\n }\n }\n };\n\n const cellProps = {\n ...rest,\n\n onKeyDown,\n\n style: {\n verticalAlign,\n textAlign,\n writingMode,\n userSelect,\n\n padding: padding ?? sizePadding[size],\n\n ...props.style,\n },\n\n 'data-cell': true,\n 'data-disabled': isDisabled ? true : undefined,\n 'data-focused': isFocused ? true : undefined,\n 'data-error': error ? true : undefined,\n 'data-row-hover': isRowHover ? true : undefined,\n 'data-row-selected': isRowSelected ? true : undefined,\n 'data-bordered': isBordered ? true : undefined,\n 'data-shadowed': isShadowed ? true : undefined,\n 'data-resizing': isResizing ? true : undefined,\n 'data-active': isActive ? true : undefined,\n 'data-last-fixed': isLastFixed ? true : undefined,\n\n [`data-${size.toLowerCase()}`]: true,\n [`data-${columnArea.toLowerCase()}`]: true,\n };\n\n const caption = typeof error === 'string' ? <Caption>{error}</Caption> : null;\n\n return (\n <Cell ref={ref} tabIndex={0} {...cellProps}>\n <Container>\n {startAdornment}\n {children}\n {endAdornment}\n <EditOnIcon data-edit-icon size={SizeTokenValue.Small} />\n </Container>\n {caption}\n </Cell>\n );\n});\n\nexport const DataGridTableCell: FRC<HTMLTableCellElement, DataGridTableCellProps & PropsWithChildren> = forwardRef(\n (props, ref) => {\n const resultProps = useDataGridTableCell(props.cell);\n\n const contentProps = {\n isMultiline: resultProps.isMultiline,\n whiteSpace: resultProps.whiteSpace,\n wordBreak: resultProps.wordBreak,\n };\n\n return (\n <TableCell ref={ref} {...resultProps}>\n <TableCellContent {...contentProps}>{props.children}</TableCellContent>\n </TableCell>\n );\n }\n);\n\nexport const getDataGridTableCell = (cell: DataGridTableCellProps['cell']) => {\n const content = flexRender(cell.column.columnDef.cell, cell.getContext());\n\n if (cell.column.columnDef.meta?.isCustom) {\n return <React.Fragment key={cell.id}>{content}</React.Fragment>;\n }\n\n return (\n <DataGridTableCell key={cell.id} cell={cell}>\n {content}\n </DataGridTableCell>\n );\n};\n\nexport * from './types';\n","'use client';\n\nimport styled from '@emotion/styled';\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {getDataGridTableCell} from 'TableCell';\n\nimport type {HTMLAttributes} from 'react';\nimport type {Row} from '@tanstack/react-table';\nimport type {FRC} from '@join-x5/react-theme';\nimport type {GetDataGridTableRow} from '../types';\n\nexport type TableRowProps = HTMLAttributes<HTMLTableRowElement>;\n\nconst TableRow = styled.tr`\n :hover [data-cell] {\n :not([data-focused], [data-active], [data-disabled]) [data-edit-icon] {\n visibility: visible;\n }\n\n :not([data-focused], [data-active]):not(:focus) {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n }\n`;\n\ntype DataGridTableRowProps = {row: Row<unknown>} & TableRowProps;\n\nconst DataGridTableRow: FRC<HTMLTableRowElement, DataGridTableRowProps> = forwardRef((props, ref) => {\n const {row, ...rest} = props;\n\n const content = row.getVisibleCells().map(getDataGridTableCell);\n\n return (\n <TableRow ref={ref} {...rest}>\n {content}\n </TableRow>\n );\n});\n\nexport const getDataGridTableRow: GetDataGridTableRow = (row, props) => (\n <DataGridTableRow key={row.id} row={row} {...props} />\n);\n","'use client';\n\nimport {memo, useContext} from 'react';\nimport styled from '@emotion/styled';\n\nimport {DataGridContext} from 'DataGridContext';\nimport {getDataGridTableRow} from 'TableRow';\n\nimport type {Table} from '@tanstack/react-table';\nimport type {DataGridProps} from 'types';\nimport type {TableBodyProps} from './types';\n\nexport const TableBody = styled.tbody`\n position: relative;\n`;\n\ntype DataGridTableBodyProps = {\n table: Table<unknown>;\n} & Pick<DataGridProps, 'components' | 'rowProps'> &\n TableBodyProps;\n\nconst DataGridTableBody: React.FC<DataGridTableBodyProps> = props => {\n const {table, components, rowProps, ...rest} = props;\n const context = useContext(DataGridContext);\n const rows = table.getRowModel().rows;\n\n const iterator = components?.row ?? getDataGridTableRow;\n\n const child = rows.map(item => {\n const itemProps = typeof rowProps === 'function' ? rowProps(rows[item.index]) : rowProps;\n\n return iterator(item, itemProps);\n });\n\n return (\n <TableBody data-qa={`${context.qa}-body`} {...rest}>\n {child}\n </TableBody>\n );\n};\n\nconst MemoizedDataGridTableBody = memo(\n DataGridTableBody,\n (prev, next) => prev.table.options.data === next.table.options.data\n);\n\nexport const getDataGridTableBody = (props: DataGridTableBodyProps) => {\n const isResizing = props.table.getState().columnSizingInfo.isResizingColumn;\n const Component = isResizing ? MemoizedDataGridTableBody : DataGridTableBody;\n\n return <Component {...props} />;\n};\n","'use client';\n\nimport {useContext} from 'react';\nimport {useVirtualizer} from '@tanstack/react-virtual';\n\nimport {DataGridContext} from 'DataGridContext';\nimport {getDataGridTableRow} from 'TableRow';\n\nimport type {Table} from '@tanstack/react-table';\nimport type {VirtualItem} from '@tanstack/react-virtual';\nimport type {TableRowProps} from 'TableRow';\nimport type {DataGridProps} from 'types';\nimport type {TableBodyProps} from './types';\n\nexport type DataGridTableBodyVirtualProps = {\n table: Table<unknown>;\n} & Pick<DataGridProps, 'components' | 'rowProps'> &\n Required<Pick<DataGridProps, 'virtualize' | 'wrapperRef'>> &\n TableBodyProps;\n\nexport const useVirtualTableBody = (props: DataGridTableBodyVirtualProps) => {\n const {table, components, rowProps, wrapperRef, virtualize, ...rest} = props;\n\n const context = useContext(DataGridContext);\n const rows = table.getRowModel().rows;\n\n const rowVirtualizer = useVirtualizer<HTMLDivElement, HTMLTableRowElement>({\n count: rows.length,\n estimateSize: () => 40,\n getScrollElement: () => wrapperRef.current,\n measureElement: el => el.getBoundingClientRect().height,\n overscan: 5,\n\n ...(typeof virtualize === 'object' ? virtualize : undefined),\n });\n\n const iterator = components?.row ?? getDataGridTableRow;\n const rowRef = (node: HTMLTableRowElement) => rowVirtualizer.measureElement(node);\n\n const child = rowVirtualizer.getVirtualItems().map((item: VirtualItem) => {\n const row = rows[item.index];\n\n const itemProps = {\n ref: rowRef,\n\n 'data-index': item.index,\n\n style: {\n position: 'absolute',\n left: 0,\n top: 0,\n width: '100%',\n transform: `translateY(${item.start}px)`,\n },\n } as TableRowProps;\n\n if (rowProps) {\n Object.assign(itemProps, typeof rowProps === 'function' ? rowProps(row) : rowProps);\n }\n\n return iterator(row, itemProps);\n });\n\n const containerProps = {\n 'data-qa': `${context.qa}-body`,\n\n style: {\n height: rowVirtualizer.getTotalSize(),\n\n ...rest.style,\n },\n };\n\n if (!wrapperRef.current) {\n setTimeout(rowVirtualizer.measure);\n }\n\n return {containerProps, child};\n};\n","import {memo} from 'react';\n\nimport {TableBody} from './DataGridTableBody';\nimport {useVirtualTableBody} from './hook';\n\nimport type {DataGridTableBodyVirtualProps} from './hook';\n\nconst DataGridTableBody: React.FC<DataGridTableBodyVirtualProps> = props => {\n const {containerProps, child} = useVirtualTableBody(props);\n return <TableBody {...containerProps}>{child}</TableBody>;\n};\n\nconst MemoizedDataGridTableBody = memo(\n DataGridTableBody,\n (prev, next) => prev.table.options.data === next.table.options.data\n);\n\nexport const getDataGridTableBodyVirtual = (props: DataGridTableBodyVirtualProps) => {\n const isResizing = props.table.getState().columnSizingInfo.isResizingColumn;\n const Component = isResizing ? MemoizedDataGridTableBody : DataGridTableBody;\n\n return <Component {...props} />;\n};\n","'use client';\n\nimport {useMemo, useState} from 'react';\n\nimport {useUpdateEffect} from '@join-x5/react-theme';\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport type {ColumnOrderState, ColumnPinningState, TableState, VisibilityState} from '@tanstack/react-table';\nimport type {ColumnItem} from '@join-x5/react-data-grid-settings';\nimport type {DataGridProps} from 'types';\n\nconst convertVisibility = (settings?: ColumnItem[]): VisibilityState => {\n if (!settings || !settings.length) {\n return {};\n }\n\n return settings.reduce((acc, item) => {\n acc[item.id] = item.isVisible;\n return acc;\n }, {} as VisibilityState);\n};\n\nconst convertOrder = (settings?: ColumnItem[]): ColumnOrderState => {\n if (!settings || !settings.length) {\n return [];\n }\n\n return settings.sort((a, b) => a.sort - b.sort).map(item => String(item.id));\n};\n\nconst convertPinning = (settings?: ColumnItem[]): ColumnPinningState => {\n if (!settings || !settings.length) {\n return {};\n }\n\n return settings.reduce((acc, item) => {\n if (item.area === ColumnArea.FixedLeft) {\n acc.left ??= [];\n acc.left?.push(String(item.id));\n } else if (item.area === ColumnArea.FixedRight) {\n acc.right ??= [];\n acc.right?.push(String(item.id));\n }\n\n return acc;\n }, {} as ColumnPinningState);\n};\n\nexport const useDataGridColumnSettings = (\n settings?: DataGridProps['columnSettings'],\n tableProps?: DataGridProps['tableProps']\n) => {\n const [columnVisibility, onColumnVisibilityChange] = useState<VisibilityState>(convertVisibility(settings));\n const [columnOrder, onColumnOrderChange] = useState<ColumnOrderState>(convertOrder(settings));\n const [columnPinning, onColumnPinningChange] = useState<ColumnPinningState>(convertPinning(settings));\n\n const externalState = tableProps?.state;\n\n const state = useMemo((): Partial<TableState> => {\n return {columnVisibility, columnOrder, columnPinning, ...externalState};\n }, [externalState, columnVisibility, columnOrder, columnPinning]);\n\n useUpdateEffect(() => {\n const newVisibility = convertVisibility(settings);\n const newOrder = convertOrder(settings);\n const newPinning = convertPinning(settings);\n\n onColumnVisibilityChange(oldState =>\n JSON.stringify(oldState) === JSON.stringify(newVisibility) ? oldState : newVisibility\n );\n\n onColumnOrderChange(oldState => (JSON.stringify(oldState) === JSON.stringify(newOrder) ? oldState : newOrder));\n\n onColumnPinningChange(oldState =>\n JSON.stringify(oldState) === JSON.stringify(newPinning) ? oldState : newPinning\n );\n }, [settings]);\n\n return state;\n};\n","'use client';\n\nimport {useEffect} from 'react';\nimport {getCoreRowModel, getExpandedRowModel, useReactTable} from '@tanstack/react-table';\n\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {DataGridTable} from 'Table';\n\nimport {DataGridContextProvider} from 'DataGridContext';\nimport {getDataGridTableHead} from 'TableHead';\nimport {getDataGridTableBody, getDataGridTableBodyVirtual} from 'TableBody';\n\nimport {useDataGridColumnSettings} from './hook';\n\nimport type {FRC} from '@join-x5/react-theme';\nimport type {DataGridProps} from './types';\n\nexport const DataGrid: FRC<HTMLTableElement, DataGridProps> = forwardRef((props, ref) => {\n const {\n qa = 'datagrid',\n\n isBordered,\n isMultiline,\n isShadowed,\n\n size,\n width,\n textAlign,\n writingMode,\n userSelect,\n wordBreak,\n whiteSpace,\n\n cellProps,\n headCellProps,\n rowProps,\n bodyProps,\n headProps,\n virtualize,\n wrapperRef,\n\n columns,\n data,\n tableProps,\n setTable,\n columnSettings,\n components,\n children,\n\n verticalAlign = props.isMultiline ? 'top' : 'center',\n\n ...rest\n } = props;\n\n const state = useDataGridColumnSettings(columnSettings, tableProps);\n\n const table = useReactTable({\n columns,\n data,\n\n manualSorting: true,\n manualFiltering: true,\n manualPagination: true,\n columnResizeMode: 'onChange',\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n\n ...tableProps,\n\n state,\n });\n\n const context = {\n size,\n verticalAlign,\n isBordered,\n isMultiline,\n isShadowed,\n textAlign,\n writingMode,\n userSelect,\n wordBreak,\n whiteSpace,\n\n cellProps,\n headCellProps,\n qa,\n };\n\n const tableComponentProps = {\n ...rest,\n\n table,\n style: width ? {width, ...rest.style} : rest.style,\n 'data-qa': qa,\n };\n\n const head = getDataGridTableHead(table, headProps);\n const body =\n virtualize && wrapperRef\n ? getDataGridTableBodyVirtual({table, components, rowProps, virtualize, wrapperRef, ...bodyProps})\n : getDataGridTableBody({table, components, rowProps, ...bodyProps});\n\n useEffect(() => {\n setTable?.(table);\n }, [table, setTable]);\n\n return (\n <DataGridContextProvider {...context}>\n <DataGridTable ref={ref} {...tableComponentProps}>\n {head}\n {children}\n {body}\n </DataGridTable>\n </DataGridContextProvider>\n );\n});\n","import styled from '@emotion/styled';\n\nexport const TableDropdownHeader = styled.div`\n padding: 8px 12px 4px;\n user-select: none;\n\n ${props => ({\n ...props.theme.typography.h6,\n\n color: props.theme.colors.grey[70],\n })}\n`;\n\nexport const TableDropdownItem = styled.div`\n padding: 6px 12px;\n user-select: none;\n cursor: pointer;\n\n ${props => ({\n ...props.theme.typography.p1compact,\n\n color: props.theme.colors.grey[100],\n })}\n\n :hover {\n background-color: ${props => props.theme.colors.grey[10]};\n }\n\n &[data-checked] {\n ${props => ({\n color: props.theme.colors.white,\n backgroundColor: props.theme.colors.accent[90],\n })}\n }\n`;\n","'use client';\n\nimport {useContext, useRef} from 'react';\nimport {useRefMerge} from '@join-x5/react-theme';\n\nimport {DataGridContext} from '../DataGridContext';\nimport {useDataGridTableCell} from '../TableCell/hook';\n\nimport type {KeyboardEventHandler, MouseEventHandler, Ref} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {TableCellProps} from 'TableCell';\n\nexport const useTableCellTextInput = <T extends HTMLInputElement | HTMLTextAreaElement>(\n props: TableCellProps,\n baseRef: Ref<HTMLTableCellElement>\n) => {\n const {isDisabled, isActive, setIsActive} = props;\n\n const ref = useRefMerge(baseRef);\n const inputRef = useRef<T>(null);\n\n const onEdit = () => {\n const input = inputRef.current;\n if (isDisabled || !input) {\n return;\n }\n\n setIsActive?.(true);\n\n setTimeout(() => {\n input.selectionStart = input.value.length;\n input.focus();\n });\n };\n\n const onClick: MouseEventHandler<HTMLTableCellElement> = e => {\n if (!isActive) {\n e.currentTarget.focus();\n }\n\n props.onClick?.(e);\n };\n\n const onDoubleClick: MouseEventHandler<HTMLTableCellElement> = e => {\n onEdit();\n\n props.onDoubleClick?.(e);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n props.onKeyDown?.(e);\n\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (!isActive && isEnterCode) {\n onEdit();\n }\n };\n\n const cellProps = {\n ...props,\n\n ref,\n onClick,\n onDoubleClick,\n onKeyDown,\n\n 'data-editable': !isDisabled ? true : undefined,\n };\n\n return {cellProps, ref, inputRef};\n};\n\nexport const useDataGridInputCell = (cell: ReactTableCell<unknown, unknown>) => {\n const props = useDataGridTableCell(cell);\n const context = useContext(DataGridContext);\n\n const isActive = cell.id === context.activeCell;\n const setIsActive = newIsActive => context.setActiveCell(newIsActive ? cell.id : null);\n\n return {...props, isActive, setIsActive};\n};\n","'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {FRC, PropsWithChildren, CSSProperties} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TButtonCell = FRC<HTMLTableCellElement, TableCellProps>;\n\nconst sizePadding: Record<SizeTokenValue, CSSProperties['padding']> = {\n [SizeTokenValue.XXSmall]: 4,\n [SizeTokenValue.XSmall]: 4,\n [SizeTokenValue.Small]: 4,\n [SizeTokenValue.Medium]: 8,\n [SizeTokenValue.Large]: 6,\n [SizeTokenValue.XLarge]: 6,\n};\n\nexport const ButtonCell: TButtonCell = forwardRef((props, ref) => {\n const {padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return <TableCell ref={ref} padding={padding} {...rest} />;\n});\n\nexport type DataGridButtonCellProps<T = DefaultAny, V = DefaultAny> = DataGridTableCellProps<T, V> & PropsWithChildren;\n\nexport const DataGridButtonCell: FRC<HTMLTableCellElement, DataGridButtonCellProps> = forwardRef((props, ref) => {\n const {cell, children} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n return (\n <ButtonCell ref={ref} {...cellProps}>\n {children}\n </ButtonCell>\n );\n});\n","'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\nimport {Checkbox} from '@join-x5/react';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {FRC} from '@join-x5/react-theme';\nimport type {CheckboxProps} from '@join-x5/react';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TCheckboxCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: CheckboxProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nconst sizePadding: Record<SizeTokenValue, number> = {\n [SizeTokenValue.XXSmall]: 8,\n [SizeTokenValue.XSmall]: 8,\n [SizeTokenValue.Small]: 8,\n [SizeTokenValue.Medium]: 12,\n [SizeTokenValue.Large]: 14,\n [SizeTokenValue.XLarge]: 14,\n};\n\nexport const CheckboxCell: TCheckboxCell = forwardRef((props, ref) => {\n const {inputProps, padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return (\n <TableCell ref={ref} padding={padding} {...rest}>\n <Checkbox data-action tabIndex={-1} disabled={props.isDisabled} {...inputProps} />\n </TableCell>\n );\n});\n\nexport type DataGridCheckboxCellProps<T = DefaultAny, V = DefaultAny> = CheckboxProps & DataGridTableCellProps<T, V>;\n\nexport const DataGridCheckboxCell: FRC<HTMLTableCellElement, DataGridCheckboxCellProps> = forwardRef((props, ref) => {\n const {cell, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as CheckboxProps;\n\n return <CheckboxCell ref={ref} {...cellProps} inputProps={inputProps} />;\n});\n","'use client';\n\nimport {forwardRef} from '@join-x5/react-theme';\nimport {Datepicker} from '@join-x5/react';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {KeyboardEventHandler, MouseEventHandler} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\nimport type {CalendarValue, DatepickerProps} from '@join-x5/react';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TDateCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: DatepickerProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const DateCell: TDateCell = forwardRef(({inputProps, ...props}, ref) => {\n const setIsOpen: DatepickerProps['setIsOpen'] = newIsOpen => {\n props.setIsActive?.(newIsOpen);\n };\n\n const onClick: MouseEventHandler<HTMLTableCellElement> = e => {\n props.onClick?.(e);\n\n if (!props.isDisabled && !props.isActive) {\n props.setIsActive?.(true);\n }\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n props.onKeyDown?.(e);\n\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (!props.isDisabled && !props.isActive && isEnterCode) {\n props.setIsActive?.(true);\n }\n };\n\n return (\n <TableCell ref={ref} padding={0} {...props} onKeyDown={onKeyDown} onClick={onClick}>\n <Datepicker\n isTable\n size={props.size}\n disabled={props.isDisabled}\n isOpen={props.isActive}\n setIsOpen={setIsOpen}\n {...inputProps}\n />\n </TableCell>\n );\n});\n\nexport type DataGridDateCellProps<T = DefaultAny, V = DefaultAny> = {\n getValue: (cell: ReactTableCell<T, V>) => CalendarValue;\n onChange: (cell: ReactTableCell<T, V>, newValue: CalendarValue) => void;\n} & Omit<DatepickerProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V>;\n\nexport const DataGridDateCell: FRC<HTMLTableCellElement, DataGridDateCellProps> = forwardRef((props, ref) => {\n const {cell, getValue, onChange, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as DatepickerProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = newValue => onChange(cell, newValue);\n\n return <DateCell ref={ref} {...cellProps} inputProps={inputProps} />;\n});\n\nexport type GetDataGridDateCellArgs<T = DefaultAny, V = DefaultAny> = Omit<DataGridDateCellProps<T, V>, 'cell'>;\n\nexport const getDataGridDateCell = <T, V>(args: GetDataGridDateCellArgs<T, V>): ColumnDefTemplate<T, V> => {\n return ({cell}) => <DataGridDateCell key={cell.id} cell={cell} {...args} />;\n};\n","'use client';\n\nimport {forwardRef} from '@join-x5/react-theme';\nimport {Select} from '@join-x5/react';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {ChangeEvent, KeyboardEventHandler, MouseEventHandler} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC} from '@join-x5/react-theme';\nimport type {DatepickerProps, SelectOption, SelectProps} from '@join-x5/react';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TDropdownCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: SelectProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const DropdownCell: TDropdownCell = forwardRef(({inputProps, ...props}, ref) => {\n const setIsOpen: DatepickerProps['setIsOpen'] = newIsOpen => {\n props.setIsActive?.(newIsOpen);\n };\n\n const onClick: MouseEventHandler<HTMLTableCellElement> = e => {\n props.onClick?.(e);\n\n if (!props.isDisabled && !props.isActive) {\n props.setIsActive?.(true);\n }\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n props.onKeyDown?.(e);\n\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (!props.isDisabled && !props.isActive && isEnterCode) {\n props.setIsActive?.(true);\n }\n };\n\n return (\n <TableCell ref={ref} padding={0} {...props} onKeyDown={onKeyDown} onClick={onClick}>\n <Select\n isTable\n size={props.size}\n disabled={props.isDisabled}\n isOpen={props.isActive}\n setIsOpen={setIsOpen}\n {...inputProps}\n />\n </TableCell>\n );\n});\n\nexport type DataGridDropdownCellProps<T = DefaultAny, V = DefaultAny, O = unknown> = {\n getValue: (cell: ReactTableCell<T, V>) => SelectProps['value'];\n onChange: (\n cell: ReactTableCell<T, V>,\n newValue: SelectProps['value'],\n option?: SelectOption<O>,\n event?: ChangeEvent<HTMLInputElement>\n ) => void;\n} & Omit<SelectProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V>;\n\nexport const DataGridDropdownCell: FRC<HTMLTableCellElement, DataGridDropdownCellProps> = forwardRef((props, ref) => {\n const {cell, getValue, onChange, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as SelectProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = (...args) => onChange(cell, ...args);\n\n return <DropdownCell ref={ref} {...cellProps} inputProps={inputProps} />;\n});\n\nexport type GetDataGridDropdownCellArgs<T = DefaultAny, V = DefaultAny> = Omit<DataGridDropdownCellProps<T, V>, 'cell'>;\n\nexport const getDataGridDropdownCell = <T, V>(args: GetDataGridDropdownCellArgs<T, V>): ColumnDefTemplate<T, V> => {\n return ({cell}) => <DataGridDropdownCell key={cell.id} cell={cell} {...args} />;\n};\n","'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\nimport {ChevronDownIcon, ChevronRightIcon} from '@join-x5/react-icons';\nimport {IconButton, ButtonVariant} from '@join-x5/react';\n\nimport {TableCell, TableCellContent} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {FRC, PropsWithChildren, CSSProperties} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TExpandingCell = FRC<\n HTMLTableCellElement,\n {\n depth: number;\n isParent?: boolean;\n } & TableCellProps\n>;\n\nconst sizePadding = (depth: number, size?: SizeTokenValue, isParent?: boolean): CSSProperties['padding'] => {\n const paddingOffset = depth * 20 + (isParent ? 0 : 8);\n\n switch (size) {\n case SizeTokenValue.XXSmall:\n return `4px 8px 4px ${paddingOffset + 4}px`;\n case SizeTokenValue.XSmall:\n return `4px 8px 4px ${paddingOffset + 4}px`;\n case SizeTokenValue.Small:\n return `4px 8px 4px ${paddingOffset + 4}px`;\n case SizeTokenValue.Large:\n return `10px 12px 10px ${paddingOffset + 8}px`;\n case SizeTokenValue.XLarge:\n return `10px 12px 10px ${paddingOffset + 8}px`;\n default:\n return `8px 12px 8px ${paddingOffset + 8}px`;\n }\n};\n\nexport const ExpandingCell: TExpandingCell = forwardRef((props, ref) => {\n const {depth, isParent, padding, ...rest} = props;\n\n const resultPadding = padding ?? sizePadding(depth, props.size, isParent);\n\n return <TableCell ref={ref} padding={resultPadding} {...rest} />;\n});\n\nexport type DataGridExpandingCellProps<T = DefaultAny, V = DefaultAny> = DataGridTableCellProps<T, V> &\n PropsWithChildren;\n\nexport const DataGridExpandingCell: FRC<HTMLTableCellElement, DataGridExpandingCellProps> = forwardRef((props, ref) => {\n const {cell, children} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n if (!cell.row.getCanExpand()) {\n return (\n <ExpandingCell ref={ref} depth={cell.row.depth} {...cellProps}>\n <TableCellContent>{children}</TableCellContent>\n </ExpandingCell>\n );\n }\n\n const button = (() => {\n const Icon = cell.row.getIsExpanded() ? ChevronDownIcon : ChevronRightIcon;\n\n return (\n <IconButton\n data-action\n tabIndex={-1}\n variant={ButtonVariant.InnerInput}\n size={SizeTokenValue.XSmall}\n onClick={cell.row.getToggleExpandedHandler()}\n >\n <Icon size={SizeTokenValue.Small} />\n </IconButton>\n );\n })();\n\n const contentStyle = {\n display: 'flex',\n gap: '4px',\n width: '100%',\n height: '100%',\n alignItems: 'center',\n };\n\n return (\n <ExpandingCell isParent ref={ref} depth={cell.row.depth} {...cellProps}>\n <div style={contentStyle}>\n {button}\n <TableCellContent>{children}</TableCellContent>\n </div>\n </ExpandingCell>\n );\n});\n","'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TIconCell = FRC<HTMLTableCellElement, TableCellProps>;\n\nconst sizePadding: Record<SizeTokenValue, number> = {\n [SizeTokenValue.XXSmall]: 8,\n [SizeTokenValue.XSmall]: 8,\n [SizeTokenValue.Small]: 8,\n [SizeTokenValue.Medium]: 12,\n [SizeTokenValue.Large]: 14,\n [SizeTokenValue.XLarge]: 14,\n};\n\nexport const IconCell: TIconCell = forwardRef((props, ref) => {\n const {padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return <TableCell ref={ref} padding={padding} {...rest} />;\n});\n\nexport type DataGridIconCellProps<T = DefaultAny, V = DefaultAny> = DataGridTableCellProps<T, V> & PropsWithChildren;\n\nexport const DataGridIconCell: FRC<HTMLTableCellElement, DataGridIconCellProps> = forwardRef((props, ref) => {\n const {cell, children} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n return (\n <IconCell ref={ref} {...cellProps}>\n {children}\n </IconCell>\n );\n});\n","'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TLabelCell = FRC<HTMLTableCellElement, TableCellProps>;\n\nconst sizePadding: Record<SizeTokenValue, string> = {\n [SizeTokenValue.XXSmall]: '6px 8px',\n [SizeTokenValue.XSmall]: '6px 8px',\n [SizeTokenValue.Small]: '6px 8px',\n [SizeTokenValue.Medium]: '10px 12px',\n [SizeTokenValue.Large]: '12px',\n [SizeTokenValue.XLarge]: '12px',\n};\n\nexport const LabelCell: TLabelCell = forwardRef((props, ref) => {\n const {padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return <TableCell ref={ref} padding={padding} {...rest} />;\n});\n\nexport type DataGridLabelCellProps<T = DefaultAny, V = DefaultAny> = DataGridTableCellProps<T, V> & PropsWithChildren;\n\nexport const DataGridLabelCell: FRC<HTMLTableCellElement, DataGridLabelCellProps> = forwardRef((props, ref) => {\n const {cell, children} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n return (\n <LabelCell ref={ref} {...cellProps}>\n {children}\n </LabelCell>\n );\n});\n","'use client';\n\nimport {forwardRef, SizeTokenValue} from '@join-x5/react-theme';\nimport {Switch} from '@join-x5/react';\n\nimport {TableCell} from '../TableCell';\n\nimport {useDataGridInputCell} from './hook';\n\nimport type {SwitchProps} from '@join-x5/react';\nimport type {FRC, CSSProperties} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\ntype TSwitchCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: SwitchProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nconst sizePadding: Record<SizeTokenValue, CSSProperties['padding']> = {\n [SizeTokenValue.XXSmall]: '8px',\n [SizeTokenValue.XSmall]: '8px',\n [SizeTokenValue.Small]: '8px',\n [SizeTokenValue.Medium]: '12px',\n [SizeTokenValue.Large]: '14px 12px 14px 14px',\n [SizeTokenValue.XLarge]: '14px 12px 14px 14px',\n};\n\nexport const SwitchCell: TSwitchCell = forwardRef((props, ref) => {\n const {inputProps, padding = sizePadding[props.size ?? SizeTokenValue.Medium], ...rest} = props;\n\n return (\n <TableCell ref={ref} padding={padding} {...rest}>\n <Switch data-action tabIndex={-1} disabled={props.isDisabled} size={SizeTokenValue.Small} {...inputProps} />\n </TableCell>\n );\n});\n\nexport type DataGridSwitchCellProps<T = DefaultAny, V = DefaultAny> = SwitchProps & DataGridTableCellProps<T, V>;\n\nexport const DataGridSwitchCell: FRC<HTMLTableCellElement, DataGridSwitchCellProps> = forwardRef((props, ref) => {\n const {cell, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as SwitchProps;\n\n return <SwitchCell ref={ref} {...cellProps} inputProps={inputProps} />;\n});\n","'use client';\n\nimport styled from '@emotion/styled';\n\nimport {useEffect, useState} from 'react';\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {TableCell, TableCellContent} from '../TableCell';\n\nimport {useDataGridInputCell, useTableCellTextInput} from './hook';\n\nimport type {\n ChangeEventHandler,\n FocusEvent,\n FocusEventHandler,\n InputHTMLAttributes,\n KeyboardEventHandler,\n ReactNode,\n} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\n\nconst ChildContent = styled.div`\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\nconst Input = styled.input`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n min-width: 10px;\n padding: 0;\n background-color: transparent;\n border: none;\n outline: none;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\nexport type TextInputProps = {\n value: string;\n onChange: (newValue: string, e: FocusEvent<HTMLInputElement>) => void;\n} & Omit<InputHTMLAttributes<HTMLInputElement>, 'value' | 'onChange'>;\n\ntype TTextInputCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: TextInputProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const TextInputCell: TTextInputCell = forwardRef(({inputProps, ...props}, baseRef) => {\n const {cellProps, ref, inputRef} = useTableCellTextInput<HTMLInputElement>(props, baseRef);\n\n const [value, setValue] = useState(inputProps.value ?? '');\n\n const onChange: ChangeEventHandler<HTMLInputElement> = e => {\n setValue(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLInputElement> = e => {\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (e.code === 'Escape' || isEnterCode) {\n props.setIsActive?.(false);\n e.currentTarget.blur();\n }\n };\n\n const onBlur: FocusEventHandler<HTMLInputElement> = e => {\n props.setIsActive?.(false);\n\n inputProps.onChange(value, e);\n inputProps.onBlur?.(e);\n ref.current?.blur();\n };\n\n const isChildHidden = props.isActive ? true : undefined;\n\n const resultProps = {\n ...inputProps,\n\n value,\n onChange,\n onKeyDown,\n onBlur,\n\n size: 0,\n 'data-hidden': props.isActive ? undefined : true,\n };\n\n const contentProps = {\n isMultiline: cellProps.isMultiline,\n whiteSpace: cellProps.whiteSpace,\n wordBreak: cellProps.wordBreak,\n };\n\n useEffect(() => {\n setValue(inputProps.value);\n }, [inputProps.value]);\n\n return (\n <TableCell {...cellProps}>\n <TableCellContent {...contentProps}>\n <ChildContent data-hidden={isChildHidden}>{props.children}</ChildContent>\n <Input ref={inputRef} {...resultProps} />\n </TableCellContent>\n </TableCell>\n );\n});\n\nexport type DataGridTextInputCellProps<T = DefaultAny, V = DefaultAny> = {\n getValue: (cell: ReactTableCell<T, V>) => string;\n onChange: (cell: ReactTableCell<T, V>, newValue: string, e: FocusEvent<HTMLInputElement>) => void;\n} & Omit<TextInputProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V> &\n PropsWithChildren;\n\nexport const DataGridTextInputCell: FRC<HTMLTableCellElement, DataGridTextInputCellProps> = forwardRef((props, ref) => {\n const {cell, getValue, onChange, children, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const inputProps = rest as TextInputProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = (newValue, e) => onChange(cell, newValue, e);\n\n return (\n <TextInputCell ref={ref} {...cellProps} inputProps={inputProps}>\n {children}\n </TextInputCell>\n );\n});\n\nexport type GetDataGridTextInputCellArgs<T = DefaultAny, V = DefaultAny> = Omit<\n DataGridTextInputCellProps<T, V>,\n 'cell' | 'children'\n>;\n\nexport const getDataGridTextInputCell = <T, V>(args: GetDataGridTextInputCellArgs<T, V>): ColumnDefTemplate<T, V> => {\n return ({cell}) => {\n const content = (cell.getValue() ?? null) as ReactNode;\n\n return (\n <DataGridTextInputCell key={cell.id} cell={cell} {...args}>\n {content}\n </DataGridTextInputCell>\n );\n };\n};\n","'use client';\n\nimport styled from '@emotion/styled';\n\nimport {useEffect, useState} from 'react';\nimport baseTheme, {forwardRef} from '@join-x5/react-theme';\n\nimport {TableCell, TableCellContent} from '../TableCell';\n\nimport {useDataGridInputCell, useTableCellTextInput} from './hook';\n\nimport type {\n ChangeEventHandler,\n FocusEvent,\n FocusEventHandler,\n InputHTMLAttributes,\n KeyboardEventHandler,\n ReactNode,\n} from 'react';\nimport type {Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {FRC, PropsWithChildren} from '@join-x5/react-theme';\nimport type {DataGridTableCellProps, TableCellProps} from '../TableCell';\nimport type {ColumnDefTemplate} from './types';\n\nconst ChildContent = styled.div`\n min-height: 100%;\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\nconst TextArea = styled.textarea`\n position: absolute;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n min-width: 10px;\n padding: 0;\n background-color: transparent;\n border: none;\n outline: none;\n font-family: inherit;\n font-size: inherit;\n font-weight: inherit;\n line-height: inherit;\n resize: none;\n\n ${baseTheme.scroll}\n\n &[data-hidden] {\n visibility: hidden;\n pointer-events: none;\n }\n`;\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\ntype DefaultAny = any;\n\nexport type TextAreaInputProps = {\n value: string;\n onChange: (newValue: string, e: FocusEvent<HTMLTextAreaElement>) => void;\n} & Omit<InputHTMLAttributes<HTMLTextAreaElement>, 'value' | 'onChange'>;\n\ntype TTextAreaInputCell = FRC<\n HTMLTableCellElement,\n {\n inputProps: TextAreaInputProps;\n } & Omit<TableCellProps, 'value' | 'onChange'>\n>;\n\nexport const TextAreaInputCell: TTextAreaInputCell = forwardRef(({inputProps, ...props}, baseRef) => {\n const {cellProps, ref, inputRef} = useTableCellTextInput<HTMLTextAreaElement>(props, baseRef);\n\n const [value, setValue] = useState(inputProps.value ?? '');\n\n const onChange: ChangeEventHandler<HTMLTextAreaElement> = e => {\n setValue(e.target.value);\n };\n\n const onKeyDown: KeyboardEventHandler<HTMLTextAreaElement> = e => {\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (e.code === 'Escape' || (isEnterCode && e.ctrlKey)) {\n props.setIsActive?.(false);\n e.currentTarget.blur();\n }\n };\n\n const onBlur: FocusEventHandler<HTMLTextAreaElement> = e => {\n props.setIsActive?.(false);\n\n inputProps.onChange(value, e);\n inputProps.onBlur?.(e);\n ref.current?.blur();\n };\n\n const isChildHidden = props.isActive ? true : undefined;\n\n const resultProps = {\n ...inputProps,\n\n value,\n onChange,\n onKeyDown,\n onBlur,\n\n size: 0,\n 'data-hidden': props.isActive ? undefined : true,\n };\n\n const content = props.isActive ? value : props.children;\n\n const contentProps = {\n isMultiline: cellProps.isMultiline,\n whiteSpace: cellProps.whiteSpace,\n wordBreak: cellProps.wordBreak,\n };\n\n useEffect(() => {\n setValue(inputProps.value);\n }, [inputProps.value]);\n\n return (\n <TableCell {...cellProps}>\n <TableCellContent {...contentProps}>\n <ChildContent data-hidden={isChildHidden}>{content}</ChildContent>\n <TextArea ref={inputRef} {...resultProps} />\n </TableCellContent>\n </TableCell>\n );\n});\n\nexport type DataGridTextAreaInputCellProps<T = DefaultAny, V = DefaultAny> = {\n getValue: (cell: ReactTableCell<T, V>) => string;\n onChange: (cell: ReactTableCell<T, V>, newValue: string, e: FocusEvent<HTMLTextAreaElement>) => void;\n} & Omit<TextAreaInputProps, 'value' | 'onChange'> &\n DataGridTableCellProps<T, V> &\n PropsWithChildren;\n\ntype TDataGridTextAreaInputCell = FRC<HTMLTableCellElement, DataGridTextAreaInputCellProps>;\n\nexport const DataGridTextAreaInputCell: TDataGridTextAreaInputCell = forwardRef((props, ref) => {\n const {cell, getValue, onChange, ...rest} = props;\n\n const cellProps = useDataGridInputCell(cell);\n\n const content = (cell.getValue() ?? null) as ReactNode;\n\n const inputProps = rest as TextAreaInputProps;\n inputProps.value = getValue(cell);\n inputProps.onChange = (newValue, e) => onChange(cell, newValue, e);\n\n return (\n <TextAreaInputCell ref={ref} {...cellProps} inputProps={inputProps}>\n {content}\n </TextAreaInputCell>\n );\n});\n\nexport type GetDataGridTextAreaInputCellArgs<T = DefaultAny, V = DefaultAny> = Omit<\n DataGridTextAreaInputCellProps<T, V>,\n 'cell' | 'children'\n>;\n\nexport const getDataGridTextAreaInputCell = <T, V>(\n args: GetDataGridTextAreaInputCellArgs<T, V>\n): ColumnDefTemplate<T, V> => {\n return ({cell}) => {\n const content = (cell.getValue() ?? null) as ReactNode;\n\n return (\n <DataGridTextAreaInputCell key={cell.id} cell={cell} {...args}>\n {content}\n </DataGridTextAreaInputCell>\n );\n };\n};\n"],"names":["DataGridContext","createContext","activeCell","setActiveCell","DataGridContextProvider","children","rest","useState","jsx","_EMOTION_STRINGIFIED_CSS_ERROR__","TableWrapper","_styled","process","env","NODE_ENV","target","label","baseTheme","scroll","props","border","theme","colors","grey","backgroundColor","white","TableFooter","ControlPanel","ControlPanelContent","name","styles","toString","Container","Table","forwardRef","isResizing","ref","resultProps","undefined","DataGridTable","table","context","useContext","columnSizeVars","useMemo","headers","getFlatHeaders","colSizes","header","id","getSize","column","getState","columnSizingInfo","columnSizing","isResizingColumn","style","width","getTotalSize","qa","areaProps","isPinned","getIsPinned","columnArea","ColumnArea","FixedLeft","FixedRight","Default","left","getStart","isLastFixed","getIsLastColumn","right","getAfter","getIsFirstColumn","useDataGridTableCell","cell","isMultiline","isBordered","isShadowed","size","verticalAlign","writingMode","userSelect","wordBreak","whiteSpace","isRowSelected","row","getIsSelected","getIsResizing","maxWidth","cellProps","Object","assign","columnDef","meta","TableHeadCellVariant","Checkbox","TableHeadCellResizer","accent","Cell","color","SizeTokenValue","Large","toLocaleLowerCase","typography","h4","Medium","h5","Small","Content","TableHeadCell","baseRef","isDisabled","isActive","isPlaceholder","textAlign","startAdornment","endAdornment","resizer","dropdown","Dropdown","variant","useRefMerge","isDropdownOpen","setIsDropdownOpen","onKeyDown","e","code","currentTarget","blur","click","onClick","hasActive","toLowerCase","jsxs","DataGridTableHeadCell","getCanResize","resetSize","getResizeHandler","content","flexRender","getContext","colSpan","rowSpan","headCellProps","getDataGridTableHeadCell","TableHeadRow","TableHead","DataGridTableHead","getHeaderGroups","map","headerGroup","getDataGridTableHead","sizePadding","XXSmall","XSmall","XLarge","p1compact","p2","caretColor","additional","red","Caption","p3","TableCellContent","contentProps","TableCell","isRowHover","isFocused","error","padding","isEnterCode","child","current","querySelector","parent","parentElement","curIndex","Array","from","childNodes","indexOf","sibling","previousElementSibling","nextElementSibling","nodeName","focus","prevRow","lastElementChild","length","nextRow","firstElementChild","caption","EditOnIcon","DataGridTableCell","getDataGridTableCell","isCustom","React","TableRow","DataGridTableRow","getVisibleCells","getDataGridTableRow","TableBody","DataGridTableBody","components","rowProps","rows","getRowModel","iterator","item","itemProps","index","MemoizedDataGridTableBody","memo","prev","next","options","data","getDataGridTableBody","Component","useVirtualTableBody","wrapperRef","virtualize","rowVirtualizer","useVirtualizer","count","estimateSize","getScrollElement","measureElement","el","getBoundingClientRect","height","overscan","rowRef","node","getVirtualItems","position","top","transform","start","containerProps","setTimeout","measure","getDataGridTableBodyVirtual","convertVisibility","settings","reduce","acc","isVisible","convertOrder","sort","a","b","String","convertPinning","area","push","useDataGridColumnSettings","tableProps","columnVisibility","onColumnVisibilityChange","columnOrder","onColumnOrderChange","columnPinning","onColumnPinningChange","externalState","state","useUpdateEffect","newVisibility","newOrder","newPinning","oldState","JSON","stringify","DataGrid","bodyProps","headProps","columns","setTable","columnSettings","useReactTable","manualSorting","manualFiltering","manualPagination","columnResizeMode","getCoreRowModel","getExpandedRowModel","tableComponentProps","head","body","useEffect","TableDropdownHeader","h6","TableDropdownItem","useTableCellTextInput","setIsActive","inputRef","useRef","onEdit","input","selectionStart","value","onDoubleClick","useDataGridInputCell","newIsActive","ButtonCell","DataGridButtonCell","CheckboxCell","inputProps","DataGridCheckboxCell","DateCell","setIsOpen","newIsOpen","Datepicker","DataGridDateCell","getValue","onChange","newValue","getDataGridDateCell","args","DropdownCell","Select","DataGridDropdownCell","getDataGridDropdownCell","depth","isParent","paddingOffset","ExpandingCell","resultPadding","DataGridExpandingCell","getCanExpand","button","Icon","getIsExpanded","ChevronDownIcon","ChevronRightIcon","IconButton","ButtonVariant","InnerInput","getToggleExpandedHandler","contentStyle","display","gap","alignItems","IconCell","DataGridIconCell","LabelCell","DataGridLabelCell","SwitchCell","Switch","DataGridSwitchCell","ChildContent","Input","TextInputCell","setValue","onBlur","isChildHidden","DataGridTextInputCell","getDataGridTextInputCell","TextArea","TextAreaInputCell","ctrlKey","DataGridTextAreaInputCell","getDataGridTextAreaInputCell"],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -53,7 +53,7 @@ export type DataGridProps<T = DefaultAny> = {
53
53
  isMultiline?: boolean | DataGridCellBooleanCallback;
54
54
  /** Свойства ячеек */
55
55
  cellProps?: Partial<TableCellProps> | CellPropsCallback<T>;
56
- /** Свойства ячеек */
56
+ /** Свойства заголовков */
57
57
  headCellProps?: Partial<TableHeadCellProps> | HeadCellPropsCallback<T>;
58
58
  /** Свойства строк */
59
59
  rowProps?: Partial<TableRowProps> | RowPropsCallback<T>;
@@ -83,6 +83,16 @@ declare module '@tanstack/react-table' {
83
83
  * Если передан `true`, то ячейка не будет обернута в компонент TableCell.
84
84
  */
85
85
  isCustom?: boolean;
86
+ /** Свойства ячейки
87
+ *
88
+ * Можно использовать вместе передачи DataGridProps[cellProps]
89
+ */
90
+ cellProps?: Partial<TableCellProps>;
91
+ /** Свойства заголовка
92
+ *
93
+ * Можно использовать вместе передачи DataGridProps[headCellProps]
94
+ */
95
+ headCellProps?: Partial<TableHeadCellProps>;
86
96
  }
87
97
  }
88
98
  export {};