@snack-uikit/table 0.38.8-preview-ff470bb3.0 → 0.39.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/CHANGELOG.md +11 -0
- package/README.md +2 -0
- package/dist/cjs/components/Table/Table.d.ts +1 -1
- package/dist/cjs/components/Table/Table.js +6 -4
- package/dist/cjs/components/types.d.ts +2 -0
- package/dist/esm/components/Table/Table.d.ts +1 -1
- package/dist/esm/components/Table/Table.js +3 -2
- package/dist/esm/components/types.d.ts +2 -0
- package/package.json +4 -4
- package/src/components/Table/Table.tsx +4 -2
- package/src/components/types.ts +2 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,17 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
# 0.39.0 (2026-05-04)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Features
|
|
10
|
+
|
|
11
|
+
* **PDS-3785:** added suppress header prop ([8095bb6](https://github.com/cloud-ru-tech/snack-uikit/commit/8095bb69d95ae0cb8a6c4a5edb2ae59bb2c1a038))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## 0.38.7 (2026-04-21)
|
|
7
18
|
|
|
8
19
|
### Only dependencies have been changed
|
package/README.md
CHANGED
|
@@ -203,6 +203,7 @@ const columnDefinitions: ColumnDefinition<TableData>[] = [
|
|
|
203
203
|
| noResultsState | `EmptyStateProps` | - | Экран при отстутствии результатов поиска или фильтров |
|
|
204
204
|
| errorDataState | `EmptyStateProps` | - | Экран при ошибке запроса |
|
|
205
205
|
| suppressToolbar | `boolean` | - | Отключение тулбара |
|
|
206
|
+
| suppressHeader | `boolean` | - | Отключение хедера таблицы |
|
|
206
207
|
| suppressSearch | `boolean` | - | Отключение поиска |
|
|
207
208
|
| bulkActions | `BulkAction[]` | - | Список действия для массовых операций |
|
|
208
209
|
| moreActions | `Action[]` | - | Элементы выпадающего списка кнопки с действиями |
|
|
@@ -275,6 +276,7 @@ const columnDefinitions: ColumnDefinition<TableData>[] = [
|
|
|
275
276
|
| noResultsState | `EmptyStateProps` | - | Экран при отстутствии результатов поиска или фильтров |
|
|
276
277
|
| errorDataState | `EmptyStateProps` | - | Экран при ошибке запроса |
|
|
277
278
|
| suppressToolbar | `boolean` | - | Отключение тулбара |
|
|
279
|
+
| suppressHeader | `boolean` | - | Отключение хедера таблицы |
|
|
278
280
|
| suppressSearch | `boolean` | - | Отключение поиска |
|
|
279
281
|
| toolbarAfter | `ReactNode` | - | Дополнительный слот в `Toolbar` после строки поиска |
|
|
280
282
|
| exportSettings | `{ fileName: string; filterData?: boolean; exportToCSV?(args: ExportProps<TData>): void; exportToXLSX?(args: ExportProps<TData>): void; }` | - | Настройки экспорта в тулбаре |
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FiltersState } from '@snack-uikit/chips';
|
|
2
2
|
import { TableProps } from '../types';
|
|
3
3
|
/** Компонент таблицы */
|
|
4
|
-
export declare function Table<TData extends object, TFilters extends FiltersState = Record<string, unknown>>({ data, rowPinning, columnDefinitions, keepPinnedRows, copyPinnedRows, enableSelectPinned, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, pageSize, pageCount, loading, infiniteLoading, outline, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar, suppressSearch, toolbarAfter, suppressPagination, manualSorting, manualPagination: manualPaginationProp, manualFiltering, autoResetPageIndex, scrollRef, scrollContainerRef, getRowId, enableFuzzySearch, savedState, expanding, bulkActions: bulkActionsProp, rowAutoHeight, columnsSettings: columnsSettingsProp, getRowBackgroundColor, toolbarCheckBoxMode, ...rest }: TableProps<TData, TFilters>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare function Table<TData extends object, TFilters extends FiltersState = Record<string, unknown>>({ data, rowPinning, columnDefinitions, keepPinnedRows, copyPinnedRows, enableSelectPinned, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, pageSize, pageCount, loading, infiniteLoading, outline, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar, suppressHeader, suppressSearch, toolbarAfter, suppressPagination, manualSorting, manualPagination: manualPaginationProp, manualFiltering, autoResetPageIndex, scrollRef, scrollContainerRef, getRowId, enableFuzzySearch, savedState, expanding, bulkActions: bulkActionsProp, rowAutoHeight, columnsSettings: columnsSettingsProp, getRowBackgroundColor, toolbarCheckBoxMode, ...rest }: TableProps<TData, TFilters>): import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
export declare namespace Table {
|
|
6
6
|
var getStatusColumnDef: typeof import("../../helperComponents").getStatusColumnDef;
|
|
7
7
|
var statusAppearances: {
|
|
@@ -70,6 +70,7 @@ function Table(_a) {
|
|
|
70
70
|
noResultsState,
|
|
71
71
|
errorDataState,
|
|
72
72
|
suppressToolbar = false,
|
|
73
|
+
suppressHeader = false,
|
|
73
74
|
suppressSearch = false,
|
|
74
75
|
toolbarAfter,
|
|
75
76
|
suppressPagination = false,
|
|
@@ -89,7 +90,7 @@ function Table(_a) {
|
|
|
89
90
|
getRowBackgroundColor,
|
|
90
91
|
toolbarCheckBoxMode
|
|
91
92
|
} = _a,
|
|
92
|
-
rest = __rest(_a, ["data", "rowPinning", "columnDefinitions", "keepPinnedRows", "copyPinnedRows", "enableSelectPinned", "rowSelection", "search", "sorting", "columnFilters", "pagination", "className", "onRowClick", "onRefresh", "pageSize", "pageCount", "loading", "infiniteLoading", "outline", "moreActions", "exportSettings", "dataFiltered", "dataError", "noDataState", "noResultsState", "errorDataState", "suppressToolbar", "suppressSearch", "toolbarAfter", "suppressPagination", "manualSorting", "manualPagination", "manualFiltering", "autoResetPageIndex", "scrollRef", "scrollContainerRef", "getRowId", "enableFuzzySearch", "savedState", "expanding", "bulkActions", "rowAutoHeight", "columnsSettings", "getRowBackgroundColor", "toolbarCheckBoxMode"]);
|
|
93
|
+
rest = __rest(_a, ["data", "rowPinning", "columnDefinitions", "keepPinnedRows", "copyPinnedRows", "enableSelectPinned", "rowSelection", "search", "sorting", "columnFilters", "pagination", "className", "onRowClick", "onRefresh", "pageSize", "pageCount", "loading", "infiniteLoading", "outline", "moreActions", "exportSettings", "dataFiltered", "dataError", "noDataState", "noResultsState", "errorDataState", "suppressToolbar", "suppressHeader", "suppressSearch", "toolbarAfter", "suppressPagination", "manualSorting", "manualPagination", "manualFiltering", "autoResetPageIndex", "scrollRef", "scrollContainerRef", "getRowId", "enableFuzzySearch", "savedState", "expanding", "bulkActions", "rowAutoHeight", "columnsSettings", "getRowBackgroundColor", "toolbarCheckBoxMode"]);
|
|
93
94
|
const [globalFilter, onGlobalFilterChange] = (0, hooks_1.useStateControl)(search, '');
|
|
94
95
|
const [rowSelection, onRowSelectionChange] = (0, hooks_1.useStateControl)(rowSelectionProp, constants_1.DEFAULT_ROW_SELECTION);
|
|
95
96
|
const defaultPaginationState = (0, react_1.useMemo)(() => ({
|
|
@@ -371,6 +372,7 @@ function Table(_a) {
|
|
|
371
372
|
updateCellMap
|
|
372
373
|
} = (0, contexts_1.useCellAutoResizeController)(table);
|
|
373
374
|
const showToolbar = !suppressToolbar;
|
|
375
|
+
const showHeader = !suppressHeader;
|
|
374
376
|
const showPagination = !infiniteLoading && !suppressPagination;
|
|
375
377
|
const tableToolbarPersistConfig = (0, react_1.useMemo)(() => {
|
|
376
378
|
if (!(savedState === null || savedState === void 0 ? void 0 : savedState.id) || !(savedState === null || savedState === void 0 ? void 0 : savedState.filterQueryKey)) {
|
|
@@ -473,17 +475,17 @@ function Table(_a) {
|
|
|
473
475
|
},
|
|
474
476
|
children: (!infiniteLoading || !data.length) && loading ? (0, jsx_runtime_1.jsxs)(skeleton_1.SkeletonContextProvider, {
|
|
475
477
|
loading: true,
|
|
476
|
-
children: [(0, jsx_runtime_1.jsx)(helperComponents_1.HeaderRow, {
|
|
478
|
+
children: [showHeader ? (0, jsx_runtime_1.jsx)(helperComponents_1.HeaderRow, {
|
|
477
479
|
rowAutoHeight: rowAutoHeight,
|
|
478
480
|
columnOrder: columnOrder
|
|
479
|
-
}), loadingTableRows.map(row => (0, jsx_runtime_1.jsx)(helperComponents_1.BodyRow, {
|
|
481
|
+
}) : null, loadingTableRows.map(row => (0, jsx_runtime_1.jsx)(helperComponents_1.BodyRow, {
|
|
480
482
|
row: row,
|
|
481
483
|
rowAutoHeight: rowAutoHeight,
|
|
482
484
|
columnOrder: columnOrder,
|
|
483
485
|
disabledRowAppearance: rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.appearance
|
|
484
486
|
}, row.id))]
|
|
485
487
|
}) : (0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, {
|
|
486
|
-
children: [centerRows.length || filteredTopRows.length ? (0, jsx_runtime_1.jsx)(helperComponents_1.HeaderRow, {
|
|
488
|
+
children: [showHeader && (centerRows.length || filteredTopRows.length) ? (0, jsx_runtime_1.jsx)(helperComponents_1.HeaderRow, {
|
|
487
489
|
rowAutoHeight: rowAutoHeight,
|
|
488
490
|
columnOrder: columnOrder,
|
|
489
491
|
enableColumnsOrderSortByDrag: enableColumnsOrderSortByDrag
|
|
@@ -120,6 +120,8 @@ type BaseTableProps<TData extends object, TFilters extends FiltersState = Record
|
|
|
120
120
|
errorDataState?: EmptyStateProps;
|
|
121
121
|
/** Отключение тулбара */
|
|
122
122
|
suppressToolbar?: boolean;
|
|
123
|
+
/** Отключение хедера таблицы */
|
|
124
|
+
suppressHeader?: boolean;
|
|
123
125
|
/** Отключение поиска */
|
|
124
126
|
suppressSearch?: boolean;
|
|
125
127
|
/** Список действия для массовых операций */
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { FiltersState } from '@snack-uikit/chips';
|
|
2
2
|
import { TableProps } from '../types';
|
|
3
3
|
/** Компонент таблицы */
|
|
4
|
-
export declare function Table<TData extends object, TFilters extends FiltersState = Record<string, unknown>>({ data, rowPinning, columnDefinitions, keepPinnedRows, copyPinnedRows, enableSelectPinned, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, pageSize, pageCount, loading, infiniteLoading, outline, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar, suppressSearch, toolbarAfter, suppressPagination, manualSorting, manualPagination: manualPaginationProp, manualFiltering, autoResetPageIndex, scrollRef, scrollContainerRef, getRowId, enableFuzzySearch, savedState, expanding, bulkActions: bulkActionsProp, rowAutoHeight, columnsSettings: columnsSettingsProp, getRowBackgroundColor, toolbarCheckBoxMode, ...rest }: TableProps<TData, TFilters>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
export declare function Table<TData extends object, TFilters extends FiltersState = Record<string, unknown>>({ data, rowPinning, columnDefinitions, keepPinnedRows, copyPinnedRows, enableSelectPinned, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, pageSize, pageCount, loading, infiniteLoading, outline, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar, suppressHeader, suppressSearch, toolbarAfter, suppressPagination, manualSorting, manualPagination: manualPaginationProp, manualFiltering, autoResetPageIndex, scrollRef, scrollContainerRef, getRowId, enableFuzzySearch, savedState, expanding, bulkActions: bulkActionsProp, rowAutoHeight, columnsSettings: columnsSettingsProp, getRowBackgroundColor, toolbarCheckBoxMode, ...rest }: TableProps<TData, TFilters>): import("react/jsx-runtime").JSX.Element;
|
|
5
5
|
export declare namespace Table {
|
|
6
6
|
var getStatusColumnDef: typeof import("../../helperComponents").getStatusColumnDef;
|
|
7
7
|
var statusAppearances: {
|
|
@@ -34,7 +34,7 @@ import { validateFilter, validatePaging, validateSorting } from './utils/saveTab
|
|
|
34
34
|
export function Table(_a) {
|
|
35
35
|
var { data, rowPinning = {
|
|
36
36
|
top: [],
|
|
37
|
-
}, columnDefinitions, keepPinnedRows = false, copyPinnedRows = false, enableSelectPinned = false, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, pageSize = DEFAULT_PAGE_SIZE, pageCount, loading = false, infiniteLoading = false, outline = false, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar = false, suppressSearch = false, toolbarAfter, suppressPagination = false, manualSorting = false, manualPagination: manualPaginationProp = false, manualFiltering = false, autoResetPageIndex = false, scrollRef, scrollContainerRef, getRowId, enableFuzzySearch, savedState, expanding, bulkActions: bulkActionsProp, rowAutoHeight, columnsSettings: columnsSettingsProp, getRowBackgroundColor, toolbarCheckBoxMode } = _a, rest = __rest(_a, ["data", "rowPinning", "columnDefinitions", "keepPinnedRows", "copyPinnedRows", "enableSelectPinned", "rowSelection", "search", "sorting", "columnFilters", "pagination", "className", "onRowClick", "onRefresh", "pageSize", "pageCount", "loading", "infiniteLoading", "outline", "moreActions", "exportSettings", "dataFiltered", "dataError", "noDataState", "noResultsState", "errorDataState", "suppressToolbar", "suppressSearch", "toolbarAfter", "suppressPagination", "manualSorting", "manualPagination", "manualFiltering", "autoResetPageIndex", "scrollRef", "scrollContainerRef", "getRowId", "enableFuzzySearch", "savedState", "expanding", "bulkActions", "rowAutoHeight", "columnsSettings", "getRowBackgroundColor", "toolbarCheckBoxMode"]);
|
|
37
|
+
}, columnDefinitions, keepPinnedRows = false, copyPinnedRows = false, enableSelectPinned = false, rowSelection: rowSelectionProp, search, sorting: sortingProp, columnFilters, pagination: paginationProp, className, onRowClick, onRefresh, pageSize = DEFAULT_PAGE_SIZE, pageCount, loading = false, infiniteLoading = false, outline = false, moreActions, exportSettings, dataFiltered, dataError, noDataState, noResultsState, errorDataState, suppressToolbar = false, suppressHeader = false, suppressSearch = false, toolbarAfter, suppressPagination = false, manualSorting = false, manualPagination: manualPaginationProp = false, manualFiltering = false, autoResetPageIndex = false, scrollRef, scrollContainerRef, getRowId, enableFuzzySearch, savedState, expanding, bulkActions: bulkActionsProp, rowAutoHeight, columnsSettings: columnsSettingsProp, getRowBackgroundColor, toolbarCheckBoxMode } = _a, rest = __rest(_a, ["data", "rowPinning", "columnDefinitions", "keepPinnedRows", "copyPinnedRows", "enableSelectPinned", "rowSelection", "search", "sorting", "columnFilters", "pagination", "className", "onRowClick", "onRefresh", "pageSize", "pageCount", "loading", "infiniteLoading", "outline", "moreActions", "exportSettings", "dataFiltered", "dataError", "noDataState", "noResultsState", "errorDataState", "suppressToolbar", "suppressHeader", "suppressSearch", "toolbarAfter", "suppressPagination", "manualSorting", "manualPagination", "manualFiltering", "autoResetPageIndex", "scrollRef", "scrollContainerRef", "getRowId", "enableFuzzySearch", "savedState", "expanding", "bulkActions", "rowAutoHeight", "columnsSettings", "getRowBackgroundColor", "toolbarCheckBoxMode"]);
|
|
38
38
|
const [globalFilter, onGlobalFilterChange] = useStateControl(search, '');
|
|
39
39
|
const [rowSelection, onRowSelectionChange] = useStateControl(rowSelectionProp, DEFAULT_ROW_SELECTION);
|
|
40
40
|
const defaultPaginationState = useMemo(() => ({
|
|
@@ -267,6 +267,7 @@ export function Table(_a) {
|
|
|
267
267
|
});
|
|
268
268
|
const { updateCellMap } = useCellAutoResizeController(table);
|
|
269
269
|
const showToolbar = !suppressToolbar;
|
|
270
|
+
const showHeader = !suppressHeader;
|
|
270
271
|
const showPagination = !infiniteLoading && !suppressPagination;
|
|
271
272
|
const tableToolbarPersistConfig = useMemo(() => {
|
|
272
273
|
if (!(savedState === null || savedState === void 0 ? void 0 : savedState.id) || !(savedState === null || savedState === void 0 ? void 0 : savedState.filterQueryKey)) {
|
|
@@ -325,7 +326,7 @@ export function Table(_a) {
|
|
|
325
326
|
onChange: onGlobalFilterChange,
|
|
326
327
|
loading: search === null || search === void 0 ? void 0 : search.loading,
|
|
327
328
|
placeholder: (search === null || search === void 0 ? void 0 : search.placeholder) || t('searchPlaceholder'),
|
|
328
|
-
}, className: styles.toolbar, onRefresh: onRefresh ? handleOnRefresh : undefined, persist: showToolbar ? tableToolbarPersistConfig : undefined, bulkActions: bulkActions, selectionMode: (rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.multiRow) ? 'multiple' : 'single', checked: checked, indeterminate: indeterminate, onCheck: enableSelection ? handleOnToolbarCheck : undefined, outline: outline, after: toolbarAfter || exportSettings || areColumnsSettingsEnabled ? (_jsxs(_Fragment, { children: [toolbarAfter, exportSettings && (_jsx(ExportButton, { settings: exportSettings, columnDefinitions: columnDefinitions, data: data, topRows: filteredTopRows, centerRows: centerRows })), areColumnsSettingsEnabled && (_jsx(ColumnsSettings, { columnsSettings: columnsSettings, enabledColumns: enabledColumns, setEnabledColumns: setEnabledColumns }))] })) : undefined, moreActions: moreActions, filterRow: patchedFilter, "data-test-id": TEST_IDS.toolbar }) })), _jsxs(Scroll, { size: 's', className: styles.table, ref: scrollContainerRef, "data-outline": outline || undefined, children: [_jsx("div", { className: styles.tableContent, style: columnSizes.vars, children: _jsx(CellAutoResizeContext.Provider, { value: { updateCellMap }, children: _jsx(DndContext, Object.assign({}, dndContextProps, { children: _jsx(TableContext.Provider, { value: { table, getRowBackgroundColor }, children: (!infiniteLoading || !data.length) && loading ? (_jsxs(SkeletonContextProvider, { loading: true, children: [_jsx(HeaderRow, { rowAutoHeight: rowAutoHeight, columnOrder: columnOrder }), loadingTableRows.map(row => (_jsx(BodyRow, { row: row, rowAutoHeight: rowAutoHeight, columnOrder: columnOrder, disabledRowAppearance: rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.appearance }, row.id)))] })) : (_jsxs(_Fragment, { children: [centerRows.length || filteredTopRows.length ? (_jsx(HeaderRow, { rowAutoHeight: rowAutoHeight, columnOrder: columnOrder, enableColumnsOrderSortByDrag: enableColumnsOrderSortByDrag })) : null, filteredTopRows.length ? (_jsx("div", { className: styles.topRowWrapper, children: filteredTopRows.map(row => (_jsx(BodyRow, { row: row, onRowClick: onRowClick, rowAutoHeight: rowAutoHeight, columnOrder: columnOrder, enableColumnsOrderSortByDrag: enableColumnsOrderSortByDrag, disabledRowAppearance: RowAppearance.HideToggler }, row.id))) })) : null, centerRows.map(row => (_jsx(BodyRow, { row: row, onRowClick: onRowClick, rowAutoHeight: rowAutoHeight, columnOrder: columnOrder, enableColumnsOrderSortByDrag: enableColumnsOrderSortByDrag, disabledRowAppearance: rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.appearance }, row.id))), data.length > 0 && infiniteLoading && loading && !dataError && (_jsx(SkeletonContextProvider, { loading: true, children: loadingTableRows.slice(0, 3).map(row => (_jsx(BodyRow, { row: row, columnOrder: columnOrder, enableColumnsOrderSortByDrag: enableColumnsOrderSortByDrag, disabledRowAppearance: rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.appearance }, 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 })] }), showPagination && (_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 }))] })));
|
|
329
|
+
}, className: styles.toolbar, onRefresh: onRefresh ? handleOnRefresh : undefined, persist: showToolbar ? tableToolbarPersistConfig : undefined, bulkActions: bulkActions, selectionMode: (rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.multiRow) ? 'multiple' : 'single', checked: checked, indeterminate: indeterminate, onCheck: enableSelection ? handleOnToolbarCheck : undefined, outline: outline, after: toolbarAfter || exportSettings || areColumnsSettingsEnabled ? (_jsxs(_Fragment, { children: [toolbarAfter, exportSettings && (_jsx(ExportButton, { settings: exportSettings, columnDefinitions: columnDefinitions, data: data, topRows: filteredTopRows, centerRows: centerRows })), areColumnsSettingsEnabled && (_jsx(ColumnsSettings, { columnsSettings: columnsSettings, enabledColumns: enabledColumns, setEnabledColumns: setEnabledColumns }))] })) : undefined, moreActions: moreActions, filterRow: patchedFilter, "data-test-id": TEST_IDS.toolbar }) })), _jsxs(Scroll, { size: 's', className: styles.table, ref: scrollContainerRef, "data-outline": outline || undefined, children: [_jsx("div", { className: styles.tableContent, style: columnSizes.vars, children: _jsx(CellAutoResizeContext.Provider, { value: { updateCellMap }, children: _jsx(DndContext, Object.assign({}, dndContextProps, { children: _jsx(TableContext.Provider, { value: { table, getRowBackgroundColor }, children: (!infiniteLoading || !data.length) && loading ? (_jsxs(SkeletonContextProvider, { loading: true, children: [showHeader ? _jsx(HeaderRow, { rowAutoHeight: rowAutoHeight, columnOrder: columnOrder }) : null, loadingTableRows.map(row => (_jsx(BodyRow, { row: row, rowAutoHeight: rowAutoHeight, columnOrder: columnOrder, disabledRowAppearance: rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.appearance }, row.id)))] })) : (_jsxs(_Fragment, { children: [showHeader && (centerRows.length || filteredTopRows.length) ? (_jsx(HeaderRow, { rowAutoHeight: rowAutoHeight, columnOrder: columnOrder, enableColumnsOrderSortByDrag: enableColumnsOrderSortByDrag })) : null, filteredTopRows.length ? (_jsx("div", { className: styles.topRowWrapper, children: filteredTopRows.map(row => (_jsx(BodyRow, { row: row, onRowClick: onRowClick, rowAutoHeight: rowAutoHeight, columnOrder: columnOrder, enableColumnsOrderSortByDrag: enableColumnsOrderSortByDrag, disabledRowAppearance: RowAppearance.HideToggler }, row.id))) })) : null, centerRows.map(row => (_jsx(BodyRow, { row: row, onRowClick: onRowClick, rowAutoHeight: rowAutoHeight, columnOrder: columnOrder, enableColumnsOrderSortByDrag: enableColumnsOrderSortByDrag, disabledRowAppearance: rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.appearance }, row.id))), data.length > 0 && infiniteLoading && loading && !dataError && (_jsx(SkeletonContextProvider, { loading: true, children: loadingTableRows.slice(0, 3).map(row => (_jsx(BodyRow, { row: row, columnOrder: columnOrder, enableColumnsOrderSortByDrag: enableColumnsOrderSortByDrag, disabledRowAppearance: rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.appearance }, 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 })] }), showPagination && (_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 }))] })));
|
|
329
330
|
}
|
|
330
331
|
Table.getStatusColumnDef = getStatusColumnDef;
|
|
331
332
|
Table.statusAppearances = STATUS_APPEARANCE;
|
|
@@ -120,6 +120,8 @@ type BaseTableProps<TData extends object, TFilters extends FiltersState = Record
|
|
|
120
120
|
errorDataState?: EmptyStateProps;
|
|
121
121
|
/** Отключение тулбара */
|
|
122
122
|
suppressToolbar?: boolean;
|
|
123
|
+
/** Отключение хедера таблицы */
|
|
124
|
+
suppressHeader?: boolean;
|
|
123
125
|
/** Отключение поиска */
|
|
124
126
|
suppressSearch?: boolean;
|
|
125
127
|
/** Список действия для массовых операций */
|
package/package.json
CHANGED
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
"access": "public"
|
|
5
5
|
},
|
|
6
6
|
"title": "Table",
|
|
7
|
-
"version": "0.
|
|
7
|
+
"version": "0.39.0",
|
|
8
8
|
"sideEffects": [
|
|
9
9
|
"*.css",
|
|
10
10
|
"*.woff",
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
"@dnd-kit/sortable": "10.0.0",
|
|
43
43
|
"@dnd-kit/utilities": "3.2.2",
|
|
44
44
|
"@snack-uikit/button": "0.19.17",
|
|
45
|
-
"@snack-uikit/chips": "0.29.
|
|
45
|
+
"@snack-uikit/chips": "0.29.1",
|
|
46
46
|
"@snack-uikit/icons": "0.27.7",
|
|
47
47
|
"@snack-uikit/info-block": "0.6.40",
|
|
48
48
|
"@snack-uikit/list": "0.33.0",
|
|
@@ -50,7 +50,7 @@
|
|
|
50
50
|
"@snack-uikit/scroll": "0.10.8",
|
|
51
51
|
"@snack-uikit/skeleton": "0.6.10",
|
|
52
52
|
"@snack-uikit/toggles": "0.13.26",
|
|
53
|
-
"@snack-uikit/toolbar": "0.14.
|
|
53
|
+
"@snack-uikit/toolbar": "0.14.24",
|
|
54
54
|
"@snack-uikit/truncate-string": "0.7.11",
|
|
55
55
|
"@snack-uikit/typography": "0.8.12",
|
|
56
56
|
"@snack-uikit/utils": "4.0.1",
|
|
@@ -65,5 +65,5 @@
|
|
|
65
65
|
"peerDependencies": {
|
|
66
66
|
"@snack-uikit/locale": "*"
|
|
67
67
|
},
|
|
68
|
-
"gitHead": "
|
|
68
|
+
"gitHead": "de975a968df3c8129c98129c9f2fc7fad22b8f03"
|
|
69
69
|
}
|
|
@@ -113,6 +113,7 @@ export function Table<TData extends object, TFilters extends FiltersState = Reco
|
|
|
113
113
|
noResultsState,
|
|
114
114
|
errorDataState,
|
|
115
115
|
suppressToolbar = false,
|
|
116
|
+
suppressHeader = false,
|
|
116
117
|
suppressSearch = false,
|
|
117
118
|
toolbarAfter,
|
|
118
119
|
suppressPagination = false,
|
|
@@ -444,6 +445,7 @@ export function Table<TData extends object, TFilters extends FiltersState = Reco
|
|
|
444
445
|
const { updateCellMap } = useCellAutoResizeController(table);
|
|
445
446
|
|
|
446
447
|
const showToolbar = !suppressToolbar;
|
|
448
|
+
const showHeader = !suppressHeader;
|
|
447
449
|
const showPagination = !infiniteLoading && !suppressPagination;
|
|
448
450
|
|
|
449
451
|
const tableToolbarPersistConfig = useMemo((): ToolbarPersistConfig<TFilters> | undefined => {
|
|
@@ -565,7 +567,7 @@ export function Table<TData extends object, TFilters extends FiltersState = Reco
|
|
|
565
567
|
<TableContext.Provider value={{ table, getRowBackgroundColor }}>
|
|
566
568
|
{(!infiniteLoading || !data.length) && loading ? (
|
|
567
569
|
<SkeletonContextProvider loading>
|
|
568
|
-
<HeaderRow rowAutoHeight={rowAutoHeight} columnOrder={columnOrder} />
|
|
570
|
+
{showHeader ? <HeaderRow rowAutoHeight={rowAutoHeight} columnOrder={columnOrder} /> : null}
|
|
569
571
|
{loadingTableRows.map(row => (
|
|
570
572
|
<BodyRow
|
|
571
573
|
key={row.id}
|
|
@@ -578,7 +580,7 @@ export function Table<TData extends object, TFilters extends FiltersState = Reco
|
|
|
578
580
|
</SkeletonContextProvider>
|
|
579
581
|
) : (
|
|
580
582
|
<>
|
|
581
|
-
{centerRows.length || filteredTopRows.length ? (
|
|
583
|
+
{showHeader && (centerRows.length || filteredTopRows.length) ? (
|
|
582
584
|
<HeaderRow
|
|
583
585
|
rowAutoHeight={rowAutoHeight}
|
|
584
586
|
columnOrder={columnOrder}
|
package/src/components/types.ts
CHANGED
|
@@ -148,6 +148,8 @@ type BaseTableProps<TData extends object, TFilters extends FiltersState = Record
|
|
|
148
148
|
|
|
149
149
|
/** Отключение тулбара */
|
|
150
150
|
suppressToolbar?: boolean;
|
|
151
|
+
/** Отключение хедера таблицы */
|
|
152
|
+
suppressHeader?: boolean;
|
|
151
153
|
/** Отключение поиска */
|
|
152
154
|
suppressSearch?: boolean;
|
|
153
155
|
/** Список действия для массовых операций */
|