@tanstack/table-core 8.0.0-alpha.9 → 8.0.0-beta.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/aggregationFns.js +120 -0
- package/build/cjs/aggregationFns.js.map +1 -0
- package/build/cjs/core/cell.js +40 -0
- package/build/cjs/core/cell.js.map +1 -0
- package/build/cjs/core/column.js +88 -0
- package/build/cjs/core/column.js.map +1 -0
- package/build/cjs/core/headers.js +403 -0
- package/build/cjs/core/headers.js.map +1 -0
- package/build/cjs/core/instance.js +255 -0
- package/build/cjs/core/instance.js.map +1 -0
- package/build/cjs/core/row.js +77 -0
- package/build/cjs/core/row.js.map +1 -0
- package/build/cjs/createTable.js +36 -29
- package/build/cjs/createTable.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +157 -189
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +103 -155
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +155 -304
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +97 -157
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js +30 -41
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +102 -105
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +131 -89
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +138 -267
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +82 -167
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +69 -115
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +107 -0
- package/build/cjs/filterFns.js.map +1 -0
- package/build/cjs/index.js +36 -23
- package/build/cjs/index.js.map +1 -1
- package/build/cjs/sortingFns.js +124 -0
- package/build/cjs/sortingFns.js.map +1 -0
- package/build/cjs/utils/filterRowsUtils.js +117 -0
- package/build/cjs/utils/filterRowsUtils.js.map +1 -0
- package/build/cjs/utils/getCoreRowModel.js +79 -0
- package/build/cjs/utils/getCoreRowModel.js.map +1 -0
- package/build/cjs/utils/getExpandedRowModel.js +57 -0
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -0
- package/build/cjs/utils/getFacetedMinMaxValues.js +54 -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 +139 -0
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
- package/build/cjs/utils/getGroupedRowModel.js +161 -0
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -0
- package/build/cjs/utils/getPaginationRowModel.js +61 -0
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -0
- package/build/cjs/utils/getSortedRowModel.js +110 -0
- package/build/cjs/utils/getSortedRowModel.js.map +1 -0
- package/build/cjs/utils.js +38 -107
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +2976 -3853
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +586 -408
- package/build/types/aggregationFns.d.ts +13 -0
- package/build/types/core/cell.d.ts +9 -0
- package/build/types/core/column.d.ts +40 -0
- package/build/types/core/headers.d.ts +46 -0
- package/build/types/core/instance.d.ts +57 -0
- package/build/types/core/row.d.ts +15 -0
- package/build/types/createTable.d.ts +47 -26
- package/build/types/features/ColumnSizing.d.ts +32 -44
- package/build/types/features/Expanding.d.ts +15 -26
- package/build/types/features/Filters.d.ts +64 -63
- package/build/types/features/Grouping.d.ts +32 -46
- package/build/types/features/Ordering.d.ts +7 -10
- package/build/types/features/Pagination.d.ts +16 -15
- package/build/types/features/Pinning.d.ts +16 -17
- package/build/types/features/RowSelection.d.ts +13 -33
- package/build/types/features/Sorting.d.ts +25 -44
- package/build/types/features/Visibility.d.ts +16 -25
- package/build/types/filterFns.d.ts +13 -0
- package/build/types/index.d.ts +16 -10
- package/build/types/sortingFns.d.ts +11 -0
- package/build/types/types.d.ts +37 -122
- package/build/types/utils/filterRowsUtils.d.ts +4 -0
- package/build/types/utils/getCoreRowModel.d.ts +2 -0
- package/build/types/utils/getExpandedRowModel.d.ts +7 -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/getFilteredRowModel.d.ts +2 -0
- package/build/types/utils/getGroupedRowModel.d.ts +2 -0
- package/build/types/utils/getPaginationRowModel.d.ts +4 -0
- package/build/types/utils/getSortedRowModel.d.ts +2 -0
- package/build/types/utils.d.ts +7 -11
- package/build/umd/index.development.js +3024 -3893
- 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 +9 -10
- package/src/.DS_Store +0 -0
- package/src/aggregationFns.ts +123 -0
- package/src/core/cell.ts +48 -0
- package/src/core/column.ts +147 -0
- package/src/core/headers.ts +575 -0
- package/src/core/instance.ts +361 -0
- package/src/core/row.ts +85 -0
- package/src/createTable.ts +188 -0
- package/src/features/ColumnSizing.ts +170 -185
- package/src/features/Expanding.ts +122 -194
- package/src/features/Filters.ts +301 -381
- package/src/features/Grouping.ts +160 -220
- package/src/features/Ordering.ts +24 -25
- package/src/features/Pagination.ts +90 -73
- package/src/features/Pinning.ts +186 -63
- package/src/features/RowSelection.ts +107 -245
- package/src/features/Sorting.ts +127 -225
- package/src/features/Visibility.ts +116 -132
- package/src/filterFns.ts +135 -0
- package/src/index.ts +29 -0
- package/src/{sortTypes.ts → sortingFns.ts} +63 -85
- package/src/types.ts +62 -168
- package/src/utils/filterRowsUtils.ts +112 -0
- package/src/utils/getCoreRowModel.ts +84 -0
- package/src/utils/getExpandedRowModel.ts +54 -0
- package/src/utils/getFacetedMinMaxValues.ts +40 -0
- package/src/utils/getFacetedRowModel.ts +50 -0
- package/src/utils/getFacetedUniqueValues.ts +37 -0
- package/src/utils/getFilteredRowModel.ts +159 -0
- package/src/utils/getGroupedRowModel.ts +175 -0
- package/src/utils/getPaginationRowModel.ts +48 -0
- package/src/utils/getSortedRowModel.ts +116 -0
- package/src/utils.ts +126 -0
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
- package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
- package/build/cjs/aggregationTypes.js +0 -130
- package/build/cjs/aggregationTypes.js.map +0 -1
- package/build/cjs/core.js +0 -545
- package/build/cjs/core.js.map +0 -1
- package/build/cjs/features/Headers.js +0 -630
- package/build/cjs/features/Headers.js.map +0 -1
- package/build/cjs/filterTypes.js +0 -172
- package/build/cjs/filterTypes.js.map +0 -1
- package/build/cjs/sortTypes.js +0 -122
- package/build/cjs/sortTypes.js.map +0 -1
- package/build/cjs/types.js +0 -22
- package/build/cjs/types.js.map +0 -1
- package/build/cjs/utils/columnFilterRowsFn.js +0 -131
- package/build/cjs/utils/columnFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/expandRowsFn.js +0 -38
- package/build/cjs/utils/expandRowsFn.js.map +0 -1
- package/build/cjs/utils/globalFilterRowsFn.js +0 -101
- package/build/cjs/utils/globalFilterRowsFn.js.map +0 -1
- package/build/cjs/utils/groupRowsFn.js +0 -155
- package/build/cjs/utils/groupRowsFn.js.map +0 -1
- package/build/cjs/utils/paginateRowsFn.js +0 -44
- package/build/cjs/utils/paginateRowsFn.js.map +0 -1
- package/build/cjs/utils/sortRowsFn.js +0 -94
- package/build/cjs/utils/sortRowsFn.js.map +0 -1
- package/build/types/aggregationTypes.d.ts +0 -22
- package/build/types/core.d.ts +0 -105
- package/build/types/features/Headers.d.ts +0 -43
- package/build/types/filterTypes.d.ts +0 -50
- package/build/types/sortTypes.d.ts +0 -18
- package/build/types/utils/columnFilterRowsFn.d.ts +0 -2
- package/build/types/utils/expandRowsFn.d.ts +0 -2
- package/build/types/utils/globalFilterRowsFn.d.ts +0 -2
- package/build/types/utils/groupRowsFn.d.ts +0 -2
- package/build/types/utils/paginateRowsFn.d.ts +0 -2
- package/build/types/utils/sortRowsFn.d.ts +0 -2
- package/src/aggregationTypes.ts +0 -115
- package/src/core.tsx +0 -763
- package/src/createTable.tsx +0 -137
- package/src/features/Headers.ts +0 -747
- package/src/filterTypes.ts +0 -188
- package/src/index.tsx +0 -23
- package/src/utils/columnFilterRowsFn.ts +0 -113
- package/src/utils/expandRowsFn.ts +0 -30
- package/src/utils/globalFilterRowsFn.ts +0 -89
- package/src/utils/groupRowsFn.ts +0 -170
- package/src/utils/paginateRowsFn.ts +0 -28
- package/src/utils/sortRowsFn.ts +0 -95
- package/src/utils.tsx +0 -221
package/build/cjs/index.js
CHANGED
|
@@ -12,44 +12,51 @@
|
|
|
12
12
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
|
-
var
|
|
16
|
-
var types = require('./types.js');
|
|
15
|
+
var instance = require('./core/instance.js');
|
|
17
16
|
var createTable = require('./createTable.js');
|
|
17
|
+
var column = require('./core/column.js');
|
|
18
|
+
var headers = require('./core/headers.js');
|
|
19
|
+
var row = require('./core/row.js');
|
|
18
20
|
var ColumnSizing = require('./features/ColumnSizing.js');
|
|
19
21
|
var Expanding = require('./features/Expanding.js');
|
|
20
22
|
var Filters = require('./features/Filters.js');
|
|
21
23
|
var Grouping = require('./features/Grouping.js');
|
|
22
|
-
var Headers = require('./features/Headers.js');
|
|
23
24
|
var Ordering = require('./features/Ordering.js');
|
|
24
25
|
var Pagination = require('./features/Pagination.js');
|
|
25
26
|
var Pinning = require('./features/Pinning.js');
|
|
26
27
|
var RowSelection = require('./features/RowSelection.js');
|
|
27
28
|
var Sorting = require('./features/Sorting.js');
|
|
28
29
|
var Visibility = require('./features/Visibility.js');
|
|
30
|
+
var filterFns = require('./filterFns.js');
|
|
31
|
+
var sortingFns = require('./sortingFns.js');
|
|
32
|
+
var aggregationFns = require('./aggregationFns.js');
|
|
29
33
|
var utils = require('./utils.js');
|
|
30
|
-
var
|
|
31
|
-
var
|
|
32
|
-
var
|
|
33
|
-
var
|
|
34
|
-
var
|
|
35
|
-
var
|
|
34
|
+
var getCoreRowModel = require('./utils/getCoreRowModel.js');
|
|
35
|
+
var getFilteredRowModel = require('./utils/getFilteredRowModel.js');
|
|
36
|
+
var getFacetedRowModel = require('./utils/getFacetedRowModel.js');
|
|
37
|
+
var getFacetedUniqueValues = require('./utils/getFacetedUniqueValues.js');
|
|
38
|
+
var getFacetedMinMaxValues = require('./utils/getFacetedMinMaxValues.js');
|
|
39
|
+
var getSortedRowModel = require('./utils/getSortedRowModel.js');
|
|
40
|
+
var getGroupedRowModel = require('./utils/getGroupedRowModel.js');
|
|
41
|
+
var getExpandedRowModel = require('./utils/getExpandedRowModel.js');
|
|
42
|
+
var getPaginationRowModel = require('./utils/getPaginationRowModel.js');
|
|
36
43
|
|
|
37
44
|
|
|
38
45
|
|
|
39
|
-
exports.createTableInstance =
|
|
40
|
-
exports.Please_use_the_create_table_column_utilities_to_define_columns = types.Please_use_the_create_table_column_utilities_to_define_columns;
|
|
41
|
-
exports.createTable = createTable.createTable;
|
|
46
|
+
exports.createTableInstance = instance.createTableInstance;
|
|
42
47
|
exports.createTableFactory = createTable.createTableFactory;
|
|
48
|
+
exports.createColumn = column.createColumn;
|
|
49
|
+
exports.Headers = headers.Headers;
|
|
50
|
+
exports.buildHeaderGroups = headers.buildHeaderGroups;
|
|
51
|
+
exports.createRow = row.createRow;
|
|
43
52
|
exports.ColumnSizing = ColumnSizing.ColumnSizing;
|
|
44
53
|
exports.defaultColumnSizing = ColumnSizing.defaultColumnSizing;
|
|
45
54
|
exports.passiveEventSupported = ColumnSizing.passiveEventSupported;
|
|
46
55
|
exports.Expanding = Expanding.Expanding;
|
|
47
56
|
exports.Filters = Filters.Filters;
|
|
48
|
-
exports.getDefaultColumn = Filters.getDefaultColumn;
|
|
49
57
|
exports.shouldAutoRemoveFilter = Filters.shouldAutoRemoveFilter;
|
|
50
58
|
exports.Grouping = Grouping.Grouping;
|
|
51
|
-
exports.
|
|
52
|
-
exports.buildHeaderGroups = Headers.buildHeaderGroups;
|
|
59
|
+
exports.orderColumns = Grouping.orderColumns;
|
|
53
60
|
exports.Ordering = Ordering.Ordering;
|
|
54
61
|
exports.Pagination = Pagination.Pagination;
|
|
55
62
|
exports.Pinning = Pinning.Pinning;
|
|
@@ -58,18 +65,24 @@ exports.isRowSelected = RowSelection.isRowSelected;
|
|
|
58
65
|
exports.selectRowsFn = RowSelection.selectRowsFn;
|
|
59
66
|
exports.Sorting = Sorting.Sorting;
|
|
60
67
|
exports.Visibility = Visibility.Visibility;
|
|
68
|
+
exports.filterFns = filterFns.filterFns;
|
|
69
|
+
exports.reSplitAlphaNumeric = sortingFns.reSplitAlphaNumeric;
|
|
70
|
+
exports.sortingFns = sortingFns.sortingFns;
|
|
71
|
+
exports.aggregationFns = aggregationFns.aggregationFns;
|
|
61
72
|
exports.flattenBy = utils.flattenBy;
|
|
62
|
-
exports.flexRender = utils.flexRender;
|
|
63
73
|
exports.functionalUpdate = utils.functionalUpdate;
|
|
64
74
|
exports.isFunction = utils.isFunction;
|
|
65
75
|
exports.makeStateUpdater = utils.makeStateUpdater;
|
|
66
76
|
exports.memo = utils.memo;
|
|
67
77
|
exports.noop = utils.noop;
|
|
68
|
-
exports.
|
|
69
|
-
exports.
|
|
70
|
-
exports.
|
|
71
|
-
exports.
|
|
72
|
-
exports.
|
|
73
|
-
exports.
|
|
74
|
-
exports.
|
|
78
|
+
exports.getCoreRowModel = getCoreRowModel.getCoreRowModel;
|
|
79
|
+
exports.getFilteredRowModel = getFilteredRowModel.getFilteredRowModel;
|
|
80
|
+
exports.getFacetedRowModel = getFacetedRowModel.getFacetedRowModel;
|
|
81
|
+
exports.getFacetedUniqueValues = getFacetedUniqueValues.getFacetedUniqueValues;
|
|
82
|
+
exports.getFacetedMinMaxValues = getFacetedMinMaxValues.getFacetedMinMaxValues;
|
|
83
|
+
exports.getSortedRowModel = getSortedRowModel.getSortedRowModel;
|
|
84
|
+
exports.getGroupedRowModel = getGroupedRowModel.getGroupedRowModel;
|
|
85
|
+
exports.expandRows = getExpandedRowModel.expandRows;
|
|
86
|
+
exports.getExpandedRowModel = getExpandedRowModel.getExpandedRowModel;
|
|
87
|
+
exports.getPaginationRowModel = getPaginationRowModel.getPaginationRowModel;
|
|
75
88
|
//# sourceMappingURL=index.js.map
|
package/build/cjs/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,124 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* table-core
|
|
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
|
+
const reSplitAlphaNumeric = /([0-9]+)/gm;
|
|
16
|
+
|
|
17
|
+
const alphanumeric = (rowA, rowB, columnId) => {
|
|
18
|
+
return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
|
|
19
|
+
};
|
|
20
|
+
|
|
21
|
+
const alphanumericCaseSensitive = (rowA, rowB, columnId) => {
|
|
22
|
+
return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
|
|
23
|
+
}; // The text filter is more basic (less numeric support)
|
|
24
|
+
// but is much faster
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
const text = (rowA, rowB, columnId) => {
|
|
28
|
+
return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
|
|
29
|
+
}; // The text filter is more basic (less numeric support)
|
|
30
|
+
// but is much faster
|
|
31
|
+
|
|
32
|
+
|
|
33
|
+
const textCaseSensitive = (rowA, rowB, columnId) => {
|
|
34
|
+
return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
const datetime = (rowA, rowB, columnId) => {
|
|
38
|
+
return compareBasic(rowA.getValue(columnId).getTime(), rowB.getValue(columnId).getTime());
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
const basic = (rowA, rowB, columnId) => {
|
|
42
|
+
return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));
|
|
43
|
+
}; // Utils
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
function compareBasic(a, b) {
|
|
47
|
+
return a === b ? 0 : a > b ? 1 : -1;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
function toString(a) {
|
|
51
|
+
if (typeof a === 'number') {
|
|
52
|
+
if (isNaN(a) || a === Infinity || a === -Infinity) {
|
|
53
|
+
return '';
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
return String(a);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
if (typeof a === 'string') {
|
|
60
|
+
return a;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
return '';
|
|
64
|
+
} // Mixed sorting is slow, but very inclusive of many edge cases.
|
|
65
|
+
// It handles numbers, mixed alphanumeric combinations, and even
|
|
66
|
+
// null, undefined, and Infinity
|
|
67
|
+
|
|
68
|
+
|
|
69
|
+
function compareAlphanumeric(aStr, bStr) {
|
|
70
|
+
// Split on number groups, but keep the delimiter
|
|
71
|
+
// Then remove falsey split values
|
|
72
|
+
const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);
|
|
73
|
+
const b = bStr.split(reSplitAlphaNumeric).filter(Boolean); // While
|
|
74
|
+
|
|
75
|
+
while (a.length && b.length) {
|
|
76
|
+
const aa = a.shift();
|
|
77
|
+
const bb = b.shift();
|
|
78
|
+
const an = parseInt(aa, 10);
|
|
79
|
+
const bn = parseInt(bb, 10);
|
|
80
|
+
const combo = [an, bn].sort(); // Both are string
|
|
81
|
+
|
|
82
|
+
if (isNaN(combo[0])) {
|
|
83
|
+
if (aa > bb) {
|
|
84
|
+
return 1;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
if (bb > aa) {
|
|
88
|
+
return -1;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
continue;
|
|
92
|
+
} // One is a string, one is a number
|
|
93
|
+
|
|
94
|
+
|
|
95
|
+
if (isNaN(combo[1])) {
|
|
96
|
+
return isNaN(an) ? -1 : 1;
|
|
97
|
+
} // Both are numbers
|
|
98
|
+
|
|
99
|
+
|
|
100
|
+
if (an > bn) {
|
|
101
|
+
return 1;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
if (bn > an) {
|
|
105
|
+
return -1;
|
|
106
|
+
}
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
return a.length - b.length;
|
|
110
|
+
} // Exports
|
|
111
|
+
|
|
112
|
+
|
|
113
|
+
const sortingFns = {
|
|
114
|
+
alphanumeric,
|
|
115
|
+
alphanumericCaseSensitive,
|
|
116
|
+
text,
|
|
117
|
+
textCaseSensitive,
|
|
118
|
+
datetime,
|
|
119
|
+
basic
|
|
120
|
+
};
|
|
121
|
+
|
|
122
|
+
exports.reSplitAlphaNumeric = reSplitAlphaNumeric;
|
|
123
|
+
exports.sortingFns = sortingFns;
|
|
124
|
+
//# sourceMappingURL=sortingFns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortingFns.js","sources":["../../src/sortingFns.ts"],"sourcesContent":["import { SortingFn } from './features/Sorting'\n\nexport const reSplitAlphaNumeric = /([0-9]+)/gm\n\nconst alphanumeric: SortingFn<any> = (rowA, rowB, columnId) => {\n return compareAlphanumeric(\n toString(rowA.getValue(columnId)).toLowerCase(),\n toString(rowB.getValue(columnId)).toLowerCase()\n )\n}\n\nconst alphanumericCaseSensitive: SortingFn<any> = (rowA, rowB, columnId) => {\n return compareAlphanumeric(\n toString(rowA.getValue(columnId)),\n toString(rowB.getValue(columnId))\n )\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text: SortingFn<any> = (rowA, rowB, columnId) => {\n return compareBasic(\n toString(rowA.getValue(columnId)).toLowerCase(),\n toString(rowB.getValue(columnId)).toLowerCase()\n )\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive: SortingFn<any> = (rowA, rowB, columnId) => {\n return compareBasic(\n toString(rowA.getValue(columnId)),\n toString(rowB.getValue(columnId))\n )\n}\n\nconst datetime: SortingFn<any> = (rowA, rowB, columnId) => {\n return compareBasic(\n (rowA.getValue(columnId) as Date).getTime(),\n (rowB.getValue(columnId) as Date).getTime()\n )\n}\n\nconst basic: SortingFn<any> = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId))\n}\n\n// Utils\n\nfunction compareBasic(a: any, b: any) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n\nfunction toString(a: any) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return ''\n }\n return String(a)\n }\n if (typeof a === 'string') {\n return a\n }\n return ''\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr: string, bStr: string) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean)\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean)\n\n // While\n while (a.length && b.length) {\n const aa = a.shift()!\n const bb = b.shift()!\n\n const an = parseInt(aa, 10)\n const bn = parseInt(bb, 10)\n\n const combo = [an, bn].sort()\n\n // Both are string\n if (isNaN(combo[0]!)) {\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1]!)) {\n return isNaN(an) ? -1 : 1\n }\n\n // Both are numbers\n if (an > bn) {\n return 1\n }\n if (bn > an) {\n return -1\n }\n }\n\n return a.length - b.length\n}\n\n// Exports\n\nexport const sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic,\n}\n\nexport type BuiltInSortingFn = keyof typeof sortingFns\n"],"names":["reSplitAlphaNumeric","alphanumeric","rowA","rowB","columnId","compareAlphanumeric","toString","getValue","toLowerCase","alphanumericCaseSensitive","text","compareBasic","textCaseSensitive","datetime","getTime","basic","a","b","isNaN","Infinity","String","aStr","bStr","split","filter","Boolean","length","aa","shift","bb","an","parseInt","bn","combo","sort","sortingFns"],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* table-core
|
|
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 row = require('../core/row.js');
|
|
16
|
+
|
|
17
|
+
function filterRows(rows, filterRowImpl, instance) {
|
|
18
|
+
if (instance.options.filterFromLeafRows) {
|
|
19
|
+
return filterRowModelFromLeafs(rows, filterRowImpl, instance);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
return filterRowModelFromRoot(rows, filterRowImpl, instance);
|
|
23
|
+
}
|
|
24
|
+
function filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {
|
|
25
|
+
const newFilteredFlatRows = [];
|
|
26
|
+
const newFilteredRowsById = {};
|
|
27
|
+
let row$1;
|
|
28
|
+
let newRow;
|
|
29
|
+
|
|
30
|
+
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
31
|
+
if (depth === void 0) {
|
|
32
|
+
depth = 0;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
const rows = []; // Filter from children up first
|
|
36
|
+
|
|
37
|
+
for (let i = 0; i < rowsToFilter.length; i++) {
|
|
38
|
+
var _row$subRows;
|
|
39
|
+
|
|
40
|
+
row$1 = rowsToFilter[i];
|
|
41
|
+
|
|
42
|
+
if ((_row$subRows = row$1.subRows) != null && _row$subRows.length) {
|
|
43
|
+
newRow = row.createRow(instance, row$1.id, row$1.original, row$1.index, row$1.depth);
|
|
44
|
+
newRow.columnFilters = row$1.columnFilters;
|
|
45
|
+
newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1);
|
|
46
|
+
|
|
47
|
+
if (!newRow.subRows.length) {
|
|
48
|
+
continue;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
row$1 = newRow;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
if (filterRow(row$1)) {
|
|
55
|
+
rows.push(row$1);
|
|
56
|
+
newFilteredRowsById[row$1.id] = row$1;
|
|
57
|
+
newFilteredRowsById[i] = row$1;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
|
|
61
|
+
return rows;
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
return {
|
|
65
|
+
rows: recurseFilterRows(rowsToFilter),
|
|
66
|
+
flatRows: newFilteredFlatRows,
|
|
67
|
+
rowsById: newFilteredRowsById
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
function filterRowModelFromRoot(rowsToFilter, filterRow, instance) {
|
|
71
|
+
const newFilteredFlatRows = [];
|
|
72
|
+
const newFilteredRowsById = {};
|
|
73
|
+
let rows;
|
|
74
|
+
let row$1;
|
|
75
|
+
let newRow; // Filters top level and nested rows
|
|
76
|
+
|
|
77
|
+
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
78
|
+
if (depth === void 0) {
|
|
79
|
+
depth = 0;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
// Filter from parents downward first
|
|
83
|
+
rows = []; // Apply the filter to any subRows
|
|
84
|
+
|
|
85
|
+
for (let i = 0; i < rowsToFilter.length; i++) {
|
|
86
|
+
row$1 = rowsToFilter[i];
|
|
87
|
+
const pass = filterRow(row$1);
|
|
88
|
+
|
|
89
|
+
if (pass) {
|
|
90
|
+
var _row$subRows2;
|
|
91
|
+
|
|
92
|
+
if ((_row$subRows2 = row$1.subRows) != null && _row$subRows2.length) {
|
|
93
|
+
newRow = row.createRow(instance, row$1.id, row$1.original, row$1.index, row$1.depth);
|
|
94
|
+
newRow.subRows = recurseFilterRows(row$1.subRows, depth + 1);
|
|
95
|
+
row$1 = newRow;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
rows.push(row$1);
|
|
99
|
+
newFilteredFlatRows.push(row$1);
|
|
100
|
+
newFilteredRowsById[row$1.id] = row$1;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
return rows;
|
|
105
|
+
};
|
|
106
|
+
|
|
107
|
+
return {
|
|
108
|
+
rows: recurseFilterRows(rowsToFilter),
|
|
109
|
+
flatRows: newFilteredFlatRows,
|
|
110
|
+
rowsById: newFilteredRowsById
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
exports.filterRowModelFromLeafs = filterRowModelFromLeafs;
|
|
115
|
+
exports.filterRowModelFromRoot = filterRowModelFromRoot;
|
|
116
|
+
exports.filterRows = filterRows;
|
|
117
|
+
//# sourceMappingURL=filterRowsUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { TableGenerics, Row, RowModel, TableInstance } from '../types'\n\nexport function filterRows<TGenerics extends TableGenerics>(\n rows: Row<TGenerics>[],\n filterRowImpl: (row: Row<TGenerics>) => any,\n instance: TableInstance<TGenerics>\n) {\n if (instance.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, instance)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, instance)\n}\n\nexport function filterRowModelFromLeafs<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRow: (row: Row<TGenerics>) => Row<TGenerics>[],\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n let row\n let newRow\n\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n const rows: Row<TGenerics>[] = []\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n row = rowsToFilter[i]!\n\n if (row.subRows?.length) {\n newRow = createRow(instance, row.id, row.original, row.index, row.depth)\n newRow.columnFilters = row.columnFilters\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1)\n if (!newRow.subRows.length) {\n continue\n }\n row = newRow\n }\n\n if (filterRow(row)) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredRowsById[i] = row\n }\n }\n\n return rows\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n\nexport function filterRowModelFromRoot<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRow: (row: Row<TGenerics>) => any,\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n let rows\n let row\n let newRow\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n // Filter from parents downward first\n\n rows = []\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n row = rowsToFilter[i]!\n\n const pass = filterRow(row)\n\n if (pass) {\n if (row.subRows?.length) {\n newRow = createRow(\n instance,\n row.id,\n row.original,\n row.index,\n row.depth\n )\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1)\n row = newRow\n }\n\n rows.push(row)\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n }\n }\n\n return rows\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n"],"names":["filterRows","rows","filterRowImpl","instance","options","filterFromLeafRows","filterRowModelFromLeafs","filterRowModelFromRoot","rowsToFilter","filterRow","newFilteredFlatRows","newFilteredRowsById","row","newRow","recurseFilterRows","depth","i","length","subRows","createRow","id","original","index","columnFilters","push","flatRows","rowsById","pass"],"mappings":"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"}
|
|
@@ -0,0 +1,79 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* table-core
|
|
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 row = require('../core/row.js');
|
|
16
|
+
var utils = require('../utils.js');
|
|
17
|
+
|
|
18
|
+
function getCoreRowModel() {
|
|
19
|
+
return instance => utils.memo(() => [instance.options.data], data => {
|
|
20
|
+
const rowModel = {
|
|
21
|
+
rows: [],
|
|
22
|
+
flatRows: [],
|
|
23
|
+
rowsById: {}
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
const accessRows = function (originalRows, depth, parent) {
|
|
27
|
+
if (depth === void 0) {
|
|
28
|
+
depth = 0;
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
const rows = [];
|
|
32
|
+
|
|
33
|
+
for (let i = 0; i < originalRows.length; i++) {
|
|
34
|
+
// This could be an expensive check at scale, so we should move it somewhere else, but where?
|
|
35
|
+
// if (!id) {
|
|
36
|
+
// if (process.env.NODE_ENV !== 'production') {
|
|
37
|
+
// throw new Error(`getRowId expected an ID, but got ${id}`)
|
|
38
|
+
// }
|
|
39
|
+
// }
|
|
40
|
+
// Make the row
|
|
41
|
+
const row$1 = row.createRow(instance, instance._getRowId(originalRows[i], i, parent), originalRows[i], i, depth); // Keep track of every row in a flat array
|
|
42
|
+
|
|
43
|
+
rowModel.flatRows.push(row$1); // Also keep track of every row by its ID
|
|
44
|
+
|
|
45
|
+
rowModel.rowsById[row$1.id] = row$1; // Push instance row into parent
|
|
46
|
+
|
|
47
|
+
rows.push(row$1); // Get the original subrows
|
|
48
|
+
|
|
49
|
+
if (instance.options.getSubRows) {
|
|
50
|
+
var _row$originalSubRows;
|
|
51
|
+
|
|
52
|
+
row$1.originalSubRows = instance.options.getSubRows(originalRows[i], i); // Then recursively access them
|
|
53
|
+
|
|
54
|
+
if ((_row$originalSubRows = row$1.originalSubRows) != null && _row$originalSubRows.length) {
|
|
55
|
+
row$1.subRows = accessRows(row$1.originalSubRows, depth + 1, row$1);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
return rows;
|
|
61
|
+
};
|
|
62
|
+
|
|
63
|
+
rowModel.rows = accessRows(data);
|
|
64
|
+
return rowModel;
|
|
65
|
+
}, {
|
|
66
|
+
key: process.env.NODE_ENV === 'development' && 'getRowModel',
|
|
67
|
+
debug: () => {
|
|
68
|
+
var _instance$options$deb;
|
|
69
|
+
|
|
70
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
71
|
+
},
|
|
72
|
+
onChange: () => {
|
|
73
|
+
instance._autoResetPageIndex();
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
exports.getCoreRowModel = getCoreRowModel;
|
|
79
|
+
//# sourceMappingURL=getCoreRowModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [instance.options.data],\n (\n data\n ): {\n rows: Row<TGenerics>[]\n flatRows: Row<TGenerics>[]\n rowsById: Record<string, Row<TGenerics>>\n } => {\n const rowModel: RowModel<TGenerics> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n const accessRows = (\n originalRows: TGenerics['Row'][],\n depth = 0,\n parent?: Row<TGenerics>\n ): Row<TGenerics>[] => {\n const rows = [] as Row<TGenerics>[]\n\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\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 // Make the row\n const row = createRow(\n instance,\n instance._getRowId(originalRows[i], i, parent),\n originalRows[i],\n i,\n depth\n )\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row)\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row\n // Push instance row into parent\n rows.push(row)\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n row.originalSubRows = instance.options.getSubRows(\n originalRows[i],\n i\n )\n\n // Then recursively access them\n if (row.originalSubRows?.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row)\n }\n }\n }\n\n return rows\n }\n\n rowModel.rows = accessRows(data)\n\n return rowModel\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getCoreRowModel","instance","memo","options","data","rowModel","rows","flatRows","rowsById","accessRows","originalRows","depth","parent","i","length","row","createRow","_getRowId","push","id","getSubRows","originalSubRows","subRows","key","process","env","NODE_ENV","debug","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":";;;;;;;;;;;;;;;;;AAIO,SAASA,eAAT,GAEwB;AAC7B,EAAA,OAAOC,QAAQ,IACbC,UAAI,CACF,MAAM,CAACD,QAAQ,CAACE,OAAT,CAAiBC,IAAlB,CADJ,EAGAA,IADF,IAMK;AACH,IAAA,MAAMC,QAA6B,GAAG;AACpCC,MAAAA,IAAI,EAAE,EAD8B;AAEpCC,MAAAA,QAAQ,EAAE,EAF0B;AAGpCC,MAAAA,QAAQ,EAAE,EAAA;AAH0B,KAAtC,CAAA;;AAMA,IAAMC,MAAAA,UAAU,GAAG,UACjBC,YADiB,EAEjBC,KAFiB,EAGjBC,MAHiB,EAII;AAAA,MAAA,IAFrBD,KAEqB,KAAA,KAAA,CAAA,EAAA;AAFrBA,QAAAA,KAEqB,GAFb,CAEa,CAAA;AAAA,OAAA;;AACrB,MAAML,MAAAA,IAAI,GAAG,EAAb,CAAA;;AAEA,MAAA,KAAK,IAAIO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,YAAY,CAACI,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC5C;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,QAAA,MAAME,KAAG,GAAGC,aAAS,CACnBf,QADmB,EAEnBA,QAAQ,CAACgB,SAAT,CAAmBP,YAAY,CAACG,CAAD,CAA/B,EAAoCA,CAApC,EAAuCD,MAAvC,CAFmB,EAGnBF,YAAY,CAACG,CAAD,CAHO,EAInBA,CAJmB,EAKnBF,KALmB,CAArB,CAT4C;;AAkB5CN,QAAAA,QAAQ,CAACE,QAAT,CAAkBW,IAAlB,CAAuBH,KAAvB,EAlB4C;;AAoB5CV,QAAAA,QAAQ,CAACG,QAAT,CAAkBO,KAAG,CAACI,EAAtB,CAAA,GAA4BJ,KAA5B,CApB4C;;AAsB5CT,QAAAA,IAAI,CAACY,IAAL,CAAUH,KAAV,EAtB4C;;AAyB5C,QAAA,IAAId,QAAQ,CAACE,OAAT,CAAiBiB,UAArB,EAAiC;AAAA,UAAA,IAAA,oBAAA,CAAA;;AAC/BL,UAAAA,KAAG,CAACM,eAAJ,GAAsBpB,QAAQ,CAACE,OAAT,CAAiBiB,UAAjB,CACpBV,YAAY,CAACG,CAAD,CADQ,EAEpBA,CAFoB,CAAtB,CAD+B;;AAO/B,UAAA,IAAA,CAAA,oBAAA,GAAIE,KAAG,CAACM,eAAR,KAAI,IAAA,IAAA,oBAAA,CAAqBP,MAAzB,EAAiC;AAC/BC,YAAAA,KAAG,CAACO,OAAJ,GAAcb,UAAU,CAACM,KAAG,CAACM,eAAL,EAAsBV,KAAK,GAAG,CAA9B,EAAiCI,KAAjC,CAAxB,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAED,MAAA,OAAOT,IAAP,CAAA;AACD,KA9CD,CAAA;;AAgDAD,IAAAA,QAAQ,CAACC,IAAT,GAAgBG,UAAU,CAACL,IAAD,CAA1B,CAAA;AAEA,IAAA,OAAOC,QAAP,CAAA;AACD,GAlEC,EAmEF;AACEkB,IAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,aADjD;AAEEC,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAM1B,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACE,OAAT,CAAiByB,QAAvB,oCAAmC3B,QAAQ,CAACE,OAAT,CAAiB0B,UAApD,CAAA;AAAA,KAFT;AAGEC,IAAAA,QAAQ,EAAE,MAAM;AACd7B,MAAAA,QAAQ,CAAC8B,mBAAT,EAAA,CAAA;AACD,KAAA;AALH,GAnEE,CADN,CAAA;AA4ED;;;;"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* table-core
|
|
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 utils = require('../utils.js');
|
|
16
|
+
|
|
17
|
+
function getExpandedRowModel() {
|
|
18
|
+
return instance => utils.memo(() => [instance.getState().expanded, instance.getPreExpandedRowModel(), instance.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {
|
|
19
|
+
if (!rowModel.rows.length || // Do not expand if rows are not included in pagination
|
|
20
|
+
!paginateExpandedRows || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {
|
|
21
|
+
return rowModel;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
return expandRows(rowModel);
|
|
25
|
+
}, {
|
|
26
|
+
key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',
|
|
27
|
+
debug: () => {
|
|
28
|
+
var _instance$options$deb;
|
|
29
|
+
|
|
30
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
}
|
|
34
|
+
function expandRows(rowModel, instance) {
|
|
35
|
+
const expandedRows = [];
|
|
36
|
+
|
|
37
|
+
const handleRow = row => {
|
|
38
|
+
var _row$subRows;
|
|
39
|
+
|
|
40
|
+
expandedRows.push(row);
|
|
41
|
+
|
|
42
|
+
if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {
|
|
43
|
+
row.subRows.forEach(handleRow);
|
|
44
|
+
}
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
rowModel.rows.forEach(handleRow);
|
|
48
|
+
return {
|
|
49
|
+
rows: expandedRows,
|
|
50
|
+
flatRows: rowModel.flatRows,
|
|
51
|
+
rowsById: rowModel.rowsById
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
exports.expandRows = expandRows;
|
|
56
|
+
exports.getExpandedRowModel = getExpandedRowModel;
|
|
57
|
+
//# sourceMappingURL=getExpandedRowModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getExpandedRowModel.js","sources":["../../../src/utils/getExpandedRowModel.ts"],"sourcesContent":["import { TableInstance, Row, RowModel, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getExpandedRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>\n) => () => RowModel<TGenerics> {\n return instance =>\n memo(\n () => [\n instance.getState().expanded,\n instance.getPreExpandedRowModel(),\n instance.options.paginateExpandedRows,\n ],\n (expanded, rowModel, paginateExpandedRows) => {\n if (\n !rowModel.rows.length ||\n // Do not expand if rows are not included in pagination\n !paginateExpandedRows ||\n (expanded !== true && !Object.keys(expanded ?? {}).length)\n ) {\n return rowModel\n }\n\n return expandRows(rowModel, instance)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n }\n )\n}\n\nexport function expandRows<TGenerics extends TableGenerics>(\n rowModel: RowModel<TGenerics>,\n instance: TableInstance<TGenerics>\n) {\n const expandedRows: Row<TGenerics>[] = []\n\n const handleRow = (row: Row<TGenerics>) => {\n expandedRows.push(row)\n\n if (row.subRows?.length && row.getIsExpanded()) {\n row.subRows.forEach(handleRow)\n }\n }\n\n rowModel.rows.forEach(handleRow)\n\n return {\n rows: expandedRows,\n flatRows: rowModel.flatRows,\n rowsById: rowModel.rowsById,\n }\n}\n"],"names":["getExpandedRowModel","instance","memo","getState","expanded","getPreExpandedRowModel","options","paginateExpandedRows","rowModel","rows","length","Object","keys","expandRows","key","process","env","NODE_ENV","debug","debugAll","debugTable","expandedRows","handleRow","row","push","subRows","getIsExpanded","forEach","flatRows","rowsById"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAASA,mBAAT,GAEwB;AAC7B,EAAA,OAAOC,QAAQ,IACbC,UAAI,CACF,MAAM,CACJD,QAAQ,CAACE,QAAT,EAAA,CAAoBC,QADhB,EAEJH,QAAQ,CAACI,sBAAT,EAFI,EAGJJ,QAAQ,CAACK,OAAT,CAAiBC,oBAHb,CADJ,EAMF,CAACH,QAAD,EAAWI,QAAX,EAAqBD,oBAArB,KAA8C;AAC5C,IAAA,IACE,CAACC,QAAQ,CAACC,IAAT,CAAcC,MAAf;AAEA,IAAA,CAACH,oBAFD,IAGCH,QAAQ,KAAK,IAAb,IAAqB,CAACO,MAAM,CAACC,IAAP,CAAYR,QAAZ,IAAYA,IAAAA,GAAAA,QAAZ,GAAwB,EAAxB,CAAA,CAA4BM,MAJrD,EAKE;AACA,MAAA,OAAOF,QAAP,CAAA;AACD,KAAA;;AAED,IAAA,OAAOK,UAAU,CAACL,QAAD,CAAjB,CAAA;AACD,GAjBC,EAkBF;AACEM,IAAAA,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,qBADjD;AAEEC,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAMjB,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACK,OAAT,CAAiBa,QAAvB,oCAAmClB,QAAQ,CAACK,OAAT,CAAiBc,UAApD,CAAA;AAAA,KAAA;AAFT,GAlBE,CADN,CAAA;AAwBD,CAAA;AAEM,SAASP,UAAT,CACLL,QADK,EAELP,QAFK,EAGL;AACA,EAAMoB,MAAAA,YAA8B,GAAG,EAAvC,CAAA;;AAEA,EAAMC,MAAAA,SAAS,GAAIC,GAAD,IAAyB;AAAA,IAAA,IAAA,YAAA,CAAA;;AACzCF,IAAAA,YAAY,CAACG,IAAb,CAAkBD,GAAlB,CAAA,CAAA;;AAEA,IAAI,IAAA,CAAA,YAAA,GAAAA,GAAG,CAACE,OAAJ,KAAA,IAAA,IAAA,YAAA,CAAaf,MAAb,IAAuBa,GAAG,CAACG,aAAJ,EAA3B,EAAgD;AAC9CH,MAAAA,GAAG,CAACE,OAAJ,CAAYE,OAAZ,CAAoBL,SAApB,CAAA,CAAA;AACD,KAAA;AACF,GAND,CAAA;;AAQAd,EAAAA,QAAQ,CAACC,IAAT,CAAckB,OAAd,CAAsBL,SAAtB,CAAA,CAAA;AAEA,EAAO,OAAA;AACLb,IAAAA,IAAI,EAAEY,YADD;AAELO,IAAAA,QAAQ,EAAEpB,QAAQ,CAACoB,QAFd;AAGLC,IAAAA,QAAQ,EAAErB,QAAQ,CAACqB,QAAAA;AAHd,GAAP,CAAA;AAKD;;;;;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* table-core
|
|
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 utils = require('../utils.js');
|
|
16
|
+
|
|
17
|
+
function getFacetedMinMaxValues() {
|
|
18
|
+
return (instance, columnId) => utils.memo(() => [instance.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {
|
|
19
|
+
var _facetedRowModel$flat;
|
|
20
|
+
|
|
21
|
+
const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);
|
|
22
|
+
|
|
23
|
+
if (typeof firstValue === 'undefined') {
|
|
24
|
+
return undefined;
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
let facetedMinMaxValues = [firstValue, firstValue];
|
|
28
|
+
|
|
29
|
+
for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
|
|
30
|
+
var _facetedRowModel$flat2;
|
|
31
|
+
|
|
32
|
+
const value = (_facetedRowModel$flat2 = facetedRowModel.flatRows[i]) == null ? void 0 : _facetedRowModel$flat2.getValue(columnId);
|
|
33
|
+
|
|
34
|
+
if (value < facetedMinMaxValues[0]) {
|
|
35
|
+
facetedMinMaxValues[0] = value;
|
|
36
|
+
} else if (value > facetedMinMaxValues[1]) {
|
|
37
|
+
facetedMinMaxValues[1] = value;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
return facetedMinMaxValues;
|
|
42
|
+
}, {
|
|
43
|
+
key: process.env.NODE_ENV === 'development' && 'getFacetedMinMaxValues_' + columnId,
|
|
44
|
+
debug: () => {
|
|
45
|
+
var _instance$options$deb;
|
|
46
|
+
|
|
47
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
48
|
+
},
|
|
49
|
+
onChange: () => {}
|
|
50
|
+
});
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
exports.getFacetedMinMaxValues = getFacetedMinMaxValues;
|
|
54
|
+
//# sourceMappingURL=getFacetedMinMaxValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFacetedMinMaxValues.js","sources":["../../../src/utils/getFacetedMinMaxValues.ts"],"sourcesContent":["import { TableInstance, TableGenerics } from '../types'\nimport { memo } from '../utils'\n\nexport function getFacetedMinMaxValues<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>,\n columnId: string\n) => () => undefined | [number, number] {\n return (instance, columnId) =>\n memo(\n () => [instance.getColumn(columnId).getFacetedRowModel()],\n facetedRowModel => {\n const firstValue = facetedRowModel.flatRows[0]?.getValue(columnId)\n\n if (typeof firstValue === 'undefined') {\n return undefined\n }\n\n let facetedMinMaxValues: [any, any] = [firstValue, firstValue]\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const value = facetedRowModel.flatRows[i]?.getValue(columnId)\n\n if (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value\n }\n }\n\n return facetedMinMaxValues\n },\n {\n key:\n process.env.NODE_ENV === 'development' &&\n 'getFacetedMinMaxValues_' + columnId,\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {},\n }\n )\n}\n"],"names":["getFacetedMinMaxValues","instance","columnId","memo","getColumn","getFacetedRowModel","facetedRowModel","firstValue","flatRows","getValue","undefined","facetedMinMaxValues","i","length","value","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAASA,sBAAT,GAGiC;AACtC,EAAO,OAAA,CAACC,QAAD,EAAWC,QAAX,KACLC,UAAI,CACF,MAAM,CAACF,QAAQ,CAACG,SAAT,CAAmBF,QAAnB,CAA6BG,CAAAA,kBAA7B,EAAD,CADJ,EAEFC,eAAe,IAAI;AAAA,IAAA,IAAA,qBAAA,CAAA;;AACjB,IAAA,MAAMC,UAAU,GAAA,CAAA,qBAAA,GAAGD,eAAe,CAACE,QAAhB,CAAyB,CAAzB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAA6BC,QAA7B,CAAsCP,QAAtC,CAAnB,CAAA;;AAEA,IAAA,IAAI,OAAOK,UAAP,KAAsB,WAA1B,EAAuC;AACrC,MAAA,OAAOG,SAAP,CAAA;AACD,KAAA;;AAED,IAAA,IAAIC,mBAA+B,GAAG,CAACJ,UAAD,EAAaA,UAAb,CAAtC,CAAA;;AAEA,IAAA,KAAK,IAAIK,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGN,eAAe,CAACE,QAAhB,CAAyBK,MAA7C,EAAqDD,CAAC,EAAtD,EAA0D;AAAA,MAAA,IAAA,sBAAA,CAAA;;AACxD,MAAA,MAAME,KAAK,GAAA,CAAA,sBAAA,GAAGR,eAAe,CAACE,QAAhB,CAAyBI,CAAzB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA6BH,QAA7B,CAAsCP,QAAtC,CAAd,CAAA;;AAEA,MAAA,IAAIY,KAAK,GAAGH,mBAAmB,CAAC,CAAD,CAA/B,EAAoC;AAClCA,QAAAA,mBAAmB,CAAC,CAAD,CAAnB,GAAyBG,KAAzB,CAAA;AACD,OAFD,MAEO,IAAIA,KAAK,GAAGH,mBAAmB,CAAC,CAAD,CAA/B,EAAoC;AACzCA,QAAAA,mBAAmB,CAAC,CAAD,CAAnB,GAAyBG,KAAzB,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAOH,mBAAP,CAAA;AACD,GAtBC,EAuBF;AACEI,IAAAA,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IACA,yBAAA,GAA4BhB,QAHhC;AAIEiB,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAMlB,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACmB,OAAT,CAAiBC,QAAvB,oCAAmCpB,QAAQ,CAACmB,OAAT,CAAiBE,UAApD,CAAA;AAAA,KAJT;AAKEC,IAAAA,QAAQ,EAAE,MAAM,EAAE;AALpB,GAvBE,CADN,CAAA;AAgCD;;;;"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* table-core
|
|
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 utils = require('../utils.js');
|
|
16
|
+
var filterRowsUtils = require('./filterRowsUtils.js');
|
|
17
|
+
|
|
18
|
+
function getFacetedRowModel() {
|
|
19
|
+
return (instance, columnId) => utils.memo(() => [instance.getPreFilteredRowModel(), instance.getState().columnFilters, instance.getState().globalFilter, instance.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {
|
|
20
|
+
if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {
|
|
21
|
+
return preRowModel;
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);
|
|
25
|
+
|
|
26
|
+
const filterRowsImpl = row => {
|
|
27
|
+
// Horizontally filter rows through each column
|
|
28
|
+
for (let i = 0; i < filterableIds.length; i++) {
|
|
29
|
+
if (row.columnFilters[filterableIds[i]] === false) {
|
|
30
|
+
return false;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
return true;
|
|
35
|
+
};
|
|
36
|
+
|
|
37
|
+
return filterRowsUtils.filterRows(preRowModel.rows, filterRowsImpl, instance);
|
|
38
|
+
}, {
|
|
39
|
+
key: process.env.NODE_ENV === 'development' && 'getFacetedRowModel_' + columnId,
|
|
40
|
+
debug: () => {
|
|
41
|
+
var _instance$options$deb;
|
|
42
|
+
|
|
43
|
+
return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
|
|
44
|
+
},
|
|
45
|
+
onChange: () => {}
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
exports.getFacetedRowModel = getFacetedRowModel;
|
|
50
|
+
//# sourceMappingURL=getFacetedRowModel.js.map
|