@snack-uikit/table 0.35.4-preview-352c392a.0 → 0.35.4
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/dist/cjs/components/Table/Table.js +54 -94
- package/dist/cjs/components/Table/hooks/index.d.ts +3 -0
- package/dist/cjs/components/Table/hooks/index.js +4 -1
- package/dist/cjs/components/Table/hooks/useColumnOrderByDrag/index.d.ts +1 -0
- package/dist/cjs/components/Table/hooks/useColumnOrderByDrag/index.js +25 -0
- package/dist/cjs/components/Table/hooks/useColumnOrderByDrag/useColumnOrderByDrag.d.ts +16 -0
- package/dist/cjs/components/Table/hooks/{useColumnOrderByDrag.js → useColumnOrderByDrag/useColumnOrderByDrag.js} +27 -23
- package/dist/cjs/components/Table/hooks/useColumnOrderByDrag/utils/prepareInitialState.d.ts +4 -0
- package/dist/cjs/components/Table/hooks/useColumnOrderByDrag/utils/prepareInitialState.js +22 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/index.d.ts +1 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/index.js +25 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/useColumnSettings.d.ts +14 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/useColumnSettings.js +67 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/utils/getEnabledColumnsInitialState.d.ts +3 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/utils/getEnabledColumnsInitialState.js +22 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/utils/index.d.ts +5 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/utils/index.js +29 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/utils/isColumnEnabledInitially.d.ts +2 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/utils/isColumnEnabledInitially.js +13 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/utils/isColumnVisibilityConfigurable.d.ts +2 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/utils/isColumnVisibilityConfigurable.js +25 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/utils/isFilterableColumn.d.ts +2 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/utils/isFilterableColumn.js +10 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/utils/prepareColumnsSettings.d.ts +11 -0
- package/dist/cjs/components/Table/hooks/useColumnSettings/utils/prepareColumnsSettings.js +50 -0
- package/dist/cjs/components/Table/hooks/useFilters/index.d.ts +1 -0
- package/dist/cjs/components/Table/hooks/useFilters/index.js +25 -0
- package/dist/cjs/components/Table/hooks/useFilters/useFilters.d.ts +75 -0
- package/dist/cjs/components/Table/hooks/useFilters/useFilters.js +46 -0
- package/dist/cjs/components/Table/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.d.ts +2 -0
- package/dist/cjs/components/Table/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.js +12 -0
- package/dist/cjs/components/Table/hooks/useFilters/utils/index.d.ts +1 -0
- package/dist/cjs/components/Table/hooks/useFilters/utils/index.js +25 -0
- package/dist/cjs/components/Table/hooks/useSaveTableSettings/types.d.ts +2 -2
- package/dist/cjs/components/Table/hooks/useSaveTableSettings/useSaveTableSettings.d.ts +3 -3
- package/dist/cjs/components/Table/hooks/useSaveTableSettings/utils/parser.d.ts +1 -1
- package/dist/cjs/components/Table/hooks/useSaveTableSettings/vallidators.d.ts +1 -1
- package/dist/cjs/components/Table/utils/columnSize.d.ts +12 -0
- package/dist/cjs/components/Table/utils/columnSize.js +33 -0
- package/dist/cjs/components/Table/utils/getColumnIdentifier.d.ts +2 -0
- package/dist/cjs/components/Table/utils/getColumnIdentifier.js +13 -0
- package/dist/cjs/components/Table/utils/getColumnStyleVars.d.ts +4 -0
- package/dist/cjs/components/Table/utils/getColumnStyleVars.js +12 -0
- package/dist/cjs/components/Table/utils/getCurrentlyConfiguredHeaderWidth.d.ts +1 -0
- package/dist/cjs/components/Table/utils/getCurrentlyConfiguredHeaderWidth.js +24 -0
- package/dist/cjs/components/Table/utils/getPinnedGroups.d.ts +7 -0
- package/dist/cjs/components/Table/utils/getPinnedGroups.js +25 -0
- package/dist/cjs/components/Table/utils/getTableColumnsDefinitions.d.ts +10 -0
- package/dist/cjs/components/Table/utils/getTableColumnsDefinitions.js +23 -0
- package/dist/cjs/components/Table/utils/index.d.ts +8 -0
- package/dist/cjs/components/Table/utils/index.js +32 -0
- package/dist/cjs/components/Table/utils/isEveryArrayItemString.d.ts +1 -0
- package/dist/cjs/components/Table/utils/isEveryArrayItemString.js +8 -0
- package/dist/cjs/components/Table/utils/sortColumnDefinitions.d.ts +2 -0
- package/dist/cjs/components/Table/utils/sortColumnDefinitions.js +14 -0
- package/dist/cjs/constants.d.ts +6 -1
- package/dist/cjs/constants.js +8 -2
- package/dist/cjs/helperComponents/Cells/RowActionsCell/RowActionsCell.js +1 -1
- package/dist/cjs/helperComponents/Cells/SelectionCell/SelectionCell.js +1 -1
- package/dist/cjs/helperComponents/Cells/StatusCell/StatusCell.js +1 -1
- package/dist/cjs/helperComponents/Cells/index.d.ts +1 -0
- package/dist/cjs/helperComponents/Cells/index.js +2 -1
- package/dist/esm/components/Table/Table.js +43 -83
- package/dist/esm/components/Table/hooks/index.d.ts +3 -0
- package/dist/esm/components/Table/hooks/index.js +3 -0
- package/dist/esm/components/Table/hooks/useColumnOrderByDrag/index.d.ts +1 -0
- package/dist/esm/components/Table/hooks/useColumnOrderByDrag/index.js +1 -0
- package/dist/esm/components/Table/hooks/useColumnOrderByDrag/useColumnOrderByDrag.d.ts +16 -0
- package/dist/esm/components/Table/hooks/{useColumnOrderByDrag.js → useColumnOrderByDrag/useColumnOrderByDrag.js} +20 -23
- package/dist/esm/components/Table/hooks/useColumnOrderByDrag/utils/prepareInitialState.d.ts +4 -0
- package/dist/esm/components/Table/hooks/useColumnOrderByDrag/utils/prepareInitialState.js +16 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/index.d.ts +1 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/index.js +1 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/useColumnSettings.d.ts +14 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/useColumnSettings.js +50 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/utils/getEnabledColumnsInitialState.d.ts +3 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/utils/getEnabledColumnsInitialState.js +18 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/utils/index.d.ts +5 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/utils/index.js +5 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/utils/isColumnEnabledInitially.d.ts +2 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/utils/isColumnEnabledInitially.js +7 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/utils/isColumnVisibilityConfigurable.d.ts +2 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/utils/isColumnVisibilityConfigurable.js +17 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/utils/isFilterableColumn.d.ts +2 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/utils/isFilterableColumn.js +6 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/utils/prepareColumnsSettings.d.ts +11 -0
- package/dist/esm/components/Table/hooks/useColumnSettings/utils/prepareColumnsSettings.js +44 -0
- package/dist/esm/components/Table/hooks/useFilters/index.d.ts +1 -0
- package/dist/esm/components/Table/hooks/useFilters/index.js +1 -0
- package/dist/esm/components/Table/hooks/useFilters/useFilters.d.ts +75 -0
- package/dist/esm/components/Table/hooks/useFilters/useFilters.js +29 -0
- package/dist/esm/components/Table/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.d.ts +2 -0
- package/dist/esm/components/Table/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.js +8 -0
- package/dist/esm/components/Table/hooks/useFilters/utils/index.d.ts +1 -0
- package/dist/esm/components/Table/hooks/useFilters/utils/index.js +1 -0
- package/dist/esm/components/Table/hooks/useSaveTableSettings/types.d.ts +2 -2
- package/dist/esm/components/Table/hooks/useSaveTableSettings/useSaveTableSettings.d.ts +3 -3
- package/dist/esm/components/Table/hooks/useSaveTableSettings/utils/parser.d.ts +1 -1
- package/dist/esm/components/Table/hooks/useSaveTableSettings/vallidators.d.ts +1 -1
- package/dist/esm/components/Table/utils/columnSize.d.ts +12 -0
- package/dist/esm/components/Table/utils/columnSize.js +15 -0
- package/dist/esm/components/Table/utils/getColumnIdentifier.d.ts +2 -0
- package/dist/esm/components/Table/utils/getColumnIdentifier.js +7 -0
- package/dist/esm/components/Table/utils/getColumnStyleVars.d.ts +4 -0
- package/dist/esm/components/Table/utils/getColumnStyleVars.js +6 -0
- package/dist/esm/components/Table/utils/getCurrentlyConfiguredHeaderWidth.d.ts +1 -0
- package/dist/esm/components/Table/utils/getCurrentlyConfiguredHeaderWidth.js +16 -0
- package/dist/esm/components/Table/utils/getPinnedGroups.d.ts +7 -0
- package/dist/esm/components/Table/utils/getPinnedGroups.js +19 -0
- package/dist/esm/components/Table/utils/getTableColumnsDefinitions.d.ts +10 -0
- package/dist/esm/components/Table/utils/getTableColumnsDefinitions.js +11 -0
- package/dist/esm/components/Table/utils/index.d.ts +8 -0
- package/dist/esm/components/Table/utils/index.js +8 -0
- package/dist/esm/components/Table/utils/isEveryArrayItemString.d.ts +1 -0
- package/dist/esm/components/Table/utils/isEveryArrayItemString.js +1 -0
- package/dist/esm/components/Table/utils/sortColumnDefinitions.d.ts +2 -0
- package/dist/esm/components/Table/utils/sortColumnDefinitions.js +8 -0
- package/dist/esm/constants.d.ts +6 -1
- package/dist/esm/constants.js +7 -1
- package/dist/esm/helperComponents/Cells/RowActionsCell/RowActionsCell.js +2 -2
- package/dist/esm/helperComponents/Cells/SelectionCell/SelectionCell.js +2 -2
- package/dist/esm/helperComponents/Cells/StatusCell/StatusCell.js +2 -2
- package/dist/esm/helperComponents/Cells/index.d.ts +1 -0
- package/dist/esm/helperComponents/Cells/index.js +1 -0
- package/package.json +6 -6
- package/src/components/Table/Table.tsx +67 -124
- package/src/components/Table/hooks/index.ts +3 -0
- package/src/components/Table/hooks/useColumnOrderByDrag/index.ts +1 -0
- package/src/components/Table/hooks/{useColumnOrderByDrag.ts → useColumnOrderByDrag/useColumnOrderByDrag.ts} +35 -38
- package/src/components/Table/hooks/useColumnOrderByDrag/utils/prepareInitialState.ts +27 -0
- package/src/components/Table/hooks/useColumnSettings/index.ts +1 -0
- package/src/components/Table/hooks/useColumnSettings/useColumnSettings.ts +102 -0
- package/src/components/Table/hooks/useColumnSettings/utils/getEnabledColumnsInitialState.ts +27 -0
- package/src/components/Table/hooks/useColumnSettings/utils/index.ts +5 -0
- package/src/components/Table/hooks/useColumnSettings/utils/isColumnEnabledInitially.ts +9 -0
- package/src/components/Table/hooks/useColumnSettings/utils/isColumnVisibilityConfigurable.ts +22 -0
- package/src/components/Table/hooks/useColumnSettings/utils/isFilterableColumn.ts +11 -0
- package/src/components/Table/hooks/useColumnSettings/utils/prepareColumnsSettings.ts +65 -0
- package/src/components/Table/hooks/useFilters/index.ts +1 -0
- package/src/components/Table/hooks/useFilters/useFilters.ts +62 -0
- package/src/components/Table/hooks/useFilters/utils/getInitialColumnsFiltersOpenValue.ts +13 -0
- package/src/components/Table/hooks/useFilters/utils/index.ts +1 -0
- package/src/components/Table/hooks/useSaveTableSettings/types.ts +2 -2
- package/src/components/Table/hooks/useSaveTableSettings/useSaveTableSettings.ts +10 -10
- package/src/components/Table/hooks/useSaveTableSettings/utils/parser.ts +4 -4
- package/src/components/Table/hooks/useSaveTableSettings/utils/serializer.ts +2 -2
- package/src/components/Table/hooks/useSaveTableSettings/vallidators.ts +3 -3
- package/src/components/Table/utils/columnSize.ts +38 -0
- package/src/components/Table/utils/getColumnIdentifier.ts +10 -0
- package/src/components/Table/utils/getColumnStyleVars.ts +6 -0
- package/src/components/Table/utils/getCurrentlyConfiguredHeaderWidth.ts +23 -0
- package/src/components/Table/utils/getPinnedGroups.ts +33 -0
- package/src/components/Table/utils/getTableColumnsDefinitions.ts +26 -0
- package/src/components/Table/utils/index.ts +8 -0
- package/src/components/Table/utils/isEveryArrayItemString.ts +2 -0
- package/src/components/Table/utils/sortColumnDefinitions.ts +14 -0
- package/src/{constants.tsx → constants.ts} +7 -1
- package/src/helperComponents/Cells/HeaderCell/HeaderCell.tsx +1 -1
- package/src/helperComponents/Cells/RowActionsCell/RowActionsCell.tsx +2 -2
- package/src/helperComponents/Cells/SelectionCell/SelectionCell.tsx +2 -2
- package/src/helperComponents/Cells/StatusCell/StatusCell.tsx +2 -2
- package/src/helperComponents/Cells/index.ts +1 -0
- package/dist/cjs/components/Table/hooks/useColumnOrderByDrag.d.ts +0 -10
- package/dist/cjs/components/Table/hooks/useColumnSettings.d.ts +0 -6
- package/dist/cjs/components/Table/hooks/useColumnSettings.js +0 -41
- package/dist/cjs/components/Table/utils.d.ts +0 -32
- package/dist/cjs/components/Table/utils.js +0 -151
- package/dist/esm/components/Table/hooks/useColumnOrderByDrag.d.ts +0 -10
- package/dist/esm/components/Table/hooks/useColumnSettings.d.ts +0 -6
- package/dist/esm/components/Table/hooks/useColumnSettings.js +0 -38
- package/dist/esm/components/Table/utils.d.ts +0 -32
- package/dist/esm/components/Table/utils.js +0 -130
- package/src/components/Table/hooks/useColumnSettings.ts +0 -53
- package/src/components/Table/utils.ts +0 -209
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.35.4 (2025-04-22)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### Bug Fixes
|
|
10
|
+
|
|
11
|
+
* **PDS-1971:** table fixes - column order, settings label, refactoring ([a1c34a3](https://github.com/cloud-ru-tech/snack-uikit/commit/a1c34a3783a0a0bf95253529d958ad69421819ce))
|
|
12
|
+
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
16
|
+
|
|
6
17
|
## 0.35.3 (2025-04-15)
|
|
7
18
|
|
|
8
19
|
|
|
@@ -19,7 +19,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
19
19
|
exports.Table = Table;
|
|
20
20
|
const jsx_runtime_1 = require("react/jsx-runtime");
|
|
21
21
|
const core_1 = require("@dnd-kit/core");
|
|
22
|
-
const modifiers_1 = require("@dnd-kit/modifiers");
|
|
23
22
|
const react_table_1 = require("@tanstack/react-table");
|
|
24
23
|
const classnames_1 = __importDefault(require("classnames"));
|
|
25
24
|
const react_1 = require("react");
|
|
@@ -32,11 +31,8 @@ const utils_1 = require("@snack-uikit/utils");
|
|
|
32
31
|
const constants_1 = require("../../constants");
|
|
33
32
|
const contexts_1 = require("../../contexts");
|
|
34
33
|
const helperComponents_1 = require("../../helperComponents");
|
|
35
|
-
const TreeCell_1 = require("../../helperComponents/Cells/TreeCell");
|
|
36
34
|
const utils_2 = require("../../utils");
|
|
37
35
|
const hooks_1 = require("./hooks");
|
|
38
|
-
const usePageReset_1 = require("./hooks/usePageReset");
|
|
39
|
-
const useSaveTableSettings_1 = require("./hooks/useSaveTableSettings");
|
|
40
36
|
const styles_module_scss_1 = __importDefault(require('./styles.module.css'));
|
|
41
37
|
const utils_3 = require("./utils");
|
|
42
38
|
/** Компонент таблицы */
|
|
@@ -92,7 +88,7 @@ function Table(_a) {
|
|
|
92
88
|
const {
|
|
93
89
|
setDataToStorages,
|
|
94
90
|
defaultFilter
|
|
95
|
-
} = (0,
|
|
91
|
+
} = (0, hooks_1.useSaveTableSettings)({
|
|
96
92
|
options: savedState,
|
|
97
93
|
filterSettings: columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.filters
|
|
98
94
|
});
|
|
@@ -104,17 +100,14 @@ function Table(_a) {
|
|
|
104
100
|
}), [pageSize]);
|
|
105
101
|
const [sorting, onSortingChange] = (0, hooks_1.useStateControl)(sortingProp, constants_1.DEFAULT_SORTING);
|
|
106
102
|
const [pagination, onPaginationChange] = (0, hooks_1.useStateControl)(paginationProp, defaultPaginationState);
|
|
107
|
-
const
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
onChange: columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.onVisibleFiltersChange
|
|
116
|
-
}, constants_1.DEFAULT_FILTER_VISIBILITY);
|
|
117
|
-
const [areColumnFiltersOpen, setAreColumnFiltersOpen] = (0, react_1.useState)(() => (0, utils_3.getInitialColumnsOpenValue)(columnFilters));
|
|
103
|
+
const {
|
|
104
|
+
filter,
|
|
105
|
+
patchedFilter,
|
|
106
|
+
setFilter,
|
|
107
|
+
setFilterVisibility
|
|
108
|
+
} = (0, hooks_1.useFilters)({
|
|
109
|
+
columnFilters
|
|
110
|
+
});
|
|
118
111
|
(0, react_1.useEffect)(() => {
|
|
119
112
|
setDataToStorages({
|
|
120
113
|
pagination,
|
|
@@ -134,91 +127,58 @@ function Table(_a) {
|
|
|
134
127
|
// Только для первого рендера, чтобы проинициализировать фильтр
|
|
135
128
|
// eslint-disable-next-line
|
|
136
129
|
}, [defaultFilter]);
|
|
137
|
-
const patchedFilter = (0, react_1.useMemo)(() => {
|
|
138
|
-
if (!columnFilters) {
|
|
139
|
-
return undefined;
|
|
140
|
-
}
|
|
141
|
-
return Object.assign(Object.assign({
|
|
142
|
-
open: areColumnFiltersOpen,
|
|
143
|
-
onOpenChange: setAreColumnFiltersOpen
|
|
144
|
-
}, columnFilters), {
|
|
145
|
-
value: filter,
|
|
146
|
-
onChange: setFilter,
|
|
147
|
-
visibleFilters: filterVisibility,
|
|
148
|
-
onVisibleFiltersChange: setFilterVisibility
|
|
149
|
-
});
|
|
150
|
-
}, [columnFilters, areColumnFiltersOpen, filter, setFilter, filterVisibility, setFilterVisibility]);
|
|
151
130
|
const enableSelection = Boolean(rowSelectionProp === null || rowSelectionProp === void 0 ? void 0 : rowSelectionProp.enable);
|
|
152
|
-
const
|
|
131
|
+
const allTableColumns = (0, react_1.useMemo)(() => (0, utils_3.getTableColumnsDefinitions)({
|
|
132
|
+
columnDefinitions,
|
|
133
|
+
enableSelection,
|
|
134
|
+
enableSelectPinned,
|
|
135
|
+
expanding
|
|
136
|
+
}), [columnDefinitions, enableSelection, enableSelectPinned, expanding]);
|
|
137
|
+
const pinnedGroups = (0, react_1.useMemo)(() => (0, utils_3.getPinnedGroups)(allTableColumns), [allTableColumns]);
|
|
153
138
|
const {
|
|
154
139
|
enabledColumns,
|
|
155
|
-
setEnabledColumns
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
165
|
-
|
|
166
|
-
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
-
const tableColumns = (0, react_1.useMemo)(() => {
|
|
170
|
-
let cols = filteredColumnDefinitions;
|
|
171
|
-
if (enableSelection && !expanding) {
|
|
172
|
-
cols = [(0, helperComponents_1.getSelectionCellColumnDef)(enableSelectPinned), ...cols];
|
|
173
|
-
}
|
|
174
|
-
if (expanding) {
|
|
175
|
-
cols = [(0, TreeCell_1.getTreeColumnDef)(expanding.expandingColumnDefinition), ...cols];
|
|
176
|
-
}
|
|
177
|
-
return cols;
|
|
178
|
-
}, [filteredColumnDefinitions, enableSelection, enableSelectPinned, expanding]);
|
|
179
|
-
const enableColumnsOrderSortByDrag = Boolean(columnsSettingsProp === null || columnsSettingsProp === void 0 ? void 0 : columnsSettingsProp.enableDrag);
|
|
140
|
+
setEnabledColumns,
|
|
141
|
+
getColumnsSettings,
|
|
142
|
+
enabledTableColumns,
|
|
143
|
+
enabledColumnsDefinitions,
|
|
144
|
+
areColumnsSettingsEnabled
|
|
145
|
+
} = (0, hooks_1.useColumnSettings)({
|
|
146
|
+
columnDefinitions,
|
|
147
|
+
pinnedGroups,
|
|
148
|
+
savedState,
|
|
149
|
+
columnsSettings: columnsSettingsProp,
|
|
150
|
+
rowSelection: rowSelectionProp,
|
|
151
|
+
enableSelectPinned,
|
|
152
|
+
expanding
|
|
153
|
+
});
|
|
180
154
|
const {
|
|
181
155
|
columnOrder,
|
|
182
156
|
setColumnOrder,
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
} = (0, hooks_1.useColumnOrderByDrag)(
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
return {
|
|
191
|
-
collisionDetection: core_1.closestCenter,
|
|
192
|
-
modifiers: [modifiers_1.restrictToHorizontalAxis],
|
|
193
|
-
onDragEnd: handleDragEnd,
|
|
194
|
-
sensors: sensors
|
|
195
|
-
};
|
|
196
|
-
}, [enableColumnsOrderSortByDrag, handleDragEnd, sensors]);
|
|
197
|
-
const filterableColumns = (0, react_1.useMemo)(() => columnDefinitions.filter(utils_3.isFilterableColumn), [columnDefinitions]);
|
|
198
|
-
const areAllColumnsEnabled = filterableColumns.length === enabledColumns.length;
|
|
157
|
+
dndContextProps,
|
|
158
|
+
enableColumnsOrderSortByDrag
|
|
159
|
+
} = (0, hooks_1.useColumnOrderByDrag)({
|
|
160
|
+
tableColumns: allTableColumns,
|
|
161
|
+
savedState,
|
|
162
|
+
columnSettings: columnsSettingsProp
|
|
163
|
+
});
|
|
199
164
|
const {
|
|
200
165
|
t
|
|
201
166
|
} = (0, locale_1.useLocale)('Table');
|
|
202
|
-
const
|
|
203
|
-
|
|
204
|
-
columnOrder,
|
|
205
|
-
areAllColumnsEnabled,
|
|
206
|
-
t
|
|
207
|
-
}), [areAllColumnsEnabled, columnDefinitions, columnOrder, t]);
|
|
167
|
+
const manualPagination = infiniteLoading || manualPaginationProp;
|
|
168
|
+
const columnsSettings = (0, react_1.useMemo)(() => getColumnsSettings(columnOrder), [columnOrder, getColumnsSettings]);
|
|
208
169
|
const columnPinning = (0, react_1.useMemo)(() => {
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
};
|
|
214
|
-
for (const col of tableColumns) {
|
|
215
|
-
const id = (0, helperComponents_1.getColumnId)(col);
|
|
216
|
-
if (col.pinned && id) {
|
|
217
|
-
(_a = pinningState[col.pinned]) === null || _a === void 0 ? void 0 : _a.push(id);
|
|
170
|
+
const getColDefIdsFromGroup = columnDefinitions => columnDefinitions.reduce((accArr, colDef) => {
|
|
171
|
+
const id = (0, helperComponents_1.getColumnId)(colDef);
|
|
172
|
+
if (id) {
|
|
173
|
+
accArr.push(id);
|
|
218
174
|
}
|
|
219
|
-
|
|
220
|
-
|
|
221
|
-
|
|
175
|
+
return accArr;
|
|
176
|
+
}, []);
|
|
177
|
+
return {
|
|
178
|
+
left: getColDefIdsFromGroup(pinnedGroups.left),
|
|
179
|
+
right: getColDefIdsFromGroup(pinnedGroups.right)
|
|
180
|
+
};
|
|
181
|
+
}, [pinnedGroups]);
|
|
222
182
|
const enableRowSelection = (0, react_1.useCallback)(row => {
|
|
223
183
|
const parent = row.getParentRow();
|
|
224
184
|
const isParentSelected = parent ? parent.getCanSelect() : true;
|
|
@@ -230,7 +190,7 @@ function Table(_a) {
|
|
|
230
190
|
}, [rowSelectionProp]);
|
|
231
191
|
const table = (0, react_table_1.useReactTable)({
|
|
232
192
|
data,
|
|
233
|
-
columns:
|
|
193
|
+
columns: enabledTableColumns,
|
|
234
194
|
state: {
|
|
235
195
|
columnPinning,
|
|
236
196
|
columnOrder: enableColumnsOrderSortByDrag ? columnOrder : undefined,
|
|
@@ -296,7 +256,7 @@ function Table(_a) {
|
|
|
296
256
|
loadingTable
|
|
297
257
|
} = (0, hooks_1.useLoadingTable)({
|
|
298
258
|
pageSize: Math.min(Math.max(pageSize, 5), constants_1.DEFAULT_PAGE_SIZE),
|
|
299
|
-
columnDefinitions:
|
|
259
|
+
columnDefinitions: enabledColumnsDefinitions,
|
|
300
260
|
columnPinning
|
|
301
261
|
});
|
|
302
262
|
const handleOnRefresh = (0, react_1.useCallback)(() => {
|
|
@@ -346,7 +306,7 @@ function Table(_a) {
|
|
|
346
306
|
flexKey
|
|
347
307
|
} = (0, utils_3.getColumnStyleVars)(header.id);
|
|
348
308
|
const originalColDef = originalColumnDefs.find(col => (0, helperComponents_1.getColumnId)(header) === col.id);
|
|
349
|
-
if (header.id ===
|
|
309
|
+
if (header.id === constants_1.DefaultColumns.Status && !(originalColDef === null || originalColDef === void 0 ? void 0 : originalColDef.header) && !(originalColDef === null || originalColDef === void 0 ? void 0 : originalColDef.enableSorting)) {
|
|
350
310
|
vars[sizeKey] = 'var(--size-table-cell-status-indicator-horizontal)';
|
|
351
311
|
vars[flexKey] = '100%';
|
|
352
312
|
} else {
|
|
@@ -415,7 +375,7 @@ function Table(_a) {
|
|
|
415
375
|
noResultsState,
|
|
416
376
|
errorDataState
|
|
417
377
|
});
|
|
418
|
-
(0,
|
|
378
|
+
(0, hooks_1.usePageReset)({
|
|
419
379
|
manualPagination,
|
|
420
380
|
maximumAvailablePage: pageCount || tableFilteredRows.length / pagination.pageSize,
|
|
421
381
|
pagination,
|
|
@@ -25,4 +25,7 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
25
25
|
__exportStar(require("./useLoadingTable"), exports);
|
|
26
26
|
__exportStar(require("./useStateControl"), exports);
|
|
27
27
|
__exportStar(require("./useColumnOrderByDrag"), exports);
|
|
28
|
-
__exportStar(require("./useColumnSettings"), exports);
|
|
28
|
+
__exportStar(require("./useColumnSettings"), exports);
|
|
29
|
+
__exportStar(require("./usePageReset"), exports);
|
|
30
|
+
__exportStar(require("./useFilters"), exports);
|
|
31
|
+
__exportStar(require("./useSaveTableSettings"), exports);
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useColumnOrderByDrag';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return m[k];
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
} : function (o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
});
|
|
19
|
+
var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
|
|
20
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
});
|
|
25
|
+
__exportStar(require("./useColumnOrderByDrag"), exports);
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { DndContextProps } from '@dnd-kit/core';
|
|
2
|
+
import { Dispatch, SetStateAction } from 'react';
|
|
3
|
+
import { ColumnDefinition } from '../../../../types';
|
|
4
|
+
import { TableProps } from '../../../types';
|
|
5
|
+
type useColumnOrderByDragProps<TData extends object> = {
|
|
6
|
+
tableColumns: ColumnDefinition<TData>[];
|
|
7
|
+
savedState: TableProps<TData>['savedState'];
|
|
8
|
+
columnSettings: TableProps<TData>['columnsSettings'];
|
|
9
|
+
};
|
|
10
|
+
export declare function useColumnOrderByDrag<TData extends object>({ tableColumns, savedState, columnSettings, }: useColumnOrderByDragProps<TData>): {
|
|
11
|
+
columnOrder: string[];
|
|
12
|
+
setColumnOrder: Dispatch<SetStateAction<string[]>>;
|
|
13
|
+
dndContextProps: DndContextProps;
|
|
14
|
+
enableColumnsOrderSortByDrag: boolean;
|
|
15
|
+
};
|
|
16
|
+
export {};
|
|
@@ -5,30 +5,22 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.useColumnOrderByDrag = useColumnOrderByDrag;
|
|
7
7
|
const core_1 = require("@dnd-kit/core");
|
|
8
|
+
const modifiers_1 = require("@dnd-kit/modifiers");
|
|
8
9
|
const sortable_1 = require("@dnd-kit/sortable");
|
|
9
10
|
const react_1 = require("react");
|
|
10
|
-
const
|
|
11
|
-
const validateColumnOrderLocalStorageValue = value => Array.isArray(value) && value.every(setting => typeof setting === 'string');
|
|
12
|
-
const getLocalStorageColumnOrderKey = id => `${id}_columnOrder`;
|
|
13
|
-
function prepareInitialState(tableColumns, savedState) {
|
|
14
|
-
const columnOrder = tableColumns.filter(column => column.pinned !== 'left' && column.pinned !== 'right').map(utils_1.getColumnIdentifier);
|
|
15
|
-
if (savedState === null || savedState === void 0 ? void 0 : savedState.columnSettings) {
|
|
16
|
-
const persistState = JSON.parse(localStorage.getItem(getLocalStorageColumnOrderKey(savedState.id)) || 'null');
|
|
17
|
-
const persistValue = validateColumnOrderLocalStorageValue(persistState) ? persistState : null;
|
|
18
|
-
if (persistValue !== null) {
|
|
19
|
-
return [...persistValue, ...columnOrder.filter(column => !(persistValue === null || persistValue === void 0 ? void 0 : persistValue.includes(column)))];
|
|
20
|
-
}
|
|
21
|
-
localStorage.setItem(getLocalStorageColumnOrderKey(savedState.id), JSON.stringify(columnOrder));
|
|
22
|
-
}
|
|
23
|
-
return columnOrder;
|
|
24
|
-
}
|
|
11
|
+
const prepareInitialState_1 = require("./utils/prepareInitialState");
|
|
25
12
|
const draggingOptions = {
|
|
26
13
|
activationConstraint: {
|
|
27
14
|
distance: 5 // Is required to differ click (sort) from drag
|
|
28
15
|
}
|
|
29
16
|
};
|
|
30
|
-
function useColumnOrderByDrag(
|
|
31
|
-
|
|
17
|
+
function useColumnOrderByDrag(_ref) {
|
|
18
|
+
let {
|
|
19
|
+
tableColumns,
|
|
20
|
+
savedState,
|
|
21
|
+
columnSettings
|
|
22
|
+
} = _ref;
|
|
23
|
+
const [columnOrder, setColumnOrderState] = (0, react_1.useState)(() => (0, prepareInitialState_1.prepareInitialState)(tableColumns, savedState));
|
|
32
24
|
const setColumnOrder = (0, react_1.useCallback)(value => {
|
|
33
25
|
let updatedOrder;
|
|
34
26
|
if (value instanceof Function) {
|
|
@@ -37,15 +29,15 @@ function useColumnOrderByDrag(tableColumns, savedState) {
|
|
|
37
29
|
updatedOrder = value;
|
|
38
30
|
}
|
|
39
31
|
if (savedState === null || savedState === void 0 ? void 0 : savedState.columnSettings) {
|
|
40
|
-
localStorage.setItem(getLocalStorageColumnOrderKey(savedState.id), JSON.stringify(updatedOrder));
|
|
32
|
+
localStorage.setItem((0, prepareInitialState_1.getLocalStorageColumnOrderKey)(savedState.id), JSON.stringify(updatedOrder));
|
|
41
33
|
}
|
|
42
34
|
setColumnOrderState(updatedOrder);
|
|
43
|
-
}, [columnOrder, savedState
|
|
44
|
-
const handleDragEnd = (0, react_1.useCallback)(
|
|
35
|
+
}, [columnOrder, savedState]);
|
|
36
|
+
const handleDragEnd = (0, react_1.useCallback)(_ref2 => {
|
|
45
37
|
let {
|
|
46
38
|
active,
|
|
47
39
|
over
|
|
48
|
-
} =
|
|
40
|
+
} = _ref2;
|
|
49
41
|
if (!active || !over) {
|
|
50
42
|
return;
|
|
51
43
|
}
|
|
@@ -64,10 +56,22 @@ function useColumnOrderByDrag(tableColumns, savedState) {
|
|
|
64
56
|
});
|
|
65
57
|
}, [columnOrder, setColumnOrder]);
|
|
66
58
|
const sensors = (0, core_1.useSensors)((0, core_1.useSensor)(core_1.MouseSensor, draggingOptions), (0, core_1.useSensor)(core_1.TouchSensor, {}), (0, core_1.useSensor)(core_1.KeyboardSensor, {}));
|
|
59
|
+
const enableColumnsOrderSortByDrag = Boolean(columnSettings === null || columnSettings === void 0 ? void 0 : columnSettings.enableDrag);
|
|
60
|
+
const dndContextProps = (0, react_1.useMemo)(() => {
|
|
61
|
+
if (!enableColumnsOrderSortByDrag) {
|
|
62
|
+
return {};
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
collisionDetection: core_1.closestCenter,
|
|
66
|
+
modifiers: [modifiers_1.restrictToHorizontalAxis],
|
|
67
|
+
onDragEnd: handleDragEnd,
|
|
68
|
+
sensors
|
|
69
|
+
};
|
|
70
|
+
}, [enableColumnsOrderSortByDrag, handleDragEnd, sensors]);
|
|
67
71
|
return {
|
|
68
72
|
columnOrder,
|
|
69
73
|
setColumnOrder,
|
|
70
|
-
|
|
71
|
-
|
|
74
|
+
dndContextProps,
|
|
75
|
+
enableColumnsOrderSortByDrag
|
|
72
76
|
};
|
|
73
77
|
}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import { ColumnDefinition } from '../../../../../types';
|
|
2
|
+
import { TableProps } from '../../../../types';
|
|
3
|
+
export declare const getLocalStorageColumnOrderKey: (id: string) => string;
|
|
4
|
+
export declare function prepareInitialState<TData extends object>(tableColumns: ColumnDefinition<TData>[], savedState: TableProps<TData>['savedState']): string[];
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getLocalStorageColumnOrderKey = void 0;
|
|
7
|
+
exports.prepareInitialState = prepareInitialState;
|
|
8
|
+
const utils_1 = require("../../../utils");
|
|
9
|
+
const getLocalStorageColumnOrderKey = id => `${id}_columnOrder`;
|
|
10
|
+
exports.getLocalStorageColumnOrderKey = getLocalStorageColumnOrderKey;
|
|
11
|
+
function prepareInitialState(tableColumns, savedState) {
|
|
12
|
+
const columnOrder = tableColumns.filter(column => column.pinned !== 'left' && column.pinned !== 'right').map(utils_1.getColumnIdentifier);
|
|
13
|
+
if (savedState === null || savedState === void 0 ? void 0 : savedState.columnSettings) {
|
|
14
|
+
const persistState = JSON.parse(localStorage.getItem((0, exports.getLocalStorageColumnOrderKey)(savedState.id)) || 'null');
|
|
15
|
+
const persistValue = (0, utils_1.isEveryArrayItemString)(persistState) ? persistState : null;
|
|
16
|
+
if (persistValue !== null) {
|
|
17
|
+
return [...persistValue, ...columnOrder.filter(column => !(persistValue === null || persistValue === void 0 ? void 0 : persistValue.includes(column)))];
|
|
18
|
+
}
|
|
19
|
+
localStorage.setItem((0, exports.getLocalStorageColumnOrderKey)(savedState.id), JSON.stringify(columnOrder));
|
|
20
|
+
}
|
|
21
|
+
return columnOrder;
|
|
22
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './useColumnSettings';
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return m[k];
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
} : function (o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
});
|
|
19
|
+
var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
|
|
20
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
});
|
|
25
|
+
__exportStar(require("./useColumnSettings"), exports);
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { TableProps } from '../../../types';
|
|
2
|
+
import { PinnedGroupsState } from '../../utils';
|
|
3
|
+
type useColumnSettingsProps<TData extends object, TFilters extends Record<string, unknown>> = Pick<TableProps<TData, TFilters>, 'columnDefinitions' | 'columnsSettings' | 'savedState' | 'rowSelection' | 'expanding'> & Required<Pick<TableProps<TData, TFilters>, 'enableSelectPinned'>> & {
|
|
4
|
+
pinnedGroups: PinnedGroupsState<TData>;
|
|
5
|
+
};
|
|
6
|
+
export declare function useColumnSettings<TData extends object, TFilters extends Record<string, unknown>>({ columnDefinitions, columnsSettings, pinnedGroups, savedState, rowSelection, enableSelectPinned, expanding, }: useColumnSettingsProps<TData, TFilters>): {
|
|
7
|
+
enabledColumns: string[];
|
|
8
|
+
setEnabledColumns: (value: string[]) => void;
|
|
9
|
+
enabledColumnsDefinitions: import("../../../..").ColumnDefinition<TData>[];
|
|
10
|
+
enabledTableColumns: import("../../../..").ColumnDefinition<TData>[];
|
|
11
|
+
getColumnsSettings: (columnOrder: string[]) => [import("@snack-uikit/list/dist/esm/components/Items").GroupSelectItem];
|
|
12
|
+
areColumnsSettingsEnabled: boolean;
|
|
13
|
+
};
|
|
14
|
+
export {};
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useColumnSettings = useColumnSettings;
|
|
7
|
+
const react_1 = require("react");
|
|
8
|
+
const locale_1 = require("@snack-uikit/locale");
|
|
9
|
+
const utils_1 = require("../../utils");
|
|
10
|
+
const utils_2 = require("./utils");
|
|
11
|
+
function useColumnSettings(_ref) {
|
|
12
|
+
let {
|
|
13
|
+
columnDefinitions,
|
|
14
|
+
columnsSettings,
|
|
15
|
+
pinnedGroups,
|
|
16
|
+
savedState,
|
|
17
|
+
rowSelection,
|
|
18
|
+
enableSelectPinned,
|
|
19
|
+
expanding
|
|
20
|
+
} = _ref;
|
|
21
|
+
const {
|
|
22
|
+
t
|
|
23
|
+
} = (0, locale_1.useLocale)('Table');
|
|
24
|
+
const localStorageKey = `${savedState === null || savedState === void 0 ? void 0 : savedState.id}_columnSettings`;
|
|
25
|
+
const configurableColumns = (0, react_1.useMemo)(() => columnDefinitions.filter(utils_2.isColumnVisibilityConfigurable), [columnDefinitions]);
|
|
26
|
+
const [enabledColumns, setEnabledColumns] = (0, react_1.useState)(() => (0, utils_2.getEnabledColumnsInitialState)(configurableColumns, savedState, localStorageKey));
|
|
27
|
+
const setEnabledColumnsOuter = (0, react_1.useCallback)(value => {
|
|
28
|
+
if (savedState === null || savedState === void 0 ? void 0 : savedState.columnSettings) {
|
|
29
|
+
localStorage.setItem(localStorageKey, JSON.stringify(value));
|
|
30
|
+
}
|
|
31
|
+
setEnabledColumns(value);
|
|
32
|
+
}, [localStorageKey, savedState === null || savedState === void 0 ? void 0 : savedState.columnSettings]);
|
|
33
|
+
const areColumnsSettingsEnabled = Boolean(columnsSettings === null || columnsSettings === void 0 ? void 0 : columnsSettings.enableSettingsMenu);
|
|
34
|
+
const enabledColumnsDefinitions = (0, react_1.useMemo)(() => {
|
|
35
|
+
if (!areColumnsSettingsEnabled) {
|
|
36
|
+
return columnDefinitions;
|
|
37
|
+
}
|
|
38
|
+
return columnDefinitions.filter(colDef => {
|
|
39
|
+
if ((0, utils_2.isFilterableColumn)(colDef)) {
|
|
40
|
+
return enabledColumns.includes((0, utils_1.getColumnIdentifier)(colDef));
|
|
41
|
+
}
|
|
42
|
+
return true;
|
|
43
|
+
});
|
|
44
|
+
}, [columnDefinitions, enabledColumns, areColumnsSettingsEnabled]);
|
|
45
|
+
const enableSelection = Boolean(rowSelection === null || rowSelection === void 0 ? void 0 : rowSelection.enable);
|
|
46
|
+
const enabledTableColumns = (0, react_1.useMemo)(() => (0, utils_1.getTableColumnsDefinitions)({
|
|
47
|
+
columnDefinitions: enabledColumnsDefinitions,
|
|
48
|
+
enableSelection,
|
|
49
|
+
enableSelectPinned,
|
|
50
|
+
expanding
|
|
51
|
+
}), [enableSelectPinned, enableSelection, enabledColumnsDefinitions, expanding]);
|
|
52
|
+
const areAllColumnsEnabled = enabledColumns.length === configurableColumns.length;
|
|
53
|
+
const getColumnsSettings = (0, react_1.useCallback)(columnOrder => (0, utils_2.prepareColumnsSettings)({
|
|
54
|
+
pinnedGroups,
|
|
55
|
+
columnOrder,
|
|
56
|
+
areAllColumnsEnabled,
|
|
57
|
+
t
|
|
58
|
+
}), [areAllColumnsEnabled, pinnedGroups, t]);
|
|
59
|
+
return {
|
|
60
|
+
enabledColumns,
|
|
61
|
+
setEnabledColumns: setEnabledColumnsOuter,
|
|
62
|
+
enabledColumnsDefinitions,
|
|
63
|
+
enabledTableColumns,
|
|
64
|
+
getColumnsSettings,
|
|
65
|
+
areColumnsSettingsEnabled
|
|
66
|
+
};
|
|
67
|
+
}
|
package/dist/cjs/components/Table/hooks/useColumnSettings/utils/getEnabledColumnsInitialState.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ColumnDefinition } from '../../../../../types';
|
|
2
|
+
import { TableProps } from '../../../../types';
|
|
3
|
+
export declare function getEnabledColumnsInitialState<TData extends object, TFilters extends Record<string, unknown>>(configurableColumns: ColumnDefinition<TData>[], savedState: TableProps<TFilters>['savedState'], localStorageKey: string): string[];
|
package/dist/cjs/components/Table/hooks/useColumnSettings/utils/getEnabledColumnsInitialState.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getEnabledColumnsInitialState = getEnabledColumnsInitialState;
|
|
7
|
+
const utils_1 = require("../../../utils");
|
|
8
|
+
const isColumnEnabledInitially_1 = require("./isColumnEnabledInitially");
|
|
9
|
+
function getSettingsFromLocalStorage(localStorageKey) {
|
|
10
|
+
const localStorageState = JSON.parse(localStorage.getItem(localStorageKey) || 'null');
|
|
11
|
+
return (0, utils_1.isEveryArrayItemString)(localStorageState) ? localStorageState : null;
|
|
12
|
+
}
|
|
13
|
+
function getEnabledColumnsInitialState(configurableColumns, savedState, localStorageKey) {
|
|
14
|
+
const localStorageSettings = getSettingsFromLocalStorage(localStorageKey);
|
|
15
|
+
return configurableColumns.filter(colDef => {
|
|
16
|
+
const columnIdentifier = (0, utils_1.getColumnIdentifier)(colDef);
|
|
17
|
+
if (localStorageSettings && (savedState === null || savedState === void 0 ? void 0 : savedState.columnSettings)) {
|
|
18
|
+
return Boolean(localStorageSettings.find(columnKey => columnKey === columnIdentifier));
|
|
19
|
+
}
|
|
20
|
+
return (0, isColumnEnabledInitially_1.isColumnEnabledInitially)(colDef);
|
|
21
|
+
}).map(utils_1.getColumnIdentifier);
|
|
22
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var __createBinding = void 0 && (void 0).__createBinding || (Object.create ? function (o, m, k, k2) {
|
|
4
|
+
if (k2 === undefined) k2 = k;
|
|
5
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
6
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7
|
+
desc = {
|
|
8
|
+
enumerable: true,
|
|
9
|
+
get: function () {
|
|
10
|
+
return m[k];
|
|
11
|
+
}
|
|
12
|
+
};
|
|
13
|
+
}
|
|
14
|
+
Object.defineProperty(o, k2, desc);
|
|
15
|
+
} : function (o, m, k, k2) {
|
|
16
|
+
if (k2 === undefined) k2 = k;
|
|
17
|
+
o[k2] = m[k];
|
|
18
|
+
});
|
|
19
|
+
var __exportStar = void 0 && (void 0).__exportStar || function (m, exports) {
|
|
20
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
21
|
+
};
|
|
22
|
+
Object.defineProperty(exports, "__esModule", {
|
|
23
|
+
value: true
|
|
24
|
+
});
|
|
25
|
+
__exportStar(require("./isFilterableColumn"), exports);
|
|
26
|
+
__exportStar(require("./isColumnEnabledInitially"), exports);
|
|
27
|
+
__exportStar(require("./isColumnVisibilityConfigurable"), exports);
|
|
28
|
+
__exportStar(require("./prepareColumnsSettings"), exports);
|
|
29
|
+
__exportStar(require("./getEnabledColumnsInitialState"), exports);
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isColumnEnabledInitially = isColumnEnabledInitially;
|
|
7
|
+
function isColumnEnabledInitially(colDef) {
|
|
8
|
+
var _a;
|
|
9
|
+
if ('columnSettings' in colDef && colDef.columnSettings !== undefined) {
|
|
10
|
+
return ((_a = colDef.columnSettings) === null || _a === void 0 ? void 0 : _a.mode) !== 'defaultFalse';
|
|
11
|
+
}
|
|
12
|
+
return true;
|
|
13
|
+
}
|
package/dist/cjs/components/Table/hooks/useColumnSettings/utils/isColumnVisibilityConfigurable.js
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.isColumnVisibilityConfigurable = isColumnVisibilityConfigurable;
|
|
7
|
+
function isColumnVisibilityConfigurable(colDef) {
|
|
8
|
+
if ('columnSettings' in colDef && colDef.columnSettings !== undefined) {
|
|
9
|
+
const {
|
|
10
|
+
mode
|
|
11
|
+
} = colDef.columnSettings;
|
|
12
|
+
if (!mode) {
|
|
13
|
+
return true;
|
|
14
|
+
}
|
|
15
|
+
switch (mode) {
|
|
16
|
+
case 'hidden':
|
|
17
|
+
return false;
|
|
18
|
+
case 'defaultTrue':
|
|
19
|
+
case 'defaultFalse':
|
|
20
|
+
default:
|
|
21
|
+
return true;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return true;
|
|
25
|
+
}
|