@snack-uikit/table 0.22.2 → 0.22.3-preview-5d095019.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/README.md +2 -0
- package/dist/components/Table/Table.d.ts +1 -1
- package/dist/components/Table/Table.js +2 -2
- package/dist/components/types.d.ts +2 -0
- package/dist/helperComponents/Rows/BodyRow.d.ts +4 -2
- package/dist/helperComponents/Rows/BodyRow.js +2 -2
- package/dist/helperComponents/Rows/styles.module.css +0 -1
- package/package.json +2 -2
- package/src/components/Table/Table.tsx +3 -2
- package/src/components/types.ts +3 -0
- package/src/helperComponents/Rows/BodyRow.tsx +5 -3
- package/src/helperComponents/Rows/styles.module.scss +0 -1
package/README.md
CHANGED
|
@@ -144,6 +144,7 @@ const columnDefinitions: ColumnDefinition<TableData>[] = [
|
|
|
144
144
|
| manualPagination | `boolean` | - | |
|
|
145
145
|
| manualFiltering | `boolean` | - | |
|
|
146
146
|
| getRowId | `(originalRow: TData, index: number, parent?: Row<TData>) => string` | - | Дополнительная функция используется для получения уникального идентификатора для любой заданной строки |
|
|
147
|
+
| getRowClassName | `(originalRow: TData, index: number, parent?: Row<TData>) => string` | - | Дополнительная функция используется для получения className для любой заданной строки |
|
|
147
148
|
| scrollRef | `RefObject<HTMLElement>` | - | Ссылка на элемент, обозначающий самый конец прокручиваемого списка |
|
|
148
149
|
| scrollContainerRef | `RefObject<HTMLElement>` | - | Ссылка на контейнер, который скроллится |
|
|
149
150
|
| rowPinning | `Pick<RowPinningState, "top">` | { top: [], } | Определение какие строки должны быть закреплены в таблице |
|
|
@@ -204,6 +205,7 @@ const columnDefinitions: ColumnDefinition<TableData>[] = [
|
|
|
204
205
|
| manualPagination | `boolean` | true | |
|
|
205
206
|
| manualFiltering | `boolean` | true | |
|
|
206
207
|
| getRowId | `(originalRow: TData, index: number, parent?: Row<TData>) => string` | - | Дополнительная функция используется для получения уникального идентификатора для любой заданной строки |
|
|
208
|
+
| getRowClassName | `(originalRow: TData, index: number, parent?: Row<TData>) => string` | - | Дополнительная функция используется для получения className для любой заданной строки |
|
|
207
209
|
| scrollRef | `RefObject<HTMLElement>` | - | Ссылка на элемент, обозначающий самый конец прокручиваемого списка |
|
|
208
210
|
| scrollContainerRef | `RefObject<HTMLElement>` | - | Ссылка на контейнер, который скроллится |
|
|
209
211
|
| rowPinning | `Pick<RowPinningState, "top">` | - | Определение какие строки должны быть закреплены в таблице |
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { TableProps } from '../types';
|
|
2
2
|
/** Компонент таблицы */
|
|
3
|
-
export declare function Table<TData extends object>({ data, rowPinning, columnDefinitions, keepPinnedRows, copyPinnedRows, enableSelectPinned, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, onDelete, pageSize, pageCount, loading, outline, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar, toolbarBefore, toolbarAfter, suppressPagination, manualSorting, manualPagination, manualFiltering, autoResetPageIndex, scrollRef, scrollContainerRef, getRowId, enableFuzzySearch, savedState, ...rest }: TableProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function Table<TData extends object>({ data, rowPinning, columnDefinitions, keepPinnedRows, copyPinnedRows, enableSelectPinned, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, onDelete, pageSize, pageCount, loading, outline, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar, toolbarBefore, toolbarAfter, suppressPagination, manualSorting, manualPagination, manualFiltering, autoResetPageIndex, scrollRef, scrollContainerRef, getRowId, getRowClassName, enableFuzzySearch, savedState, ...rest }: TableProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
4
4
|
export declare namespace Table {
|
|
5
5
|
var getStatusColumnDef: typeof import("../../helperComponents").getStatusColumnDef;
|
|
6
6
|
var statusAppearances: Record<string, string>;
|
|
@@ -30,7 +30,7 @@ import { getColumnStyleVars, getCurrentlyConfiguredHeaderWidth, getInitColumnSiz
|
|
|
30
30
|
export function Table(_a) {
|
|
31
31
|
var { data, rowPinning = {
|
|
32
32
|
top: [],
|
|
33
|
-
}, columnDefinitions, keepPinnedRows = false, copyPinnedRows = false, enableSelectPinned = false, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, onDelete, pageSize = DEFAULT_PAGE_SIZE, pageCount, loading = false, outline = false, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar = false, toolbarBefore, toolbarAfter, suppressPagination = false, manualSorting = false, manualPagination = false, manualFiltering = false, autoResetPageIndex = false, scrollRef, scrollContainerRef, getRowId, enableFuzzySearch, savedState } = _a, rest = __rest(_a, ["data", "rowPinning", "columnDefinitions", "keepPinnedRows", "copyPinnedRows", "enableSelectPinned", "rowSelection", "search", "sorting", "columnFilters", "pagination", "className", "onRowClick", "onRefresh", "onDelete", "pageSize", "pageCount", "loading", "outline", "moreActions", "exportSettings", "dataFiltered", "dataError", "noDataState", "noResultsState", "errorDataState", "suppressToolbar", "toolbarBefore", "toolbarAfter", "suppressPagination", "manualSorting", "manualPagination", "manualFiltering", "autoResetPageIndex", "scrollRef", "scrollContainerRef", "getRowId", "enableFuzzySearch", "savedState"]);
|
|
33
|
+
}, columnDefinitions, keepPinnedRows = false, copyPinnedRows = false, enableSelectPinned = false, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, onDelete, pageSize = DEFAULT_PAGE_SIZE, pageCount, loading = false, outline = false, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar = false, toolbarBefore, toolbarAfter, suppressPagination = false, manualSorting = false, manualPagination = false, manualFiltering = false, autoResetPageIndex = false, scrollRef, scrollContainerRef, getRowId, getRowClassName, enableFuzzySearch, savedState } = _a, rest = __rest(_a, ["data", "rowPinning", "columnDefinitions", "keepPinnedRows", "copyPinnedRows", "enableSelectPinned", "rowSelection", "search", "sorting", "columnFilters", "pagination", "className", "onRowClick", "onRefresh", "onDelete", "pageSize", "pageCount", "loading", "outline", "moreActions", "exportSettings", "dataFiltered", "dataError", "noDataState", "noResultsState", "errorDataState", "suppressToolbar", "toolbarBefore", "toolbarAfter", "suppressPagination", "manualSorting", "manualPagination", "manualFiltering", "autoResetPageIndex", "scrollRef", "scrollContainerRef", "getRowId", "getRowClassName", "enableFuzzySearch", "savedState"]);
|
|
34
34
|
const { state: globalFilter, onStateChange: onGlobalFilterChange } = useStateControl(search, '');
|
|
35
35
|
const { state: rowSelection, onStateChange: onRowSelectionChange } = useStateControl(rowSelectionProp, {});
|
|
36
36
|
const defaultPaginationState = useMemo(() => ({
|
|
@@ -222,7 +222,7 @@ export function Table(_a) {
|
|
|
222
222
|
onChange: onGlobalFilterChange,
|
|
223
223
|
loading: search === null || search === void 0 ? void 0 : search.loading,
|
|
224
224
|
placeholder: (search === null || search === void 0 ? void 0 : search.placeholder) || t('searchPlaceholder'),
|
|
225
|
-
}, checked: table.getIsAllPageRowsSelected(), indeterminate: table.getIsSomePageRowsSelected(), className: styles.toolbar, onRefresh: onRefresh ? handleOnRefresh : undefined, onDelete: enableSelection && onDelete ? handleOnDelete : undefined, onCheck: enableSelection ? handleOnCheck : undefined, outline: outline, selectionMode: (rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.multiRow) ? 'multiple' : 'single', before: toolbarBefore, after: toolbarAfter || exportSettings ? (_jsxs(_Fragment, { children: [toolbarAfter, exportSettings && (_jsx(ExportButton, { settings: exportSettings, columnDefinitions: columnDefinitions, data: data, topRows: filteredTopRows, centerRows: centerRows }))] })) : undefined, moreActions: moreActions }), columnFilters && _jsxs("div", { className: styles.filtersWrapper, children: [" ", columnFilters, " "] })] })), _jsx("div", { className: styles.scrollWrapper, "data-outline": outline || undefined, children: _jsxs(Scroll, { size: 's', className: styles.table, ref: scrollContainerRef, children: [_jsx("div", { className: styles.tableContent, style: columnSizeVars, children: _jsx(TableContext.Provider, { value: { table }, children: loading ? (_jsxs(SkeletonContextProvider, { loading: true, children: [_jsx(HeaderRow, {}), loadingTableRows.map(row => (_jsx(BodyRow, { row: row }, row.id)))] })) : (_jsxs(_Fragment, { children: [centerRows.length || filteredTopRows.length ? _jsx(HeaderRow, {}) : null, filteredTopRows.length ? (_jsx("div", { className: styles.topRowWrapper, children: filteredTopRows.map(row => (_jsx(BodyRow, { row: row, onRowClick: onRowClick }, row.id))) })) : null, centerRows.map(row => (_jsx(BodyRow, { row: row, onRowClick: onRowClick }, row.id))), _jsx(TableEmptyState, { emptyStates: emptyStates, dataError: dataError, dataFiltered: dataFiltered || Boolean(table.getState().globalFilter), tableRowsLength: tableRows.length + filteredTopRows.length })] })) }) }), _jsx("div", { className: styles.scrollStub, ref: scrollRef })] }) }), !suppressPagination && (_jsx(TablePagination, { table: table, options: paginationProp === null || paginationProp === void 0 ? void 0 : paginationProp.options, optionsLabel: paginationProp === null || paginationProp === void 0 ? void 0 : paginationProp.optionsLabel, pageCount: pageCount, optionsRender: paginationProp === null || paginationProp === void 0 ? void 0 : paginationProp.optionsRender }))] })) }));
|
|
225
|
+
}, checked: table.getIsAllPageRowsSelected(), indeterminate: table.getIsSomePageRowsSelected(), className: styles.toolbar, onRefresh: onRefresh ? handleOnRefresh : undefined, onDelete: enableSelection && onDelete ? handleOnDelete : undefined, onCheck: enableSelection ? handleOnCheck : undefined, outline: outline, selectionMode: (rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.multiRow) ? 'multiple' : 'single', before: toolbarBefore, after: toolbarAfter || exportSettings ? (_jsxs(_Fragment, { children: [toolbarAfter, exportSettings && (_jsx(ExportButton, { settings: exportSettings, columnDefinitions: columnDefinitions, data: data, topRows: filteredTopRows, centerRows: centerRows }))] })) : undefined, moreActions: moreActions }), columnFilters && _jsxs("div", { className: styles.filtersWrapper, children: [" ", columnFilters, " "] })] })), _jsx("div", { className: styles.scrollWrapper, "data-outline": outline || undefined, children: _jsxs(Scroll, { size: 's', className: styles.table, ref: scrollContainerRef, children: [_jsx("div", { className: styles.tableContent, style: columnSizeVars, children: _jsx(TableContext.Provider, { value: { table }, children: loading ? (_jsxs(SkeletonContextProvider, { loading: true, children: [_jsx(HeaderRow, {}), loadingTableRows.map(row => (_jsx(BodyRow, { row: row }, row.id)))] })) : (_jsxs(_Fragment, { children: [centerRows.length || filteredTopRows.length ? _jsx(HeaderRow, {}) : null, filteredTopRows.length ? (_jsx("div", { className: styles.topRowWrapper, children: filteredTopRows.map(row => (_jsx(BodyRow, { row: row, onRowClick: onRowClick, getRowClassName: getRowClassName }, row.id))) })) : null, centerRows.map(row => (_jsx(BodyRow, { row: row, onRowClick: onRowClick, getRowClassName: getRowClassName }, row.id))), _jsx(TableEmptyState, { emptyStates: emptyStates, dataError: dataError, dataFiltered: dataFiltered || Boolean(table.getState().globalFilter), tableRowsLength: tableRows.length + filteredTopRows.length })] })) }) }), _jsx("div", { className: styles.scrollStub, ref: scrollRef })] }) }), !suppressPagination && (_jsx(TablePagination, { table: table, options: paginationProp === null || paginationProp === void 0 ? void 0 : paginationProp.options, optionsLabel: paginationProp === null || paginationProp === void 0 ? void 0 : paginationProp.optionsLabel, pageCount: pageCount, optionsRender: paginationProp === null || paginationProp === void 0 ? void 0 : paginationProp.optionsRender }))] })) }));
|
|
226
226
|
}
|
|
227
227
|
Table.getStatusColumnDef = getStatusColumnDef;
|
|
228
228
|
Table.statusAppearances = STATUS_APPEARANCE;
|
|
@@ -115,6 +115,8 @@ export type TableProps<TData extends object> = WithSupportProps<{
|
|
|
115
115
|
manualFiltering?: boolean;
|
|
116
116
|
/** Дополнительная функция используется для получения уникального идентификатора для любой заданной строки */
|
|
117
117
|
getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string;
|
|
118
|
+
/** Дополнительная функция используется для получения className для любой заданной строки */
|
|
119
|
+
getRowClassName?: (originalRow: TData, index: number, parent?: Row<TData>) => string;
|
|
118
120
|
/** Ссылка на элемент, обозначающий самый конец прокручиваемого списка */
|
|
119
121
|
scrollRef?: RefObject<HTMLElement>;
|
|
120
122
|
/** Ссылка на контейнер, который скроллится */
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { Row as TableRow } from '@tanstack/react-table';
|
|
2
2
|
import { MouseEvent } from 'react';
|
|
3
|
+
import { TableProps } from '../../components';
|
|
3
4
|
export type RowInfo<TData> = {
|
|
4
5
|
id: string;
|
|
5
6
|
data: TData;
|
|
@@ -7,9 +8,10 @@ export type RowInfo<TData> = {
|
|
|
7
8
|
toggleSelected(value?: boolean): void;
|
|
8
9
|
};
|
|
9
10
|
export type RowClickHandler<TData> = (e: MouseEvent<HTMLDivElement>, row: RowInfo<TData>) => void;
|
|
10
|
-
type BodyRowProps<TData> = {
|
|
11
|
+
type BodyRowProps<TData extends object> = {
|
|
11
12
|
row: TableRow<TData>;
|
|
12
13
|
onRowClick?: RowClickHandler<TData>;
|
|
14
|
+
getRowClassName?: TableProps<TData>['getRowClassName'];
|
|
13
15
|
};
|
|
14
|
-
export declare function BodyRow<TData>({ row, onRowClick }: BodyRowProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function BodyRow<TData extends object>({ row, onRowClick, getRowClassName }: BodyRowProps<TData>): import("react/jsx-runtime").JSX.Element;
|
|
15
17
|
export {};
|
|
@@ -7,7 +7,7 @@ import { useRowCells } from '../hooks';
|
|
|
7
7
|
import { PinnedCells } from './PinnedCells';
|
|
8
8
|
import { Row } from './Row';
|
|
9
9
|
import styles from './styles.module.css';
|
|
10
|
-
export function BodyRow({ row, onRowClick }) {
|
|
10
|
+
export function BodyRow({ row, onRowClick, getRowClassName = () => '' }) {
|
|
11
11
|
const { pinnedLeft, pinnedRight, unpinned } = useRowCells(row);
|
|
12
12
|
const [dropListOpened, setDropListOpen] = useState(false);
|
|
13
13
|
const disabled = !row.getCanSelect();
|
|
@@ -21,5 +21,5 @@ export function BodyRow({ row, onRowClick }) {
|
|
|
21
21
|
toggleSelected: row.toggleSelected,
|
|
22
22
|
});
|
|
23
23
|
};
|
|
24
|
-
return (_jsx(RowContext.Provider, { value: { dropListOpened, setDropListOpen }, children: _jsxs(Row, { onClick: handleRowClick, "data-clickable": Boolean(onRowClick) || undefined, "data-disabled": disabled || undefined, "data-selected": row.getIsSelected() || undefined, "data-actions-opened": dropListOpened || undefined, "data-test-id": TEST_IDS.bodyRow, "data-row-id": row.id, className: styles.bodyRow, children: [pinnedLeft && (_jsx(PinnedCells, { position: COLUMN_PIN_POSITION.Left, children: pinnedLeft.map(cell => (_jsx(BodyCell, { cell: cell }, cell.id))) })), unpinned.map(cell => (_jsx(BodyCell, { cell: cell }, cell.id))), pinnedRight && (_jsx(PinnedCells, { position: COLUMN_PIN_POSITION.Right, children: pinnedRight.map(cell => (_jsx(BodyCell, { cell: cell }, cell.id))) }))] }) }));
|
|
24
|
+
return (_jsx(RowContext.Provider, { value: { dropListOpened, setDropListOpen }, children: _jsxs(Row, { onClick: handleRowClick, "data-clickable": Boolean(onRowClick) || undefined, "data-disabled": disabled || undefined, "data-selected": row.getIsSelected() || undefined, "data-actions-opened": dropListOpened || undefined, "data-test-id": TEST_IDS.bodyRow, "data-row-id": row.id, className: `${styles.bodyRow} ${getRowClassName(row.original, row.index, row.getParentRow())}`, children: [pinnedLeft && (_jsx(PinnedCells, { position: COLUMN_PIN_POSITION.Left, children: pinnedLeft.map(cell => (_jsx(BodyCell, { cell: cell }, cell.id))) })), unpinned.map(cell => (_jsx(BodyCell, { cell: cell }, cell.id))), pinnedRight && (_jsx(PinnedCells, { position: COLUMN_PIN_POSITION.Right, children: pinnedRight.map(cell => (_jsx(BodyCell, { cell: cell }, cell.id))) }))] }) }));
|
|
25
25
|
}
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"title": "Table",
|
|
7
|
-
"version": "0.22.
|
|
7
|
+
"version": "0.22.3-preview-5d095019.0",
|
|
8
8
|
"sideEffects": [
|
|
9
9
|
"*.css",
|
|
10
10
|
"*.woff",
|
|
@@ -57,5 +57,5 @@
|
|
|
57
57
|
"peerDependencies": {
|
|
58
58
|
"@snack-uikit/locale": "*"
|
|
59
59
|
},
|
|
60
|
-
"gitHead": "
|
|
60
|
+
"gitHead": "ba02c0bf7bd0ef43b5de11b5493ea9417a81267d"
|
|
61
61
|
}
|
|
@@ -89,6 +89,7 @@ export function Table<TData extends object>({
|
|
|
89
89
|
scrollRef,
|
|
90
90
|
scrollContainerRef,
|
|
91
91
|
getRowId,
|
|
92
|
+
getRowClassName,
|
|
92
93
|
enableFuzzySearch,
|
|
93
94
|
savedState,
|
|
94
95
|
|
|
@@ -391,13 +392,13 @@ export function Table<TData extends object>({
|
|
|
391
392
|
{filteredTopRows.length ? (
|
|
392
393
|
<div className={styles.topRowWrapper}>
|
|
393
394
|
{filteredTopRows.map(row => (
|
|
394
|
-
<BodyRow key={row.id} row={row} onRowClick={onRowClick} />
|
|
395
|
+
<BodyRow key={row.id} row={row} onRowClick={onRowClick} getRowClassName={getRowClassName} />
|
|
395
396
|
))}
|
|
396
397
|
</div>
|
|
397
398
|
) : null}
|
|
398
399
|
|
|
399
400
|
{centerRows.map(row => (
|
|
400
|
-
<BodyRow key={row.id} row={row} onRowClick={onRowClick} />
|
|
401
|
+
<BodyRow key={row.id} row={row} onRowClick={onRowClick} getRowClassName={getRowClassName} />
|
|
401
402
|
))}
|
|
402
403
|
|
|
403
404
|
<TableEmptyState
|
package/src/components/types.ts
CHANGED
|
@@ -146,6 +146,9 @@ export type TableProps<TData extends object> = WithSupportProps<{
|
|
|
146
146
|
/** Дополнительная функция используется для получения уникального идентификатора для любой заданной строки */
|
|
147
147
|
getRowId?: (originalRow: TData, index: number, parent?: Row<TData>) => string;
|
|
148
148
|
|
|
149
|
+
/** Дополнительная функция используется для получения className для любой заданной строки */
|
|
150
|
+
getRowClassName?: (originalRow: TData, index: number, parent?: Row<TData>) => string;
|
|
151
|
+
|
|
149
152
|
/** Ссылка на элемент, обозначающий самый конец прокручиваемого списка */
|
|
150
153
|
scrollRef?: RefObject<HTMLElement>;
|
|
151
154
|
/** Ссылка на контейнер, который скроллится */
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { Row as TableRow } from '@tanstack/react-table';
|
|
2
2
|
import { MouseEvent, useState } from 'react';
|
|
3
3
|
|
|
4
|
+
import { TableProps } from '../../components';
|
|
4
5
|
import { COLUMN_PIN_POSITION, TEST_IDS } from '../../constants';
|
|
5
6
|
import { BodyCell } from '../Cells';
|
|
6
7
|
import { RowContext } from '../contexts';
|
|
@@ -18,12 +19,13 @@ export type RowInfo<TData> = {
|
|
|
18
19
|
|
|
19
20
|
export type RowClickHandler<TData> = (e: MouseEvent<HTMLDivElement>, row: RowInfo<TData>) => void;
|
|
20
21
|
|
|
21
|
-
type BodyRowProps<TData> = {
|
|
22
|
+
type BodyRowProps<TData extends object> = {
|
|
22
23
|
row: TableRow<TData>;
|
|
23
24
|
onRowClick?: RowClickHandler<TData>;
|
|
25
|
+
getRowClassName?: TableProps<TData>['getRowClassName'];
|
|
24
26
|
};
|
|
25
27
|
|
|
26
|
-
export function BodyRow<TData>({ row, onRowClick }: BodyRowProps<TData>) {
|
|
28
|
+
export function BodyRow<TData extends object>({ row, onRowClick, getRowClassName = () => '' }: BodyRowProps<TData>) {
|
|
27
29
|
const { pinnedLeft, pinnedRight, unpinned } = useRowCells(row);
|
|
28
30
|
|
|
29
31
|
const [dropListOpened, setDropListOpen] = useState(false);
|
|
@@ -51,7 +53,7 @@ export function BodyRow<TData>({ row, onRowClick }: BodyRowProps<TData>) {
|
|
|
51
53
|
data-actions-opened={dropListOpened || undefined}
|
|
52
54
|
data-test-id={TEST_IDS.bodyRow}
|
|
53
55
|
data-row-id={row.id}
|
|
54
|
-
className={styles.bodyRow}
|
|
56
|
+
className={`${styles.bodyRow} ${getRowClassName(row.original, row.index, row.getParentRow())}`}
|
|
55
57
|
>
|
|
56
58
|
{pinnedLeft && (
|
|
57
59
|
<PinnedCells position={COLUMN_PIN_POSITION.Left}>
|