@tanstack/react-table 0.0.1-alpha.0 → 0.0.1-alpha.12
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/_virtual/_rollupPluginBabelHelpers.js +112 -0
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +1 -0
- package/build/cjs/aggregationTypes.js +130 -0
- package/build/cjs/aggregationTypes.js.map +1 -0
- package/build/cjs/core.js +493 -0
- package/build/cjs/core.js.map +1 -0
- package/build/cjs/createTable.js +103 -0
- package/build/cjs/createTable.js.map +1 -0
- package/build/cjs/features/Expanding.js +234 -0
- package/build/cjs/features/Expanding.js.map +1 -0
- package/build/cjs/features/Filters.js +396 -0
- package/build/cjs/features/Filters.js.map +1 -0
- package/build/cjs/features/Grouping.js +228 -0
- package/build/cjs/features/Grouping.js.map +1 -0
- package/build/cjs/features/Headers.js +483 -0
- package/build/cjs/features/Headers.js.map +1 -0
- package/build/cjs/features/Ordering.js +83 -0
- package/build/cjs/features/Ordering.js.map +1 -0
- package/build/cjs/features/Pinning.js +163 -0
- package/build/cjs/features/Pinning.js.map +1 -0
- package/build/cjs/features/Sorting.js +269 -0
- package/build/cjs/features/Sorting.js.map +1 -0
- package/build/cjs/features/Visibility.js +160 -0
- package/build/cjs/features/Visibility.js.map +1 -0
- package/build/cjs/filterTypes.js +172 -0
- package/build/cjs/filterTypes.js.map +1 -0
- package/build/cjs/index.js +30 -0
- package/build/cjs/index.js.map +1 -0
- package/build/cjs/sortTypes.js +121 -0
- package/build/cjs/sortTypes.js.map +1 -0
- package/build/cjs/utils/columnFilterRowsFn.js +130 -0
- package/build/cjs/utils/columnFilterRowsFn.js.map +1 -0
- package/build/cjs/utils/expandRowsFn.js +38 -0
- package/build/cjs/utils/expandRowsFn.js.map +1 -0
- package/build/cjs/utils/globalFilterRowsFn.js +100 -0
- package/build/cjs/utils/globalFilterRowsFn.js.map +1 -0
- package/build/cjs/utils/groupRowsFn.js +154 -0
- package/build/cjs/utils/groupRowsFn.js.map +1 -0
- package/build/cjs/utils/sortRowsFn.js +93 -0
- package/build/cjs/utils/sortRowsFn.js.map +1 -0
- package/build/cjs/utils.js +143 -0
- package/build/cjs/utils.js.map +1 -0
- package/build/esm/index.js +3389 -0
- package/build/esm/index.js.map +1 -0
- package/build/stats-html.html +2689 -0
- package/build/stats-react.json +703 -0
- package/build/types/aggregationTypes.d.ts +22 -0
- package/build/types/core.d.ts +122 -0
- package/build/types/createTable.d.ts +35 -0
- package/build/types/features/Expanding.d.ts +52 -0
- package/build/types/features/Filters.d.ts +93 -0
- package/build/types/features/Grouping.d.ts +82 -0
- package/build/types/features/Headers.d.ts +41 -0
- package/build/types/features/Ordering.d.ts +19 -0
- package/build/types/features/Pinning.d.ts +39 -0
- package/build/types/features/Sorting.d.ts +75 -0
- package/build/types/features/Visibility.d.ts +47 -0
- package/build/types/filterTypes.d.ts +50 -0
- package/build/types/index.d.ts +7 -0
- package/build/types/sortTypes.d.ts +17 -0
- package/build/types/types.d.ts +122 -0
- package/build/types/utils/columnFilterRowsFn.d.ts +2 -0
- package/build/types/utils/expandRowsFn.d.ts +2 -0
- package/build/types/utils/globalFilterRowsFn.d.ts +2 -0
- package/build/types/utils/groupRowsFn.d.ts +2 -0
- package/build/types/utils/sortRowsFn.d.ts +2 -0
- package/build/types/utils.d.ts +24 -0
- package/{dist/react-table.development.js → build/umd/index.development.js} +11 -1
- package/build/umd/index.development.js.map +1 -0
- package/{dist/react-table.production.min.js → build/umd/index.production.js} +11 -1
- package/build/umd/index.production.js.map +1 -0
- package/package.json +10 -92
- package/src/features/{withColumnResizing.ts → withColumnResizing.oldts} +0 -0
- package/src/features/{withPagination.ts → withPagination.oldts} +0 -0
- package/src/features/{withRowSelection.ts → withRowSelection.oldts} +0 -0
- package/dist/react-table.development.js.map +0 -1
- package/dist/react-table.production.min.js.map +0 -1
- package/lib/index.js +0 -65
- package/src/.DS_Store +0 -0
- package/src/features/notest/useAbsoluteLayout.test.js +0 -152
- package/src/features/notest/useBlockLayout.test.js +0 -158
- package/src/features/notest/useColumnOrder.test.js +0 -186
- package/src/features/notest/useExpanded.test.js +0 -125
- package/src/features/notest/useFilters.test.js +0 -393
- package/src/features/notest/useFiltersAndRowSelect.test.js +0 -256
- package/src/features/notest/useFlexLayout.test.js +0 -152
- package/src/features/notest/useGroupBy.test.js +0 -259
- package/src/features/notest/usePagination.test.js +0 -231
- package/src/features/notest/useResizeColumns.test.js +0 -229
- package/src/features/notest/useRowSelect.test.js +0 -250
- package/src/features/notest/useRowState.test.js +0 -178
- package/src/features/tests/Visibility.test.tsx +0 -225
- package/src/features/tests/__snapshots__/Visibility.test.tsx.snap +0 -390
- package/src/features/tests/withSorting.notest.tsx +0 -341
- package/src/test-utils/makeTestData.ts +0 -41
- package/src/tests/__snapshots__/core.test.tsx.snap +0 -148
- package/src/tests/core.test.tsx +0 -241
|
@@ -0,0 +1,493 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* react-table
|
|
3
|
+
*
|
|
4
|
+
* Copyright (c) TanStack
|
|
5
|
+
*
|
|
6
|
+
* This source code is licensed under the MIT license found in the
|
|
7
|
+
* LICENSE.md file in the root directory of this source tree.
|
|
8
|
+
*
|
|
9
|
+
* @license MIT
|
|
10
|
+
*/
|
|
11
|
+
'use strict';
|
|
12
|
+
|
|
13
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
|
+
|
|
15
|
+
var _rollupPluginBabelHelpers = require('./_virtual/_rollupPluginBabelHelpers.js');
|
|
16
|
+
var utils = require('./utils.js');
|
|
17
|
+
var Visibility = require('./features/Visibility.js');
|
|
18
|
+
var Ordering = require('./features/Ordering.js');
|
|
19
|
+
var Pinning = require('./features/Pinning.js');
|
|
20
|
+
var Headers = require('./features/Headers.js');
|
|
21
|
+
var Filters = require('./features/Filters.js');
|
|
22
|
+
var Sorting = require('./features/Sorting.js');
|
|
23
|
+
var Grouping = require('./features/Grouping.js');
|
|
24
|
+
var Expanding = require('./features/Expanding.js');
|
|
25
|
+
|
|
26
|
+
function createTableInstance(options, rerender) {
|
|
27
|
+
var _options$initialState;
|
|
28
|
+
|
|
29
|
+
if (process.env.NODE_ENV !== 'production' && options.debug) {
|
|
30
|
+
console.info('Creating React Table Instance...');
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
var instance = {};
|
|
34
|
+
|
|
35
|
+
var defaultOptions = _rollupPluginBabelHelpers["extends"]({}, Visibility.getDefaultOptions(instance), Ordering.getDefaultOptions(instance), Pinning.getDefaultOptions(instance), Filters.getDefaultOptions(instance), Sorting.getDefaultOptions(instance), Grouping.getDefaultOptions(instance), Expanding.getDefaultOptions(instance));
|
|
36
|
+
|
|
37
|
+
var defaultState = {};
|
|
38
|
+
|
|
39
|
+
var buildOptions = function buildOptions(options) {
|
|
40
|
+
return _rollupPluginBabelHelpers["extends"]({
|
|
41
|
+
state: defaultState
|
|
42
|
+
}, defaultOptions, options);
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
instance.options = buildOptions(options);
|
|
46
|
+
|
|
47
|
+
var initialState = _rollupPluginBabelHelpers["extends"]({}, Visibility.getInitialState(), Ordering.getInitialState(), Pinning.getInitialState(), Filters.getInitialState(), Sorting.getInitialState(), Grouping.getInitialState(), Expanding.getInitialState(), (_options$initialState = options.initialState) != null ? _options$initialState : {});
|
|
48
|
+
|
|
49
|
+
var finalInstance = _rollupPluginBabelHelpers["extends"]({}, instance, Visibility.getInstance(instance), Ordering.getInstance(instance), Pinning.getInstance(instance), Headers.getInstance(instance), Filters.getInstance(instance), Sorting.getInstance(instance), Grouping.getInstance(instance), Expanding.getInstance(instance), {
|
|
50
|
+
rerender: rerender,
|
|
51
|
+
initialState: initialState,
|
|
52
|
+
internalState: initialState,
|
|
53
|
+
reset: function reset() {
|
|
54
|
+
instance.setState(instance.initialState);
|
|
55
|
+
},
|
|
56
|
+
updateOptions: function updateOptions(newOptions) {
|
|
57
|
+
instance.options = buildOptions(newOptions);
|
|
58
|
+
},
|
|
59
|
+
getRowId: function getRowId(_, index, parent) {
|
|
60
|
+
return "" + (parent ? [parent.id, index].join('.') : index);
|
|
61
|
+
},
|
|
62
|
+
getState: function getState() {
|
|
63
|
+
return _rollupPluginBabelHelpers["extends"]({}, instance.internalState, instance.options.state);
|
|
64
|
+
},
|
|
65
|
+
setState: function setState(updater, shouldRerender) {
|
|
66
|
+
if (shouldRerender === void 0) {
|
|
67
|
+
shouldRerender = true;
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
var newState = utils.functionalUpdate(updater, instance.internalState);
|
|
71
|
+
var onStateChange = instance.options.onStateChange;
|
|
72
|
+
instance.internalState = newState;
|
|
73
|
+
|
|
74
|
+
if (onStateChange) {
|
|
75
|
+
onStateChange(newState);
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
if (shouldRerender) {
|
|
80
|
+
instance.rerender();
|
|
81
|
+
}
|
|
82
|
+
},
|
|
83
|
+
getDefaultColumn: utils.memo(function () {
|
|
84
|
+
return [instance.options.defaultColumn];
|
|
85
|
+
}, function (defaultColumn) {
|
|
86
|
+
var _defaultColumn;
|
|
87
|
+
|
|
88
|
+
defaultColumn = (_defaultColumn = defaultColumn) != null ? _defaultColumn : {};
|
|
89
|
+
return _rollupPluginBabelHelpers["extends"]({
|
|
90
|
+
header: function header(props) {
|
|
91
|
+
return props.header.column.id;
|
|
92
|
+
},
|
|
93
|
+
footer: function footer(props) {
|
|
94
|
+
return props.header.column.id;
|
|
95
|
+
},
|
|
96
|
+
cell: function cell(_ref) {
|
|
97
|
+
var _ref$value = _ref.value,
|
|
98
|
+
value = _ref$value === void 0 ? '' : _ref$value;
|
|
99
|
+
return typeof value === 'boolean' ? value.toString() : value;
|
|
100
|
+
}
|
|
101
|
+
}, Visibility.getDefaultColumn(), Filters.getDefaultColumn(), Sorting.getDefaultColumn(), Grouping.getDefaultColumn(), defaultColumn);
|
|
102
|
+
}, 'getDefaultColumn', instance.options.debug),
|
|
103
|
+
getColumnDefs: function getColumnDefs() {
|
|
104
|
+
return instance.options.columns;
|
|
105
|
+
},
|
|
106
|
+
createColumn: function createColumn(columnDef, depth, parent) {
|
|
107
|
+
var _ref2, _columnDef$id;
|
|
108
|
+
|
|
109
|
+
var defaultColumn = instance.getDefaultColumn();
|
|
110
|
+
var id = (_ref2 = (_columnDef$id = columnDef.id) != null ? _columnDef$id : columnDef.accessorKey) != null ? _ref2 : typeof columnDef.header === 'string' ? columnDef.header : undefined;
|
|
111
|
+
var accessorFn;
|
|
112
|
+
|
|
113
|
+
if (columnDef.accessorFn) {
|
|
114
|
+
accessorFn = columnDef.accessorFn;
|
|
115
|
+
} else if (columnDef.accessorKey) {
|
|
116
|
+
accessorFn = function accessorFn(originalRow) {
|
|
117
|
+
return originalRow[columnDef.accessorKey];
|
|
118
|
+
};
|
|
119
|
+
}
|
|
120
|
+
|
|
121
|
+
if (!id) {
|
|
122
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
123
|
+
throw new Error(columnDef.accessorFn ? "Columns require an id when using an accessorFn" : "Columns require an id when using a non-string header");
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
throw new Error();
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
var column = _rollupPluginBabelHelpers["extends"]({
|
|
130
|
+
width: 150,
|
|
131
|
+
minWidth: 20,
|
|
132
|
+
maxWidth: Number.MAX_SAFE_INTEGER
|
|
133
|
+
}, defaultColumn, columnDef, {
|
|
134
|
+
id: "" + id,
|
|
135
|
+
accessorFn: accessorFn,
|
|
136
|
+
parent: parent,
|
|
137
|
+
depth: depth,
|
|
138
|
+
columnDef: columnDef,
|
|
139
|
+
columns: [],
|
|
140
|
+
getWidth: function getWidth() {
|
|
141
|
+
return instance.getColumnWidth(column.id);
|
|
142
|
+
},
|
|
143
|
+
getFlatColumns: utils.memo(function () {
|
|
144
|
+
return [true];
|
|
145
|
+
}, function () {
|
|
146
|
+
var _column$columns;
|
|
147
|
+
|
|
148
|
+
return [column].concat((_column$columns = column.columns) == null ? void 0 : _column$columns.flatMap(function (d) {
|
|
149
|
+
return d.getFlatColumns();
|
|
150
|
+
}));
|
|
151
|
+
}, 'column.getFlatColumns', instance.options.debug),
|
|
152
|
+
getLeafColumns: utils.memo(function () {
|
|
153
|
+
return [instance.getOrderColumnsFn()];
|
|
154
|
+
}, function (orderColumns) {
|
|
155
|
+
var _column$columns2;
|
|
156
|
+
|
|
157
|
+
if ((_column$columns2 = column.columns) != null && _column$columns2.length) {
|
|
158
|
+
var leafColumns = column.columns.flatMap(function (column) {
|
|
159
|
+
return column.getLeafColumns();
|
|
160
|
+
});
|
|
161
|
+
return orderColumns(leafColumns);
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
return [column];
|
|
165
|
+
}, 'column.getLeafColumns', instance.options.debug)
|
|
166
|
+
});
|
|
167
|
+
|
|
168
|
+
column = Object.assign(column, Visibility.createColumn(column, instance), Pinning.createColumn(column, instance), Filters.createColumn(column, instance), Sorting.createColumn(column, instance), Grouping.createColumn(column, instance)); // Yes, we have to convert instance to uknown, because we know more than the compiler here.
|
|
169
|
+
|
|
170
|
+
return column;
|
|
171
|
+
},
|
|
172
|
+
getAllColumns: utils.memo(function () {
|
|
173
|
+
return [instance.getColumnDefs()];
|
|
174
|
+
}, function (columnDefs) {
|
|
175
|
+
if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Building Columns...');
|
|
176
|
+
|
|
177
|
+
var recurseColumns = function recurseColumns(columnDefs, parent, depth) {
|
|
178
|
+
if (depth === void 0) {
|
|
179
|
+
depth = 0;
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
return columnDefs.map(function (columnDef) {
|
|
183
|
+
var column = instance.createColumn(columnDef, depth, parent);
|
|
184
|
+
column.columns = columnDef.columns ? recurseColumns(columnDef.columns, column, depth + 1) : [];
|
|
185
|
+
return column;
|
|
186
|
+
});
|
|
187
|
+
};
|
|
188
|
+
|
|
189
|
+
return recurseColumns(columnDefs);
|
|
190
|
+
}, 'getAllColumns', instance.options.debug),
|
|
191
|
+
getAllFlatColumns: utils.memo(function () {
|
|
192
|
+
return [instance.getAllColumns()];
|
|
193
|
+
}, function (allColumns) {
|
|
194
|
+
return allColumns.flatMap(function (column) {
|
|
195
|
+
return column.getFlatColumns();
|
|
196
|
+
});
|
|
197
|
+
}, 'getAllFlatColumns', instance.options.debug),
|
|
198
|
+
getAllFlatColumnsById: utils.memo(function () {
|
|
199
|
+
return [instance.getAllFlatColumns()];
|
|
200
|
+
}, function (flatColumns) {
|
|
201
|
+
return flatColumns.reduce(function (acc, column) {
|
|
202
|
+
acc[column.id] = column;
|
|
203
|
+
return acc;
|
|
204
|
+
}, {});
|
|
205
|
+
}, 'getAllFlatColumnsById', instance.options.debug),
|
|
206
|
+
getAllLeafColumns: utils.memo(function () {
|
|
207
|
+
return [instance.getAllColumns(), instance.getOrderColumnsFn()];
|
|
208
|
+
}, function (allColumns, orderColumns) {
|
|
209
|
+
var leafColumns = allColumns.flatMap(function (column) {
|
|
210
|
+
return column.getLeafColumns();
|
|
211
|
+
});
|
|
212
|
+
return orderColumns(leafColumns);
|
|
213
|
+
}, 'getAllLeafColumns', instance.options.debug),
|
|
214
|
+
getColumn: function getColumn(columnId) {
|
|
215
|
+
var column = instance.getAllFlatColumnsById()[columnId];
|
|
216
|
+
|
|
217
|
+
if (!column) {
|
|
218
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
219
|
+
console.warn("[React Table] Column with id " + columnId + " does not exist.");
|
|
220
|
+
}
|
|
221
|
+
|
|
222
|
+
throw new Error();
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
return column;
|
|
226
|
+
},
|
|
227
|
+
getColumnWidth: function getColumnWidth(columnId) {
|
|
228
|
+
var _column$minWidth, _column$width, _column$maxWidth;
|
|
229
|
+
|
|
230
|
+
var column = instance.getColumn(columnId);
|
|
231
|
+
|
|
232
|
+
if (!column) {
|
|
233
|
+
throw new Error();
|
|
234
|
+
}
|
|
235
|
+
|
|
236
|
+
return Math.min(Math.max((_column$minWidth = column.minWidth) != null ? _column$minWidth : 0, (_column$width = column.width) != null ? _column$width : 0), (_column$maxWidth = column.maxWidth) != null ? _column$maxWidth : 0);
|
|
237
|
+
},
|
|
238
|
+
createCell: function createCell(row, column, value) {
|
|
239
|
+
var cell = {
|
|
240
|
+
id: row.id + "_" + column.id,
|
|
241
|
+
rowId: row.id,
|
|
242
|
+
columnId: column.id,
|
|
243
|
+
row: row,
|
|
244
|
+
column: column,
|
|
245
|
+
value: value,
|
|
246
|
+
getCellProps: function getCellProps(userProps) {
|
|
247
|
+
return instance.getCellProps(row.id, column.id, userProps);
|
|
248
|
+
},
|
|
249
|
+
renderCell: function renderCell() {
|
|
250
|
+
return utils.flexRender(column.cell, {
|
|
251
|
+
column: column,
|
|
252
|
+
cell: cell,
|
|
253
|
+
value: value
|
|
254
|
+
});
|
|
255
|
+
}
|
|
256
|
+
};
|
|
257
|
+
Object.assign(cell, _rollupPluginBabelHelpers["extends"]({}, Grouping.createCell(cell, column, row)));
|
|
258
|
+
return cell;
|
|
259
|
+
},
|
|
260
|
+
createRow: function createRow(id, original, rowIndex, depth, values) {
|
|
261
|
+
var row = {
|
|
262
|
+
id: id,
|
|
263
|
+
index: rowIndex,
|
|
264
|
+
original: original,
|
|
265
|
+
depth: depth,
|
|
266
|
+
values: values,
|
|
267
|
+
subRows: [],
|
|
268
|
+
leafRows: [],
|
|
269
|
+
getRowProps: function getRowProps(userProps) {
|
|
270
|
+
return instance.getRowProps(row.id, userProps);
|
|
271
|
+
},
|
|
272
|
+
getAllCells: undefined,
|
|
273
|
+
getAllCellsByColumnId: undefined
|
|
274
|
+
};
|
|
275
|
+
row.getAllCells = utils.memo(function () {
|
|
276
|
+
return [instance.getAllLeafColumns()];
|
|
277
|
+
}, function (leafColumns) {
|
|
278
|
+
return leafColumns.map(function (column) {
|
|
279
|
+
return instance.createCell(row, column, row.values[column.id]);
|
|
280
|
+
});
|
|
281
|
+
}, process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '', instance.options.debug);
|
|
282
|
+
row.getAllCellsByColumnId = utils.memo(function () {
|
|
283
|
+
return [row.getAllCells()];
|
|
284
|
+
}, function (allCells) {
|
|
285
|
+
return allCells.reduce(function (acc, cell) {
|
|
286
|
+
acc[cell.columnId] = cell;
|
|
287
|
+
return acc;
|
|
288
|
+
}, {});
|
|
289
|
+
}, 'row.getAllCellsByColumnId', instance.options.debug);
|
|
290
|
+
row = Object.assign(row, Headers.createRow(row, instance), Grouping.createRow(row, instance), Expanding.createRow(row, instance));
|
|
291
|
+
return row;
|
|
292
|
+
},
|
|
293
|
+
getCoreRowModel: utils.memo(function () {
|
|
294
|
+
return [instance.options.data];
|
|
295
|
+
}, function (data) {
|
|
296
|
+
if (process.env.NODE_ENV !== 'production' && instance.options.debug) console.info('Accessing...'); // Auto-reset data-dependent states if configured
|
|
297
|
+
|
|
298
|
+
if (instance.options.autoResetColumnFilters && // @ts-ignore
|
|
299
|
+
instance.getRowModelNonFirst) {
|
|
300
|
+
instance.resetColumnFilters();
|
|
301
|
+
}
|
|
302
|
+
|
|
303
|
+
if (instance.options.autoResetGlobalFilter && // @ts-ignore
|
|
304
|
+
instance.getRowModelNonFirst) {
|
|
305
|
+
instance.resetGlobalFilter();
|
|
306
|
+
}
|
|
307
|
+
|
|
308
|
+
if (instance.options.autoResetSorting && // @ts-ignore
|
|
309
|
+
instance.getRowModelNonFirst) {
|
|
310
|
+
instance.resetSorting();
|
|
311
|
+
}
|
|
312
|
+
|
|
313
|
+
if (instance.options.autoResetGrouping && // @ts-ignore
|
|
314
|
+
instance.getRowModelNonFirst) {
|
|
315
|
+
instance.resetGrouping();
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
if (instance.options.autoResetExpanded && // @ts-ignore
|
|
319
|
+
instance.getRowModelNonFirst) {
|
|
320
|
+
instance.resetExpanded();
|
|
321
|
+
} // @ts-ignore
|
|
322
|
+
|
|
323
|
+
|
|
324
|
+
instance.getRowModelNonFirst = true; // Access the row model using initial columns
|
|
325
|
+
|
|
326
|
+
var rows = [];
|
|
327
|
+
var flatRows = [];
|
|
328
|
+
var rowsById = {};
|
|
329
|
+
var leafColumns = instance.getAllLeafColumns();
|
|
330
|
+
|
|
331
|
+
var accessRow = function accessRow(originalRow, rowIndex, depth, parentRows, parent) {
|
|
332
|
+
if (depth === void 0) {
|
|
333
|
+
depth = 0;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
var id = instance.getRowId(originalRow, rowIndex, parent);
|
|
337
|
+
|
|
338
|
+
if (!id) {
|
|
339
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
340
|
+
throw new Error("getRowId expected an ID, but got " + id);
|
|
341
|
+
}
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
var values = {};
|
|
345
|
+
|
|
346
|
+
for (var i = 0; i < leafColumns.length; i++) {
|
|
347
|
+
var _column = leafColumns[i];
|
|
348
|
+
|
|
349
|
+
if (_column && _column.accessorFn) {
|
|
350
|
+
values[_column.id] = _column.accessorFn(originalRow, rowIndex);
|
|
351
|
+
}
|
|
352
|
+
} // Make the row
|
|
353
|
+
|
|
354
|
+
|
|
355
|
+
var row = instance.createRow(id, originalRow, rowIndex, depth, values); // Push instance row into the parentRows array
|
|
356
|
+
|
|
357
|
+
parentRows.push(row); // Keep track of every row in a flat array
|
|
358
|
+
|
|
359
|
+
flatRows.push(row); // Also keep track of every row by its ID
|
|
360
|
+
|
|
361
|
+
rowsById[id] = row; // Get the original subrows
|
|
362
|
+
|
|
363
|
+
if (instance.options.getSubRows) {
|
|
364
|
+
var originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
|
|
365
|
+
|
|
366
|
+
if (originalSubRows != null && originalSubRows.length) {
|
|
367
|
+
row.originalSubRows = originalSubRows;
|
|
368
|
+
var subRows = [];
|
|
369
|
+
|
|
370
|
+
for (var _i = 0; _i < row.originalSubRows.length; _i++) {
|
|
371
|
+
accessRow(row.originalSubRows[_i], _i, depth + 1, subRows, row);
|
|
372
|
+
} // Keep the new subRows array on the row
|
|
373
|
+
|
|
374
|
+
|
|
375
|
+
row.subRows = subRows;
|
|
376
|
+
row.leafRows = utils.flattenBy(subRows, function (d) {
|
|
377
|
+
return d.leafRows;
|
|
378
|
+
});
|
|
379
|
+
}
|
|
380
|
+
}
|
|
381
|
+
};
|
|
382
|
+
|
|
383
|
+
for (var i = 0; i < data.length; i++) {
|
|
384
|
+
accessRow(data[i], i, 0, rows);
|
|
385
|
+
}
|
|
386
|
+
|
|
387
|
+
return {
|
|
388
|
+
rows: rows,
|
|
389
|
+
flatRows: flatRows,
|
|
390
|
+
rowsById: rowsById
|
|
391
|
+
};
|
|
392
|
+
}, 'getRowModel', instance.options.debug),
|
|
393
|
+
// The standard
|
|
394
|
+
getCoreRows: function getCoreRows() {
|
|
395
|
+
return instance.getCoreRowModel().rows;
|
|
396
|
+
},
|
|
397
|
+
getCoreFlatRows: function getCoreFlatRows() {
|
|
398
|
+
return instance.getCoreRowModel().flatRows;
|
|
399
|
+
},
|
|
400
|
+
getCoreRowsById: function getCoreRowsById() {
|
|
401
|
+
return instance.getCoreRowModel().rowsById;
|
|
402
|
+
},
|
|
403
|
+
// The final calls start at the bottom of the model,
|
|
404
|
+
// expanded rows, which then work their way up
|
|
405
|
+
getRowModel: function getRowModel() {
|
|
406
|
+
return instance.getExpandedRowModel();
|
|
407
|
+
},
|
|
408
|
+
getRows: function getRows() {
|
|
409
|
+
return instance.getRowModel().rows;
|
|
410
|
+
},
|
|
411
|
+
getFlatRows: function getFlatRows() {
|
|
412
|
+
return instance.getRowModel().flatRows;
|
|
413
|
+
},
|
|
414
|
+
getRowsById: function getRowsById() {
|
|
415
|
+
return instance.getRowModel().rowsById;
|
|
416
|
+
},
|
|
417
|
+
getRow: function getRow(id) {
|
|
418
|
+
var row = instance.getRowsById()[id];
|
|
419
|
+
|
|
420
|
+
if (!row) {
|
|
421
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
422
|
+
throw new Error("getRow expected an ID, but got " + id);
|
|
423
|
+
}
|
|
424
|
+
|
|
425
|
+
throw new Error();
|
|
426
|
+
}
|
|
427
|
+
|
|
428
|
+
return row;
|
|
429
|
+
},
|
|
430
|
+
getCell: function getCell(rowId, columnId) {
|
|
431
|
+
var row = instance.getRow(rowId);
|
|
432
|
+
|
|
433
|
+
if (!row) {
|
|
434
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
435
|
+
throw new Error("[React Table] could not find row with id " + rowId);
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
throw new Error();
|
|
439
|
+
}
|
|
440
|
+
|
|
441
|
+
var cell = row.getAllCellsByColumnId()[columnId];
|
|
442
|
+
|
|
443
|
+
if (!cell) {
|
|
444
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
445
|
+
throw new Error("[React Table] could not find cell " + columnId + " in row " + rowId);
|
|
446
|
+
}
|
|
447
|
+
|
|
448
|
+
throw new Error();
|
|
449
|
+
}
|
|
450
|
+
|
|
451
|
+
return cell;
|
|
452
|
+
},
|
|
453
|
+
getTableProps: function getTableProps(userProps) {
|
|
454
|
+
return utils.propGetter({
|
|
455
|
+
role: 'table'
|
|
456
|
+
}, userProps);
|
|
457
|
+
},
|
|
458
|
+
getTableBodyProps: function getTableBodyProps(userProps) {
|
|
459
|
+
return utils.propGetter({
|
|
460
|
+
role: 'rowgroup'
|
|
461
|
+
}, userProps);
|
|
462
|
+
},
|
|
463
|
+
getRowProps: function getRowProps(rowId, userProps) {
|
|
464
|
+
var row = instance.getRow(rowId);
|
|
465
|
+
|
|
466
|
+
if (!row) {
|
|
467
|
+
return;
|
|
468
|
+
}
|
|
469
|
+
|
|
470
|
+
return utils.propGetter({
|
|
471
|
+
key: row.id,
|
|
472
|
+
role: 'row'
|
|
473
|
+
}, userProps);
|
|
474
|
+
},
|
|
475
|
+
getCellProps: function getCellProps(rowId, columnId, userProps) {
|
|
476
|
+
var cell = instance.getCell(rowId, columnId);
|
|
477
|
+
|
|
478
|
+
if (!cell) {
|
|
479
|
+
return;
|
|
480
|
+
}
|
|
481
|
+
|
|
482
|
+
return utils.propGetter({
|
|
483
|
+
key: cell.id,
|
|
484
|
+
role: 'gridcell'
|
|
485
|
+
}, userProps);
|
|
486
|
+
}
|
|
487
|
+
});
|
|
488
|
+
|
|
489
|
+
return Object.assign(instance, finalInstance);
|
|
490
|
+
}
|
|
491
|
+
|
|
492
|
+
exports.createTableInstance = createTableInstance;
|
|
493
|
+
//# sourceMappingURL=core.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"core.js","sources":["../../src/core.tsx"],"sourcesContent":["import {\n flattenBy,\n functionalUpdate,\n propGetter,\n memo,\n flexRender,\n RequiredKeys,\n} from './utils'\n\nimport {\n Updater,\n PropGetterValue,\n Options,\n TableState,\n ColumnDef,\n Row,\n Column,\n Cell,\n Header,\n AccessorFn,\n HeaderRenderProps,\n TableProps,\n TableBodyProps,\n PropGetter,\n Getter,\n RowProps,\n CellProps,\n ReactTable,\n RowValues,\n Renderable,\n} from './types'\n\nimport * as Visibility from './features/Visibility'\nimport * as Ordering from './features/Ordering'\nimport * as Pinning from './features/Pinning'\nimport * as Headers from './features/Headers'\nimport * as Filters from './features/Filters'\nimport * as Sorting from './features/Sorting'\nimport * as Grouping from './features/Grouping'\nimport * as Expanding from './features/Expanding'\nimport { RowModel } from '.'\n\n// import './features/withColumnResizing';\n// import './features/withPagination';\n// import './features/withRowSelection';\n\nexport type CoreOptions<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n data: TData[]\n columns: ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n debug?: boolean\n defaultColumn?: Partial<\n ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n initialState?: Partial<TableState>\n state?: Partial<TableState>\n getSubRows?: (originalRow: TData, index: number) => TData[]\n getRowId?: (\n originalRow: TData,\n index: number,\n parent?: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => string\n onStateChange?: (newState: TableState) => void\n}\n\nexport type TableCore<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> =\n {\n rerender: () => void\n initialState: TableState\n internalState: TableState\n reset: () => void\n options: RequiredKeys<\n Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n 'state'\n >\n updateOptions: (\n newOptions: Options<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n ) => void\n getRowId: (\n _: TData,\n index: number,\n parent?: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => string\n getState: () => TableState\n setState: (updater: Updater<TableState>) => void\n getDefaultColumn: () => Partial<\n ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getColumnDefs: () => ColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n createColumn: (\n columnDef: ColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n depth: number,\n parent?: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getAllColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getAllFlatColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getAllFlatColumnsById: () => Record<\n string,\n Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getAllLeafColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getColumn: (\n columnId: string\n ) => Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getColumnWidth: (columnId: string) => number\n getTotalWidth: () => number\n createCell: (\n row: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n value: any\n ) => Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n createRow: (\n id: string,\n original: TData | undefined,\n rowIndex: number,\n depth: number,\n values: Record<string, any>\n ) => Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getCoreRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getCoreRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCoreFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getCoreRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getRowModel: () => RowModel<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n getRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getFlatRows: () => Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getRowsById: () => Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n getRow: (\n id: string\n ) => Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getCell: (\n rowId: string,\n columnId: string\n ) => Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getTableProps: PropGetter<TableProps>\n getTableBodyProps: PropGetter<TableBodyProps>\n getRowProps: <TGetter extends Getter<RowProps>>(\n rowId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<RowProps, TGetter>\n getCellProps: <TGetter extends Getter<CellProps>>(\n rowId: string,\n columnId: string,\n userProps?: TGetter\n ) => undefined | PropGetterValue<CellProps, TGetter>\n }\n\nexport type CoreRow<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> = {\n id: string\n index: number\n original?: TData\n depth: number\n values: RowValues\n leafRows: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n subRows: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n getRowProps: PropGetter<RowProps>\n originalSubRows?: TData[]\n getAllCells: () => Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getAllCellsByColumnId: () => Record<\n string,\n Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n}\n\nexport type CoreColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = (\n | {\n accessorFn: AccessorFn<TData>\n id: string\n accessorKey?: never\n header?:\n | string\n | Renderable<{\n header: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n column: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n }>\n }\n | {\n accessorKey: string & keyof TData\n id?: string\n accessorFn?: never\n header?:\n | string\n | Renderable<{\n header: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n column: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n }>\n }\n | {\n id: string\n accessorKey?: never\n accessorFn?: never\n header?:\n | string\n | Renderable<{\n header: Header<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n column: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n }>\n }\n | {\n header: string\n id?: string\n accessorKey?: never\n accessorFn?: never\n }\n) & {\n __generated: true\n width?: number\n minWidth?: number\n maxWidth?: number\n columns?: ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n footer?: Renderable<{\n header: Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n }>\n cell?: Renderable<{\n column: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n cell: Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n value: TValue\n }>\n defaultIsVisible?: boolean\n}\n\nexport type CoreColumn<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData>\n columnDef: ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getWidth: () => number\n columns: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n parent?: Column<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n getFlatColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n getLeafColumns: () => Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[]\n}\n\nexport function createTableInstance<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n>(\n options: Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n rerender: () => void\n): ReactTable<TData, TValue, TFilterFns, TSortingFns, TAggregationFns> {\n if (process.env.NODE_ENV !== 'production' && options.debug) {\n console.info('Creating React Table Instance...')\n }\n\n let instance = {} as ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n\n const defaultOptions = {\n ...Visibility.getDefaultOptions(instance),\n ...Ordering.getDefaultOptions(instance),\n ...Pinning.getDefaultOptions(instance),\n ...Filters.getDefaultOptions(instance),\n ...Sorting.getDefaultOptions(instance),\n ...Grouping.getDefaultOptions(instance),\n ...Expanding.getDefaultOptions(instance),\n }\n\n const defaultState = {}\n\n const buildOptions = (\n options: Options<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => ({\n state: defaultState,\n ...defaultOptions,\n ...options,\n })\n\n instance.options = buildOptions(options)\n\n const initialState = {\n ...Visibility.getInitialState(),\n ...Ordering.getInitialState(),\n ...Pinning.getInitialState(),\n ...Filters.getInitialState(),\n ...Sorting.getInitialState(),\n ...Grouping.getInitialState(),\n ...Expanding.getInitialState(),\n ...(options.initialState ?? {}),\n }\n\n const finalInstance: ReactTable<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n ...instance,\n ...Visibility.getInstance(instance),\n ...Ordering.getInstance(instance),\n ...Pinning.getInstance(instance),\n ...Headers.getInstance(instance),\n ...Filters.getInstance(instance),\n ...Sorting.getInstance(instance),\n ...Grouping.getInstance(instance),\n ...Expanding.getInstance(instance),\n rerender,\n initialState,\n internalState: initialState,\n reset: () => {\n instance.setState(instance.initialState)\n },\n updateOptions: newOptions => {\n instance.options = buildOptions(newOptions)\n },\n\n getRowId: (\n _: TData,\n index: number,\n parent?: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => `${parent ? [parent.id, index].join('.') : index}`,\n\n getState: () => {\n return {\n ...instance.internalState,\n ...instance.options.state,\n }\n },\n\n setState: (\n updater: Updater<TableState>,\n shouldRerender: boolean = true\n ) => {\n const newState = functionalUpdate(updater, instance.internalState)\n const onStateChange = instance.options.onStateChange\n\n instance.internalState = newState\n\n if (onStateChange) {\n onStateChange(newState)\n return\n }\n\n if (shouldRerender) {\n instance.rerender()\n }\n },\n\n getDefaultColumn: memo(\n () => [instance.options.defaultColumn],\n defaultColumn => {\n defaultColumn = (defaultColumn ?? {}) as Partial<\n ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n\n return {\n header: (\n props: HeaderRenderProps<\n Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n ) => props.header.column.id,\n footer: (\n props: HeaderRenderProps<\n Header<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n ) => props.header.column.id,\n cell: ({ value = '' }: { value: any }): JSX.Element =>\n typeof value === 'boolean' ? value.toString() : value,\n ...Visibility.getDefaultColumn(),\n ...Filters.getDefaultColumn(),\n ...Sorting.getDefaultColumn(),\n ...Grouping.getDefaultColumn(),\n ...defaultColumn,\n } as Partial<\n ColumnDef<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n },\n 'getDefaultColumn',\n instance.options.debug\n ),\n\n getColumnDefs: () => instance.options.columns,\n\n createColumn: (columnDef, depth: number, parent) => {\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<TData> | undefined\n\n if (columnDef.accessorFn) {\n accessorFn = columnDef.accessorFn\n } else if (columnDef.accessorKey) {\n accessorFn = (originalRow?: TData) =>\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<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n width: 150,\n minWidth: 20,\n maxWidth: Number.MAX_SAFE_INTEGER,\n ...defaultColumn,\n ...columnDef,\n id: `${id}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef,\n columns: [],\n getWidth: () => instance.getColumnWidth(column.id),\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n 'column.getFlatColumns',\n instance.options.debug\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 [\n column as Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n ]\n },\n 'column.getLeafColumns',\n instance.options.debug\n ),\n }\n\n column = Object.assign(\n column,\n Visibility.createColumn(\n column as Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n instance\n ),\n Pinning.createColumn(\n column as Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n instance\n ),\n Filters.createColumn(\n column as Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n instance\n ),\n Sorting.createColumn(\n column as Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n instance\n ),\n Grouping.createColumn(\n column as Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n instance\n )\n )\n\n // Yes, we have to convert instance to uknown, because we know more than the compiler here.\n return column as Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >\n },\n\n getAllColumns: memo(\n () => [instance.getColumnDefs()],\n columnDefs => {\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Building Columns...')\n\n const recurseColumns = (\n columnDefs: ColumnDef<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n parent?: Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n depth = 0\n ): Column<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] => {\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 'getAllColumns',\n instance.options.debug\n ),\n\n getAllFlatColumns: memo(\n () => [instance.getAllColumns()],\n allColumns => {\n return allColumns.flatMap(column => {\n return column.getFlatColumns()\n })\n },\n 'getAllFlatColumns',\n instance.options.debug\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<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>>)\n },\n 'getAllFlatColumnsById',\n instance.options.debug\n ),\n\n getAllLeafColumns: memo(\n () => [instance.getAllColumns(), instance.getOrderColumnsFn()],\n (allColumns, orderColumns) => {\n let leafColumns = allColumns.flatMap(column => column.getLeafColumns())\n return orderColumns(leafColumns)\n },\n 'getAllLeafColumns',\n instance.options.debug\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(\n `[React Table] Column with id ${columnId} does not exist.`\n )\n }\n throw new Error()\n }\n\n return column\n },\n\n getColumnWidth: (columnId: string) => {\n const column = instance.getColumn(columnId)\n\n if (!column) {\n throw new Error()\n }\n\n return Math.min(\n Math.max(column.minWidth ?? 0, column.width ?? 0),\n column.maxWidth ?? 0\n )\n },\n\n createCell: (row, column, value) => {\n const cell: Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n id: `${row.id}_${column.id}`,\n rowId: row.id,\n columnId: column.id,\n row,\n column,\n value,\n getCellProps: userProps =>\n instance.getCellProps(row.id, column.id, userProps)!,\n renderCell: () => flexRender(column.cell, { column, cell, value }),\n }\n\n Object.assign(cell, {\n ...Grouping.createCell(\n cell as Cell<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > &\n Grouping.GroupingCell,\n column,\n row as Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance\n ),\n })\n\n return cell\n },\n\n createRow: (id, original, rowIndex, depth, values) => {\n let row: CoreRow<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n > = {\n id,\n index: rowIndex,\n original,\n depth,\n values,\n subRows: [],\n leafRows: [],\n getRowProps: userProps => instance.getRowProps(row.id, userProps)!,\n getAllCells: undefined!,\n getAllCellsByColumnId: undefined!,\n }\n\n row.getAllCells = memo(\n () => [instance.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return instance.createCell(\n row as Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >,\n column,\n row.values[column.id]\n )\n })\n },\n process.env.NODE_ENV !== 'production' ? 'row.getAllCells' : '',\n instance.options.debug\n )\n\n row.getAllCellsByColumnId = memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.columnId] = cell\n return acc\n }, {} as Record<string, Cell<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>>)\n },\n 'row.getAllCellsByColumnId',\n instance.options.debug\n )\n\n row = Object.assign(\n row,\n Headers.createRow(\n row as Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance\n ),\n Grouping.createRow(\n row as Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance\n ),\n Expanding.createRow(\n row as Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>,\n instance\n )\n )\n\n return row as Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n },\n\n getCoreRowModel: memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n flatRows: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>[]\n rowsById: Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n >\n } => {\n if (process.env.NODE_ENV !== 'production' && instance.options.debug)\n console.info('Accessing...')\n\n // Auto-reset data-dependent states if configured\n if (\n instance.options.autoResetColumnFilters &&\n // @ts-ignore\n instance.getRowModelNonFirst\n ) {\n instance.resetColumnFilters()\n }\n\n if (\n instance.options.autoResetGlobalFilter &&\n // @ts-ignore\n instance.getRowModelNonFirst\n ) {\n instance.resetGlobalFilter()\n }\n\n if (\n instance.options.autoResetSorting &&\n // @ts-ignore\n instance.getRowModelNonFirst\n ) {\n instance.resetSorting()\n }\n\n if (\n instance.options.autoResetGrouping &&\n // @ts-ignore\n instance.getRowModelNonFirst\n ) {\n instance.resetGrouping()\n }\n\n if (\n instance.options.autoResetExpanded &&\n // @ts-ignore\n instance.getRowModelNonFirst\n ) {\n instance.resetExpanded()\n }\n\n // @ts-ignore\n instance.getRowModelNonFirst = true\n\n // Access the row model using initial columns\n const rows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n const flatRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n const rowsById: Record<\n string,\n Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n > = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TData,\n rowIndex: number,\n depth = 0,\n parentRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[],\n parent?: Row<TData, TValue, TFilterFns, TSortingFns, TAggregationFns>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(\n id,\n originalRow,\n rowIndex,\n depth,\n values\n )\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<\n TData,\n TValue,\n TFilterFns,\n TSortingFns,\n TAggregationFns\n >[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TData,\n i,\n depth + 1,\n subRows,\n row\n )\n }\n // Keep the new subRows array on the row\n row.subRows = subRows\n row.leafRows = flattenBy(subRows, d => d.leafRows)\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TData, i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n 'getRowModel',\n instance.options.debug\n ),\n\n // The standard\n\n getCoreRows: () => {\n return instance.getCoreRowModel().rows\n },\n\n getCoreFlatRows: () => {\n return instance.getCoreRowModel().flatRows\n },\n\n getCoreRowsById: () => {\n return instance.getCoreRowModel().rowsById\n },\n\n // The final calls start at the bottom of the model,\n // expanded rows, which then work their way up\n\n getRowModel: () => {\n return instance.getExpandedRowModel()\n },\n\n getRows: () => {\n return instance.getRowModel().rows\n },\n\n getFlatRows: () => {\n return instance.getRowModel().flatRows\n },\n\n getRowsById: () => {\n return instance.getRowModel().rowsById\n },\n\n getRow: (id: string) => {\n const row = instance.getRowsById()[id]\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRow expected an ID, but got ${id}`)\n }\n throw new Error()\n }\n\n return row\n },\n\n getCell: (rowId: string, columnId: string) => {\n const row = instance.getRow(rowId)\n\n if (!row) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`[React Table] could not find row with id ${rowId}`)\n }\n throw new Error()\n }\n\n const cell = row.getAllCellsByColumnId()[columnId]\n\n if (!cell) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n `[React Table] could not find cell ${columnId} in row ${rowId}`\n )\n }\n throw new Error()\n }\n\n return cell\n },\n\n getTableProps: userProps => {\n return propGetter(\n {\n role: 'table',\n },\n userProps\n )\n },\n\n getTableBodyProps: userProps => {\n return propGetter(\n {\n role: 'rowgroup',\n },\n userProps\n )\n },\n\n getRowProps: (rowId, userProps) => {\n const row = instance.getRow(rowId)\n if (!row) {\n return\n }\n\n return propGetter(\n {\n key: row.id,\n role: 'row',\n },\n userProps\n )\n },\n\n getCellProps: (rowId, columnId, userProps) => {\n const cell = instance.getCell(rowId, columnId)\n\n if (!cell) {\n return\n }\n\n return propGetter(\n {\n key: cell.id,\n role: 'gridcell',\n },\n userProps\n )\n },\n }\n\n return Object.assign(instance, finalInstance)\n}\n"],"names":["createTableInstance","options","rerender","process","env","NODE_ENV","debug","console","info","instance","defaultOptions","Visibility","Ordering","Pinning","Filters","Sorting","Grouping","Expanding","defaultState","buildOptions","state","initialState","finalInstance","Headers","internalState","reset","setState","updateOptions","newOptions","getRowId","_","index","parent","id","join","getState","updater","shouldRerender","newState","functionalUpdate","onStateChange","getDefaultColumn","memo","defaultColumn","header","props","column","footer","cell","value","toString","getColumnDefs","columns","createColumn","columnDef","depth","accessorKey","undefined","accessorFn","originalRow","Error","width","minWidth","maxWidth","Number","MAX_SAFE_INTEGER","getWidth","getColumnWidth","getFlatColumns","flatMap","d","getLeafColumns","getOrderColumnsFn","orderColumns","length","leafColumns","Object","assign","getAllColumns","columnDefs","recurseColumns","map","getAllFlatColumns","allColumns","getAllFlatColumnsById","flatColumns","reduce","acc","getAllLeafColumns","getColumn","columnId","warn","Math","min","max","createCell","row","rowId","getCellProps","userProps","renderCell","flexRender","createRow","original","rowIndex","values","subRows","leafRows","getRowProps","getAllCells","getAllCellsByColumnId","allCells","getCoreRowModel","data","autoResetColumnFilters","getRowModelNonFirst","resetColumnFilters","autoResetGlobalFilter","resetGlobalFilter","autoResetSorting","resetSorting","autoResetGrouping","resetGrouping","autoResetExpanded","resetExpanded","rows","flatRows","rowsById","accessRow","parentRows","i","push","getSubRows","originalSubRows","flattenBy","getCoreRows","getCoreFlatRows","getCoreRowsById","getRowModel","getExpandedRowModel","getRows","getFlatRows","getRowsById","getRow","getCell","getTableProps","propGetter","role","getTableBodyProps","key"],"mappings":"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"}
|