@tanstack/table-core 8.0.0-alpha.64 → 8.0.0-alpha.68

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.
Files changed (149) hide show
  1. package/build/cjs/aggregationFns.js +25 -37
  2. package/build/cjs/aggregationFns.js.map +1 -1
  3. package/build/cjs/core.js +167 -47
  4. package/build/cjs/core.js.map +1 -1
  5. package/build/cjs/createTable.js +24 -40
  6. package/build/cjs/createTable.js.map +1 -1
  7. package/build/cjs/features/Cells.js +29 -35
  8. package/build/cjs/features/Cells.js.map +1 -1
  9. package/build/cjs/features/ColumnSizing.js +126 -218
  10. package/build/cjs/features/ColumnSizing.js.map +1 -1
  11. package/build/cjs/features/Columns.js +59 -86
  12. package/build/cjs/features/Columns.js.map +1 -1
  13. package/build/cjs/features/Expanding.js +78 -125
  14. package/build/cjs/features/Expanding.js.map +1 -1
  15. package/build/cjs/features/Filters.js +143 -218
  16. package/build/cjs/features/Filters.js.map +1 -1
  17. package/build/cjs/features/Grouping.js +70 -116
  18. package/build/cjs/features/Grouping.js.map +1 -1
  19. package/build/cjs/features/Headers.js +125 -205
  20. package/build/cjs/features/Headers.js.map +1 -1
  21. package/build/cjs/features/Ordering.js +31 -43
  22. package/build/cjs/features/Ordering.js.map +1 -1
  23. package/build/cjs/features/Pagination.js +64 -72
  24. package/build/cjs/features/Pagination.js.map +1 -1
  25. package/build/cjs/features/Pinning.js +96 -177
  26. package/build/cjs/features/Pinning.js.map +1 -1
  27. package/build/cjs/features/RowSelection.js +134 -205
  28. package/build/cjs/features/RowSelection.js.map +1 -1
  29. package/build/cjs/features/Rows.js +32 -22
  30. package/build/cjs/features/Rows.js.map +1 -1
  31. package/build/cjs/features/Sorting.js +62 -131
  32. package/build/cjs/features/Sorting.js.map +1 -1
  33. package/build/cjs/features/Visibility.js +53 -120
  34. package/build/cjs/features/Visibility.js.map +1 -1
  35. package/build/cjs/filterFns.js +52 -133
  36. package/build/cjs/filterFns.js.map +1 -1
  37. package/build/cjs/index.js +13 -13
  38. package/build/cjs/sortingFns.js +21 -21
  39. package/build/cjs/sortingFns.js.map +1 -1
  40. package/build/cjs/utils/filterRowsUtils.js +56 -41
  41. package/build/cjs/utils/filterRowsUtils.js.map +1 -1
  42. package/build/cjs/utils/getCoreRowModel.js +98 -0
  43. package/build/cjs/utils/getCoreRowModel.js.map +1 -0
  44. package/build/cjs/utils/getExpandedRowModel.js +18 -22
  45. package/build/cjs/utils/getExpandedRowModel.js.map +1 -1
  46. package/build/cjs/utils/getFacetedMinMaxValues.js +48 -0
  47. package/build/cjs/utils/getFacetedMinMaxValues.js.map +1 -0
  48. package/build/cjs/utils/getFacetedRowModel.js +50 -0
  49. package/build/cjs/utils/getFacetedRowModel.js.map +1 -0
  50. package/build/cjs/utils/getFacetedUniqueValues.js +48 -0
  51. package/build/cjs/utils/getFacetedUniqueValues.js.map +1 -0
  52. package/build/cjs/utils/getFilteredRowModel.js +130 -0
  53. package/build/cjs/utils/getFilteredRowModel.js.map +1 -0
  54. package/build/cjs/utils/getGroupedRowModel.js +126 -136
  55. package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
  56. package/build/cjs/utils/getPaginationRowModel.js +39 -39
  57. package/build/cjs/utils/getPaginationRowModel.js.map +1 -1
  58. package/build/cjs/utils/getSortedRowModel.js +112 -0
  59. package/build/cjs/utils/getSortedRowModel.js.map +1 -0
  60. package/build/cjs/utils.js +36 -211
  61. package/build/cjs/utils.js.map +1 -1
  62. package/build/esm/index.js +1970 -2956
  63. package/build/esm/index.js.map +1 -1
  64. package/build/stats-html.html +1 -1
  65. package/build/stats-react.json +390 -482
  66. package/build/types/core.d.ts +3 -5
  67. package/build/types/features/Cells.d.ts +1 -1
  68. package/build/types/features/ColumnSizing.d.ts +2 -13
  69. package/build/types/features/Columns.d.ts +1 -1
  70. package/build/types/features/Expanding.d.ts +1 -6
  71. package/build/types/features/Filters.d.ts +42 -30
  72. package/build/types/features/Grouping.d.ts +4 -10
  73. package/build/types/features/Pinning.d.ts +0 -4
  74. package/build/types/features/RowSelection.d.ts +1 -7
  75. package/build/types/features/Rows.d.ts +4 -3
  76. package/build/types/features/Sorting.d.ts +3 -14
  77. package/build/types/features/Visibility.d.ts +0 -4
  78. package/build/types/filterFns.d.ts +10 -52
  79. package/build/types/index.d.ts +6 -5
  80. package/build/types/types.d.ts +5 -17
  81. package/build/types/utils/filterRowsUtils.d.ts +3 -2
  82. package/build/types/utils/getCoreRowModel.d.ts +2 -0
  83. package/build/types/utils/getFacetedMinMaxValues.d.ts +2 -0
  84. package/build/types/utils/getFacetedRowModel.d.ts +2 -0
  85. package/build/types/utils/getFacetedUniqueValues.d.ts +2 -0
  86. package/build/types/utils/{getCoreRowModelSync.d.ts → getFilteredRowModel.d.ts} +1 -1
  87. package/build/types/utils/getGroupedRowModel.d.ts +1 -1
  88. package/build/types/utils/getSortedRowModel.d.ts +2 -0
  89. package/build/types/utils.d.ts +2 -18
  90. package/build/umd/index.development.js +1948 -2935
  91. package/build/umd/index.development.js.map +1 -1
  92. package/build/umd/index.production.js +1 -1
  93. package/build/umd/index.production.js.map +1 -1
  94. package/package.json +2 -1
  95. package/src/core.ts +197 -46
  96. package/src/features/Cells.ts +10 -12
  97. package/src/features/ColumnSizing.ts +72 -129
  98. package/src/features/Columns.ts +16 -15
  99. package/src/features/Expanding.ts +58 -105
  100. package/src/features/Filters.ts +223 -226
  101. package/src/features/Grouping.ts +51 -79
  102. package/src/features/Headers.ts +18 -40
  103. package/src/features/Ordering.ts +1 -1
  104. package/src/features/Pagination.ts +1 -1
  105. package/src/features/Pinning.ts +73 -92
  106. package/src/features/RowSelection.ts +71 -120
  107. package/src/features/Rows.ts +21 -6
  108. package/src/features/Sorting.ts +39 -99
  109. package/src/features/Visibility.ts +21 -50
  110. package/src/filterFns.ts +74 -147
  111. package/src/index.ts +12 -5
  112. package/src/sortingFns.ts +11 -11
  113. package/src/types.ts +5 -18
  114. package/src/utils/filterRowsUtils.ts +59 -56
  115. package/src/utils/{getCoreRowModelSync.ts → getCoreRowModel.ts} +3 -9
  116. package/src/utils/getExpandedRowModel.ts +2 -2
  117. package/src/utils/getFacetedMinMaxValues.ts +37 -0
  118. package/src/utils/getFacetedRowModel.ts +50 -0
  119. package/src/utils/getFacetedUniqueValues.ts +37 -0
  120. package/src/utils/getFilteredRowModel.ts +150 -0
  121. package/src/utils/getGroupedRowModel.ts +53 -62
  122. package/src/utils/getPaginationRowModel.ts +1 -1
  123. package/src/utils/{getSortedRowModelSync.ts → getSortedRowModel.ts} +7 -7
  124. package/src/utils.ts +29 -239
  125. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js +0 -112
  126. package/build/cjs/_virtual/_rollupPluginBabelHelpers.js.map +0 -1
  127. package/build/cjs/utils/getColumnFilteredRowModelSync.js +0 -115
  128. package/build/cjs/utils/getColumnFilteredRowModelSync.js.map +0 -1
  129. package/build/cjs/utils/getCoreRowModelAsync.js +0 -125
  130. package/build/cjs/utils/getCoreRowModelAsync.js.map +0 -1
  131. package/build/cjs/utils/getCoreRowModelSync.js +0 -102
  132. package/build/cjs/utils/getCoreRowModelSync.js.map +0 -1
  133. package/build/cjs/utils/getGlobalFilteredRowModelSync.js +0 -91
  134. package/build/cjs/utils/getGlobalFilteredRowModelSync.js.map +0 -1
  135. package/build/cjs/utils/getSortedRowModelSync.js +0 -118
  136. package/build/cjs/utils/getSortedRowModelSync.js.map +0 -1
  137. package/build/types/utils/getColumnFilteredRowModelAsync.d.ts +0 -4
  138. package/build/types/utils/getColumnFilteredRowModelSync.d.ts +0 -2
  139. package/build/types/utils/getCoreRowModelAsync.d.ts +0 -4
  140. package/build/types/utils/getGlobalFilteredRowModelAsync.d.ts +0 -4
  141. package/build/types/utils/getGlobalFilteredRowModelSync.d.ts +0 -2
  142. package/build/types/utils/getSortedRowModelAsync.d.ts +0 -13
  143. package/build/types/utils/getSortedRowModelSync.d.ts +0 -2
  144. package/src/utils/getColumnFilteredRowModelAsync.ts +0 -118
  145. package/src/utils/getColumnFilteredRowModelSync.ts +0 -102
  146. package/src/utils/getCoreRowModelAsync.ts +0 -104
  147. package/src/utils/getGlobalFilteredRowModelAsync.ts +0 -96
  148. package/src/utils/getGlobalFilteredRowModelSync.ts +0 -79
  149. package/src/utils/getSortedRowModelAsync.ts +0 -200
@@ -12,22 +12,22 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- var reSplitAlphaNumeric = /([0-9]+)/gm;
16
- var sortingFns = {
17
- alphanumeric: alphanumeric,
18
- alphanumericCaseSensitive: alphanumericCaseSensitive,
19
- text: text,
20
- textCaseSensitive: textCaseSensitive,
21
- datetime: datetime,
22
- basic: basic
15
+ const reSplitAlphaNumeric = /([0-9]+)/gm;
16
+ const sortingFns = {
17
+ alphanumeric,
18
+ alphanumericCaseSensitive,
19
+ text,
20
+ textCaseSensitive,
21
+ datetime,
22
+ basic
23
23
  };
24
24
 
25
25
  function alphanumeric(rowA, rowB, columnId) {
26
- return compareAlphanumeric(toString(rowA.values[columnId]).toLowerCase(), toString(rowB.values[columnId]).toLowerCase());
26
+ return compareAlphanumeric(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
27
27
  }
28
28
 
29
29
  function alphanumericCaseSensitive(rowA, rowB, columnId) {
30
- return compareAlphanumeric(toString(rowA.values[columnId]), toString(rowB.values[columnId]));
30
+ return compareAlphanumeric(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
31
31
  } // Mixed sorting is slow, but very inclusive of many edge cases.
32
32
  // It handles numbers, mixed alphanumeric combinations, and even
33
33
  // null, undefined, and Infinity
@@ -36,15 +36,15 @@ function alphanumericCaseSensitive(rowA, rowB, columnId) {
36
36
  function compareAlphanumeric(aStr, bStr) {
37
37
  // Split on number groups, but keep the delimiter
38
38
  // Then remove falsey split values
39
- var a = aStr.split(reSplitAlphaNumeric).filter(Boolean);
40
- var b = bStr.split(reSplitAlphaNumeric).filter(Boolean); // While
39
+ const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);
40
+ const b = bStr.split(reSplitAlphaNumeric).filter(Boolean); // While
41
41
 
42
42
  while (a.length && b.length) {
43
- var aa = a.shift();
44
- var bb = b.shift();
45
- var an = parseInt(aa, 10);
46
- var bn = parseInt(bb, 10);
47
- var combo = [an, bn].sort(); // Both are string
43
+ const aa = a.shift();
44
+ const bb = b.shift();
45
+ const an = parseInt(aa, 10);
46
+ const bn = parseInt(bb, 10);
47
+ const combo = [an, bn].sort(); // Both are string
48
48
 
49
49
  if (isNaN(combo[0])) {
50
50
  if (aa > bb) {
@@ -79,21 +79,21 @@ function compareAlphanumeric(aStr, bStr) {
79
79
 
80
80
 
81
81
  function text(rowA, rowB, columnId) {
82
- return compareBasic(toString(rowA.values[columnId]).toLowerCase(), toString(rowB.values[columnId]).toLowerCase());
82
+ return compareBasic(toString(rowA.getValue(columnId)).toLowerCase(), toString(rowB.getValue(columnId)).toLowerCase());
83
83
  } // The text filter is more basic (less numeric support)
84
84
  // but is much faster
85
85
 
86
86
 
87
87
  function textCaseSensitive(rowA, rowB, columnId) {
88
- return compareBasic(toString(rowA.values[columnId]), toString(rowB.values[columnId]));
88
+ return compareBasic(toString(rowA.getValue(columnId)), toString(rowB.getValue(columnId)));
89
89
  }
90
90
 
91
91
  function datetime(rowA, rowB, columnId) {
92
- return compareBasic(rowA.values[columnId].getTime(), rowB.values[columnId].getTime());
92
+ return compareBasic(rowA.getValue(columnId).getTime(), rowB.getValue(columnId).getTime());
93
93
  }
94
94
 
95
95
  function basic(rowA, rowB, columnId) {
96
- return compareBasic(rowA.values[columnId], rowB.values[columnId]);
96
+ return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));
97
97
  } // Utils
98
98
 
99
99
 
@@ -1 +1 @@
1
- {"version":3,"file":"sortingFns.js","sources":["../../src/sortingFns.ts"],"sourcesContent":["import { TableGenerics, Row } from './types'\n\nexport const reSplitAlphaNumeric = /([0-9]+)/gm\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\nfunction alphanumeric<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.values[columnId]).toLowerCase(),\n toString(rowB.values[columnId]).toLowerCase()\n )\n}\n\nfunction alphanumericCaseSensitive<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.values[columnId]),\n toString(rowB.values[columnId])\n )\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// The text filter is more basic (less numeric support)\n// but is much faster\nfunction text<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.values[columnId]).toLowerCase(),\n toString(rowB.values[columnId]).toLowerCase()\n )\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nfunction textCaseSensitive<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.values[columnId]),\n toString(rowB.values[columnId])\n )\n}\n\nfunction datetime<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n (rowA.values[columnId] as Date).getTime(),\n (rowB.values[columnId] as Date).getTime()\n )\n}\n\nfunction basic<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(rowA.values[columnId], rowB.values[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"],"names":["reSplitAlphaNumeric","sortingFns","alphanumeric","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","rowA","rowB","columnId","compareAlphanumeric","toString","values","toLowerCase","aStr","bStr","a","split","filter","Boolean","b","length","aa","shift","bb","an","parseInt","bn","combo","sort","isNaN","compareBasic","getTime","Infinity","String"],"mappings":"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"}
1
+ {"version":3,"file":"sortingFns.js","sources":["../../src/sortingFns.ts"],"sourcesContent":["import { TableGenerics, Row } from './types'\n\nexport const reSplitAlphaNumeric = /([0-9]+)/gm\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\nfunction alphanumeric<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.getValue(columnId)).toLowerCase(),\n toString(rowB.getValue(columnId)).toLowerCase()\n )\n}\n\nfunction alphanumericCaseSensitive<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareAlphanumeric(\n toString(rowA.getValue(columnId)),\n toString(rowB.getValue(columnId))\n )\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// The text filter is more basic (less numeric support)\n// but is much faster\nfunction text<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\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\nfunction textCaseSensitive<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n toString(rowA.getValue(columnId)),\n toString(rowB.getValue(columnId))\n )\n}\n\nfunction datetime<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\n return compareBasic(\n (rowA.getValue(columnId) as Date).getTime(),\n (rowB.getValue(columnId) as Date).getTime()\n )\n}\n\nfunction basic<TGenerics extends TableGenerics>(\n rowA: Row<TGenerics>,\n rowB: Row<TGenerics>,\n columnId: string\n) {\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"],"names":["reSplitAlphaNumeric","sortingFns","alphanumeric","alphanumericCaseSensitive","text","textCaseSensitive","datetime","basic","rowA","rowB","columnId","compareAlphanumeric","toString","getValue","toLowerCase","aStr","bStr","a","split","filter","Boolean","b","length","aa","shift","bb","an","parseInt","bn","combo","sort","isNaN","compareBasic","getTime","Infinity","String"],"mappings":"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"}
@@ -12,42 +12,51 @@
12
12
 
13
13
  Object.defineProperty(exports, '__esModule', { value: true });
14
14
 
15
- function filterRowModelFromLeafs(rowsToFilter, filterRows, instance) {
16
- var newFilteredFlatRows = [];
17
- var newFilteredRowsById = {};
15
+ function filterRows(rows, filterRowImpl, instance) {
16
+ if (instance.options.filterFromLeafRows) {
17
+ return filterRowModelFromLeafs(rows, filterRowImpl, instance);
18
+ }
18
19
 
19
- var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
20
+ return filterRowModelFromRoot(rows, filterRowImpl, instance);
21
+ }
22
+ function filterRowModelFromLeafs(rowsToFilter, filterRow, instance) {
23
+ const newFilteredFlatRows = [];
24
+ const newFilteredRowsById = {};
25
+ let row;
26
+ let newRow;
27
+
28
+ const recurseFilterRows = function (rowsToFilter, depth) {
20
29
  if (depth === void 0) {
21
30
  depth = 0;
22
31
  }
23
32
 
24
- rowsToFilter = rowsToFilter.slice(); // Filter from children up first
33
+ const rows = []; // Filter from children up first
25
34
 
26
- for (var i = 0; i < rowsToFilter.length; i++) {
35
+ for (let i = 0; i < rowsToFilter.length; i++) {
27
36
  var _row$subRows;
28
37
 
29
- var row = rowsToFilter[i];
38
+ row = rowsToFilter[i];
30
39
 
31
- if (!((_row$subRows = row.subRows) != null && _row$subRows.length)) {
32
- continue;
33
- }
40
+ if ((_row$subRows = row.subRows) != null && _row$subRows.length) {
41
+ newRow = instance.createRow(row.id, row.original, row.index, row.depth);
42
+ newRow.columnFilterMap = row.columnFilterMap;
43
+ newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
34
44
 
35
- rowsToFilter[i] = instance.createRow(row.id, row.original, row.index, row.depth, row.values);
36
- rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1);
45
+ if (!newRow.subRows.length) {
46
+ continue;
47
+ }
37
48
 
38
- if (!rowsToFilter[i].subRows.length) {
39
- rowsToFilter.splice(i, 1);
40
- i--;
49
+ row = newRow;
41
50
  }
42
- }
43
51
 
44
- rowsToFilter = filterRows(rowsToFilter, depth); // Apply the filter to any subRows
52
+ if (filterRow(row)) {
53
+ rows.push(row);
54
+ newFilteredRowsById[row.id] = row;
55
+ newFilteredRowsById[i] = row;
56
+ }
57
+ }
45
58
 
46
- rowsToFilter.forEach(function (row) {
47
- newFilteredFlatRows.push(row);
48
- newFilteredRowsById[row.id] = row;
49
- });
50
- return rowsToFilter;
59
+ return rows;
51
60
  };
52
61
 
53
62
  return {
@@ -56,36 +65,41 @@ function filterRowModelFromLeafs(rowsToFilter, filterRows, instance) {
56
65
  rowsById: newFilteredRowsById
57
66
  };
58
67
  }
59
- function filterRowModelFromRoot(rowsToFilter, filterRows, instance) {
60
- var newFilteredFlatRows = [];
61
- var newFilteredRowsById = {}; // Filters top level and nested rows
62
-
63
- var recurseFilterRows = function recurseFilterRows(rowsToFilter, depth) {
68
+ function filterRowModelFromRoot(rowsToFilter, filterRow, instance) {
69
+ const newFilteredFlatRows = [];
70
+ const newFilteredRowsById = {};
71
+ let rows;
72
+ let row;
73
+ let newRow; // Filters top level and nested rows
74
+
75
+ const recurseFilterRows = function (rowsToFilter, depth) {
64
76
  if (depth === void 0) {
65
77
  depth = 0;
66
78
  }
67
79
 
68
80
  // Filter from parents downward first
69
- rowsToFilter = filterRows(rowsToFilter, depth); // Apply the filter to any subRows
81
+ rows = []; // Apply the filter to any subRows
70
82
 
71
- for (var i = 0; i < rowsToFilter.length; i++) {
72
- var _row$subRows2;
83
+ for (let i = 0; i < rowsToFilter.length; i++) {
84
+ row = rowsToFilter[i];
85
+ const pass = filterRow(row);
73
86
 
74
- var row = rowsToFilter[i];
75
- newFilteredFlatRows.push(row);
76
- newFilteredRowsById[row.id] = row;
87
+ if (pass) {
88
+ var _row$subRows2;
77
89
 
78
- if (!((_row$subRows2 = row.subRows) != null && _row$subRows2.length)) {
79
- rowsToFilter.splice(i, 1);
80
- i--;
81
- continue;
82
- }
90
+ if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length) {
91
+ newRow = instance.createRow(row.id, row.original, row.index, row.depth);
92
+ newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
93
+ row = newRow;
94
+ }
83
95
 
84
- rowsToFilter[i] = instance.createRow(row.id, row.original, row.index, row.depth, row.values);
85
- rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1);
96
+ rows.push(row);
97
+ newFilteredFlatRows.push(row);
98
+ newFilteredRowsById[row.id] = row;
99
+ }
86
100
  }
87
101
 
88
- return rowsToFilter;
102
+ return rows;
89
103
  };
90
104
 
91
105
  return {
@@ -97,4 +111,5 @@ function filterRowModelFromRoot(rowsToFilter, filterRows, instance) {
97
111
 
98
112
  exports.filterRowModelFromLeafs = filterRowModelFromLeafs;
99
113
  exports.filterRowModelFromRoot = filterRowModelFromRoot;
114
+ exports.filterRows = filterRows;
100
115
  //# sourceMappingURL=filterRowsUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { TableGenerics, Row, RowModel, TableInstance } from '../types'\n\nexport function filterRowModelFromLeafs<TGenerics extends TableGenerics>(\n rowsToFilter: Row<TGenerics>[],\n filterRows: (\n rowsToFilter: Row<TGenerics>[],\n depth: number\n ) => Row<TGenerics>[],\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n rowsToFilter = rowsToFilter.slice()\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n const row = rowsToFilter[i]\n\n if (!row.subRows?.length) {\n continue\n }\n\n rowsToFilter[i] = instance.createRow(\n row.id,\n row.original,\n row.index,\n row.depth,\n row.values\n )\n\n rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1)\n\n if (!rowsToFilter[i].subRows.length) {\n rowsToFilter.splice(i, 1)\n i--\n }\n }\n\n rowsToFilter = filterRows(rowsToFilter, depth)\n\n // Apply the filter to any subRows\n rowsToFilter.forEach(row => {\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n })\n\n return rowsToFilter\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 filterRows: (\n rowsToFilter: Row<TGenerics>[],\n depth: number\n ) => Row<TGenerics>[],\n instance: TableInstance<TGenerics>\n): RowModel<TGenerics> {\n const newFilteredFlatRows: Row<TGenerics>[] = []\n const newFilteredRowsById: Record<string, Row<TGenerics>> = {}\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TGenerics>[], depth = 0) => {\n // Filter from parents downward first\n rowsToFilter = filterRows(rowsToFilter, depth)\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n const row = rowsToFilter[i]\n\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n\n if (!row.subRows?.length) {\n rowsToFilter.splice(i, 1)\n i--\n continue\n }\n\n rowsToFilter[i] = instance.createRow(\n row.id,\n row.original,\n row.index,\n row.depth,\n row.values\n )\n\n rowsToFilter[i].subRows = recurseFilterRows(row.subRows, depth + 1)\n }\n\n return rowsToFilter\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n"],"names":["filterRowModelFromLeafs","rowsToFilter","filterRows","instance","newFilteredFlatRows","newFilteredRowsById","recurseFilterRows","depth","slice","i","length","row","subRows","createRow","id","original","index","values","splice","forEach","push","rows","flatRows","rowsById","filterRowModelFromRoot"],"mappings":"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"}
1
+ {"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { 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 = instance.createRow(row.id, row.original, row.index, row.depth)\n newRow.columnFilterMap = row.columnFilterMap\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 = instance.createRow(\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","columnFilterMap","push","flatRows","rowsById","pass"],"mappings":"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"}
@@ -0,0 +1,98 @@
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 getCoreRowModel() {
18
+ return instance => utils.memo(() => [instance.options.data], data => {
19
+ // Access the row model using initial columns
20
+ const rows = [];
21
+ const flatRows = [];
22
+ const rowsById = {};
23
+ const leafColumns = instance.getAllLeafColumns();
24
+
25
+ const accessRow = function (originalRow, rowIndex, depth, parentRows, parent) {
26
+ if (depth === void 0) {
27
+ depth = 0;
28
+ }
29
+
30
+ const id = instance.getRowId(originalRow, rowIndex, parent);
31
+
32
+ if (!id) {
33
+ if (process.env.NODE_ENV !== 'production') {
34
+ throw new Error("getRowId expected an ID, but got " + id);
35
+ }
36
+ }
37
+
38
+ const values = {};
39
+
40
+ for (let i = 0; i < leafColumns.length; i++) {
41
+ const column = leafColumns[i];
42
+
43
+ if (column && column.accessorFn) {
44
+ values[column.id] = column.accessorFn(originalRow, rowIndex);
45
+ }
46
+ } // Make the row
47
+
48
+
49
+ const row = instance.createRow(id, originalRow, rowIndex, depth); // Push instance row into the parentRows array
50
+
51
+ parentRows.push(row); // Keep track of every row in a flat array
52
+
53
+ flatRows.push(row); // Also keep track of every row by its ID
54
+
55
+ rowsById[id] = row; // Get the original subrows
56
+
57
+ if (instance.options.getSubRows) {
58
+ const originalSubRows = instance.options.getSubRows(originalRow, rowIndex); // Then recursively access them
59
+
60
+ if (originalSubRows != null && originalSubRows.length) {
61
+ row.originalSubRows = originalSubRows;
62
+ const subRows = [];
63
+
64
+ for (let i = 0; i < row.originalSubRows.length; i++) {
65
+ accessRow(row.originalSubRows[i], i, depth + 1, subRows, row);
66
+ }
67
+
68
+ row.subRows = subRows;
69
+ }
70
+ }
71
+ };
72
+
73
+ for (let i = 0; i < data.length; i++) {
74
+ accessRow(data[i], i, 0, rows);
75
+ }
76
+
77
+ return {
78
+ rows,
79
+ flatRows,
80
+ rowsById
81
+ };
82
+ }, {
83
+ key: process.env.NODE_ENV === 'development' && 'getRowModel',
84
+ debug: () => {
85
+ var _instance$options$deb;
86
+
87
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
88
+ },
89
+ onChange: () => {
90
+ instance.queue(() => {
91
+ instance._autoResetPageIndex();
92
+ });
93
+ }
94
+ });
95
+ }
96
+
97
+ exports.getCoreRowModel = getCoreRowModel;
98
+ //# sourceMappingURL=getCoreRowModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { 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 // Access the row model using initial columns\n const rows: Row<TGenerics>[] = []\n const flatRows: Row<TGenerics>[] = []\n const rowsById: Record<string, Row<TGenerics>> = {}\n\n const leafColumns = instance.getAllLeafColumns()\n\n const accessRow = (\n originalRow: TGenerics['Row'],\n rowIndex: number,\n depth = 0,\n parentRows: Row<TGenerics>[],\n parent?: Row<TGenerics>\n ) => {\n const id = instance.getRowId(originalRow, rowIndex, parent)\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(`getRowId expected an ID, but got ${id}`)\n }\n }\n\n const values: Record<string, any> = {}\n\n for (let i = 0; i < leafColumns.length; i++) {\n const column = leafColumns[i]\n if (column && column.accessorFn) {\n values[column.id] = column.accessorFn(originalRow, rowIndex)\n }\n }\n\n // Make the row\n const row = instance.createRow(id, originalRow, rowIndex, depth)\n\n // Push instance row into the parentRows array\n parentRows.push(row)\n // Keep track of every row in a flat array\n flatRows.push(row)\n // Also keep track of every row by its ID\n rowsById[id] = row\n\n // Get the original subrows\n if (instance.options.getSubRows) {\n const originalSubRows = instance.options.getSubRows(\n originalRow,\n rowIndex\n )\n\n // Then recursively access them\n if (originalSubRows?.length) {\n row.originalSubRows = originalSubRows\n const subRows: Row<TGenerics>[] = []\n\n for (let i = 0; i < row.originalSubRows.length; i++) {\n accessRow(\n row.originalSubRows[i] as TGenerics['Row'],\n i,\n depth + 1,\n subRows,\n row\n )\n }\n row.subRows = subRows\n }\n }\n }\n\n for (let i = 0; i < data.length; i++) {\n accessRow(data[i] as TGenerics['Row'], i, 0, rows)\n }\n\n return { rows, flatRows, rowsById }\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {\n instance.queue(() => {\n instance._autoResetPageIndex()\n })\n },\n }\n )\n}\n"],"names":["getCoreRowModel","instance","memo","options","data","rows","flatRows","rowsById","leafColumns","getAllLeafColumns","accessRow","originalRow","rowIndex","depth","parentRows","parent","id","getRowId","process","env","NODE_ENV","Error","values","i","length","column","accessorFn","row","createRow","push","getSubRows","originalSubRows","subRows","key","debug","debugAll","debugTable","onChange","queue","_autoResetPageIndex"],"mappings":"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"}
@@ -15,35 +15,31 @@ Object.defineProperty(exports, '__esModule', { value: true });
15
15
  var utils = require('../utils.js');
16
16
 
17
17
  function getExpandedRowModel() {
18
- return function (instance) {
19
- return utils.memo(function () {
20
- return [instance.getState().expanded, instance.getPreExpandedRowModel(), instance.options.paginateExpandedRows];
21
- }, function (expanded, rowModel, paginateExpandedRows) {
22
- if (!rowModel.rows.length || // Do not expand if rows are not included in pagination
23
- !paginateExpandedRows || expanded !== true && !Object.keys(expanded != null ? expanded : {}).length) {
24
- return rowModel;
25
- }
26
-
27
- return expandRows(rowModel, instance);
28
- }, {
29
- key: 'getExpandedRowModel',
30
- debug: function debug() {
31
- var _instance$options$deb;
32
-
33
- return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
34
- }
35
- });
36
- };
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, instance);
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
+ });
37
33
  }
38
34
  function expandRows(rowModel, instance) {
39
- var expandedRows = [];
35
+ const expandedRows = [];
40
36
 
41
- var handleRow = function handleRow(row) {
37
+ const handleRow = row => {
42
38
  var _row$subRows;
43
39
 
44
40
  expandedRows.push(row);
45
41
 
46
- if (instance.options.expandSubRows && (_row$subRows = row.subRows) != null && _row$subRows.length && instance.getIsRowExpanded(row.id)) {
42
+ if (instance.options.expandSubRows && (_row$subRows = row.subRows) != null && _row$subRows.length && row.getIsExpanded()) {
47
43
  row.subRows.forEach(handleRow);
48
44
  }
49
45
  };
@@ -1 +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: '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 (\n instance.options.expandSubRows &&\n row.subRows?.length &&\n instance.getIsRowExpanded(row.id)\n ) {\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","debug","debugAll","debugTable","expandedRows","handleRow","row","push","expandSubRows","subRows","getIsRowExpanded","id","forEach","flatRows","rowsById"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAASA,mBAAT,GAEwB;AAC7B,EAAA,OAAO,UAAAC,QAAQ,EAAA;AAAA,IAAA,OACbC,UAAI,CACF,YAAA;AAAA,MAAA,OAAM,CACJD,QAAQ,CAACE,QAAT,EAAA,CAAoBC,QADhB,EAEJH,QAAQ,CAACI,sBAAT,EAFI,EAGJJ,QAAQ,CAACK,OAAT,CAAiBC,oBAHb,CAAN,CAAA;AAAA,KADE,EAMF,UAACH,QAAD,EAAWI,QAAX,EAAqBD,oBAArB,EAA8C;AAC5C,MAAA,IACE,CAACC,QAAQ,CAACC,IAAT,CAAcC,MAAf;AAEA,MAAA,CAACH,oBAFD,IAGCH,QAAQ,KAAK,IAAb,IAAqB,CAACO,MAAM,CAACC,IAAP,CAAYR,QAAZ,IAAYA,IAAAA,GAAAA,QAAZ,GAAwB,EAAxB,CAAA,CAA4BM,MAJrD,EAKE;AACA,QAAA,OAAOF,QAAP,CAAA;AACD,OAAA;;AAED,MAAA,OAAOK,UAAU,CAACL,QAAD,EAAWP,QAAX,CAAjB,CAAA;AACD,KAjBC,EAkBF;AACEa,MAAAA,GAAG,EAAE,qBADP;AAEEC,MAAAA,KAAK,EAAE,SAAA,KAAA,GAAA;AAAA,QAAA,IAAA,qBAAA,CAAA;;AAAA,QAAMd,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACK,OAAT,CAAiBU,QAAvB,oCAAmCf,QAAQ,CAACK,OAAT,CAAiBW,UAApD,CAAA;AAAA,OAAA;AAFT,KAlBE,CADS,CAAA;AAAA,GAAf,CAAA;AAwBD,CAAA;AAEM,SAASJ,UAAT,CACLL,QADK,EAELP,QAFK,EAGL;AACA,EAAMiB,IAAAA,YAA8B,GAAG,EAAvC,CAAA;;AAEA,EAAA,IAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,GAAD,EAAyB;AAAA,IAAA,IAAA,YAAA,CAAA;;AACzCF,IAAAA,YAAY,CAACG,IAAb,CAAkBD,GAAlB,CAAA,CAAA;;AAEA,IACEnB,IAAAA,QAAQ,CAACK,OAAT,CAAiBgB,aAAjB,IACAF,CAAAA,YAAAA,GAAAA,GAAG,CAACG,OADJ,KAAA,IAAA,IACA,aAAab,MADb,IAEAT,QAAQ,CAACuB,gBAAT,CAA0BJ,GAAG,CAACK,EAA9B,CAHF,EAIE;AACAL,MAAAA,GAAG,CAACG,OAAJ,CAAYG,OAAZ,CAAoBP,SAApB,CAAA,CAAA;AACD,KAAA;AACF,GAVD,CAAA;;AAYAX,EAAAA,QAAQ,CAACC,IAAT,CAAciB,OAAd,CAAsBP,SAAtB,CAAA,CAAA;AAEA,EAAO,OAAA;AACLV,IAAAA,IAAI,EAAES,YADD;AAELS,IAAAA,QAAQ,EAAEnB,QAAQ,CAACmB,QAFd;AAGLC,IAAAA,QAAQ,EAAEpB,QAAQ,CAACoB,QAAAA;AAHd,GAAP,CAAA;AAKD;;;;;"}
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 (\n instance.options.expandSubRows &&\n row.subRows?.length &&\n row.getIsExpanded()\n ) {\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","expandSubRows","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,EAAWP,QAAX,CAAjB,CAAA;AACD,GAjBC,EAkBF;AACEa,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,IAAA,IACEtB,QAAQ,CAACK,OAAT,CAAiBmB,aAAjB,oBACAF,GAAG,CAACG,OADJ,KAAA,IAAA,IACA,aAAahB,MADb,IAEAa,GAAG,CAACI,aAAJ,EAHF,EAIE;AACAJ,MAAAA,GAAG,CAACG,OAAJ,CAAYE,OAAZ,CAAoBN,SAApB,CAAA,CAAA;AACD,KAAA;AACF,GAVD,CAAA;;AAYAd,EAAAA,QAAQ,CAACC,IAAT,CAAcmB,OAAd,CAAsBN,SAAtB,CAAA,CAAA;AAEA,EAAO,OAAA;AACLb,IAAAA,IAAI,EAAEY,YADD;AAELQ,IAAAA,QAAQ,EAAErB,QAAQ,CAACqB,QAFd;AAGLC,IAAAA,QAAQ,EAAEtB,QAAQ,CAACsB,QAAAA;AAHd,GAAP,CAAA;AAKD;;;;;"}
@@ -0,0 +1,48 @@
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, _facetedRowModel$flat2, _facetedRowModel$flat3, _facetedRowModel$flat4;
20
+
21
+ let facetedMinMaxValues = [(_facetedRowModel$flat = (_facetedRowModel$flat2 = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat2.getValue(columnId)) != null ? _facetedRowModel$flat : null, (_facetedRowModel$flat3 = (_facetedRowModel$flat4 = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat4.getValue(columnId)) != null ? _facetedRowModel$flat3 : null];
22
+
23
+ for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
24
+ var _facetedRowModel$flat5;
25
+
26
+ const value = (_facetedRowModel$flat5 = facetedRowModel.flatRows[i]) == null ? void 0 : _facetedRowModel$flat5.getValue(columnId);
27
+
28
+ if (value < facetedMinMaxValues[0]) {
29
+ facetedMinMaxValues[0] = value;
30
+ } else if (value > facetedMinMaxValues[1]) {
31
+ facetedMinMaxValues[1] = value;
32
+ }
33
+ }
34
+
35
+ return facetedMinMaxValues;
36
+ }, {
37
+ key: process.env.NODE_ENV === 'development' && 'getFacetedMinMaxValues_' + columnId,
38
+ debug: () => {
39
+ var _instance$options$deb;
40
+
41
+ return (_instance$options$deb = instance.options.debugAll) != null ? _instance$options$deb : instance.options.debugTable;
42
+ },
43
+ onChange: () => {}
44
+ });
45
+ }
46
+
47
+ exports.getFacetedMinMaxValues = getFacetedMinMaxValues;
48
+ //# 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) => () => [number, number] {\n return (instance, columnId) =>\n memo(\n () => [instance.getColumn(columnId).getFacetedRowModel()],\n facetedRowModel => {\n let facetedMinMaxValues: [any, any] = [\n facetedRowModel.flatRows[0]?.getValue(columnId) ?? null,\n facetedRowModel.flatRows[0]?.getValue(columnId) ?? null,\n ]\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","facetedMinMaxValues","flatRows","getValue","i","length","value","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange"],"mappings":";;;;;;;;;;;;;;;;AAGO,SAASA,sBAAT,GAGqB;AAC1B,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,EAAA,sBAAA,EAAA,sBAAA,EAAA,sBAAA,CAAA;;AACjB,IAAA,IAAIC,mBAA+B,GAAG,CACpCD,CAAAA,qBAAAA,GAAAA,CAAAA,sBAAAA,GAAAA,eAAe,CAACE,QAAhB,CAAyB,CAAzB,CADoC,KACpC,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA6BC,QAA7B,CAAsCP,QAAtC,CADoC,KAAA,IAAA,GAAA,qBAAA,GACe,IADf,EAAA,CAAA,sBAAA,GAAA,CAAA,sBAAA,GAEpCI,eAAe,CAACE,QAAhB,CAAyB,CAAzB,CAFoC,KAAA,IAAA,GAAA,KAAA,CAAA,GAEpC,sBAA6BC,CAAAA,QAA7B,CAAsCP,QAAtC,CAFoC,KAAA,IAAA,GAAA,sBAAA,GAEe,IAFf,CAAtC,CAAA;;AAKA,IAAA,KAAK,IAAIQ,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGJ,eAAe,CAACE,QAAhB,CAAyBG,MAA7C,EAAqDD,CAAC,EAAtD,EAA0D;AAAA,MAAA,IAAA,sBAAA,CAAA;;AACxD,MAAA,MAAME,KAAK,GAAA,CAAA,sBAAA,GAAGN,eAAe,CAACE,QAAhB,CAAyBE,CAAzB,CAAH,KAAG,IAAA,GAAA,KAAA,CAAA,GAAA,sBAAA,CAA6BD,QAA7B,CAAsCP,QAAtC,CAAd,CAAA;;AAEA,MAAA,IAAIU,KAAK,GAAGL,mBAAmB,CAAC,CAAD,CAA/B,EAAoC;AAClCA,QAAAA,mBAAmB,CAAC,CAAD,CAAnB,GAAyBK,KAAzB,CAAA;AACD,OAFD,MAEO,IAAIA,KAAK,GAAGL,mBAAmB,CAAC,CAAD,CAA/B,EAAoC;AACzCA,QAAAA,mBAAmB,CAAC,CAAD,CAAnB,GAAyBK,KAAzB,CAAA;AACD,OAAA;AACF,KAAA;;AAED,IAAA,OAAOL,mBAAP,CAAA;AACD,GAnBC,EAoBF;AACEM,IAAAA,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IACA,yBAAA,GAA4Bd,QAHhC;AAIEe,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAMhB,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAACiB,OAAT,CAAiBC,QAAvB,oCAAmClB,QAAQ,CAACiB,OAAT,CAAiBE,UAApD,CAAA;AAAA,KAJT;AAKEC,IAAAA,QAAQ,EAAE,MAAM,EAAE;AALpB,GApBE,CADN,CAAA;AA6BD;;;;"}
@@ -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.columnFilterMap[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
@@ -0,0 +1 @@
1
+ {"version":3,"file":"getFacetedRowModel.js","sources":["../../../src/utils/getFacetedRowModel.ts"],"sourcesContent":["import { TableInstance, RowModel, TableGenerics, Row } from '../types'\nimport { memo } from '../utils'\nimport { filterRows } from './filterRowsUtils'\n\nexport function getFacetedRowModel<TGenerics extends TableGenerics>(): (\n instance: TableInstance<TGenerics>,\n columnId: string\n) => () => RowModel<TGenerics> {\n return (instance, columnId) =>\n memo(\n () => [\n instance.getPreFilteredRowModel(),\n instance.getState().columnFilters,\n instance.getState().globalFilter,\n instance.getFilteredRowModel(),\n ],\n (preRowModel, columnFilters, globalFilter) => {\n if (\n !preRowModel.rows.length ||\n (!columnFilters?.length && !globalFilter)\n ) {\n return preRowModel\n }\n\n const filterableIds = [\n ...columnFilters.map(d => d.id).filter(d => d !== columnId),\n globalFilter ? '__global__' : undefined,\n ].filter(Boolean) as string[]\n\n const filterRowsImpl = (row: Row<TGenerics>) => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilterMap[filterableIds[i]!] === false) {\n return false\n }\n }\n return true\n }\n\n return filterRows(preRowModel.rows, filterRowsImpl, instance)\n },\n {\n key:\n process.env.NODE_ENV === 'development' &&\n 'getFacetedRowModel_' + columnId,\n debug: () => instance.options.debugAll ?? instance.options.debugTable,\n onChange: () => {},\n }\n )\n}\n"],"names":["getFacetedRowModel","instance","columnId","memo","getPreFilteredRowModel","getState","columnFilters","globalFilter","getFilteredRowModel","preRowModel","rows","length","filterableIds","map","d","id","filter","undefined","Boolean","filterRowsImpl","row","i","columnFilterMap","filterRows","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange"],"mappings":";;;;;;;;;;;;;;;;;AAIO,SAASA,kBAAT,GAGwB;AAC7B,EAAA,OAAO,CAACC,QAAD,EAAWC,QAAX,KACLC,UAAI,CACF,MAAM,CACJF,QAAQ,CAACG,sBAAT,EADI,EAEJH,QAAQ,CAACI,QAAT,EAAoBC,CAAAA,aAFhB,EAGJL,QAAQ,CAACI,QAAT,EAAA,CAAoBE,YAHhB,EAIJN,QAAQ,CAACO,mBAAT,EAJI,CADJ,EAOF,CAACC,WAAD,EAAcH,aAAd,EAA6BC,YAA7B,KAA8C;AAC5C,IAAA,IACE,CAACE,WAAW,CAACC,IAAZ,CAAiBC,MAAlB,IACC,EAACL,aAAD,IAAA,IAAA,IAACA,aAAa,CAAEK,MAAhB,CAA0B,IAAA,CAACJ,YAF9B,EAGE;AACA,MAAA,OAAOE,WAAP,CAAA;AACD,KAAA;;AAED,IAAA,MAAMG,aAAa,GAAG,CACpB,GAAGN,aAAa,CAACO,GAAd,CAAkBC,CAAC,IAAIA,CAAC,CAACC,EAAzB,EAA6BC,MAA7B,CAAoCF,CAAC,IAAIA,CAAC,KAAKZ,QAA/C,CADiB,EAEpBK,YAAY,GAAG,YAAH,GAAkBU,SAFV,CAAA,CAGpBD,MAHoB,CAGbE,OAHa,CAAtB,CAAA;;AAKA,IAAMC,MAAAA,cAAc,GAAIC,GAAD,IAAyB;AAC9C;AACA,MAAA,KAAK,IAAIC,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGT,aAAa,CAACD,MAAlC,EAA0CU,CAAC,EAA3C,EAA+C;AAC7C,QAAID,IAAAA,GAAG,CAACE,eAAJ,CAAoBV,aAAa,CAACS,CAAD,CAAjC,CAA2C,KAAA,KAA/C,EAAsD;AACpD,UAAA,OAAO,KAAP,CAAA;AACD,SAAA;AACF,OAAA;;AACD,MAAA,OAAO,IAAP,CAAA;AACD,KARD,CAAA;;AAUA,IAAOE,OAAAA,0BAAU,CAACd,WAAW,CAACC,IAAb,EAAmBS,cAAnB,EAAmClB,QAAnC,CAAjB,CAAA;AACD,GA/BC,EAgCF;AACEuB,IAAAA,GAAG,EACDC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IACA,qBAAA,GAAwBzB,QAH5B;AAIE0B,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;AAAA,MAAM3B,OAAAA,CAAAA,qBAAAA,GAAAA,QAAQ,CAAC4B,OAAT,CAAiBC,QAAvB,oCAAmC7B,QAAQ,CAAC4B,OAAT,CAAiBE,UAApD,CAAA;AAAA,KAJT;AAKEC,IAAAA,QAAQ,EAAE,MAAM,EAAE;AALpB,GAhCE,CADN,CAAA;AAyCD;;;;"}