@tanstack/table-core 8.5.13 → 8.5.16
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 +0 -15
- package/build/cjs/aggregationFns.js.map +1 -1
- package/build/cjs/columnHelper.js +10 -2
- package/build/cjs/columnHelper.js.map +1 -1
- package/build/cjs/core/cell.js +2 -9
- package/build/cjs/core/cell.js.map +1 -1
- package/build/cjs/core/column.js +9 -27
- package/build/cjs/core/column.js.map +1 -1
- package/build/cjs/core/headers.js +45 -129
- package/build/cjs/core/headers.js.map +1 -1
- package/build/cjs/core/row.js +4 -21
- package/build/cjs/core/row.js.map +1 -1
- package/build/cjs/core/table.js +26 -73
- package/build/cjs/core/table.js.map +1 -1
- package/build/cjs/features/ColumnSizing.js +56 -67
- package/build/cjs/features/ColumnSizing.js.map +1 -1
- package/build/cjs/features/Expanding.js +18 -34
- package/build/cjs/features/Expanding.js.map +1 -1
- package/build/cjs/features/Filters.js +19 -55
- package/build/cjs/features/Filters.js.map +1 -1
- package/build/cjs/features/Grouping.js +9 -26
- package/build/cjs/features/Grouping.js.map +1 -1
- package/build/cjs/features/Ordering.js +14 -13
- package/build/cjs/features/Ordering.js.map +1 -1
- package/build/cjs/features/Pagination.js +20 -43
- package/build/cjs/features/Pagination.js.map +1 -1
- package/build/cjs/features/Pinning.js +26 -66
- package/build/cjs/features/Pinning.js.map +1 -1
- package/build/cjs/features/RowSelection.js +44 -74
- package/build/cjs/features/RowSelection.js.map +1 -1
- package/build/cjs/features/Sorting.js +25 -50
- package/build/cjs/features/Sorting.js.map +1 -1
- package/build/cjs/features/Visibility.js +14 -32
- package/build/cjs/features/Visibility.js.map +1 -1
- package/build/cjs/filterFns.js +3 -28
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/sortingFns.js +24 -31
- package/build/cjs/sortingFns.js.map +1 -1
- package/build/cjs/utils/filterRowsUtils.js +7 -19
- package/build/cjs/utils/filterRowsUtils.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js +12 -18
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/cjs/utils/getExpandedRowModel.js +2 -12
- package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedMinMaxValues.js +1 -11
- package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -1
- package/build/cjs/utils/getFacetedRowModel.js +1 -9
- package/build/cjs/utils/getFacetedRowModel.js.map +1 -1
- package/build/cjs/utils/getFacetedUniqueValues.js +2 -12
- package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -1
- package/build/cjs/utils/getFilteredRowModel.js +14 -34
- package/build/cjs/utils/getFilteredRowModel.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js +25 -35
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/cjs/utils/getPaginationRowModel.js +1 -11
- package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +8 -23
- package/build/cjs/utils/getSortedRowModel.js.map +1 -1
- package/build/cjs/utils.js +11 -14
- package/build/cjs/utils.js.map +1 -1
- package/build/esm/index.js +452 -993
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +44 -34
- package/build/stats-react.json +371 -371
- package/build/umd/index.development.js +452 -991
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/features/ColumnSizing.ts +11 -1
- package/src/features/Expanding.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { FilterFn } from './features/Filters'\n\nconst includesString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n const search = filterValue.toLowerCase()\n return row.getValue<string>(columnId)?.toLowerCase().includes(search)\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nconst includesStringSensitive: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return row.getValue<string>(columnId)?.includes(filterValue)\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nconst equalsString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return (\n row.getValue<string>(columnId)?.toLowerCase() === filterValue.toLowerCase()\n )\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nconst arrIncludes: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue<unknown[]>(columnId)?.includes(filterValue)\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesAll: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return !filterValue.some(\n val => !row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesSome: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return filterValue.some(val =>\n row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst equals: FilterFn<any> = (row, columnId: string, filterValue: unknown) => {\n return row.getValue(columnId) === filterValue\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nconst weakEquals: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nconst inNumberRange: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: [number, number]\n) => {\n let [min, max] = filterValue\n\n const rowValue = row.getValue<number>(columnId)\n return rowValue >= min && rowValue <= max\n}\n\ninNumberRange.resolveFilterValue = (val: [any, any]) => {\n let [unsafeMin, unsafeMax] = val\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return [min, max] as const\n}\n\ninNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Export\n\nexport const filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["includesString","row","columnId","filterValue","search","toLowerCase","getValue","includes","autoRemove","val","testFalsey","includesStringSensitive","equalsString","arrIncludes","length","arrIncludesAll","some","arrIncludesSome","equals","weakEquals","inNumberRange","min","max","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","Number","isNaN","Infinity","temp","filterFns","undefined"],"mappings":";;;;;;;;;;;;;;AAEA,MAAMA,cAA6B,GAAG,CACpCC,
|
|
1
|
+
{"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { FilterFn } from './features/Filters'\n\nconst includesString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n const search = filterValue.toLowerCase()\n return row.getValue<string>(columnId)?.toLowerCase().includes(search)\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nconst includesStringSensitive: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return row.getValue<string>(columnId)?.includes(filterValue)\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nconst equalsString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return (\n row.getValue<string>(columnId)?.toLowerCase() === filterValue.toLowerCase()\n )\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nconst arrIncludes: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue<unknown[]>(columnId)?.includes(filterValue)\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesAll: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return !filterValue.some(\n val => !row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesSome: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return filterValue.some(val =>\n row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst equals: FilterFn<any> = (row, columnId: string, filterValue: unknown) => {\n return row.getValue(columnId) === filterValue\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nconst weakEquals: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nconst inNumberRange: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: [number, number]\n) => {\n let [min, max] = filterValue\n\n const rowValue = row.getValue<number>(columnId)\n return rowValue >= min && rowValue <= max\n}\n\ninNumberRange.resolveFilterValue = (val: [any, any]) => {\n let [unsafeMin, unsafeMax] = val\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return [min, max] as const\n}\n\ninNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Export\n\nexport const filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["includesString","row","columnId","filterValue","search","toLowerCase","getValue","includes","autoRemove","val","testFalsey","includesStringSensitive","equalsString","arrIncludes","length","arrIncludesAll","some","arrIncludesSome","equals","weakEquals","inNumberRange","min","max","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","Number","isNaN","Infinity","temp","filterFns","undefined"],"mappings":"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"}
|
package/build/cjs/sortingFns.js
CHANGED
|
@@ -13,107 +13,100 @@
|
|
|
13
13
|
Object.defineProperty(exports, '__esModule', { value: true });
|
|
14
14
|
|
|
15
15
|
const reSplitAlphaNumeric = /([0-9]+)/gm;
|
|
16
|
-
|
|
17
16
|
const alphanumeric = (rowA, rowB, columnId) => {
|
|
18
17
|
return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
|
|
19
18
|
};
|
|
20
|
-
|
|
21
19
|
const alphanumericCaseSensitive = (rowA, rowB, columnId) => {
|
|
22
20
|
return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
|
|
23
|
-
};
|
|
24
|
-
// but is much faster
|
|
25
|
-
|
|
21
|
+
};
|
|
26
22
|
|
|
23
|
+
// The text filter is more basic (less numeric support)
|
|
24
|
+
// but is much faster
|
|
27
25
|
const text = (rowA, rowB, columnId) => {
|
|
28
26
|
return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
|
|
29
|
-
};
|
|
30
|
-
// but is much faster
|
|
31
|
-
|
|
27
|
+
};
|
|
32
28
|
|
|
29
|
+
// The text filter is more basic (less numeric support)
|
|
30
|
+
// but is much faster
|
|
33
31
|
const textCaseSensitive = (rowA, rowB, columnId) => {
|
|
34
32
|
return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
|
|
35
33
|
};
|
|
36
|
-
|
|
37
34
|
const datetime = (rowA, rowB, columnId) => {
|
|
38
35
|
const a = rowA.getValue(columnId);
|
|
39
|
-
const b = rowB.getValue(columnId);
|
|
36
|
+
const b = rowB.getValue(columnId);
|
|
37
|
+
|
|
38
|
+
// Can handle nullish values
|
|
40
39
|
// Use > and < because == (and ===) doesn't work with
|
|
41
40
|
// Date objects (would require calling getTime()).
|
|
42
|
-
|
|
43
41
|
return a > b ? 1 : a < b ? -1 : 0;
|
|
44
42
|
};
|
|
45
|
-
|
|
46
43
|
const basic = (rowA, rowB, columnId) => {
|
|
47
44
|
return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));
|
|
48
|
-
};
|
|
45
|
+
};
|
|
49
46
|
|
|
47
|
+
// Utils
|
|
50
48
|
|
|
51
49
|
function compareBasic(a, b) {
|
|
52
50
|
return a === b ? 0 : a > b ? 1 : -1;
|
|
53
51
|
}
|
|
54
|
-
|
|
55
52
|
function toString(a) {
|
|
56
53
|
if (typeof a === 'number') {
|
|
57
54
|
if (isNaN(a) || a === Infinity || a === -Infinity) {
|
|
58
55
|
return '';
|
|
59
56
|
}
|
|
60
|
-
|
|
61
57
|
return String(a);
|
|
62
58
|
}
|
|
63
|
-
|
|
64
59
|
if (typeof a === 'string') {
|
|
65
60
|
return a;
|
|
66
61
|
}
|
|
67
|
-
|
|
68
62
|
return '';
|
|
69
|
-
}
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
// Mixed sorting is slow, but very inclusive of many edge cases.
|
|
70
66
|
// It handles numbers, mixed alphanumeric combinations, and even
|
|
71
67
|
// null, undefined, and Infinity
|
|
72
|
-
|
|
73
|
-
|
|
74
68
|
function compareAlphanumeric(aStr, bStr) {
|
|
75
69
|
// Split on number groups, but keep the delimiter
|
|
76
70
|
// Then remove falsey split values
|
|
77
71
|
const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);
|
|
78
|
-
const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);
|
|
72
|
+
const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);
|
|
79
73
|
|
|
74
|
+
// While
|
|
80
75
|
while (a.length && b.length) {
|
|
81
76
|
const aa = a.shift();
|
|
82
77
|
const bb = b.shift();
|
|
83
78
|
const an = parseInt(aa, 10);
|
|
84
79
|
const bn = parseInt(bb, 10);
|
|
85
|
-
const combo = [an, bn].sort();
|
|
80
|
+
const combo = [an, bn].sort();
|
|
86
81
|
|
|
82
|
+
// Both are string
|
|
87
83
|
if (isNaN(combo[0])) {
|
|
88
84
|
if (aa > bb) {
|
|
89
85
|
return 1;
|
|
90
86
|
}
|
|
91
|
-
|
|
92
87
|
if (bb > aa) {
|
|
93
88
|
return -1;
|
|
94
89
|
}
|
|
95
|
-
|
|
96
90
|
continue;
|
|
97
|
-
}
|
|
98
|
-
|
|
91
|
+
}
|
|
99
92
|
|
|
93
|
+
// One is a string, one is a number
|
|
100
94
|
if (isNaN(combo[1])) {
|
|
101
95
|
return isNaN(an) ? -1 : 1;
|
|
102
|
-
}
|
|
103
|
-
|
|
96
|
+
}
|
|
104
97
|
|
|
98
|
+
// Both are numbers
|
|
105
99
|
if (an > bn) {
|
|
106
100
|
return 1;
|
|
107
101
|
}
|
|
108
|
-
|
|
109
102
|
if (bn > an) {
|
|
110
103
|
return -1;
|
|
111
104
|
}
|
|
112
105
|
}
|
|
113
|
-
|
|
114
106
|
return a.length - b.length;
|
|
115
|
-
}
|
|
107
|
+
}
|
|
116
108
|
|
|
109
|
+
// Exports
|
|
117
110
|
|
|
118
111
|
const sortingFns = {
|
|
119
112
|
alphanumeric,
|
|
@@ -1 +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 const a = rowA.getValue<Date>(columnId)\n const b = rowB.getValue<Date>(columnId)\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0\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","a","b","basic","isNaN","Infinity","String","aStr","bStr","split","filter","Boolean","length","aa","shift","bb","an","parseInt","bn","combo","sort","sortingFns"],"mappings":";;;;;;;;;;;;;;AAEO,MAAMA,mBAAmB,GAAG,
|
|
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 const a = rowA.getValue<Date>(columnId)\n const b = rowB.getValue<Date>(columnId)\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0\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","a","b","basic","isNaN","Infinity","String","aStr","bStr","split","filter","Boolean","length","aa","shift","bb","an","parseInt","bn","combo","sort","sortingFns"],"mappings":"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"}
|
|
@@ -18,44 +18,35 @@ function filterRows(rows, filterRowImpl, table) {
|
|
|
18
18
|
if (table.options.filterFromLeafRows) {
|
|
19
19
|
return filterRowModelFromLeafs(rows, filterRowImpl, table);
|
|
20
20
|
}
|
|
21
|
-
|
|
22
21
|
return filterRowModelFromRoot(rows, filterRowImpl, table);
|
|
23
22
|
}
|
|
24
23
|
function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
|
|
25
24
|
const newFilteredFlatRows = [];
|
|
26
25
|
const newFilteredRowsById = {};
|
|
27
|
-
|
|
28
26
|
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
27
|
+
const rows = [];
|
|
29
28
|
|
|
30
|
-
|
|
31
|
-
|
|
29
|
+
// Filter from children up first
|
|
32
30
|
for (let i = 0; i < rowsToFilter.length; i++) {
|
|
33
31
|
var _row$subRows;
|
|
34
|
-
|
|
35
32
|
let row$1 = rowsToFilter[i];
|
|
36
|
-
|
|
37
33
|
if ((_row$subRows = row$1.subRows) != null && _row$subRows.length) {
|
|
38
34
|
const newRow = row.createRow(table, row$1.id, row$1.original, row$1.index, row$1.depth);
|
|
39
35
|
newRow.columnFilters = row$1.columnFilters;
|
|
40
36
|
newRow.subRows = recurseFilterRows(row$1.subRows);
|
|
41
|
-
|
|
42
37
|
if (!newRow.subRows.length) {
|
|
43
38
|
continue;
|
|
44
39
|
}
|
|
45
|
-
|
|
46
40
|
row$1 = newRow;
|
|
47
41
|
}
|
|
48
|
-
|
|
49
42
|
if (filterRow(row$1)) {
|
|
50
43
|
rows.push(row$1);
|
|
51
44
|
newFilteredRowsById[row$1.id] = row$1;
|
|
52
45
|
newFilteredRowsById[i] = row$1;
|
|
53
46
|
}
|
|
54
47
|
}
|
|
55
|
-
|
|
56
48
|
return rows;
|
|
57
49
|
};
|
|
58
|
-
|
|
59
50
|
return {
|
|
60
51
|
rows: recurseFilterRows(rowsToFilter),
|
|
61
52
|
flatRows: newFilteredFlatRows,
|
|
@@ -64,35 +55,32 @@ function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
|
|
|
64
55
|
}
|
|
65
56
|
function filterRowModelFromRoot(rowsToFilter, filterRow, table) {
|
|
66
57
|
const newFilteredFlatRows = [];
|
|
67
|
-
const newFilteredRowsById = {};
|
|
58
|
+
const newFilteredRowsById = {};
|
|
68
59
|
|
|
60
|
+
// Filters top level and nested rows
|
|
69
61
|
const recurseFilterRows = function (rowsToFilter, depth) {
|
|
70
|
-
|
|
71
62
|
// Filter from parents downward first
|
|
72
|
-
const rows = []; // Apply the filter to any subRows
|
|
73
63
|
|
|
64
|
+
const rows = [];
|
|
65
|
+
|
|
66
|
+
// Apply the filter to any subRows
|
|
74
67
|
for (let i = 0; i < rowsToFilter.length; i++) {
|
|
75
68
|
let row$1 = rowsToFilter[i];
|
|
76
69
|
const pass = filterRow(row$1);
|
|
77
|
-
|
|
78
70
|
if (pass) {
|
|
79
71
|
var _row$subRows2;
|
|
80
|
-
|
|
81
72
|
if ((_row$subRows2 = row$1.subRows) != null && _row$subRows2.length) {
|
|
82
73
|
const newRow = row.createRow(table, row$1.id, row$1.original, row$1.index, row$1.depth);
|
|
83
74
|
newRow.subRows = recurseFilterRows(row$1.subRows);
|
|
84
75
|
row$1 = newRow;
|
|
85
76
|
}
|
|
86
|
-
|
|
87
77
|
rows.push(row$1);
|
|
88
78
|
newFilteredFlatRows.push(row$1);
|
|
89
79
|
newFilteredRowsById[row$1.id] = row$1;
|
|
90
80
|
}
|
|
91
81
|
}
|
|
92
|
-
|
|
93
82
|
return rows;
|
|
94
83
|
};
|
|
95
|
-
|
|
96
84
|
return {
|
|
97
85
|
rows: recurseFilterRows(rowsToFilter),
|
|
98
86
|
flatRows: newFilteredFlatRows,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Row, RowModel, Table, RowData } from '../types'\n\nexport function filterRows<TData extends RowData>(\n rows: Row<TData>[],\n filterRowImpl: (row: Row<TData>) => any,\n table: Table<TData>\n) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, table)\n}\n\nexport function filterRowModelFromLeafs<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => Row<TData>[],\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n\n const recurseFilterRows = (rowsToFilter: Row<TData>[], depth = 0) => {\n const rows: Row<TData>[] = []\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i]!\n\n if (row.subRows?.length) {\n const newRow = createRow(\n table,\n row.id,\n row.original,\n row.index,\n row.depth\n )\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<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => any,\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TData>[], depth = 0) => {\n // Filter from parents downward first\n\n const rows = []\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i]!\n\n const pass = filterRow(row)\n\n if (pass) {\n if (row.subRows?.length) {\n const newRow = createRow(\n table,\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","table","options","filterFromLeafRows","filterRowModelFromLeafs","filterRowModelFromRoot","rowsToFilter","filterRow","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","depth","i","length","row","subRows","newRow","createRow","id","original","index","columnFilters","push","flatRows","rowsById","pass"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAASA,
|
|
1
|
+
{"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Row, RowModel, Table, RowData } from '../types'\n\nexport function filterRows<TData extends RowData>(\n rows: Row<TData>[],\n filterRowImpl: (row: Row<TData>) => any,\n table: Table<TData>\n) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, table)\n}\n\nexport function filterRowModelFromLeafs<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => Row<TData>[],\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n\n const recurseFilterRows = (rowsToFilter: Row<TData>[], depth = 0) => {\n const rows: Row<TData>[] = []\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i]!\n\n if (row.subRows?.length) {\n const newRow = createRow(\n table,\n row.id,\n row.original,\n row.index,\n row.depth\n )\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<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => any,\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TData>[], depth = 0) => {\n // Filter from parents downward first\n\n const rows = []\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i]!\n\n const pass = filterRow(row)\n\n if (pass) {\n if (row.subRows?.length) {\n const newRow = createRow(\n table,\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","table","options","filterFromLeafRows","filterRowModelFromLeafs","filterRowModelFromRoot","rowsToFilter","filterRow","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","depth","i","length","row","subRows","newRow","createRow","id","original","index","columnFilters","push","flatRows","rowsById","pass"],"mappings":"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"}
|
|
@@ -22,14 +22,11 @@ function getCoreRowModel() {
|
|
|
22
22
|
flatRows: [],
|
|
23
23
|
rowsById: {}
|
|
24
24
|
};
|
|
25
|
-
|
|
26
25
|
const accessRows = function (originalRows, depth, parent) {
|
|
27
26
|
if (depth === void 0) {
|
|
28
27
|
depth = 0;
|
|
29
28
|
}
|
|
30
|
-
|
|
31
29
|
const rows = [];
|
|
32
|
-
|
|
33
30
|
for (let i = 0; i < originalRows.length; i++) {
|
|
34
31
|
// This could be an expensive check at scale, so we should move it somewhere else, but where?
|
|
35
32
|
// if (!id) {
|
|
@@ -37,38 +34,35 @@ function getCoreRowModel() {
|
|
|
37
34
|
// throw new Error(`getRowId expected an ID, but got ${id}`)
|
|
38
35
|
// }
|
|
39
36
|
// }
|
|
40
|
-
// Make the row
|
|
41
|
-
const row$1 = row.createRow(table, table._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
37
|
|
|
45
|
-
|
|
38
|
+
// Make the row
|
|
39
|
+
const row$1 = row.createRow(table, table._getRowId(originalRows[i], i, parent), originalRows[i], i, depth);
|
|
46
40
|
|
|
47
|
-
|
|
41
|
+
// Keep track of every row in a flat array
|
|
42
|
+
rowModel.flatRows.push(row$1);
|
|
43
|
+
// Also keep track of every row by its ID
|
|
44
|
+
rowModel.rowsById[row$1.id] = row$1;
|
|
45
|
+
// Push table row into parent
|
|
46
|
+
rows.push(row$1);
|
|
48
47
|
|
|
48
|
+
// Get the original subrows
|
|
49
49
|
if (table.options.getSubRows) {
|
|
50
50
|
var _row$originalSubRows;
|
|
51
|
+
row$1.originalSubRows = table.options.getSubRows(originalRows[i], i);
|
|
51
52
|
|
|
52
|
-
|
|
53
|
-
|
|
53
|
+
// Then recursively access them
|
|
54
54
|
if ((_row$originalSubRows = row$1.originalSubRows) != null && _row$originalSubRows.length) {
|
|
55
55
|
row$1.subRows = accessRows(row$1.originalSubRows, depth + 1, row$1);
|
|
56
56
|
}
|
|
57
57
|
}
|
|
58
58
|
}
|
|
59
|
-
|
|
60
59
|
return rows;
|
|
61
60
|
};
|
|
62
|
-
|
|
63
61
|
rowModel.rows = accessRows(data);
|
|
64
62
|
return rowModel;
|
|
65
63
|
}, {
|
|
66
64
|
key: process.env.NODE_ENV === 'development' && 'getRowModel',
|
|
67
|
-
debug: () =>
|
|
68
|
-
var _table$options$debugA;
|
|
69
|
-
|
|
70
|
-
return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;
|
|
71
|
-
},
|
|
65
|
+
debug: () => table.options.debugAll ?? table.options.debugTable,
|
|
72
66
|
onChange: () => {
|
|
73
67
|
table._autoResetPageIndex();
|
|
74
68
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Table, Row, RowModel, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.options.data],\n (\n data\n ): {\n rows: Row<TData>[]\n flatRows: Row<TData>[]\n rowsById: Record<string, Row<TData>>\n } => {\n const rowModel: RowModel<TData> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n const accessRows = (\n originalRows: TData[],\n depth = 0,\n parent?: Row<TData>\n ): Row<TData>[] => {\n const rows = [] as Row<TData>[]\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 table,\n table._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 table row into parent\n rows.push(row)\n\n // Get the original subrows\n if (table.options.getSubRows) {\n row.originalSubRows = table.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: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {\n table._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getCoreRowModel","table","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,
|
|
1
|
+
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Table, Row, RowModel, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.options.data],\n (\n data\n ): {\n rows: Row<TData>[]\n flatRows: Row<TData>[]\n rowsById: Record<string, Row<TData>>\n } => {\n const rowModel: RowModel<TData> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n const accessRows = (\n originalRows: TData[],\n depth = 0,\n parent?: Row<TData>\n ): Row<TData>[] => {\n const rows = [] as Row<TData>[]\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 table,\n table._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 table row into parent\n rows.push(row)\n\n // Get the original subrows\n if (table.options.getSubRows) {\n row.originalSubRows = table.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: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {\n table._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getCoreRowModel","table","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,eAAe,GAEJ;AACzB,EAAA,OAAOC,KAAK,IACVC,UAAI,CACF,MAAM,CAACD,KAAK,CAACE,OAAO,CAACC,IAAI,CAAC,EAExBA,IAAI,IAKD;AACH,IAAA,MAAMC,QAAyB,GAAG;AAChCC,MAAAA,IAAI,EAAE,EAAE;AACRC,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,QAAQ,EAAE,EAAC;KACZ,CAAA;IAED,MAAMC,UAAU,GAAG,UACjBC,YAAqB,EACrBC,KAAK,EACLC,MAAmB,EACF;AAAA,MAAA,IAFjBD,KAAK,KAAA,KAAA,CAAA,EAAA;AAALA,QAAAA,KAAK,GAAG,CAAC,CAAA;AAAA,OAAA;MAGT,MAAML,IAAI,GAAG,EAAkB,CAAA;AAE/B,MAAA,KAAK,IAAIO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,YAAY,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAA,MAAME,KAAG,GAAGC,aAAS,CACnBf,KAAK,EACLA,KAAK,CAACgB,SAAS,CAACP,YAAY,CAACG,CAAC,CAAC,EAAGA,CAAC,EAAED,MAAM,CAAC,EAC5CF,YAAY,CAACG,CAAC,CAAC,EACfA,CAAC,EACDF,KAAK,CACN,CAAA;;AAED;AACAN,QAAAA,QAAQ,CAACE,QAAQ,CAACW,IAAI,CAACH,KAAG,CAAC,CAAA;AAC3B;QACAV,QAAQ,CAACG,QAAQ,CAACO,KAAG,CAACI,EAAE,CAAC,GAAGJ,KAAG,CAAA;AAC/B;AACAT,QAAAA,IAAI,CAACY,IAAI,CAACH,KAAG,CAAC,CAAA;;AAEd;AACA,QAAA,IAAId,KAAK,CAACE,OAAO,CAACiB,UAAU,EAAE;AAAA,UAAA,IAAA,oBAAA,CAAA;AAC5BL,UAAAA,KAAG,CAACM,eAAe,GAAGpB,KAAK,CAACE,OAAO,CAACiB,UAAU,CAC5CV,YAAY,CAACG,CAAC,CAAC,EACfA,CAAC,CACF,CAAA;;AAED;AACA,UAAA,IAAA,CAAA,oBAAA,GAAIE,KAAG,CAACM,eAAe,KAAnB,IAAA,IAAA,oBAAA,CAAqBP,MAAM,EAAE;AAC/BC,YAAAA,KAAG,CAACO,OAAO,GAAGb,UAAU,CAACM,KAAG,CAACM,eAAe,EAAEV,KAAK,GAAG,CAAC,EAAEI,KAAG,CAAC,CAAA;AAC/D,WAAA;AACF,SAAA;AACF,OAAA;AAEA,MAAA,OAAOT,IAAI,CAAA;KACZ,CAAA;AAEDD,IAAAA,QAAQ,CAACC,IAAI,GAAGG,UAAU,CAACL,IAAI,CAAC,CAAA;AAEhC,IAAA,OAAOC,QAAQ,CAAA;AACjB,GAAC,EACD;IACEkB,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,aAAa;AAC5DC,IAAAA,KAAK,EAAE,MAAM1B,KAAK,CAACE,OAAO,CAACyB,QAAQ,IAAI3B,KAAK,CAACE,OAAO,CAAC0B,UAAU;AAC/DC,IAAAA,QAAQ,EAAE,MAAM;MACd7B,KAAK,CAAC8B,mBAAmB,EAAE,CAAA;AAC7B,KAAA;AACF,GAAC,CACF,CAAA;AACL;;;;"}
|
|
@@ -16,38 +16,28 @@ var utils = require('../utils.js');
|
|
|
16
16
|
|
|
17
17
|
function getExpandedRowModel() {
|
|
18
18
|
return table => utils.memo(() => [table.getState().expanded, table.getPreExpandedRowModel(), table.options.paginateExpandedRows], (expanded, rowModel, paginateExpandedRows) => {
|
|
19
|
-
if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded
|
|
19
|
+
if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded ?? {}).length) {
|
|
20
20
|
return rowModel;
|
|
21
21
|
}
|
|
22
|
-
|
|
23
22
|
if (!paginateExpandedRows) {
|
|
24
23
|
// Only expand rows at this point if they are being paginated
|
|
25
24
|
return rowModel;
|
|
26
25
|
}
|
|
27
|
-
|
|
28
26
|
return expandRows(rowModel);
|
|
29
27
|
}, {
|
|
30
28
|
key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',
|
|
31
|
-
debug: () =>
|
|
32
|
-
var _table$options$debugA;
|
|
33
|
-
|
|
34
|
-
return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;
|
|
35
|
-
}
|
|
29
|
+
debug: () => table.options.debugAll ?? table.options.debugTable
|
|
36
30
|
});
|
|
37
31
|
}
|
|
38
32
|
function expandRows(rowModel) {
|
|
39
33
|
const expandedRows = [];
|
|
40
|
-
|
|
41
34
|
const handleRow = row => {
|
|
42
35
|
var _row$subRows;
|
|
43
|
-
|
|
44
36
|
expandedRows.push(row);
|
|
45
|
-
|
|
46
37
|
if ((_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {
|
|
47
38
|
row.subRows.forEach(handleRow);
|
|
48
39
|
}
|
|
49
40
|
};
|
|
50
|
-
|
|
51
41
|
rowModel.rows.forEach(handleRow);
|
|
52
42
|
return {
|
|
53
43
|
rows: expandedRows,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getExpandedRowModel.js","sources":["../../../src/utils/getExpandedRowModel.ts"],"sourcesContent":["import { Table, Row, RowModel, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getExpandedRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [\n table.getState().expanded,\n table.getPreExpandedRowModel(),\n table.options.paginateExpandedRows,\n ],\n (expanded, rowModel, paginateExpandedRows) => {\n if (\n !rowModel.rows.length ||\n (expanded !== true && !Object.keys(expanded ?? {}).length)\n ) {\n return rowModel\n }\n\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel\n }\n\n return expandRows(rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n )\n}\n\nexport function expandRows<TData extends RowData>(rowModel: RowModel<TData>) {\n const expandedRows: Row<TData>[] = []\n\n const handleRow = (row: Row<TData>) => {\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","table","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,
|
|
1
|
+
{"version":3,"file":"getExpandedRowModel.js","sources":["../../../src/utils/getExpandedRowModel.ts"],"sourcesContent":["import { Table, Row, RowModel, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getExpandedRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [\n table.getState().expanded,\n table.getPreExpandedRowModel(),\n table.options.paginateExpandedRows,\n ],\n (expanded, rowModel, paginateExpandedRows) => {\n if (\n !rowModel.rows.length ||\n (expanded !== true && !Object.keys(expanded ?? {}).length)\n ) {\n return rowModel\n }\n\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel\n }\n\n return expandRows(rowModel)\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getExpandedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n }\n )\n}\n\nexport function expandRows<TData extends RowData>(rowModel: RowModel<TData>) {\n const expandedRows: Row<TData>[] = []\n\n const handleRow = (row: Row<TData>) => {\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","table","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,mBAAmB,GAER;AACzB,EAAA,OAAOC,KAAK,IACVC,UAAI,CACF,MAAM,CACJD,KAAK,CAACE,QAAQ,EAAE,CAACC,QAAQ,EACzBH,KAAK,CAACI,sBAAsB,EAAE,EAC9BJ,KAAK,CAACK,OAAO,CAACC,oBAAoB,CACnC,EACD,CAACH,QAAQ,EAAEI,QAAQ,EAAED,oBAAoB,KAAK;IAC5C,IACE,CAACC,QAAQ,CAACC,IAAI,CAACC,MAAM,IACpBN,QAAQ,KAAK,IAAI,IAAI,CAACO,MAAM,CAACC,IAAI,CAACR,QAAQ,IAAI,EAAE,CAAC,CAACM,MAAO,EAC1D;AACA,MAAA,OAAOF,QAAQ,CAAA;AACjB,KAAA;IAEA,IAAI,CAACD,oBAAoB,EAAE;AACzB;AACA,MAAA,OAAOC,QAAQ,CAAA;AACjB,KAAA;IAEA,OAAOK,UAAU,CAACL,QAAQ,CAAC,CAAA;AAC7B,GAAC,EACD;IACEM,GAAG,EAAEC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IAAI,qBAAqB;IACpEC,KAAK,EAAE,MAAMjB,KAAK,CAACK,OAAO,CAACa,QAAQ,IAAIlB,KAAK,CAACK,OAAO,CAACc,UAAAA;AACvD,GAAC,CACF,CAAA;AACL,CAAA;AAEO,SAASP,UAAU,CAAwBL,QAAyB,EAAE;EAC3E,MAAMa,YAA0B,GAAG,EAAE,CAAA;EAErC,MAAMC,SAAS,GAAIC,GAAe,IAAK;AAAA,IAAA,IAAA,YAAA,CAAA;AACrCF,IAAAA,YAAY,CAACG,IAAI,CAACD,GAAG,CAAC,CAAA;AAEtB,IAAA,IAAI,CAAAA,YAAAA,GAAAA,GAAG,CAACE,OAAO,KAAX,IAAA,IAAA,YAAA,CAAaf,MAAM,IAAIa,GAAG,CAACG,aAAa,EAAE,EAAE;AAC9CH,MAAAA,GAAG,CAACE,OAAO,CAACE,OAAO,CAACL,SAAS,CAAC,CAAA;AAChC,KAAA;GACD,CAAA;AAEDd,EAAAA,QAAQ,CAACC,IAAI,CAACkB,OAAO,CAACL,SAAS,CAAC,CAAA;EAEhC,OAAO;AACLb,IAAAA,IAAI,EAAEY,YAAY;IAClBO,QAAQ,EAAEpB,QAAQ,CAACoB,QAAQ;IAC3BC,QAAQ,EAAErB,QAAQ,CAACqB,QAAAA;GACpB,CAAA;AACH;;;;;"}
|
|
@@ -17,33 +17,23 @@ var utils = require('../utils.js');
|
|
|
17
17
|
function getFacetedMinMaxValues() {
|
|
18
18
|
return (table, columnId) => utils.memo(() => [table.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {
|
|
19
19
|
var _facetedRowModel$flat;
|
|
20
|
-
|
|
21
20
|
const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);
|
|
22
|
-
|
|
23
21
|
if (typeof firstValue === 'undefined') {
|
|
24
22
|
return undefined;
|
|
25
23
|
}
|
|
26
|
-
|
|
27
24
|
let facetedMinMaxValues = [firstValue, firstValue];
|
|
28
|
-
|
|
29
25
|
for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
|
|
30
26
|
const value = facetedRowModel.flatRows[i].getValue(columnId);
|
|
31
|
-
|
|
32
27
|
if (value < facetedMinMaxValues[0]) {
|
|
33
28
|
facetedMinMaxValues[0] = value;
|
|
34
29
|
} else if (value > facetedMinMaxValues[1]) {
|
|
35
30
|
facetedMinMaxValues[1] = value;
|
|
36
31
|
}
|
|
37
32
|
}
|
|
38
|
-
|
|
39
33
|
return facetedMinMaxValues;
|
|
40
34
|
}, {
|
|
41
35
|
key: process.env.NODE_ENV === 'development' && 'getFacetedMinMaxValues_' + columnId,
|
|
42
|
-
debug: () =>
|
|
43
|
-
var _table$options$debugA;
|
|
44
|
-
|
|
45
|
-
return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;
|
|
46
|
-
},
|
|
36
|
+
debug: () => table.options.debugAll ?? table.options.debugTable,
|
|
47
37
|
onChange: () => {}
|
|
48
38
|
});
|
|
49
39
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getFacetedMinMaxValues.js","sources":["../../../src/utils/getFacetedMinMaxValues.ts"],"sourcesContent":["import { Table, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getFacetedMinMaxValues<TData extends RowData>(): (\n table: Table<TData>,\n columnId: string\n) => () => undefined | [number, number] {\n return (table, columnId) =>\n memo(\n () => [table.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<number>(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: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {},\n }\n )\n}\n"],"names":["getFacetedMinMaxValues","table","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,
|
|
1
|
+
{"version":3,"file":"getFacetedMinMaxValues.js","sources":["../../../src/utils/getFacetedMinMaxValues.ts"],"sourcesContent":["import { Table, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getFacetedMinMaxValues<TData extends RowData>(): (\n table: Table<TData>,\n columnId: string\n) => () => undefined | [number, number] {\n return (table, columnId) =>\n memo(\n () => [table.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<number>(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: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {},\n }\n )\n}\n"],"names":["getFacetedMinMaxValues","table","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,sBAAsB,GAGE;EACtC,OAAO,CAACC,KAAK,EAAEC,QAAQ,KACrBC,UAAI,CACF,MAAM,CAACF,KAAK,CAACG,SAAS,CAACF,QAAQ,CAAC,CAACG,kBAAkB,EAAE,CAAC,EACtDC,eAAe,IAAI;AAAA,IAAA,IAAA,qBAAA,CAAA;AACjB,IAAA,MAAMC,UAAU,GAAA,CAAA,qBAAA,GAAGD,eAAe,CAACE,QAAQ,CAAC,CAAC,CAAC,KAA3B,IAAA,GAAA,KAAA,CAAA,GAAA,qBAAA,CAA6BC,QAAQ,CAACP,QAAQ,CAAC,CAAA;AAElE,IAAA,IAAI,OAAOK,UAAU,KAAK,WAAW,EAAE;AACrC,MAAA,OAAOG,SAAS,CAAA;AAClB,KAAA;AAEA,IAAA,IAAIC,mBAA+B,GAAG,CAACJ,UAAU,EAAEA,UAAU,CAAC,CAAA;AAE9D,IAAA,KAAK,IAAIK,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGN,eAAe,CAACE,QAAQ,CAACK,MAAM,EAAED,CAAC,EAAE,EAAE;AACxD,MAAA,MAAME,KAAK,GAAGR,eAAe,CAACE,QAAQ,CAACI,CAAC,CAAC,CAAEH,QAAQ,CAASP,QAAQ,CAAC,CAAA;AAErE,MAAA,IAAIY,KAAK,GAAGH,mBAAmB,CAAC,CAAC,CAAC,EAAE;AAClCA,QAAAA,mBAAmB,CAAC,CAAC,CAAC,GAAGG,KAAK,CAAA;OAC/B,MAAM,IAAIA,KAAK,GAAGH,mBAAmB,CAAC,CAAC,CAAC,EAAE;AACzCA,QAAAA,mBAAmB,CAAC,CAAC,CAAC,GAAGG,KAAK,CAAA;AAChC,OAAA;AACF,KAAA;AAEA,IAAA,OAAOH,mBAAmB,CAAA;AAC5B,GAAC,EACD;IACEI,GAAG,EACDC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IACtC,yBAAyB,GAAGhB,QAAQ;AACtCiB,IAAAA,KAAK,EAAE,MAAMlB,KAAK,CAACmB,OAAO,CAACC,QAAQ,IAAIpB,KAAK,CAACmB,OAAO,CAACE,UAAU;IAC/DC,QAAQ,EAAE,MAAM,EAAC;AACnB,GAAC,CACF,CAAA;AACL;;;;"}
|
|
@@ -20,9 +20,7 @@ function getFacetedRowModel() {
|
|
|
20
20
|
if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {
|
|
21
21
|
return preRowModel;
|
|
22
22
|
}
|
|
23
|
-
|
|
24
23
|
const filterableIds = [...columnFilters.map(d => d.id).filter(d => d !== columnId), globalFilter ? '__global__' : undefined].filter(Boolean);
|
|
25
|
-
|
|
26
24
|
const filterRowsImpl = row => {
|
|
27
25
|
// Horizontally filter rows through each column
|
|
28
26
|
for (let i = 0; i < filterableIds.length; i++) {
|
|
@@ -30,18 +28,12 @@ function getFacetedRowModel() {
|
|
|
30
28
|
return false;
|
|
31
29
|
}
|
|
32
30
|
}
|
|
33
|
-
|
|
34
31
|
return true;
|
|
35
32
|
};
|
|
36
|
-
|
|
37
33
|
return filterRowsUtils.filterRows(preRowModel.rows, filterRowsImpl, table);
|
|
38
34
|
}, {
|
|
39
35
|
key: process.env.NODE_ENV === 'development' && 'getFacetedRowModel_' + columnId,
|
|
40
|
-
debug: () =>
|
|
41
|
-
var _table$options$debugA;
|
|
42
|
-
|
|
43
|
-
return (_table$options$debugA = table.options.debugAll) != null ? _table$options$debugA : table.options.debugTable;
|
|
44
|
-
},
|
|
36
|
+
debug: () => table.options.debugAll ?? table.options.debugTable,
|
|
45
37
|
onChange: () => {}
|
|
46
38
|
});
|
|
47
39
|
}
|