@tanstack/table-core 8.0.0-alpha.67 → 8.0.0-alpha.70
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/build/cjs/aggregationFns.js +25 -37
- package/build/cjs/aggregationFns.js.map +1 -1
- package/build/cjs/core.js +167 -46
- package/build/cjs/core.js.map +1 -1
- package/build/cjs/createTable.js +24 -40
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/Cells.js +28 -34
- package/build/cjs/features/Cells.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +102 -116
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Columns.js +52 -79
- package/build/cjs/features/Columns.js.map +1 -1
- package/build/cjs/features/Expanding.js +49 -58
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +98 -193
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +53 -71
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Headers.js +109 -165
- package/build/cjs/features/Headers.js.map +1 -1
- package/build/cjs/features/Ordering.js +31 -43
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +79 -82
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +71 -125
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +93 -112
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Rows.js +32 -22
- package/build/cjs/features/Rows.js.map +1 -1
- package/build/cjs/features/Sorting.js +54 -73
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +47 -86
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +48 -72
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/index.js +13 -13
- package/build/cjs/sortingFns.js +21 -21
- package/build/cjs/sortingFns.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +49 -55
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +98 -0
- package/build/cjs/utils/getCoreRowModel.js.map +1 -0
- package/build/cjs/utils/getExpandedRowModel.js +17 -21
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +48 -0
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
- package/build/cjs/utils/getFacetedRowModel.js +50 -0
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
- package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
- package/build/cjs/utils/getFilteredRowModel.js +130 -0
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
- package/build/cjs/utils/getGroupedRowModel.js +126 -136
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +39 -39
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +112 -0
- package/build/cjs/utils/getSortedRowModel.js.map +1 -0
- package/build/cjs/utils.js +36 -207
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +1778 -2347
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +421 -481
- package/build/types/core.d.ts +3 -5
- package/build/types/features/Cells.d.ts +1 -1
- package/build/types/features/ColumnSizing.d.ts +2 -2
- package/build/types/features/Columns.d.ts +1 -1
- package/build/types/features/Expanding.d.ts +1 -1
- package/build/types/features/Filters.d.ts +12 -7
- package/build/types/features/Grouping.d.ts +5 -4
- package/build/types/features/Ordering.d.ts +1 -1
- package/build/types/features/Pagination.d.ts +4 -4
- package/build/types/features/Pinning.d.ts +1 -1
- package/build/types/features/RowSelection.d.ts +1 -1
- package/build/types/features/Rows.d.ts +4 -3
- package/build/types/features/Sorting.d.ts +2 -1
- package/build/types/features/Visibility.d.ts +1 -0
- package/build/types/index.d.ts +6 -4
- package/build/types/types.d.ts +3 -13
- package/build/types/utils/filterRowsUtils.d.ts +3 -3
- package/build/types/utils/getCoreRowModel.d.ts +2 -0
- package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
- package/build/types/utils/getFacetedRowModel.d.ts +2 -0
- package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
- package/build/types/utils/{getCoreRowModelSync.d.ts → getFilteredRowModel.d.ts} +1 -1
- package/build/types/utils/getGroupedRowModel.d.ts +1 -1
- package/build/types/utils/getSortedRowModel.d.ts +2 -0
- package/build/types/utils.d.ts +1 -17
- package/build/umd/index.development.js +1779 -2350
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/core.ts +197 -45
- package/src/features/Cells.ts +7 -11
- package/src/features/ColumnSizing.ts +27 -19
- package/src/features/Columns.ts +4 -8
- package/src/features/Expanding.ts +5 -3
- package/src/features/Filters.ts +105 -162
- package/src/features/Grouping.ts +21 -23
- package/src/features/Ordering.ts +5 -3
- package/src/features/Pagination.ts +32 -19
- package/src/features/Pinning.ts +13 -7
- package/src/features/RowSelection.ts +5 -3
- package/src/features/Rows.ts +21 -6
- package/src/features/Sorting.ts +14 -12
- package/src/features/Visibility.ts +7 -0
- package/src/filterFns.ts +9 -9
- package/src/index.ts +12 -4
- package/src/sortingFns.ts +11 -11
- package/src/types.ts +3 -16
- package/src/utils/filterRowsUtils.ts +47 -68
- package/src/utils/{getCoreRowModelSync.ts → getCoreRowModel.ts} +2 -8
- package/src/utils/getFacetedMinMaxValues.ts +37 -0
- package/src/utils/getFacetedRowModel.ts +50 -0
- package/src/utils/getFacetedUniqueValues.ts +37 -0
- package/src/utils/{getFilteredRowModelSync.ts → getFilteredRowModel.ts} +29 -20
- package/src/utils/getGroupedRowModel.ts +52 -61
- package/src/utils/{getSortedRowModelSync.ts → getSortedRowModel.ts} +3 -3
- package/src/utils.ts +28 -236
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/cjs/utils/getCoreRowModelAsync.js +0 -125
- package/build/cjs/utils/getCoreRowModelAsync.js.map +0 -1
- package/build/cjs/utils/getCoreRowModelSync.js +0 -102
- package/build/cjs/utils/getCoreRowModelSync.js.map +0 -1
- package/build/cjs/utils/getFilteredRowModelSync.js +0 -125
- package/build/cjs/utils/getFilteredRowModelSync.js.map +0 -1
- package/build/cjs/utils/getSortedRowModelSync.js +0 -118
- package/build/cjs/utils/getSortedRowModelSync.js.map +0 -1
- package/build/types/utils/getCoreRowModelAsync.d.ts +0 -4
- package/build/types/utils/getFilteredRowModelAsync.d.ts +0 -4
- package/build/types/utils/getFilteredRowModelSync.d.ts +0 -2
- package/build/types/utils/getSortedRowModelAsync.d.ts +0 -13
- package/build/types/utils/getSortedRowModelSync.d.ts +0 -2
- package/src/utils/getCoreRowModelAsync.ts +0 -104
- package/src/utils/getFilteredRowModelAsync.ts +0 -157
- package/src/utils/getSortedRowModelAsync.ts +0 -200
|
@@ -12,58 +12,49 @@
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
|
-
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
16
15
|
var utils = require('../utils.js');
|
|
17
16
|
|
|
18
17
|
//
|
|
19
|
-
|
|
20
|
-
createInstance:
|
|
18
|
+
const Columns = {
|
|
19
|
+
createInstance: instance => {
|
|
21
20
|
return {
|
|
22
|
-
getDefaultColumn: utils.memo(
|
|
23
|
-
return [instance.options.defaultColumn];
|
|
24
|
-
}, function (defaultColumn) {
|
|
21
|
+
getDefaultColumn: utils.memo(() => [instance.options.defaultColumn], defaultColumn => {
|
|
25
22
|
var _defaultColumn;
|
|
26
23
|
|
|
27
24
|
defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};
|
|
28
|
-
return
|
|
29
|
-
header:
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
25
|
+
return {
|
|
26
|
+
header: props => props.header.column.id,
|
|
27
|
+
footer: props => props.header.column.id,
|
|
28
|
+
cell: props => {
|
|
29
|
+
var _props$getValue$toStr, _props$getValue$toStr2, _props$getValue;
|
|
30
|
+
|
|
31
|
+
return (_props$getValue$toStr = (_props$getValue$toStr2 = (_props$getValue = props.getValue()).toString) == null ? void 0 : _props$getValue$toStr2.call(_props$getValue)) != null ? _props$getValue$toStr : null;
|
|
34
32
|
},
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
}, instance._features.reduce(function (obj, feature) {
|
|
41
|
-
return Object.assign(obj, feature.getDefaultColumn == null ? void 0 : feature.getDefaultColumn());
|
|
42
|
-
}, {}), defaultColumn);
|
|
33
|
+
...instance._features.reduce((obj, feature) => {
|
|
34
|
+
return Object.assign(obj, feature.getDefaultColumn == null ? void 0 : feature.getDefaultColumn());
|
|
35
|
+
}, {}),
|
|
36
|
+
...defaultColumn
|
|
37
|
+
};
|
|
43
38
|
}, {
|
|
44
|
-
debug:
|
|
39
|
+
debug: () => {
|
|
45
40
|
var _instance$options$deb;
|
|
46
41
|
|
|
47
42
|
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugColumns;
|
|
48
43
|
},
|
|
49
44
|
key: process.env.NODE_ENV === 'development' && 'getDefaultColumn'
|
|
50
45
|
}),
|
|
51
|
-
getColumnDefs:
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
createColumn: function createColumn(columnDef, depth, parent) {
|
|
55
|
-
var _ref2, _columnDef$id;
|
|
46
|
+
getColumnDefs: () => instance.options.columns,
|
|
47
|
+
createColumn: (columnDef, depth, parent) => {
|
|
48
|
+
var _ref, _columnDef$id;
|
|
56
49
|
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
50
|
+
const defaultColumn = instance.getDefaultColumn();
|
|
51
|
+
let id = (_ref = (_columnDef$id = columnDef.id) != null ? _columnDef$id : columnDef.accessorKey) != null ? _ref : typeof columnDef.header === 'string' ? columnDef.header : undefined;
|
|
52
|
+
let accessorFn;
|
|
60
53
|
|
|
61
54
|
if (columnDef.accessorFn) {
|
|
62
55
|
accessorFn = columnDef.accessorFn;
|
|
63
56
|
} else if (columnDef.accessorKey) {
|
|
64
|
-
accessorFn =
|
|
65
|
-
return originalRow[columnDef.accessorKey];
|
|
66
|
-
};
|
|
57
|
+
accessorFn = originalRow => originalRow[columnDef.accessorKey];
|
|
67
58
|
}
|
|
68
59
|
|
|
69
60
|
if (!id) {
|
|
@@ -74,69 +65,59 @@ var Columns = {
|
|
|
74
65
|
throw new Error();
|
|
75
66
|
}
|
|
76
67
|
|
|
77
|
-
|
|
68
|
+
let column = { ...defaultColumn,
|
|
69
|
+
...columnDef,
|
|
78
70
|
id: "" + id,
|
|
79
|
-
accessorFn
|
|
71
|
+
accessorFn,
|
|
80
72
|
parent: parent,
|
|
81
|
-
depth
|
|
82
|
-
columnDef
|
|
73
|
+
depth,
|
|
74
|
+
columnDef,
|
|
83
75
|
columnDefType: columnDef.columnDefType,
|
|
84
76
|
columns: [],
|
|
85
|
-
getFlatColumns: utils.memo(
|
|
86
|
-
return [true];
|
|
87
|
-
}, function () {
|
|
77
|
+
getFlatColumns: utils.memo(() => [true], () => {
|
|
88
78
|
var _column$columns;
|
|
89
79
|
|
|
90
|
-
return [column
|
|
91
|
-
return d.getFlatColumns();
|
|
92
|
-
}));
|
|
80
|
+
return [column, ...((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(d => d.getFlatColumns()))];
|
|
93
81
|
}, {
|
|
94
82
|
key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',
|
|
95
|
-
debug:
|
|
83
|
+
debug: () => {
|
|
96
84
|
var _instance$options$deb2;
|
|
97
85
|
|
|
98
86
|
return (_instance$options$deb2 = instance.options.debugAll) != null ? _instance$options$deb2 : instance.options.debugColumns;
|
|
99
87
|
}
|
|
100
88
|
}),
|
|
101
|
-
getLeafColumns: utils.memo(
|
|
102
|
-
return [instance._getOrderColumnsFn()];
|
|
103
|
-
}, function (orderColumns) {
|
|
89
|
+
getLeafColumns: utils.memo(() => [instance._getOrderColumnsFn()], orderColumns => {
|
|
104
90
|
var _column$columns2;
|
|
105
91
|
|
|
106
92
|
if ((_column$columns2 = column.columns) != null && _column$columns2.length) {
|
|
107
|
-
|
|
108
|
-
return column.getLeafColumns();
|
|
109
|
-
});
|
|
93
|
+
let leafColumns = column.columns.flatMap(column => column.getLeafColumns());
|
|
110
94
|
return orderColumns(leafColumns);
|
|
111
95
|
}
|
|
112
96
|
|
|
113
97
|
return [column];
|
|
114
98
|
}, {
|
|
115
99
|
key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',
|
|
116
|
-
debug:
|
|
100
|
+
debug: () => {
|
|
117
101
|
var _instance$options$deb3;
|
|
118
102
|
|
|
119
103
|
return (_instance$options$deb3 = instance.options.debugAll) != null ? _instance$options$deb3 : instance.options.debugColumns;
|
|
120
104
|
}
|
|
121
105
|
})
|
|
122
|
-
}
|
|
123
|
-
|
|
124
|
-
column = instance._features.reduce(function (obj, feature) {
|
|
106
|
+
};
|
|
107
|
+
column = instance._features.reduce((obj, feature) => {
|
|
125
108
|
return Object.assign(obj, feature.createColumn == null ? void 0 : feature.createColumn(column, instance));
|
|
126
109
|
}, column); // Yes, we have to convert instance to uknown, because we know more than the compiler here.
|
|
127
110
|
|
|
128
111
|
return column;
|
|
129
112
|
},
|
|
130
|
-
getAllColumns: utils.memo(
|
|
131
|
-
|
|
132
|
-
}, function (columnDefs) {
|
|
133
|
-
var recurseColumns = function recurseColumns(columnDefs, parent, depth) {
|
|
113
|
+
getAllColumns: utils.memo(() => [instance.getColumnDefs()], columnDefs => {
|
|
114
|
+
const recurseColumns = function (columnDefs, parent, depth) {
|
|
134
115
|
if (depth === void 0) {
|
|
135
116
|
depth = 0;
|
|
136
117
|
}
|
|
137
118
|
|
|
138
|
-
return columnDefs.map(
|
|
139
|
-
|
|
119
|
+
return columnDefs.map(columnDef => {
|
|
120
|
+
const column = instance.createColumn(columnDef, depth, parent);
|
|
140
121
|
column.columns = columnDef.columns ? recurseColumns(columnDef.columns, column, depth + 1) : [];
|
|
141
122
|
return column;
|
|
142
123
|
});
|
|
@@ -145,58 +126,50 @@ var Columns = {
|
|
|
145
126
|
return recurseColumns(columnDefs);
|
|
146
127
|
}, {
|
|
147
128
|
key: process.env.NODE_ENV === 'development' && 'getAllColumns',
|
|
148
|
-
debug:
|
|
129
|
+
debug: () => {
|
|
149
130
|
var _instance$options$deb4;
|
|
150
131
|
|
|
151
132
|
return (_instance$options$deb4 = instance.options.debugAll) != null ? _instance$options$deb4 : instance.options.debugColumns;
|
|
152
133
|
}
|
|
153
134
|
}),
|
|
154
|
-
getAllFlatColumns: utils.memo(
|
|
155
|
-
return
|
|
156
|
-
}, function (allColumns) {
|
|
157
|
-
return allColumns.flatMap(function (column) {
|
|
135
|
+
getAllFlatColumns: utils.memo(() => [instance.getAllColumns()], allColumns => {
|
|
136
|
+
return allColumns.flatMap(column => {
|
|
158
137
|
return column.getFlatColumns();
|
|
159
138
|
});
|
|
160
139
|
}, {
|
|
161
140
|
key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',
|
|
162
|
-
debug:
|
|
141
|
+
debug: () => {
|
|
163
142
|
var _instance$options$deb5;
|
|
164
143
|
|
|
165
144
|
return (_instance$options$deb5 = instance.options.debugAll) != null ? _instance$options$deb5 : instance.options.debugColumns;
|
|
166
145
|
}
|
|
167
146
|
}),
|
|
168
|
-
getAllFlatColumnsById: utils.memo(
|
|
169
|
-
return
|
|
170
|
-
}, function (flatColumns) {
|
|
171
|
-
return flatColumns.reduce(function (acc, column) {
|
|
147
|
+
getAllFlatColumnsById: utils.memo(() => [instance.getAllFlatColumns()], flatColumns => {
|
|
148
|
+
return flatColumns.reduce((acc, column) => {
|
|
172
149
|
acc[column.id] = column;
|
|
173
150
|
return acc;
|
|
174
151
|
}, {});
|
|
175
152
|
}, {
|
|
176
153
|
key: process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',
|
|
177
|
-
debug:
|
|
154
|
+
debug: () => {
|
|
178
155
|
var _instance$options$deb6;
|
|
179
156
|
|
|
180
157
|
return (_instance$options$deb6 = instance.options.debugAll) != null ? _instance$options$deb6 : instance.options.debugColumns;
|
|
181
158
|
}
|
|
182
159
|
}),
|
|
183
|
-
getAllLeafColumns: utils.memo(
|
|
184
|
-
|
|
185
|
-
}, function (allColumns, orderColumns) {
|
|
186
|
-
var leafColumns = allColumns.flatMap(function (column) {
|
|
187
|
-
return column.getLeafColumns();
|
|
188
|
-
});
|
|
160
|
+
getAllLeafColumns: utils.memo(() => [instance.getAllColumns(), instance._getOrderColumnsFn()], (allColumns, orderColumns) => {
|
|
161
|
+
let leafColumns = allColumns.flatMap(column => column.getLeafColumns());
|
|
189
162
|
return orderColumns(leafColumns);
|
|
190
163
|
}, {
|
|
191
164
|
key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',
|
|
192
|
-
debug:
|
|
165
|
+
debug: () => {
|
|
193
166
|
var _instance$options$deb7;
|
|
194
167
|
|
|
195
168
|
return (_instance$options$deb7 = instance.options.debugAll) != null ? _instance$options$deb7 : instance.options.debugColumns;
|
|
196
169
|
}
|
|
197
170
|
}),
|
|
198
|
-
getColumn:
|
|
199
|
-
|
|
171
|
+
getColumn: columnId => {
|
|
172
|
+
const column = instance.getAllFlatColumnsById()[columnId];
|
|
200
173
|
|
|
201
174
|
if (!column) {
|
|
202
175
|
if (process.env.NODE_ENV !== 'production') {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Columns.js","sources":["../../../src/features/Columns.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Header,\n TableGenerics,\n TableInstance,\n Row,\n AccessorFn,\n ColumnDef,\n Renderable,\n HeaderRenderProps,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\nexport type CoreColumnDef<TGenerics extends TableGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n value: TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n\nexport type CoreColumn<TGenerics extends TableGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n columnDefType: CoreColumnDefType\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport type ColumnsOptions<TGenerics extends TableGenerics> = {\n columns: ColumnDef<TGenerics>[]\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n}\n\nexport type ColumnsInstance<TGenerics extends TableGenerics> = {\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n}\n\n//\n\nexport const Columns = {\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnsInstance<TGenerics> => {\n return {\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n footer: (props: HeaderRenderProps<Header<TGenerics>>) =>\n props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (\n columnDef: ColumnDef<TGenerics> & { columnDefType?: CoreColumnDefType },\n depth: number,\n parent\n ) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columnDefType: columnDef.columnDefType as CoreColumnDefType,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, instance))\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column =>\n column.getLeafColumns()\n )\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n },\n}\n"],"names":["Columns","createInstance","instance","getDefaultColumn","memo","options","defaultColumn","_extends","header","props","column","id","footer","cell","value","toString","_features","reduce","obj","feature","Object","assign","debug","debugAll","debugColumns","key","process","env","NODE_ENV","getColumnDefs","columns","createColumn","columnDef","depth","parent","accessorKey","undefined","accessorFn","originalRow","Error","columnDefType","getFlatColumns","flatMap","d","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","console","warn"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Columns.js","sources":["../../../src/features/Columns.ts"],"sourcesContent":["import {\n Cell,\n Column,\n Header,\n TableGenerics,\n TableInstance,\n Row,\n AccessorFn,\n ColumnDef,\n Renderable,\n} from '../types'\nimport { memo } from '../utils'\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\nexport type CoreColumnDef<TGenerics extends TableGenerics> = {\n id: string\n accessorKey?: string & keyof TGenerics['Row']\n accessorFn?: AccessorFn<TGenerics['Row']>\n columns?: ColumnDef<TGenerics>[]\n header?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n footer?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n header: Header<TGenerics>\n column: Column<TGenerics>\n }\n >\n cell?: Renderable<\n TGenerics,\n {\n instance: TableInstance<TGenerics>\n row: Row<TGenerics>\n column: Column<TGenerics>\n cell: Cell<TGenerics>\n getValue: () => TGenerics['Value']\n }\n >\n meta?: TGenerics['ColumnMeta']\n}\n\nexport type CoreColumn<TGenerics extends TableGenerics> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TGenerics['Row']>\n columnDef: ColumnDef<TGenerics>\n columnDefType: CoreColumnDefType\n columns: Column<TGenerics>[]\n parent?: Column<TGenerics>\n getFlatColumns: () => Column<TGenerics>[]\n getLeafColumns: () => Column<TGenerics>[]\n}\n\nexport type ColumnsOptions<TGenerics extends TableGenerics> = {\n columns: ColumnDef<TGenerics>[]\n defaultColumn?: Partial<ColumnDef<TGenerics>>\n}\n\nexport type ColumnsInstance<TGenerics extends TableGenerics> = {\n getDefaultColumn: () => Partial<ColumnDef<TGenerics>>\n getColumnDefs: () => ColumnDef<TGenerics>[]\n createColumn: (\n columnDef: ColumnDef<TGenerics>,\n depth: number,\n parent?: Column<TGenerics>\n ) => Column<TGenerics>\n getAllColumns: () => Column<TGenerics>[]\n getAllFlatColumns: () => Column<TGenerics>[]\n getAllFlatColumnsById: () => Record<string, Column<TGenerics>>\n getAllLeafColumns: () => Column<TGenerics>[]\n getColumn: (columnId: string) => Column<TGenerics>\n}\n\n//\n\nexport const Columns = {\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ColumnsInstance<TGenerics> => {\n return {\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<ColumnDef<TGenerics>>\n\n return {\n header: props => props.header.column.id,\n footer: props => props.header.column.id,\n cell: props => props.getValue().toString?.() ?? null,\n ...instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultColumn?.())\n }, {}),\n ...defaultColumn,\n } as Partial<ColumnDef<TGenerics>>\n },\n {\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n key: process.env.NODE_ENV === 'development' && 'getDefaultColumn',\n }\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (\n columnDef: ColumnDef<TGenerics> & { columnDefType?: CoreColumnDefType },\n depth: number,\n parent\n ) => {\n const defaultColumn = instance.getDefaultColumn()\n\n let id =\n columnDef.id ??\n columnDef.accessorKey ??\n (typeof columnDef.header === 'string' ? columnDef.header : undefined)\n\n let accessorFn: AccessorFn<TGenerics['Row']> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TGenerics['Row']) =>\n (originalRow as any)[columnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n columnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TGenerics> = {\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columnDefType: columnDef.columnDefType as CoreColumnDefType,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TGenerics>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'column.getFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [instance._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TGenerics>]\n },\n {\n key:\n process.env.NODE_ENV === 'production' &&\n 'column.getLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n }\n\n column = instance._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, instance))\n }, column)\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<TGenerics>\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n const recurseColumns = (\n columnDefs: ColumnDef<TGenerics>[],\n parent?: Column<TGenerics>,\n depth = 0\n ): Column<TGenerics>[] => {\n return columnDefs.map(columnDef => {\n const column = instance.createColumn(columnDef, depth, parent)\n\n column.columns = columnDef.columns\n ? recurseColumns(columnDef.columns, column, depth + 1)\n : []\n\n return column\n })\n }\n\n return recurseColumns(columnDefs)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllFlatColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllFlatColumnsById: memo(\n () => [instance.getAllFlatColumns()],\n flatColumns => {\n return flatColumns.reduce((acc, column) => {\n acc[column.id] = column\n return acc\n }, {} as Record<string, Column<TGenerics>>)\n },\n {\n key:\n process.env.NODE_ENV === 'development' && 'getAllFlatColumnsById',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance._getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column =>\n column.getLeafColumns()\n )\n return orderColumns(leafColumns)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getAllLeafColumns',\n debug: () =>\n instance.options.debugAll ?? instance.options.debugColumns,\n }\n ),\n\n getColumn: columnId => {\n const column = instance.getAllFlatColumnsById()[columnId]\n\n if (!column) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(`[Table] Column with id ${columnId} does not exist.`)\n }\n throw new Error()\n }\n\n return column\n },\n }\n },\n}\n"],"names":["Columns","createInstance","instance","getDefaultColumn","memo","options","defaultColumn","header","props","column","id","footer","cell","getValue","toString","_features","reduce","obj","feature","Object","assign","debug","debugAll","debugColumns","key","process","env","NODE_ENV","getColumnDefs","columns","createColumn","columnDef","depth","parent","accessorKey","undefined","accessorFn","originalRow","Error","columnDefType","getFlatColumns","flatMap","d","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","acc","getAllLeafColumns","getColumn","columnId","console","warn"],"mappings":"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"}
|
|
@@ -12,17 +12,17 @@
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
|
-
var _rollupPluginBabelHelpers = require('../_virtual/_rollupPluginBabelHelpers.js');
|
|
16
15
|
var utils = require('../utils.js');
|
|
17
16
|
|
|
18
17
|
//
|
|
19
|
-
|
|
20
|
-
getInitialState:
|
|
21
|
-
return
|
|
22
|
-
expanded: {}
|
|
23
|
-
|
|
18
|
+
const Expanding = {
|
|
19
|
+
getInitialState: state => {
|
|
20
|
+
return {
|
|
21
|
+
expanded: {},
|
|
22
|
+
...state
|
|
23
|
+
};
|
|
24
24
|
},
|
|
25
|
-
getDefaultOptions:
|
|
25
|
+
getDefaultOptions: instance => {
|
|
26
26
|
return {
|
|
27
27
|
onExpandedChange: utils.makeStateUpdater('expanded', instance),
|
|
28
28
|
autoResetExpanded: true,
|
|
@@ -30,10 +30,10 @@ var Expanding = {
|
|
|
30
30
|
paginateExpandedRows: true
|
|
31
31
|
};
|
|
32
32
|
},
|
|
33
|
-
createInstance:
|
|
34
|
-
|
|
33
|
+
createInstance: instance => {
|
|
34
|
+
let registered = false;
|
|
35
35
|
return {
|
|
36
|
-
_autoResetExpanded:
|
|
36
|
+
_autoResetExpanded: () => {
|
|
37
37
|
if (!registered) {
|
|
38
38
|
registered = true;
|
|
39
39
|
return;
|
|
@@ -47,66 +47,58 @@ var Expanding = {
|
|
|
47
47
|
instance.resetExpanded();
|
|
48
48
|
}
|
|
49
49
|
},
|
|
50
|
-
setExpanded:
|
|
51
|
-
|
|
52
|
-
},
|
|
53
|
-
toggleAllRowsExpanded: function toggleAllRowsExpanded(expanded) {
|
|
50
|
+
setExpanded: updater => instance.options.onExpandedChange == null ? void 0 : instance.options.onExpandedChange(updater),
|
|
51
|
+
toggleAllRowsExpanded: expanded => {
|
|
54
52
|
if (expanded != null ? expanded : !instance.getIsAllRowsExpanded()) {
|
|
55
53
|
instance.setExpanded(true);
|
|
56
54
|
} else {
|
|
57
55
|
instance.setExpanded({});
|
|
58
56
|
}
|
|
59
57
|
},
|
|
60
|
-
resetExpanded:
|
|
58
|
+
resetExpanded: defaultState => {
|
|
61
59
|
var _instance$initialStat, _instance$initialStat2;
|
|
62
60
|
|
|
63
|
-
instance.setExpanded((_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.expanded) != null ? _instance$initialStat : {});
|
|
61
|
+
instance.setExpanded(defaultState ? {} : (_instance$initialStat = (_instance$initialStat2 = instance.initialState) == null ? void 0 : _instance$initialStat2.expanded) != null ? _instance$initialStat : {});
|
|
64
62
|
},
|
|
65
|
-
getCanSomeRowsExpand:
|
|
66
|
-
return instance.getRowModel().flatRows.some(
|
|
67
|
-
return row.getCanExpand();
|
|
68
|
-
});
|
|
63
|
+
getCanSomeRowsExpand: () => {
|
|
64
|
+
return instance.getRowModel().flatRows.some(row => row.getCanExpand());
|
|
69
65
|
},
|
|
70
|
-
getToggleAllRowsExpandedHandler:
|
|
71
|
-
return
|
|
66
|
+
getToggleAllRowsExpandedHandler: () => {
|
|
67
|
+
return e => {
|
|
72
68
|
e.persist == null ? void 0 : e.persist();
|
|
73
69
|
instance.toggleAllRowsExpanded();
|
|
74
70
|
};
|
|
75
71
|
},
|
|
76
|
-
getIsSomeRowsExpanded:
|
|
77
|
-
|
|
72
|
+
getIsSomeRowsExpanded: () => {
|
|
73
|
+
const expanded = instance.getState().expanded;
|
|
78
74
|
return expanded === true || Object.values(expanded).some(Boolean);
|
|
79
75
|
},
|
|
80
|
-
getIsAllRowsExpanded:
|
|
81
|
-
|
|
76
|
+
getIsAllRowsExpanded: () => {
|
|
77
|
+
const expanded = instance.getState().expanded; // If expanded is true, save some cycles and return true
|
|
82
78
|
|
|
83
79
|
if (expanded === true) {
|
|
84
80
|
return true;
|
|
85
81
|
} // If any row is not expanded, return false
|
|
86
82
|
|
|
87
83
|
|
|
88
|
-
if (instance.getRowModel().flatRows.some(
|
|
89
|
-
return row.getIsExpanded();
|
|
90
|
-
})) {
|
|
84
|
+
if (instance.getRowModel().flatRows.some(row => row.getIsExpanded())) {
|
|
91
85
|
return false;
|
|
92
86
|
} // They must all be expanded :shrug:
|
|
93
87
|
|
|
94
88
|
|
|
95
89
|
return true;
|
|
96
90
|
},
|
|
97
|
-
getExpandedDepth:
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
rowIds.forEach(
|
|
101
|
-
|
|
91
|
+
getExpandedDepth: () => {
|
|
92
|
+
let maxDepth = 0;
|
|
93
|
+
const rowIds = instance.getState().expanded === true ? Object.keys(instance.getRowModel().rowsById) : Object.keys(instance.getState().expanded);
|
|
94
|
+
rowIds.forEach(id => {
|
|
95
|
+
const splitId = id.split('.');
|
|
102
96
|
maxDepth = Math.max(maxDepth, splitId.length);
|
|
103
97
|
});
|
|
104
98
|
return maxDepth;
|
|
105
99
|
},
|
|
106
|
-
getPreExpandedRowModel:
|
|
107
|
-
|
|
108
|
-
},
|
|
109
|
-
getExpandedRowModel: function getExpandedRowModel() {
|
|
100
|
+
getPreExpandedRowModel: () => instance.getGroupedRowModel(),
|
|
101
|
+
getExpandedRowModel: () => {
|
|
110
102
|
if (!instance._getExpandedRowModel && instance.options.getExpandedRowModel) {
|
|
111
103
|
instance._getExpandedRowModel = instance.options.getExpandedRowModel(instance);
|
|
112
104
|
}
|
|
@@ -119,17 +111,17 @@ var Expanding = {
|
|
|
119
111
|
}
|
|
120
112
|
};
|
|
121
113
|
},
|
|
122
|
-
createRow:
|
|
114
|
+
createRow: (row, instance) => {
|
|
123
115
|
return {
|
|
124
|
-
toggleExpanded:
|
|
125
|
-
instance.setExpanded(
|
|
116
|
+
toggleExpanded: expanded => {
|
|
117
|
+
instance.setExpanded(old => {
|
|
126
118
|
var _expanded;
|
|
127
119
|
|
|
128
|
-
|
|
129
|
-
|
|
120
|
+
const exists = old === true ? true : !!(old != null && old[row.id]);
|
|
121
|
+
let oldExpanded = {};
|
|
130
122
|
|
|
131
123
|
if (old === true) {
|
|
132
|
-
Object.keys(instance.getRowModel().rowsById).forEach(
|
|
124
|
+
Object.keys(instance.getRowModel().rowsById).forEach(rowId => {
|
|
133
125
|
oldExpanded[rowId] = true;
|
|
134
126
|
});
|
|
135
127
|
} else {
|
|
@@ -139,37 +131,36 @@ var Expanding = {
|
|
|
139
131
|
expanded = (_expanded = expanded) != null ? _expanded : !exists;
|
|
140
132
|
|
|
141
133
|
if (!exists && expanded) {
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
134
|
+
return { ...oldExpanded,
|
|
135
|
+
[row.id]: true
|
|
136
|
+
};
|
|
145
137
|
}
|
|
146
138
|
|
|
147
139
|
if (exists && !expanded) {
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
140
|
+
const {
|
|
141
|
+
[row.id]: _,
|
|
142
|
+
...rest
|
|
143
|
+
} = oldExpanded;
|
|
153
144
|
return rest;
|
|
154
145
|
}
|
|
155
146
|
|
|
156
147
|
return old;
|
|
157
148
|
});
|
|
158
149
|
},
|
|
159
|
-
getIsExpanded:
|
|
150
|
+
getIsExpanded: () => {
|
|
160
151
|
var _instance$options$get;
|
|
161
152
|
|
|
162
|
-
|
|
153
|
+
const expanded = instance.getState().expanded;
|
|
163
154
|
return !!((_instance$options$get = instance.options.getIsRowExpanded == null ? void 0 : instance.options.getIsRowExpanded(row)) != null ? _instance$options$get : expanded === true || (expanded == null ? void 0 : expanded[row.id]));
|
|
164
155
|
},
|
|
165
|
-
getCanExpand:
|
|
156
|
+
getCanExpand: () => {
|
|
166
157
|
var _instance$options$get2, _instance$options$ena, _row$subRows;
|
|
167
158
|
|
|
168
159
|
return ((_instance$options$get2 = instance.options.getRowCanExpand == null ? void 0 : instance.options.getRowCanExpand(row)) != null ? _instance$options$get2 : true) && ((_instance$options$ena = instance.options.enableExpanding) != null ? _instance$options$ena : true) && !!((_row$subRows = row.subRows) != null && _row$subRows.length);
|
|
169
160
|
},
|
|
170
|
-
getToggleExpandedHandler:
|
|
171
|
-
|
|
172
|
-
return
|
|
161
|
+
getToggleExpandedHandler: () => {
|
|
162
|
+
const canExpand = row.getCanExpand();
|
|
163
|
+
return () => {
|
|
173
164
|
if (!canExpand) return;
|
|
174
165
|
row.toggleExpanded();
|
|
175
166
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { Rows } from './Rows'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport type ExpandedOptions<TGenerics extends TableGenerics> = {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n expandSubRows?: boolean\n getIsRowExpanded?: (row: Row<TGenerics>) => boolean\n getRowCanExpand?: (row: Row<TGenerics>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ExpandedInstance<TGenerics extends TableGenerics> = {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: () => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TGenerics>\n _getExpandedRowModel?: () => RowModel<TGenerics>\n getPreExpandedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedOptions<TGenerics> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n expandSubRows: true,\n paginateExpandedRows: true,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedInstance<TGenerics> => {\n let registered = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetExpanded\n ) {\n instance.resetExpanded()\n }\n },\n setExpanded: updater => instance.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: () => {\n instance.setExpanded(instance.initialState?.expanded ?? {})\n },\n getCanSomeRowsExpand: () => {\n return instance.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n instance.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = instance.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n // If any row is not expanded, return false\n if (instance.getRowModel().flatRows.some(row => row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n instance.getState().expanded === true\n ? Object.keys(instance.getRowModel().rowsById)\n : Object.keys(instance.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => instance.getGroupedRowModel(),\n getExpandedRowModel: () => {\n if (\n !instance._getExpandedRowModel &&\n instance.options.getExpandedRowModel\n ) {\n instance._getExpandedRowModel =\n instance.options.getExpandedRowModel(instance)\n }\n\n if (\n instance.options.manualExpanding ||\n !instance._getExpandedRowModel\n ) {\n return instance.getPreExpandedRowModel()\n }\n\n return instance._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n instance.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n (instance.options.getRowCanExpand?.(row) ?? true) &&\n (instance.options.enableExpanding ?? true) &&\n !!row.subRows?.length\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","_extends","expanded","getDefaultOptions","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","expandSubRows","paginateExpandedRows","createInstance","registered","_autoResetExpanded","options","autoResetAll","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","getIsExpanded","getExpandedDepth","maxDepth","rowIds","keys","rowsById","forEach","id","splitId","split","Math","max","length","getPreExpandedRowModel","getGroupedRowModel","getExpandedRowModel","_getExpandedRowModel","manualExpanding","createRow","toggleExpanded","old","exists","oldExpanded","rowId","rest","_objectWithoutPropertiesLoose","_toPropertyKey","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Expanding.js","sources":["../../../src/features/Expanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n OnChangeFn,\n TableGenerics,\n TableInstance,\n Row,\n Updater,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater } from '../utils'\nimport { Rows } from './Rows'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport type ExpandedTableState = {\n expanded: ExpandedState\n}\n\nexport type ExpandedRow = {\n toggleExpanded: (expanded?: boolean) => void\n getIsExpanded: () => boolean\n getCanExpand: () => boolean\n getToggleExpandedHandler: () => () => void\n}\n\nexport type ExpandedOptions<TGenerics extends TableGenerics> = {\n manualExpanding?: boolean\n onExpandedChange?: OnChangeFn<ExpandedState>\n autoResetExpanded?: boolean\n enableExpanding?: boolean\n getExpandedRowModel?: (\n instance: TableInstance<TGenerics>\n ) => () => RowModel<TGenerics>\n expandSubRows?: boolean\n getIsRowExpanded?: (row: Row<TGenerics>) => boolean\n getRowCanExpand?: (row: Row<TGenerics>) => boolean\n paginateExpandedRows?: boolean\n}\n\nexport type ExpandedInstance<TGenerics extends TableGenerics> = {\n _autoResetExpanded: () => void\n setExpanded: (updater: Updater<ExpandedState>) => void\n toggleAllRowsExpanded: (expanded?: boolean) => void\n resetExpanded: (defaultState?: boolean) => void\n getCanSomeRowsExpand: () => boolean\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n getIsSomeRowsExpanded: () => boolean\n getIsAllRowsExpanded: () => boolean\n getExpandedDepth: () => number\n getExpandedRowModel: () => RowModel<TGenerics>\n _getExpandedRowModel?: () => RowModel<TGenerics>\n getPreExpandedRowModel: () => RowModel<TGenerics>\n}\n\n//\n\nexport const Expanding: TableFeature = {\n getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n getDefaultOptions: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedOptions<TGenerics> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', instance),\n autoResetExpanded: true,\n expandSubRows: true,\n paginateExpandedRows: true,\n }\n },\n\n createInstance: <TGenerics extends TableGenerics>(\n instance: TableInstance<TGenerics>\n ): ExpandedInstance<TGenerics> => {\n let registered = false\n\n return {\n _autoResetExpanded: () => {\n if (!registered) {\n registered = true\n return\n }\n\n if (instance.options.autoResetAll === false) {\n return\n }\n\n if (\n instance.options.autoResetAll === true ||\n instance.options.autoResetExpanded\n ) {\n instance.resetExpanded()\n }\n },\n setExpanded: updater => instance.options.onExpandedChange?.(updater),\n toggleAllRowsExpanded: expanded => {\n if (expanded ?? !instance.getIsAllRowsExpanded()) {\n instance.setExpanded(true)\n } else {\n instance.setExpanded({})\n }\n },\n resetExpanded: defaultState => {\n instance.setExpanded(\n defaultState ? {} : instance.initialState?.expanded ?? {}\n )\n },\n getCanSomeRowsExpand: () => {\n return instance.getRowModel().flatRows.some(row => row.getCanExpand())\n },\n getToggleAllRowsExpandedHandler: () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n instance.toggleAllRowsExpanded()\n }\n },\n getIsSomeRowsExpanded: () => {\n const expanded = instance.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n },\n getIsAllRowsExpanded: () => {\n const expanded = instance.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return true\n }\n\n // If any row is not expanded, return false\n if (instance.getRowModel().flatRows.some(row => row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n },\n getExpandedDepth: () => {\n let maxDepth = 0\n\n const rowIds =\n instance.getState().expanded === true\n ? Object.keys(instance.getRowModel().rowsById)\n : Object.keys(instance.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n },\n getPreExpandedRowModel: () => instance.getGroupedRowModel(),\n getExpandedRowModel: () => {\n if (\n !instance._getExpandedRowModel &&\n instance.options.getExpandedRowModel\n ) {\n instance._getExpandedRowModel =\n instance.options.getExpandedRowModel(instance)\n }\n\n if (\n instance.options.manualExpanding ||\n !instance._getExpandedRowModel\n ) {\n return instance.getPreExpandedRowModel()\n }\n\n return instance._getExpandedRowModel()\n },\n }\n },\n\n createRow: <TGenerics extends TableGenerics>(\n row: Row<TGenerics>,\n instance: TableInstance<TGenerics>\n ): ExpandedRow => {\n return {\n toggleExpanded: expanded => {\n instance.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(instance.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n },\n getIsExpanded: () => {\n const expanded = instance.getState().expanded\n\n return !!(\n instance.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n },\n getCanExpand: () => {\n return (\n (instance.options.getRowCanExpand?.(row) ?? true) &&\n (instance.options.enableExpanding ?? true) &&\n !!row.subRows?.length\n )\n },\n getToggleExpandedHandler: () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n },\n }\n },\n}\n"],"names":["Expanding","getInitialState","state","expanded","getDefaultOptions","instance","onExpandedChange","makeStateUpdater","autoResetExpanded","expandSubRows","paginateExpandedRows","createInstance","registered","_autoResetExpanded","options","autoResetAll","resetExpanded","setExpanded","updater","toggleAllRowsExpanded","getIsAllRowsExpanded","defaultState","initialState","getCanSomeRowsExpand","getRowModel","flatRows","some","row","getCanExpand","getToggleAllRowsExpandedHandler","e","persist","getIsSomeRowsExpanded","getState","Object","values","Boolean","getIsExpanded","getExpandedDepth","maxDepth","rowIds","keys","rowsById","forEach","id","splitId","split","Math","max","length","getPreExpandedRowModel","getGroupedRowModel","getExpandedRowModel","_getExpandedRowModel","manualExpanding","createRow","toggleExpanded","old","exists","oldExpanded","rowId","_","rest","getIsRowExpanded","getRowCanExpand","enableExpanding","subRows","getToggleExpandedHandler","canExpand"],"mappings":"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"}
|