@join-x5/react-data-grid 1.1.2-nightly → 1.1.4-nightly
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.
- package/dist/DataGrid.es.js +64 -55
- package/dist/DataGrid.es.js.map +1 -1
- package/dist/Table/index.es.js +13 -13
- package/dist/Table/index.es.js.map +1 -1
- package/dist/Table/types.d.ts +1 -1
- package/dist/TableCell/index.d.ts +1 -1
- package/dist/TableCell/index.es.js +8 -8
- package/dist/TableCell/index.es.js.map +1 -1
- package/dist/TableHeadCell/index.es.js +93 -93
- package/dist/TableHeadCell/index.es.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +1 -0
- package/dist/types.d.ts +3 -3
- package/package.json +8 -8
package/dist/index.cjs.map
CHANGED
|
@@ -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/index.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 width: 100%;\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: collapse;\n table-layout: fixed;\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} {...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, context.cellProps instanceof 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 right: -5px;\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\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> = e => {\n if (Dropdown && !isDropdownOpen) {\n setIsDropdownOpen(true);\n }\n\n props.onClick?.(e);\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 onClick,\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>\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 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 context.headCellProps instanceof 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 {Table} from '@tanstack/react-table';\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};\n\nconst DataGridTableHead: React.FC<DataGridTableHeadProps> = props => {\n const context = useContext(DataGridContext);\n\n const content = props.table\n .getHeaderGroups()\n .map(headerGroup => (\n <TableHeadRow key={headerGroup.id}>\n {headerGroup.headers.map(header => getDataGridTableHeadCell(header))}\n </TableHeadRow>\n ));\n\n return <TableHead data-qa={`${context.qa}-head`}>{content}</TableHead>;\n};\n\nexport const getDataGridTableHead = (table: Table<unknown>) => {\n return <DataGridTableHead table={table} />;\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 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 = 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';\n\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {getDataGridTableCell} from 'TableCell';\n\nimport type {FRC} from '@join-x5/react-theme';\nimport type {Row} from '@tanstack/react-table';\nimport type {GetDataGridTableRow} from '../types';\nimport type {TableRowProps} from './types';\n\nconst Container = 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\nexport const TableRow: FRC<HTMLTableRowElement, TableRowProps> = forwardRef((props, ref) => {\n return <Container ref={ref} {...props} />;\n});\n\ntype DataGridTableRowProps = {row: Row<unknown>} & TableRowProps;\n\nconst DataGridTableRow: React.FC<DataGridTableRowProps> = props => {\n const {row, ...rest} = props;\n\n const content = row.getVisibleCells().map(getDataGridTableCell);\n\n return <TableRow {...rest}>{content}</TableRow>;\n};\n\nexport const getDataGridTableRow: GetDataGridTableRow = row => {\n return <DataGridTableRow key={row.id} row={row} />;\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';\n\nexport const TableBody = styled.tbody``;\n\ntype DataGridTableBodyProps = {\n table: Table<unknown>;\n} & Pick<DataGridProps, 'components'>;\n\nconst DataGridTableBody: React.FC<DataGridTableBodyProps> = ({table, components}) => {\n const context = useContext(DataGridContext);\n const rows = table.getRowModel().rows;\n\n const iterator = components?.row ?? getDataGridTableRow;\n\n return <TableBody data-qa={`${context.qa}-body`}>{rows.map(iterator)}</TableBody>;\n};\n\nconst MemoizedDataGridTableBody = memo(\n DataGridTableBody,\n (prev, next) => prev.table.options.data === next.table.options.data\n);\n\nexport const getDataGridTableBody = (\n table: DataGridTableBodyProps['table'],\n components: DataGridProps['components']\n) => {\n const isResizing = table.getState().columnSizingInfo.isResizingColumn;\n const Component = isResizing ? MemoizedDataGridTableBody : DataGridTableBody;\n\n return <Component table={table} components={components} />;\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 {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} 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 textAlign,\n writingMode,\n userSelect,\n wordBreak,\n whiteSpace,\n\n cellProps,\n headCellProps,\n\n columns,\n data,\n tableProps,\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 state,\n\n manualSorting: true,\n manualFiltering: true,\n manualPagination: true,\n columnResizeMode: 'onChange',\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n\n ...tableProps,\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 head = getDataGridTableHead(table);\n const body = getDataGridTableBody(table, components);\n\n return (\n <DataGridContextProvider {...context}>\n <DataGridTable ref={ref} table={table} {...rest}>\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","process","env","NODE_ENV","target","label","baseTheme","scroll","props","border","theme","colors","grey","backgroundColor","white","TableFooter","ControlPanel","ControlPanelContent","name","styles","toString","Container","_styled","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","assign","Function","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","rows","getRowModel","iterator","MemoizedDataGridTableBody","memo","prev","next","options","data","getDataGridTableBody","Component","convertVisibility","settings","reduce","acc","item","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","columns","columnSettings","useReactTable","manualSorting","manualFiltering","manualPagination","columnResizeMode","getCoreRowModel","getExpandedRowModel","head","body","TableDropdownHeader","h6","TableDropdownItem","useTableCellTextInput","setIsActive","inputRef","useRef","onEdit","input","setTimeout","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","height","alignItems","IconCell","DataGridIconCell","LabelCell","DataGridLabelCell","SwitchCell","Switch","DataGridSwitchCell","ChildContent","Input","TextInputCell","setValue","onBlur","isChildHidden","useEffect","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/index.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 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: collapse;\n table-layout: fixed;\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} {...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, context.cellProps instanceof 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> = e => {\n if (Dropdown && !isDropdownOpen) {\n setIsDropdownOpen(true);\n }\n\n props.onClick?.(e);\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 onClick,\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>\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 context.headCellProps instanceof 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 {Table} from '@tanstack/react-table';\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};\n\nconst DataGridTableHead: React.FC<DataGridTableHeadProps> = props => {\n const context = useContext(DataGridContext);\n\n const content = props.table\n .getHeaderGroups()\n .map(headerGroup => (\n <TableHeadRow key={headerGroup.id}>\n {headerGroup.headers.map(header => getDataGridTableHeadCell(header))}\n </TableHeadRow>\n ));\n\n return <TableHead data-qa={`${context.qa}-head`}>{content}</TableHead>;\n};\n\nexport const getDataGridTableHead = (table: Table<unknown>) => {\n return <DataGridTableHead table={table} />;\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 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';\n\nimport {forwardRef} from '@join-x5/react-theme';\n\nimport {getDataGridTableCell} from 'TableCell';\n\nimport type {FRC} from '@join-x5/react-theme';\nimport type {Row} from '@tanstack/react-table';\nimport type {GetDataGridTableRow} from '../types';\nimport type {TableRowProps} from './types';\n\nconst Container = 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\nexport const TableRow: FRC<HTMLTableRowElement, TableRowProps> = forwardRef((props, ref) => {\n return <Container ref={ref} {...props} />;\n});\n\ntype DataGridTableRowProps = {row: Row<unknown>} & TableRowProps;\n\nconst DataGridTableRow: React.FC<DataGridTableRowProps> = props => {\n const {row, ...rest} = props;\n\n const content = row.getVisibleCells().map(getDataGridTableCell);\n\n return <TableRow {...rest}>{content}</TableRow>;\n};\n\nexport const getDataGridTableRow: GetDataGridTableRow = row => {\n return <DataGridTableRow key={row.id} row={row} />;\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';\n\nexport const TableBody = styled.tbody``;\n\ntype DataGridTableBodyProps = {\n table: Table<unknown>;\n} & Pick<DataGridProps, 'components'>;\n\nconst DataGridTableBody: React.FC<DataGridTableBodyProps> = ({table, components}) => {\n const context = useContext(DataGridContext);\n const rows = table.getRowModel().rows;\n\n const iterator = components?.row ?? getDataGridTableRow;\n\n return <TableBody data-qa={`${context.qa}-body`}>{rows.map(iterator)}</TableBody>;\n};\n\nconst MemoizedDataGridTableBody = memo(\n DataGridTableBody,\n (prev, next) => prev.table.options.data === next.table.options.data\n);\n\nexport const getDataGridTableBody = (\n table: DataGridTableBodyProps['table'],\n components: DataGridProps['components']\n) => {\n const isResizing = table.getState().columnSizingInfo.isResizingColumn;\n const Component = isResizing ? MemoizedDataGridTableBody : DataGridTableBody;\n\n return <Component table={table} components={components} />;\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 {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} 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\n columns,\n data,\n tableProps,\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 state,\n\n manualSorting: true,\n manualFiltering: true,\n manualPagination: true,\n columnResizeMode: 'onChange',\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n\n ...tableProps,\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);\n const body = getDataGridTableBody(table, components);\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","process","env","NODE_ENV","target","label","baseTheme","scroll","props","border","theme","colors","grey","backgroundColor","white","TableFooter","ControlPanel","ControlPanelContent","name","styles","toString","Container","_styled","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","assign","Function","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","rows","getRowModel","iterator","MemoizedDataGridTableBody","memo","prev","next","options","data","getDataGridTableBody","Component","convertVisibility","settings","reduce","acc","item","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","columns","columnSettings","useReactTable","manualSorting","manualFiltering","manualPagination","columnResizeMode","getCoreRowModel","getExpandedRowModel","tableComponentProps","head","body","TableDropdownHeader","h6","TableDropdownItem","useTableCellTextInput","setIsActive","inputRef","useRef","onEdit","input","setTimeout","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","height","alignItems","IconCell","DataGridIconCell","LabelCell","DataGridLabelCell","SwitchCell","Switch","DataGridSwitchCell","ChildContent","Input","TextInputCell","setValue","onBlur","isChildHidden","useEffect","DataGridTextInputCell","getDataGridTextInputCell","TextArea","TextAreaInputCell","ctrlKey","DataGridTextAreaInputCell","getDataGridTextAreaInputCell"],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
package/dist/types.d.ts
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { ReactNode, TableHTMLAttributes } from 'react';
|
|
2
2
|
import { ColumnDef, RowData, TableOptions, Cell as ReactTableCell, Header, Row } from '@tanstack/react-table';
|
|
3
3
|
import { ColumnItem } from '@join-x5/react-data-grid-settings';
|
|
4
|
-
import { QA } from '@join-x5/react-theme';
|
|
4
|
+
import { CSSProperties, QA } from '@join-x5/react-theme';
|
|
5
5
|
import { TableCellProps } from 'TableCell/types';
|
|
6
6
|
import { TableHeadCellProps } from 'TableHeadCell/types';
|
|
7
7
|
type DefaultAny = any;
|
|
@@ -41,7 +41,7 @@ export type DataGridProps<T = DefaultAny> = {
|
|
|
41
41
|
headCellProps?: Partial<TableHeadCellProps> | HeadCellPropsCallback<T>;
|
|
42
42
|
/** Перегружаемые компоненты */
|
|
43
43
|
components?: TableComponents;
|
|
44
|
-
} & QA & Pick<TableCellProps, 'size' | 'isBordered' | 'isShadowed' | 'verticalAlign' | 'textAlign' | 'writingMode' | 'userSelect' | 'wordBreak' | 'whiteSpace'> &
|
|
44
|
+
} & QA & Partial<Pick<TableCellProps, 'size' | 'isBordered' | 'isShadowed' | 'verticalAlign' | 'textAlign' | 'writingMode' | 'userSelect' | 'wordBreak' | 'whiteSpace'>> & Pick<CSSProperties, 'width'> & Omit<TableHTMLAttributes<HTMLTableElement>, 'width'>;
|
|
45
45
|
declare module '@tanstack/react-table' {
|
|
46
46
|
interface ColumnMeta<TData extends RowData, TValue> {
|
|
47
47
|
/** Не рендерить обертку
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@join-x5/react-data-grid",
|
|
3
|
-
"version": "1.1.
|
|
3
|
+
"version": "1.1.4-nightly",
|
|
4
4
|
"private": false,
|
|
5
5
|
"type": "module",
|
|
6
6
|
"main": "dist/index.cjs",
|
|
@@ -47,19 +47,19 @@
|
|
|
47
47
|
"@dnd-kit/sortable": "^10.0.0",
|
|
48
48
|
"@emotion/react": "^11.14.0",
|
|
49
49
|
"@emotion/styled": "^11.14.0",
|
|
50
|
-
"@join-x5/react": "1.1.
|
|
51
|
-
"@join-x5/react-data-grid-settings": "^1.1.
|
|
52
|
-
"@join-x5/react-icons": "1.1.
|
|
53
|
-
"@join-x5/react-theme": "1.1.
|
|
50
|
+
"@join-x5/react": "1.1.4-nightly",
|
|
51
|
+
"@join-x5/react-data-grid-settings": "^1.1.4-nightly",
|
|
52
|
+
"@join-x5/react-icons": "1.1.4-nightly",
|
|
53
|
+
"@join-x5/react-theme": "1.1.4-nightly",
|
|
54
54
|
"@tanstack/react-table": "^8.21.3"
|
|
55
55
|
},
|
|
56
56
|
"peerDependencies": {
|
|
57
57
|
"@dnd-kit/core": "^6.2.0",
|
|
58
58
|
"@emotion/react": "^11.14.0",
|
|
59
59
|
"@emotion/styled": "^11.14.0",
|
|
60
|
-
"@join-x5/react": "1.1.
|
|
61
|
-
"@join-x5/react-icons": "1.1.
|
|
62
|
-
"@join-x5/react-theme": "1.1.
|
|
60
|
+
"@join-x5/react": "1.1.4-nightly",
|
|
61
|
+
"@join-x5/react-icons": "1.1.4-nightly",
|
|
62
|
+
"@join-x5/react-theme": "1.1.4-nightly",
|
|
63
63
|
"react": ">=17.0.0",
|
|
64
64
|
"react-dom": ">=17.0.0"
|
|
65
65
|
}
|