@join-x5/react-data-grid 1.3.0 → 1.3.1-alpha-0
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 +2 -2
- package/dist/DataGrid.es.js.map +1 -1
- package/dist/index.cjs +1 -1
- package/dist/index.cjs.map +1 -1
- package/package.json +1 -1
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 box-sizing: border-box;\n border-collapse: collapse;\n border-radius: 8px 8px 0 0;\n overflow: auto;\n\n ${baseTheme.scroll}\n\n ${props => ({\n border: `1px solid ${props => props.theme.colors.grey[10]}`,\n backgroundColor: props.theme.colors.white,\n })}\n`;\n\nexport const TableFooter = styled.div`\n display: flex;\n padding: 8px;\n align-items: center;\n justify-content: space-between;\n border-radius: 0 0 8px 8px;\n gap: 12px;\n\n ${props => ({\n border: `1px solid ${props => props.theme.colors.grey[10]}`,\n backgroundColor: props.theme.colors.white,\n })}\n`;\n\nexport const ControlPanel = styled.div`\n display: flex;\n padding: 8px;\n align-items: center;\n justify-content: space-between;\n gap: 8px;\n border-radius: 8px;\n background-color: ${props => props.theme.colors.white};\n`;\n\nexport const ControlPanelContent = styled.div`\n display: flex;\n gap: 8px;\n align-items: center;\n`;\n\nconst Container = styled.table`\n border-collapse: separate;\n table-layout: fixed;\n border-spacing: 0;\n\n &[data-is-resizing] {\n cursor: col-resize;\n }\n`;\n\nexport const Table: FRC<HTMLTableElement, TableProps> = forwardRef(({isResizing, ...rest}, ref) => {\n const resultProps = {\n ...rest,\n\n 'data-is-resizing': isResizing ? true : undefined,\n };\n\n return <Container ref={ref} cellSpacing={0} cellPadding={0} {...resultProps}></Container>;\n});\n\ntype DataGridTableProps = {table: ReactTableTable<unknown>} & Omit<TableProps, 'isResizing'>;\n\nexport const DataGridTable: FRC<HTMLTableElement, DataGridTableProps> = forwardRef(({table, ...props}, ref) => {\n const context = useContext(DataGridContext);\n\n const columnSizeVars = useMemo(() => {\n const headers = table.getFlatHeaders();\n const colSizes: CSSProperties = {};\n\n for (const header of headers) {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n }\n\n return colSizes;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [table.getState().columnSizingInfo, table.getState().columnSizing]);\n\n const isResizing = !!table.getState().columnSizingInfo.isResizingColumn;\n\n const resultProps = {\n ...props,\n\n isResizing,\n\n style: {\n width: table.getTotalSize(),\n\n ...props.style,\n ...columnSizeVars,\n },\n\n 'data-qa': context.qa,\n };\n\n return <Table ref={ref} {...resultProps} />;\n});\n","'use client';\n\nimport {useContext} from 'react';\n\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport {DataGridContext} from 'DataGridContext';\n\nimport type {Column, Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {TableCellProps} from './types';\n\nexport const areaProps = (column: Column<unknown>, props: TableCellProps): void => {\n const isPinned = column.getIsPinned();\n\n props.columnArea = (() => {\n switch (column.getIsPinned()) {\n case 'left':\n return ColumnArea.FixedLeft;\n case 'right':\n return ColumnArea.FixedRight;\n }\n\n return ColumnArea.Default;\n })();\n\n if (!isPinned) {\n return;\n }\n\n props.style ??= {};\n\n if (isPinned === 'left') {\n props.style.left = `${column.getStart('left')}px`;\n props.isLastFixed = column.getIsLastColumn('left');\n } else {\n props.style.right = `${column.getAfter('right')}px`;\n props.isLastFixed = column.getIsFirstColumn('right');\n }\n};\n\nexport const useDataGridTableCell = (cell: ReactTableCell<unknown, unknown>) => {\n const context = useContext(DataGridContext);\n\n const isMultiline = typeof context.isMultiline === 'boolean' ? context.isMultiline : context.isMultiline?.(cell);\n const width = `calc(var(--header-${cell.column?.id}-size) * 1px)`;\n\n const resultProps: TableCellProps = {\n isMultiline,\n\n qa: context.qa,\n isBordered: context.isBordered,\n isShadowed: context.isShadowed,\n size: context.size,\n verticalAlign: context.verticalAlign,\n writingMode: context.writingMode,\n userSelect: context.userSelect,\n wordBreak: context.wordBreak,\n whiteSpace: context.whiteSpace,\n\n isRowSelected: cell.row.getIsSelected(),\n isResizing: cell.column.getIsResizing(),\n\n style: {\n width,\n maxWidth: width,\n },\n };\n\n areaProps(cell.column, resultProps);\n\n if (context.cellProps) {\n Object.assign(resultProps, 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 border-radius: 0;\n border-spacing: 0;\n background-color: var(--background-color, transparent);\n\n ${props => ({\n color: props.theme.colors.grey[100],\n\n '--background-color': props.theme.colors.white,\n '--border-color': props.theme.colors.grey[10],\n })};\n\n &[data-${SizeTokenValue.Large.toLocaleLowerCase()}] {\n min-height: 44px;\n\n ${props => props.theme.typography.p1compact}\n }\n\n &[data-${SizeTokenValue.Medium.toLocaleLowerCase()}] {\n min-height: 40px;\n\n ${props => props.theme.typography.p2}\n }\n\n &[data-${SizeTokenValue.Small.toLocaleLowerCase()}] {\n min-height: 32px;\n\n ${props => props.theme.typography.p2}\n }\n\n &[data-${ColumnArea.FixedLeft.toLocaleLowerCase()}] {\n position: sticky;\n z-index: 1;\n\n &[data-shadowed][data-last-fixed] {\n filter: drop-shadow(8px 0px 8px rgba(80, 86, 94, 0.08));\n }\n }\n\n &[data-${ColumnArea.FixedRight.toLocaleLowerCase()}] {\n position: sticky;\n z-index: 1;\n\n &[data-shadowed][data-last-fixed] {\n filter: drop-shadow(-8px 0px 8px rgba(80, 86, 94, 0.08));\n }\n }\n\n &[data-row-hover] {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n\n :hover {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[40],\n })}\n }\n\n :not([data-disabled]):hover::before {\n border-width: 1px;\n }\n\n &[data-disabled] {\n :hover {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n\n ${props => ({\n color: props.theme.colors.grey[40],\n })}\n }\n\n &[data-row-selected] {\n ${props => ({\n '--background-color': props.theme.colors.accent[10],\n '--border-color': props.theme.colors.accent[20],\n })}\n }\n\n &[data-focused],\n :focus {\n outline: none;\n\n ::before {\n display: none;\n }\n\n ::after {\n display: block;\n }\n\n [data-edit-icon] {\n visibility: visible;\n }\n\n ${props => ({\n '--border-color': 'transparent',\n '--background-color': props.theme.colors.white,\n '--outline-color': props.theme.colors.accent[90],\n })}\n }\n\n &[data-active] {\n outline: none;\n\n ::before {\n display: none;\n }\n\n ::after {\n display: block;\n }\n\n [data-edit-icon] {\n visibility: hidden;\n }\n\n ${props => ({\n '--border-color': 'transparent',\n '--background-color': props.theme.colors.white,\n '--outline-color': props.theme.colors.accent[90],\n })}\n }\n\n &[data-error] {\n ::after {\n display: block;\n }\n\n ${props => ({\n caretColor: props.theme.colors.additional.red[80],\n\n '--background-color': props.theme.colors.white,\n '--border-color': 'transparent',\n '--outline-color': props.theme.colors.additional.red[80],\n })}\n }\n\n ::before {\n content: '';\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n border-width: 0 0 1px 0;\n border-style: solid;\n border-color: var(--border-color);\n }\n\n &[data-bordered] {\n ::before {\n border-width: 0 1px 1px 0;\n }\n\n :last-of-type::before {\n border-width: 0 0 1px 0;\n }\n }\n\n &[data-resizing] {\n border-right: 1px solid ${props => props.theme.colors.accent[20]};\n }\n\n ::after {\n content: '';\n display: none;\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n border-width: 2px;\n border-style: solid;\n border-radius: 4px;\n border-color: var(--outline-color, transparent);\n }\n\n [data-edit-icon] {\n display: none;\n position: absolute;\n visibility: hidden;\n right: 0;\n top: 0;\n background-color: var(--background-color, transparent);\n }\n\n &[data-editable] [data-edit-icon] {\n display: block;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n position: relative;\n box-sizing: border-box;\n gap: 8px;\n`;\n\nconst Content = styled.div`\n position: relative;\n flex-grow: 1;\n word-break: break-word;\n\n :not([data-is-multiline]) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`;\n\nconst Caption = styled.div`\n padding: 4px 0 0;\n width: 100%;\n word-break: break-all;\n\n ${props => ({\n ...props.theme.typography.p3,\n\n color: props.theme.colors.additional.red[80],\n })}\n`;\n\ntype TableCellContentProps = Partial<Pick<TableCellProps, 'children' | 'isMultiline' | 'whiteSpace' | 'wordBreak'>> &\n HTMLAttributes<HTMLDivElement>;\n\nexport const TableCellContent: FRC<HTMLDivElement, TableCellContentProps> = forwardRef((props, ref) => {\n const {children, style, isMultiline, whiteSpace, wordBreak = 'break-word', ...rest} = props;\n\n const contentProps = {\n ...rest,\n\n style: {\n whiteSpace,\n wordBreak,\n\n ...style,\n },\n\n 'data-content': true,\n 'data-is-multiline': isMultiline ? true : undefined,\n };\n\n return (\n <Content ref={ref} {...contentProps}>\n {children}\n </Content>\n );\n});\n\nexport const TableCell: FRC<HTMLTableCellElement, TableCellProps> = forwardRef((props, baseRef) => {\n const ref = useRefMerge(baseRef);\n\n const {\n children,\n\n isDisabled,\n isRowHover,\n isRowSelected,\n isBordered,\n isShadowed,\n isFocused,\n isActive,\n isResizing,\n isLastFixed,\n error,\n\n textAlign,\n writingMode,\n verticalAlign,\n padding,\n userSelect = 'none',\n\n startAdornment,\n endAdornment,\n\n size = SizeTokenValue.Medium,\n columnArea = ColumnArea.Default,\n\n ...rest\n } = props;\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n props.onKeyDown?.(e);\n\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (isEnterCode) {\n const child = ref.current?.querySelector('[data-action]') as HTMLElement;\n\n if (isEnterCode && child) {\n child.click();\n }\n\n return;\n }\n\n if (e.code === 'Escape') {\n ref.current?.blur();\n return;\n }\n\n if (e.code === 'ArrowUp' || e.code === 'ArrowDown' || e.code === 'ArrowLeft' || e.code === 'ArrowRight') {\n const parent = ref.current?.parentElement as HTMLElement;\n const curIndex = Array.from(parent?.childNodes).indexOf(ref.current as HTMLElement);\n\n switch (e.code) {\n case 'ArrowUp':\n case 'ArrowDown':\n {\n const sibling = (\n e.code === 'ArrowUp' ? parent?.previousElementSibling : parent?.nextElementSibling\n ) as HTMLElement;\n\n if (parent?.nodeName === sibling?.nodeName) {\n const nextFocus = sibling?.children[curIndex] as HTMLElement;\n\n nextFocus?.focus();\n }\n }\n break;\n\n case 'ArrowLeft':\n if (curIndex > 0) {\n const prevSibling = parent?.children[curIndex - 1] as HTMLElement;\n prevSibling?.focus();\n } else {\n const prevRow = parent?.previousElementSibling as HTMLElement;\n if (parent?.nodeName === prevRow?.nodeName) {\n const lastCell = prevRow.lastElementChild as HTMLElement;\n lastCell?.focus();\n }\n }\n break;\n case 'ArrowRight':\n if (curIndex < parent?.children.length - 1) {\n const nextSibling = parent?.children[curIndex + 1] as HTMLElement;\n nextSibling?.focus();\n } else {\n const nextRow = parent?.nextElementSibling as HTMLElement;\n if (parent?.nodeName === nextRow?.nodeName) {\n const firstCell = nextRow.firstElementChild as HTMLElement;\n firstCell?.focus();\n }\n }\n break;\n }\n }\n };\n\n const cellProps = {\n ...rest,\n\n onKeyDown,\n\n style: {\n verticalAlign,\n textAlign,\n writingMode,\n userSelect,\n\n padding: padding ?? sizePadding[size],\n\n ...props.style,\n },\n\n 'data-cell': true,\n 'data-disabled': isDisabled ? true : undefined,\n 'data-focused': isFocused ? true : undefined,\n 'data-error': error ? true : undefined,\n 'data-row-hover': isRowHover ? true : undefined,\n 'data-row-selected': isRowSelected ? true : undefined,\n 'data-bordered': isBordered ? true : undefined,\n 'data-shadowed': isShadowed ? true : undefined,\n 'data-resizing': isResizing ? true : undefined,\n 'data-active': isActive ? true : undefined,\n 'data-last-fixed': isLastFixed ? true : undefined,\n\n [`data-${size.toLowerCase()}`]: true,\n [`data-${columnArea.toLowerCase()}`]: true,\n };\n\n const caption = typeof error === 'string' ? <Caption>{error}</Caption> : null;\n\n return (\n <Cell ref={ref} tabIndex={0} {...cellProps}>\n <Container>\n {startAdornment}\n {children}\n {endAdornment}\n <EditOnIcon data-edit-icon size={SizeTokenValue.Small} />\n </Container>\n {caption}\n </Cell>\n );\n});\n\nexport const DataGridTableCell: FRC<HTMLTableCellElement, DataGridTableCellProps & PropsWithChildren> = forwardRef(\n (props, ref) => {\n const resultProps = useDataGridTableCell(props.cell);\n\n const contentProps = {\n isMultiline: resultProps.isMultiline,\n whiteSpace: resultProps.whiteSpace,\n wordBreak: resultProps.wordBreak,\n };\n\n return (\n <TableCell ref={ref} {...resultProps}>\n <TableCellContent {...contentProps}>{props.children}</TableCellContent>\n </TableCell>\n );\n }\n);\n\nexport const getDataGridTableCell = (cell: DataGridTableCellProps['cell']) => {\n const content = flexRender(cell.column.columnDef.cell, cell.getContext());\n\n if (cell.column.columnDef.meta?.isCustom) {\n return <React.Fragment key={cell.id}>{content}</React.Fragment>;\n }\n\n return (\n <DataGridTableCell key={cell.id} cell={cell}>\n {content}\n </DataGridTableCell>\n );\n};\n\nexport * from './types';\n","'use client';\n\nimport styled from '@emotion/styled';\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","_styled","process","env","NODE_ENV","target","label","baseTheme","scroll","props","border","theme","colors","grey","backgroundColor","white","TableFooter","ControlPanel","ControlPanelContent","name","styles","toString","Container","Table","forwardRef","isResizing","ref","resultProps","undefined","DataGridTable","table","context","useContext","columnSizeVars","useMemo","headers","getFlatHeaders","colSizes","header","id","getSize","column","getState","columnSizingInfo","columnSizing","isResizingColumn","style","width","getTotalSize","qa","areaProps","isPinned","getIsPinned","columnArea","ColumnArea","FixedLeft","FixedRight","Default","left","getStart","isLastFixed","getIsLastColumn","right","getAfter","getIsFirstColumn","useDataGridTableCell","cell","isMultiline","isBordered","isShadowed","size","verticalAlign","writingMode","userSelect","wordBreak","whiteSpace","isRowSelected","row","getIsSelected","getIsResizing","maxWidth","cellProps","Object","assign","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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"}
|
|
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: separate;\n table-layout: fixed;\n border-spacing: 0;\n\n &[data-is-resizing] {\n cursor: col-resize;\n }\n`;\n\nexport const Table: FRC<HTMLTableElement, TableProps> = forwardRef(({isResizing, ...rest}, ref) => {\n const resultProps = {\n ...rest,\n\n 'data-is-resizing': isResizing ? true : undefined,\n };\n\n return <Container ref={ref} cellSpacing={0} cellPadding={0} {...resultProps}></Container>;\n});\n\ntype DataGridTableProps = {table: ReactTableTable<unknown>} & Omit<TableProps, 'isResizing'>;\n\nexport const DataGridTable: FRC<HTMLTableElement, DataGridTableProps> = forwardRef(({table, ...props}, ref) => {\n const context = useContext(DataGridContext);\n\n const columnSizeVars = useMemo(() => {\n const headers = table.getFlatHeaders();\n const colSizes: CSSProperties = {};\n\n for (const header of headers) {\n colSizes[`--header-${header.id}-size`] = header.getSize();\n colSizes[`--col-${header.column.id}-size`] = header.column.getSize();\n }\n\n return colSizes;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [table.getState().columnSizingInfo, table.getState().columnSizing]);\n\n const isResizing = !!table.getState().columnSizingInfo.isResizingColumn;\n\n const resultProps = {\n ...props,\n\n isResizing,\n\n style: {\n width: table.getTotalSize(),\n\n ...props.style,\n ...columnSizeVars,\n },\n\n 'data-qa': context.qa,\n };\n\n return <Table ref={ref} {...resultProps} />;\n});\n","'use client';\n\nimport {useContext} from 'react';\n\nimport {ColumnArea} from '@join-x5/react-data-grid-settings';\n\nimport {DataGridContext} from 'DataGridContext';\n\nimport type {Column, Cell as ReactTableCell} from '@tanstack/react-table';\nimport type {TableCellProps} from './types';\n\nexport const areaProps = (column: Column<unknown>, props: TableCellProps): void => {\n const isPinned = column.getIsPinned();\n\n props.columnArea = (() => {\n switch (column.getIsPinned()) {\n case 'left':\n return ColumnArea.FixedLeft;\n case 'right':\n return ColumnArea.FixedRight;\n }\n\n return ColumnArea.Default;\n })();\n\n if (!isPinned) {\n return;\n }\n\n props.style ??= {};\n\n if (isPinned === 'left') {\n props.style.left = `${column.getStart('left')}px`;\n props.isLastFixed = column.getIsLastColumn('left');\n } else {\n props.style.right = `${column.getAfter('right')}px`;\n props.isLastFixed = column.getIsFirstColumn('right');\n }\n};\n\nexport const useDataGridTableCell = (cell: ReactTableCell<unknown, unknown>) => {\n const context = useContext(DataGridContext);\n\n const isMultiline = typeof context.isMultiline === 'boolean' ? context.isMultiline : context.isMultiline?.(cell);\n const width = `calc(var(--header-${cell.column?.id}-size) * 1px)`;\n\n const resultProps: TableCellProps = {\n isMultiline,\n\n qa: context.qa,\n isBordered: context.isBordered,\n isShadowed: context.isShadowed,\n size: context.size,\n verticalAlign: context.verticalAlign,\n writingMode: context.writingMode,\n userSelect: context.userSelect,\n wordBreak: context.wordBreak,\n whiteSpace: context.whiteSpace,\n\n isRowSelected: cell.row.getIsSelected(),\n isResizing: cell.column.getIsResizing(),\n\n style: {\n width,\n maxWidth: width,\n },\n };\n\n areaProps(cell.column, resultProps);\n\n if (context.cellProps) {\n Object.assign(resultProps, 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 border-radius: 0;\n border-spacing: 0;\n background-color: var(--background-color, transparent);\n\n ${props => ({\n color: props.theme.colors.grey[100],\n\n '--background-color': props.theme.colors.white,\n '--border-color': props.theme.colors.grey[10],\n })};\n\n &[data-${SizeTokenValue.Large.toLocaleLowerCase()}] {\n min-height: 44px;\n\n ${props => props.theme.typography.p1compact}\n }\n\n &[data-${SizeTokenValue.Medium.toLocaleLowerCase()}] {\n min-height: 40px;\n\n ${props => props.theme.typography.p2}\n }\n\n &[data-${SizeTokenValue.Small.toLocaleLowerCase()}] {\n min-height: 32px;\n\n ${props => props.theme.typography.p2}\n }\n\n &[data-${ColumnArea.FixedLeft.toLocaleLowerCase()}] {\n position: sticky;\n z-index: 1;\n\n &[data-shadowed][data-last-fixed] {\n filter: drop-shadow(8px 0px 8px rgba(80, 86, 94, 0.08));\n }\n }\n\n &[data-${ColumnArea.FixedRight.toLocaleLowerCase()}] {\n position: sticky;\n z-index: 1;\n\n &[data-shadowed][data-last-fixed] {\n filter: drop-shadow(-8px 0px 8px rgba(80, 86, 94, 0.08));\n }\n }\n\n &[data-row-hover] {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n\n :hover {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[40],\n })}\n }\n\n :not([data-disabled]):hover::before {\n border-width: 1px;\n }\n\n &[data-disabled] {\n :hover {\n ${props => ({\n '--background-color': props.theme.colors.grey[10],\n '--border-color': props.theme.colors.grey[20],\n })}\n }\n\n ${props => ({\n color: props.theme.colors.grey[40],\n })}\n }\n\n &[data-row-selected] {\n ${props => ({\n '--background-color': props.theme.colors.accent[10],\n '--border-color': props.theme.colors.accent[20],\n })}\n }\n\n &[data-focused],\n :focus {\n outline: none;\n\n ::before {\n display: none;\n }\n\n ::after {\n display: block;\n }\n\n [data-edit-icon] {\n visibility: visible;\n }\n\n ${props => ({\n '--border-color': 'transparent',\n '--background-color': props.theme.colors.white,\n '--outline-color': props.theme.colors.accent[90],\n })}\n }\n\n &[data-active] {\n outline: none;\n\n ::before {\n display: none;\n }\n\n ::after {\n display: block;\n }\n\n [data-edit-icon] {\n visibility: hidden;\n }\n\n ${props => ({\n '--border-color': 'transparent',\n '--background-color': props.theme.colors.white,\n '--outline-color': props.theme.colors.accent[90],\n })}\n }\n\n &[data-error] {\n ::after {\n display: block;\n }\n\n ${props => ({\n caretColor: props.theme.colors.additional.red[80],\n\n '--background-color': props.theme.colors.white,\n '--border-color': 'transparent',\n '--outline-color': props.theme.colors.additional.red[80],\n })}\n }\n\n ::before {\n content: '';\n display: block;\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n border-width: 0 0 1px 0;\n border-style: solid;\n border-color: var(--border-color);\n }\n\n &[data-bordered] {\n ::before {\n border-width: 0 1px 1px 0;\n }\n\n :last-of-type::before {\n border-width: 0 0 1px 0;\n }\n }\n\n &[data-resizing] {\n border-right: 1px solid ${props => props.theme.colors.accent[20]};\n }\n\n ::after {\n content: '';\n display: none;\n position: absolute;\n box-sizing: border-box;\n top: 0;\n left: 0;\n width: 100%;\n height: 100%;\n user-select: none;\n pointer-events: none;\n border-width: 2px;\n border-style: solid;\n border-radius: 4px;\n border-color: var(--outline-color, transparent);\n }\n\n [data-edit-icon] {\n display: none;\n position: absolute;\n visibility: hidden;\n right: 0;\n top: 0;\n background-color: var(--background-color, transparent);\n }\n\n &[data-editable] [data-edit-icon] {\n display: block;\n }\n`;\n\nconst Container = styled.div`\n display: flex;\n position: relative;\n box-sizing: border-box;\n gap: 8px;\n`;\n\nconst Content = styled.div`\n position: relative;\n flex-grow: 1;\n word-break: break-word;\n\n :not([data-is-multiline]) {\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: nowrap;\n }\n`;\n\nconst Caption = styled.div`\n padding: 4px 0 0;\n width: 100%;\n word-break: break-all;\n\n ${props => ({\n ...props.theme.typography.p3,\n\n color: props.theme.colors.additional.red[80],\n })}\n`;\n\ntype TableCellContentProps = Partial<Pick<TableCellProps, 'children' | 'isMultiline' | 'whiteSpace' | 'wordBreak'>> &\n HTMLAttributes<HTMLDivElement>;\n\nexport const TableCellContent: FRC<HTMLDivElement, TableCellContentProps> = forwardRef((props, ref) => {\n const {children, style, isMultiline, whiteSpace, wordBreak = 'break-word', ...rest} = props;\n\n const contentProps = {\n ...rest,\n\n style: {\n whiteSpace,\n wordBreak,\n\n ...style,\n },\n\n 'data-content': true,\n 'data-is-multiline': isMultiline ? true : undefined,\n };\n\n return (\n <Content ref={ref} {...contentProps}>\n {children}\n </Content>\n );\n});\n\nexport const TableCell: FRC<HTMLTableCellElement, TableCellProps> = forwardRef((props, baseRef) => {\n const ref = useRefMerge(baseRef);\n\n const {\n children,\n\n isDisabled,\n isRowHover,\n isRowSelected,\n isBordered,\n isShadowed,\n isFocused,\n isActive,\n isResizing,\n isLastFixed,\n error,\n\n textAlign,\n writingMode,\n verticalAlign,\n padding,\n userSelect = 'none',\n\n startAdornment,\n endAdornment,\n\n size = SizeTokenValue.Medium,\n columnArea = ColumnArea.Default,\n\n ...rest\n } = props;\n\n const onKeyDown: KeyboardEventHandler<HTMLTableCellElement> = e => {\n props.onKeyDown?.(e);\n\n const isEnterCode = e.code === 'Enter' || e.code === 'NumpadEnter';\n\n if (isEnterCode) {\n const child = ref.current?.querySelector('[data-action]') as HTMLElement;\n\n if (isEnterCode && child) {\n child.click();\n }\n\n return;\n }\n\n if (e.code === 'Escape') {\n ref.current?.blur();\n return;\n }\n\n if (e.code === 'ArrowUp' || e.code === 'ArrowDown' || e.code === 'ArrowLeft' || e.code === 'ArrowRight') {\n const parent = ref.current?.parentElement as HTMLElement;\n const curIndex = Array.from(parent?.childNodes).indexOf(ref.current as HTMLElement);\n\n switch (e.code) {\n case 'ArrowUp':\n case 'ArrowDown':\n {\n const sibling = (\n e.code === 'ArrowUp' ? parent?.previousElementSibling : parent?.nextElementSibling\n ) as HTMLElement;\n\n if (parent?.nodeName === sibling?.nodeName) {\n const nextFocus = sibling?.children[curIndex] as HTMLElement;\n\n nextFocus?.focus();\n }\n }\n break;\n\n case 'ArrowLeft':\n if (curIndex > 0) {\n const prevSibling = parent?.children[curIndex - 1] as HTMLElement;\n prevSibling?.focus();\n } else {\n const prevRow = parent?.previousElementSibling as HTMLElement;\n if (parent?.nodeName === prevRow?.nodeName) {\n const lastCell = prevRow.lastElementChild as HTMLElement;\n lastCell?.focus();\n }\n }\n break;\n case 'ArrowRight':\n if (curIndex < parent?.children.length - 1) {\n const nextSibling = parent?.children[curIndex + 1] as HTMLElement;\n nextSibling?.focus();\n } else {\n const nextRow = parent?.nextElementSibling as HTMLElement;\n if (parent?.nodeName === nextRow?.nodeName) {\n const firstCell = nextRow.firstElementChild as HTMLElement;\n firstCell?.focus();\n }\n }\n break;\n }\n }\n };\n\n const cellProps = {\n ...rest,\n\n onKeyDown,\n\n style: {\n verticalAlign,\n textAlign,\n writingMode,\n userSelect,\n\n padding: padding ?? sizePadding[size],\n\n ...props.style,\n },\n\n 'data-cell': true,\n 'data-disabled': isDisabled ? true : undefined,\n 'data-focused': isFocused ? true : undefined,\n 'data-error': error ? true : undefined,\n 'data-row-hover': isRowHover ? true : undefined,\n 'data-row-selected': isRowSelected ? true : undefined,\n 'data-bordered': isBordered ? true : undefined,\n 'data-shadowed': isShadowed ? true : undefined,\n 'data-resizing': isResizing ? true : undefined,\n 'data-active': isActive ? true : undefined,\n 'data-last-fixed': isLastFixed ? true : undefined,\n\n [`data-${size.toLowerCase()}`]: true,\n [`data-${columnArea.toLowerCase()}`]: true,\n };\n\n const caption = typeof error === 'string' ? <Caption>{error}</Caption> : null;\n\n return (\n <Cell ref={ref} tabIndex={0} {...cellProps}>\n <Container>\n {startAdornment}\n {children}\n {endAdornment}\n <EditOnIcon data-edit-icon size={SizeTokenValue.Small} />\n </Container>\n {caption}\n </Cell>\n );\n});\n\nexport const DataGridTableCell: FRC<HTMLTableCellElement, DataGridTableCellProps & PropsWithChildren> = forwardRef(\n (props, ref) => {\n const resultProps = useDataGridTableCell(props.cell);\n\n const contentProps = {\n isMultiline: resultProps.isMultiline,\n whiteSpace: resultProps.whiteSpace,\n wordBreak: resultProps.wordBreak,\n };\n\n return (\n <TableCell ref={ref} {...resultProps}>\n <TableCellContent {...contentProps}>{props.children}</TableCellContent>\n </TableCell>\n );\n }\n);\n\nexport const getDataGridTableCell = (cell: DataGridTableCellProps['cell']) => {\n const content = flexRender(cell.column.columnDef.cell, cell.getContext());\n\n if (cell.column.columnDef.meta?.isCustom) {\n return <React.Fragment key={cell.id}>{content}</React.Fragment>;\n }\n\n return (\n <DataGridTableCell key={cell.id} cell={cell}>\n {content}\n </DataGridTableCell>\n );\n};\n\nexport * from './types';\n","'use client';\n\nimport styled from '@emotion/styled';\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\n manualSorting: true,\n manualFiltering: true,\n manualPagination: true,\n columnResizeMode: 'onChange',\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n\n ...tableProps,\n\n state,\n });\n\n const context = {\n size,\n verticalAlign,\n isBordered,\n isMultiline,\n isShadowed,\n textAlign,\n writingMode,\n userSelect,\n wordBreak,\n whiteSpace,\n\n cellProps,\n headCellProps,\n qa,\n };\n\n const tableComponentProps = {\n ...rest,\n\n table,\n style: width ? {width, ...rest.style} : rest.style,\n 'data-qa': qa,\n };\n\n const head = getDataGridTableHead(table);\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","_styled","process","env","NODE_ENV","target","label","baseTheme","scroll","props","border","theme","colors","grey","backgroundColor","white","TableFooter","ControlPanel","ControlPanelContent","name","styles","toString","Container","Table","forwardRef","isResizing","ref","resultProps","undefined","DataGridTable","table","context","useContext","columnSizeVars","useMemo","headers","getFlatHeaders","colSizes","header","id","getSize","column","getState","columnSizingInfo","columnSizing","isResizingColumn","style","width","getTotalSize","qa","areaProps","isPinned","getIsPinned","columnArea","ColumnArea","FixedLeft","FixedRight","Default","left","getStart","isLastFixed","getIsLastColumn","right","getAfter","getIsFirstColumn","useDataGridTableCell","cell","isMultiline","isBordered","isShadowed","size","verticalAlign","writingMode","userSelect","wordBreak","whiteSpace","isRowSelected","row","getIsSelected","getIsResizing","maxWidth","cellProps","Object","assign","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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"}
|