@redis-ui/table 2.4.0 → 2.18.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (154) hide show
  1. package/dist/Table/Table.cjs +85 -136
  2. package/dist/Table/Table.context.cjs +16 -1
  3. package/dist/Table/Table.context.d.ts +22 -4
  4. package/dist/Table/Table.context.js +16 -1
  5. package/dist/Table/Table.d.ts +83 -3
  6. package/dist/Table/Table.js +86 -137
  7. package/dist/Table/Table.style.cjs +33 -17
  8. package/dist/Table/Table.style.d.ts +5 -2
  9. package/dist/Table/Table.style.js +34 -18
  10. package/dist/Table/Table.types.d.ts +21 -22
  11. package/dist/Table/components/Compose/Compose.cjs +42 -0
  12. package/dist/Table/components/Compose/Compose.d.ts +13 -0
  13. package/dist/Table/components/Compose/Compose.js +42 -0
  14. package/dist/Table/components/EmptyState/EmptyState.cjs +31 -0
  15. package/dist/Table/components/EmptyState/EmptyState.d.ts +6 -0
  16. package/dist/Table/components/EmptyState/EmptyState.js +31 -0
  17. package/dist/Table/components/ExpandRowButton/ExpandRowButton.cjs +1 -0
  18. package/dist/Table/components/ExpandRowButton/ExpandRowButton.js +1 -0
  19. package/dist/Table/components/HiddenCaption/HiddenCaption.cjs +13 -0
  20. package/dist/Table/components/HiddenCaption/HiddenCaption.d.ts +3 -0
  21. package/dist/Table/components/HiddenCaption/HiddenCaption.js +13 -0
  22. package/dist/Table/components/PluggableTable/PluggableTable.cjs +19 -0
  23. package/dist/Table/components/PluggableTable/PluggableTable.d.ts +10 -0
  24. package/dist/Table/components/PluggableTable/PluggableTable.js +19 -0
  25. package/dist/Table/components/PluggableTable/compositionComponents.cjs +21 -0
  26. package/dist/Table/components/PluggableTable/compositionComponents.d.ts +67 -0
  27. package/dist/Table/components/PluggableTable/compositionComponents.js +21 -0
  28. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.cjs +29 -0
  29. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.d.ts +7 -0
  30. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.js +29 -0
  31. package/dist/Table/components/RowSelection/HeaderMultiRowSelectionButton.test.d.ts +1 -0
  32. package/dist/Table/components/RowSelection/RowSelectionButton.cjs +15 -0
  33. package/dist/Table/components/RowSelection/RowSelectionButton.d.ts +6 -0
  34. package/dist/Table/components/RowSelection/RowSelectionButton.js +15 -0
  35. package/dist/Table/components/RowSelection/RowSelectionButton.test.d.ts +1 -0
  36. package/dist/Table/components/TableBody/TableBody.cjs +33 -0
  37. package/dist/Table/components/TableBody/TableBody.d.ts +23 -0
  38. package/dist/Table/components/TableBody/TableBody.js +33 -0
  39. package/dist/Table/components/TableBody/components/Compose/Compose.cjs +10 -0
  40. package/dist/Table/components/TableBody/components/Compose/Compose.d.ts +3 -0
  41. package/dist/Table/components/TableBody/components/Compose/Compose.js +10 -0
  42. package/dist/Table/components/TableBodyCell/TableBodyCell.cjs +22 -0
  43. package/dist/Table/components/TableBodyCell/TableBodyCell.d.ts +12 -0
  44. package/dist/Table/components/TableBodyCell/TableBodyCell.js +22 -0
  45. package/dist/Table/components/TableBodyCell/components/Compose/Compose.cjs +5 -0
  46. package/dist/Table/components/TableBodyCell/components/Compose/Compose.d.ts +3 -0
  47. package/dist/Table/components/TableBodyCell/components/Compose/Compose.js +5 -0
  48. package/dist/Table/components/TableBodyRow/TableBodyRow.cjs +38 -0
  49. package/dist/Table/components/TableBodyRow/TableBodyRow.d.ts +20 -0
  50. package/dist/Table/components/TableBodyRow/TableBodyRow.js +38 -0
  51. package/dist/Table/components/TableBodyRow/TableBodyRowExpandable.cjs +33 -0
  52. package/dist/Table/components/TableBodyRow/TableBodyRowExpandable.d.ts +2 -0
  53. package/dist/Table/components/TableBodyRow/TableBodyRowExpandable.js +33 -0
  54. package/dist/Table/components/TableBodyRow/components/Compose/Compose.cjs +17 -0
  55. package/dist/Table/components/TableBodyRow/components/Compose/Compose.d.ts +4 -0
  56. package/dist/Table/components/TableBodyRow/components/Compose/Compose.js +17 -0
  57. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.cjs +3 -4
  58. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.d.ts +1 -1
  59. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.js +3 -4
  60. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.style.cjs +1 -1
  61. package/dist/Table/components/TableExpandedRow/TableAnimatedExpandedRow.style.js +1 -1
  62. package/dist/Table/components/TableExpandedRow/TableExpandedRow.cjs +9 -4
  63. package/dist/Table/components/TableExpandedRow/TableExpandedRow.d.ts +1 -1
  64. package/dist/Table/components/TableExpandedRow/TableExpandedRow.js +9 -4
  65. package/dist/Table/components/TableExpandedRow/TableExpandedRow.style.cjs +2 -2
  66. package/dist/Table/components/TableExpandedRow/TableExpandedRow.style.js +2 -2
  67. package/dist/Table/components/TableExpandedRow/TableExpandedRow.types.d.ts +3 -5
  68. package/dist/Table/components/TableHeader/TableHeader.cjs +28 -0
  69. package/dist/Table/components/TableHeader/TableHeader.d.ts +21 -0
  70. package/dist/Table/components/TableHeader/TableHeader.js +28 -0
  71. package/dist/Table/components/TableHeader/components/Compose/Compose.cjs +5 -0
  72. package/dist/Table/components/TableHeader/components/Compose/Compose.d.ts +3 -0
  73. package/dist/Table/components/TableHeader/components/Compose/Compose.js +5 -0
  74. package/dist/Table/components/TableHeaderCell/SRSortingNotification.cjs +19 -0
  75. package/dist/Table/components/TableHeaderCell/SRSortingNotification.d.ts +1 -0
  76. package/dist/Table/components/TableHeaderCell/SRSortingNotification.js +19 -0
  77. package/dist/Table/components/TableHeaderCell/TableHeaderCell.cjs +23 -0
  78. package/dist/Table/components/TableHeaderCell/TableHeaderCell.context.cjs +15 -0
  79. package/dist/Table/components/TableHeaderCell/TableHeaderCell.context.d.ts +8 -0
  80. package/dist/Table/components/TableHeaderCell/TableHeaderCell.context.js +15 -0
  81. package/dist/Table/components/TableHeaderCell/TableHeaderCell.d.ts +16 -0
  82. package/dist/Table/components/TableHeaderCell/TableHeaderCell.js +23 -0
  83. package/dist/Table/components/TableHeaderCell/TableHeaderCell.test.d.ts +1 -0
  84. package/dist/Table/components/TableHeaderCell/TableHeaderCell.types.d.ts +13 -0
  85. package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.cjs +79 -0
  86. package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.d.ts +10 -0
  87. package/dist/Table/components/TableHeaderCell/TableHeaderCell.utils.js +79 -0
  88. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.cjs +40 -0
  89. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.d.ts +9 -0
  90. package/dist/Table/components/TableHeaderCell/components/Compose/Compose.js +40 -0
  91. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.cjs +34 -0
  92. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.d.ts +5 -0
  93. package/dist/Table/components/TableHeaderCell/components/Heading/Heading.js +34 -0
  94. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.cjs +16 -0
  95. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.d.ts +8 -0
  96. package/dist/Table/components/TableHeaderCell/components/SortableHeading/SortableHeading.js +16 -0
  97. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.cjs +23 -0
  98. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.d.ts +5 -0
  99. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/Compose/Compose.js +23 -0
  100. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/SortIndicator/SortIndicator.cjs +6 -0
  101. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/SortIndicator/SortIndicator.d.ts +2 -0
  102. package/dist/Table/components/TableHeaderCell/components/SortableHeading/components/SortIndicator/SortIndicator.js +6 -0
  103. package/dist/Table/components/TableHeaderRow/TableHeaderRow.cjs +27 -0
  104. package/dist/Table/components/TableHeaderRow/TableHeaderRow.d.ts +12 -0
  105. package/dist/Table/components/TableHeaderRow/TableHeaderRow.js +27 -0
  106. package/dist/Table/components/TableHeaderRow/components/Compose/Compose.cjs +5 -0
  107. package/dist/Table/components/TableHeaderRow/components/Compose/Compose.d.ts +3 -0
  108. package/dist/Table/components/TableHeaderRow/components/Compose/Compose.js +5 -0
  109. package/dist/Table/components/TablePagination/TablePagination.cjs +63 -78
  110. package/dist/Table/components/TablePagination/TablePagination.d.ts +23 -3
  111. package/dist/Table/components/TablePagination/TablePagination.js +64 -79
  112. package/dist/Table/components/TablePagination/TablePagination.style.cjs +78 -53
  113. package/dist/Table/components/TablePagination/TablePagination.style.d.ts +17 -49
  114. package/dist/Table/components/TablePagination/TablePagination.style.js +80 -55
  115. package/dist/Table/components/TablePagination/components/Compose/Compose.cjs +41 -0
  116. package/dist/Table/components/TablePagination/components/Compose/Compose.d.ts +3 -0
  117. package/dist/Table/components/TablePagination/components/Compose/Compose.js +41 -0
  118. package/dist/Table/components/TableRoot/TableRoot.cjs +5 -0
  119. package/dist/Table/components/TableRoot/TableRoot.d.ts +1 -0
  120. package/dist/Table/components/TableRoot/TableRoot.js +5 -0
  121. package/dist/Table/index.d.ts +3 -6
  122. package/dist/Table/plugins/ClickableRowPlugin.cjs +48 -0
  123. package/dist/Table/plugins/ClickableRowPlugin.d.ts +25 -0
  124. package/dist/Table/plugins/ClickableRowPlugin.js +48 -0
  125. package/dist/Table/plugins/ExpandableRowPlugin.cjs +38 -0
  126. package/dist/Table/plugins/ExpandableRowPlugin.d.ts +22 -0
  127. package/dist/Table/plugins/ExpandableRowPlugin.js +38 -0
  128. package/dist/Table/plugins/PaginationPlugin.cjs +45 -0
  129. package/dist/Table/plugins/PaginationPlugin.d.ts +16 -0
  130. package/dist/Table/plugins/PaginationPlugin.js +45 -0
  131. package/dist/Table/plugins/RowSelectionPlugin.cjs +28 -0
  132. package/dist/Table/plugins/RowSelectionPlugin.d.ts +12 -0
  133. package/dist/Table/plugins/RowSelectionPlugin.js +28 -0
  134. package/dist/Table/plugins/SortingPlugin.cjs +44 -0
  135. package/dist/Table/plugins/SortingPlugin.d.ts +18 -0
  136. package/dist/Table/plugins/SortingPlugin.js +44 -0
  137. package/dist/Table/tanStackExtendedTypes.d.ts +11 -0
  138. package/dist/Table/utils/plugin.utils.cjs +49 -0
  139. package/dist/Table/utils/plugin.utils.d.ts +17 -0
  140. package/dist/Table/utils/plugin.utils.js +49 -0
  141. package/dist/Table/utils/plugin.utils.test.d.ts +1 -0
  142. package/dist/index.cjs +60 -0
  143. package/dist/index.js +61 -1
  144. package/dist/node_modules/@radix-ui/react-primitive/dist/index.cjs +55 -0
  145. package/dist/node_modules/@radix-ui/react-primitive/dist/index.js +37 -0
  146. package/dist/node_modules/@radix-ui/react-slot/dist/index.cjs +100 -0
  147. package/dist/node_modules/@radix-ui/react-slot/dist/index.js +82 -0
  148. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.cjs +51 -0
  149. package/dist/node_modules/@radix-ui/react-visually-hidden/dist/index.js +33 -0
  150. package/dist/node_modules/@tanstack/react-table/build/lib/index.cjs +7 -0
  151. package/dist/node_modules/@tanstack/react-table/build/lib/index.js +8 -1
  152. package/dist/node_modules/@tanstack/table-core/build/lib/index.cjs +361 -4
  153. package/dist/node_modules/@tanstack/table-core/build/lib/index.js +361 -4
  154. package/package.json +7 -5
@@ -8,9 +8,26 @@
8
8
  *
9
9
  * @license MIT
10
10
  */
11
+ function createColumnHelper() {
12
+ return {
13
+ accessor: (accessor, column) => {
14
+ return typeof accessor === "function" ? {
15
+ ...column,
16
+ accessorFn: accessor
17
+ } : {
18
+ ...column,
19
+ accessorKey: accessor
20
+ };
21
+ },
22
+ display: (column) => column,
23
+ group: (column) => column
24
+ };
25
+ }
11
26
  function functionalUpdate(updater, input) {
12
27
  return typeof updater === "function" ? updater(input) : updater;
13
28
  }
29
+ function noop() {
30
+ }
14
31
  function makeStateUpdater(key, instance) {
15
32
  return (updater) => {
16
33
  instance.setState((old) => {
@@ -425,7 +442,7 @@ const createRow = (table, id, original, rowIndex, depth, subRows, parentId) => {
425
442
  var _row$getValue;
426
443
  return (_row$getValue = row.getValue(columnId)) != null ? _row$getValue : table.options.renderFallbackValue;
427
444
  },
428
- subRows: [],
445
+ subRows: subRows != null ? subRows : [],
429
446
  getLeafRows: () => flattenBy(row.subRows, (d) => d.subRows),
430
447
  getParentRow: () => row.parentId ? table.getRow(row.parentId, true) : void 0,
431
448
  getParentRows: () => {
@@ -1292,10 +1309,10 @@ function passiveEventSupported() {
1292
1309
  return false;
1293
1310
  }
1294
1311
  };
1295
- const noop = () => {
1312
+ const noop2 = () => {
1296
1313
  };
1297
- window.addEventListener("test", noop, options);
1298
- window.removeEventListener("test", noop);
1314
+ window.addEventListener("test", noop2, options);
1315
+ window.removeEventListener("test", noop2);
1299
1316
  } catch (err) {
1300
1317
  supported = false;
1301
1318
  }
@@ -2651,6 +2668,339 @@ function expandRows(rowModel) {
2651
2668
  rowsById: rowModel.rowsById
2652
2669
  };
2653
2670
  }
2671
+ function getFacetedMinMaxValues() {
2672
+ return (table, columnId) => memo(() => {
2673
+ var _table$getColumn;
2674
+ return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];
2675
+ }, (facetedRowModel) => {
2676
+ var _facetedRowModel$flat;
2677
+ if (!facetedRowModel) return void 0;
2678
+ const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getUniqueValues(columnId);
2679
+ if (typeof firstValue === "undefined") {
2680
+ return void 0;
2681
+ }
2682
+ let facetedMinMaxValues = [firstValue, firstValue];
2683
+ for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
2684
+ const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);
2685
+ for (let j = 0; j < values.length; j++) {
2686
+ const value = values[j];
2687
+ if (value < facetedMinMaxValues[0]) {
2688
+ facetedMinMaxValues[0] = value;
2689
+ } else if (value > facetedMinMaxValues[1]) {
2690
+ facetedMinMaxValues[1] = value;
2691
+ }
2692
+ }
2693
+ }
2694
+ return facetedMinMaxValues;
2695
+ }, getMemoOptions(table.options, "debugTable", "getFacetedMinMaxValues"));
2696
+ }
2697
+ function filterRows(rows, filterRowImpl, table) {
2698
+ if (table.options.filterFromLeafRows) {
2699
+ return filterRowModelFromLeafs(rows, filterRowImpl, table);
2700
+ }
2701
+ return filterRowModelFromRoot(rows, filterRowImpl, table);
2702
+ }
2703
+ function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
2704
+ var _table$options$maxLea;
2705
+ const newFilteredFlatRows = [];
2706
+ const newFilteredRowsById = {};
2707
+ const maxDepth = (_table$options$maxLea = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea : 100;
2708
+ const recurseFilterRows = function(rowsToFilter2, depth) {
2709
+ if (depth === void 0) {
2710
+ depth = 0;
2711
+ }
2712
+ const rows = [];
2713
+ for (let i = 0; i < rowsToFilter2.length; i++) {
2714
+ var _row$subRows;
2715
+ let row = rowsToFilter2[i];
2716
+ const newRow = createRow(table, row.id, row.original, row.index, row.depth, void 0, row.parentId);
2717
+ newRow.columnFilters = row.columnFilters;
2718
+ if ((_row$subRows = row.subRows) != null && _row$subRows.length && depth < maxDepth) {
2719
+ newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
2720
+ row = newRow;
2721
+ if (filterRow(row) && !newRow.subRows.length) {
2722
+ rows.push(row);
2723
+ newFilteredRowsById[row.id] = row;
2724
+ newFilteredFlatRows.push(row);
2725
+ continue;
2726
+ }
2727
+ if (filterRow(row) || newRow.subRows.length) {
2728
+ rows.push(row);
2729
+ newFilteredRowsById[row.id] = row;
2730
+ newFilteredFlatRows.push(row);
2731
+ continue;
2732
+ }
2733
+ } else {
2734
+ row = newRow;
2735
+ if (filterRow(row)) {
2736
+ rows.push(row);
2737
+ newFilteredRowsById[row.id] = row;
2738
+ newFilteredFlatRows.push(row);
2739
+ }
2740
+ }
2741
+ }
2742
+ return rows;
2743
+ };
2744
+ return {
2745
+ rows: recurseFilterRows(rowsToFilter),
2746
+ flatRows: newFilteredFlatRows,
2747
+ rowsById: newFilteredRowsById
2748
+ };
2749
+ }
2750
+ function filterRowModelFromRoot(rowsToFilter, filterRow, table) {
2751
+ var _table$options$maxLea2;
2752
+ const newFilteredFlatRows = [];
2753
+ const newFilteredRowsById = {};
2754
+ const maxDepth = (_table$options$maxLea2 = table.options.maxLeafRowFilterDepth) != null ? _table$options$maxLea2 : 100;
2755
+ const recurseFilterRows = function(rowsToFilter2, depth) {
2756
+ if (depth === void 0) {
2757
+ depth = 0;
2758
+ }
2759
+ const rows = [];
2760
+ for (let i = 0; i < rowsToFilter2.length; i++) {
2761
+ let row = rowsToFilter2[i];
2762
+ const pass = filterRow(row);
2763
+ if (pass) {
2764
+ var _row$subRows2;
2765
+ if ((_row$subRows2 = row.subRows) != null && _row$subRows2.length && depth < maxDepth) {
2766
+ const newRow = createRow(table, row.id, row.original, row.index, row.depth, void 0, row.parentId);
2767
+ newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
2768
+ row = newRow;
2769
+ }
2770
+ rows.push(row);
2771
+ newFilteredFlatRows.push(row);
2772
+ newFilteredRowsById[row.id] = row;
2773
+ }
2774
+ }
2775
+ return rows;
2776
+ };
2777
+ return {
2778
+ rows: recurseFilterRows(rowsToFilter),
2779
+ flatRows: newFilteredFlatRows,
2780
+ rowsById: newFilteredRowsById
2781
+ };
2782
+ }
2783
+ function getFacetedRowModel() {
2784
+ return (table, columnId) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter, table.getFilteredRowModel()], (preRowModel, columnFilters, globalFilter) => {
2785
+ if (!preRowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {
2786
+ return preRowModel;
2787
+ }
2788
+ const filterableIds = [...columnFilters.map((d) => d.id).filter((d) => d !== columnId), globalFilter ? "__global__" : void 0].filter(Boolean);
2789
+ const filterRowsImpl = (row) => {
2790
+ for (let i = 0; i < filterableIds.length; i++) {
2791
+ if (row.columnFilters[filterableIds[i]] === false) {
2792
+ return false;
2793
+ }
2794
+ }
2795
+ return true;
2796
+ };
2797
+ return filterRows(preRowModel.rows, filterRowsImpl, table);
2798
+ }, getMemoOptions(table.options, "debugTable", "getFacetedRowModel"));
2799
+ }
2800
+ function getFacetedUniqueValues() {
2801
+ return (table, columnId) => memo(() => {
2802
+ var _table$getColumn;
2803
+ return [(_table$getColumn = table.getColumn(columnId)) == null ? void 0 : _table$getColumn.getFacetedRowModel()];
2804
+ }, (facetedRowModel) => {
2805
+ if (!facetedRowModel) return /* @__PURE__ */ new Map();
2806
+ let facetedUniqueValues = /* @__PURE__ */ new Map();
2807
+ for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
2808
+ const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);
2809
+ for (let j = 0; j < values.length; j++) {
2810
+ const value = values[j];
2811
+ if (facetedUniqueValues.has(value)) {
2812
+ var _facetedUniqueValues$;
2813
+ facetedUniqueValues.set(value, ((_facetedUniqueValues$ = facetedUniqueValues.get(value)) != null ? _facetedUniqueValues$ : 0) + 1);
2814
+ } else {
2815
+ facetedUniqueValues.set(value, 1);
2816
+ }
2817
+ }
2818
+ }
2819
+ return facetedUniqueValues;
2820
+ }, getMemoOptions(table.options, "debugTable", `getFacetedUniqueValues_${columnId}`));
2821
+ }
2822
+ function getFilteredRowModel() {
2823
+ return (table) => memo(() => [table.getPreFilteredRowModel(), table.getState().columnFilters, table.getState().globalFilter], (rowModel, columnFilters, globalFilter) => {
2824
+ if (!rowModel.rows.length || !(columnFilters != null && columnFilters.length) && !globalFilter) {
2825
+ for (let i = 0; i < rowModel.flatRows.length; i++) {
2826
+ rowModel.flatRows[i].columnFilters = {};
2827
+ rowModel.flatRows[i].columnFiltersMeta = {};
2828
+ }
2829
+ return rowModel;
2830
+ }
2831
+ const resolvedColumnFilters = [];
2832
+ const resolvedGlobalFilters = [];
2833
+ (columnFilters != null ? columnFilters : []).forEach((d) => {
2834
+ var _filterFn$resolveFilt;
2835
+ const column = table.getColumn(d.id);
2836
+ if (!column) {
2837
+ return;
2838
+ }
2839
+ const filterFn = column.getFilterFn();
2840
+ if (!filterFn) {
2841
+ if (process.env.NODE_ENV !== "production") {
2842
+ console.warn(`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`);
2843
+ }
2844
+ return;
2845
+ }
2846
+ resolvedColumnFilters.push({
2847
+ id: d.id,
2848
+ filterFn,
2849
+ resolvedValue: (_filterFn$resolveFilt = filterFn.resolveFilterValue == null ? void 0 : filterFn.resolveFilterValue(d.value)) != null ? _filterFn$resolveFilt : d.value
2850
+ });
2851
+ });
2852
+ const filterableIds = (columnFilters != null ? columnFilters : []).map((d) => d.id);
2853
+ const globalFilterFn = table.getGlobalFilterFn();
2854
+ const globallyFilterableColumns = table.getAllLeafColumns().filter((column) => column.getCanGlobalFilter());
2855
+ if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {
2856
+ filterableIds.push("__global__");
2857
+ globallyFilterableColumns.forEach((column) => {
2858
+ var _globalFilterFn$resol;
2859
+ resolvedGlobalFilters.push({
2860
+ id: column.id,
2861
+ filterFn: globalFilterFn,
2862
+ resolvedValue: (_globalFilterFn$resol = globalFilterFn.resolveFilterValue == null ? void 0 : globalFilterFn.resolveFilterValue(globalFilter)) != null ? _globalFilterFn$resol : globalFilter
2863
+ });
2864
+ });
2865
+ }
2866
+ let currentColumnFilter;
2867
+ let currentGlobalFilter;
2868
+ for (let j = 0; j < rowModel.flatRows.length; j++) {
2869
+ const row = rowModel.flatRows[j];
2870
+ row.columnFilters = {};
2871
+ if (resolvedColumnFilters.length) {
2872
+ for (let i = 0; i < resolvedColumnFilters.length; i++) {
2873
+ currentColumnFilter = resolvedColumnFilters[i];
2874
+ const id = currentColumnFilter.id;
2875
+ row.columnFilters[id] = currentColumnFilter.filterFn(row, id, currentColumnFilter.resolvedValue, (filterMeta) => {
2876
+ row.columnFiltersMeta[id] = filterMeta;
2877
+ });
2878
+ }
2879
+ }
2880
+ if (resolvedGlobalFilters.length) {
2881
+ for (let i = 0; i < resolvedGlobalFilters.length; i++) {
2882
+ currentGlobalFilter = resolvedGlobalFilters[i];
2883
+ const id = currentGlobalFilter.id;
2884
+ if (currentGlobalFilter.filterFn(row, id, currentGlobalFilter.resolvedValue, (filterMeta) => {
2885
+ row.columnFiltersMeta[id] = filterMeta;
2886
+ })) {
2887
+ row.columnFilters.__global__ = true;
2888
+ break;
2889
+ }
2890
+ }
2891
+ if (row.columnFilters.__global__ !== true) {
2892
+ row.columnFilters.__global__ = false;
2893
+ }
2894
+ }
2895
+ }
2896
+ const filterRowsImpl = (row) => {
2897
+ for (let i = 0; i < filterableIds.length; i++) {
2898
+ if (row.columnFilters[filterableIds[i]] === false) {
2899
+ return false;
2900
+ }
2901
+ }
2902
+ return true;
2903
+ };
2904
+ return filterRows(rowModel.rows, filterRowsImpl, table);
2905
+ }, getMemoOptions(table.options, "debugTable", "getFilteredRowModel", () => table._autoResetPageIndex()));
2906
+ }
2907
+ function getGroupedRowModel() {
2908
+ return (table) => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {
2909
+ if (!rowModel.rows.length || !grouping.length) {
2910
+ return rowModel;
2911
+ }
2912
+ const existingGrouping = grouping.filter((columnId) => table.getColumn(columnId));
2913
+ const groupedFlatRows = [];
2914
+ const groupedRowsById = {};
2915
+ const groupUpRecursively = function(rows, depth, parentId) {
2916
+ if (depth === void 0) {
2917
+ depth = 0;
2918
+ }
2919
+ if (depth >= existingGrouping.length) {
2920
+ return rows.map((row) => {
2921
+ row.depth = depth;
2922
+ groupedFlatRows.push(row);
2923
+ groupedRowsById[row.id] = row;
2924
+ if (row.subRows) {
2925
+ row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id);
2926
+ }
2927
+ return row;
2928
+ });
2929
+ }
2930
+ const columnId = existingGrouping[depth];
2931
+ const rowGroupsMap = groupBy(rows, columnId);
2932
+ const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {
2933
+ let [groupingValue, groupedRows2] = _ref;
2934
+ let id = `${columnId}:${groupingValue}`;
2935
+ id = parentId ? `${parentId}>${id}` : id;
2936
+ const subRows = groupUpRecursively(groupedRows2, depth + 1, id);
2937
+ const leafRows = depth ? flattenBy(groupedRows2, (row2) => row2.subRows) : groupedRows2;
2938
+ const row = createRow(table, id, leafRows[0].original, index, depth, void 0, parentId);
2939
+ Object.assign(row, {
2940
+ groupingColumnId: columnId,
2941
+ groupingValue,
2942
+ subRows,
2943
+ leafRows,
2944
+ getValue: (columnId2) => {
2945
+ if (existingGrouping.includes(columnId2)) {
2946
+ if (row._valuesCache.hasOwnProperty(columnId2)) {
2947
+ return row._valuesCache[columnId2];
2948
+ }
2949
+ if (groupedRows2[0]) {
2950
+ var _groupedRows$0$getVal;
2951
+ row._valuesCache[columnId2] = (_groupedRows$0$getVal = groupedRows2[0].getValue(columnId2)) != null ? _groupedRows$0$getVal : void 0;
2952
+ }
2953
+ return row._valuesCache[columnId2];
2954
+ }
2955
+ if (row._groupingValuesCache.hasOwnProperty(columnId2)) {
2956
+ return row._groupingValuesCache[columnId2];
2957
+ }
2958
+ const column = table.getColumn(columnId2);
2959
+ const aggregateFn = column == null ? void 0 : column.getAggregationFn();
2960
+ if (aggregateFn) {
2961
+ row._groupingValuesCache[columnId2] = aggregateFn(columnId2, leafRows, groupedRows2);
2962
+ return row._groupingValuesCache[columnId2];
2963
+ }
2964
+ }
2965
+ });
2966
+ subRows.forEach((subRow) => {
2967
+ groupedFlatRows.push(subRow);
2968
+ groupedRowsById[subRow.id] = subRow;
2969
+ });
2970
+ return row;
2971
+ });
2972
+ return aggregatedGroupedRows;
2973
+ };
2974
+ const groupedRows = groupUpRecursively(rowModel.rows, 0);
2975
+ groupedRows.forEach((subRow) => {
2976
+ groupedFlatRows.push(subRow);
2977
+ groupedRowsById[subRow.id] = subRow;
2978
+ });
2979
+ return {
2980
+ rows: groupedRows,
2981
+ flatRows: groupedFlatRows,
2982
+ rowsById: groupedRowsById
2983
+ };
2984
+ }, getMemoOptions(table.options, "debugTable", "getGroupedRowModel", () => {
2985
+ table._queue(() => {
2986
+ table._autoResetExpanded();
2987
+ table._autoResetPageIndex();
2988
+ });
2989
+ }));
2990
+ }
2991
+ function groupBy(rows, columnId) {
2992
+ const groupMap = /* @__PURE__ */ new Map();
2993
+ return rows.reduce((map, row) => {
2994
+ const resKey = `${row.getGroupingValue(columnId)}`;
2995
+ const previous = map.get(resKey);
2996
+ if (!previous) {
2997
+ map.set(resKey, [row]);
2998
+ } else {
2999
+ previous.push(row);
3000
+ }
3001
+ return map;
3002
+ }, groupMap);
3003
+ }
2654
3004
  function getPaginationRowModel(opts) {
2655
3005
  return (table) => memo(() => [table.getState().pagination, table.getPrePaginationRowModel(), table.options.paginateExpandedRows ? void 0 : table.getState().expanded], (pagination, rowModel) => {
2656
3006
  if (!rowModel.rows.length) {
@@ -2789,6 +3139,7 @@ export {
2789
3139
  buildHeaderGroups,
2790
3140
  createCell,
2791
3141
  createColumn,
3142
+ createColumnHelper,
2792
3143
  createRow,
2793
3144
  createTable,
2794
3145
  defaultColumnSizing,
@@ -2798,6 +3149,11 @@ export {
2798
3149
  functionalUpdate,
2799
3150
  getCoreRowModel,
2800
3151
  getExpandedRowModel,
3152
+ getFacetedMinMaxValues,
3153
+ getFacetedRowModel,
3154
+ getFacetedUniqueValues,
3155
+ getFilteredRowModel,
3156
+ getGroupedRowModel,
2801
3157
  getMemoOptions,
2802
3158
  getPaginationRowModel,
2803
3159
  getSortedRowModel,
@@ -2807,6 +3163,7 @@ export {
2807
3163
  isSubRowSelected,
2808
3164
  makeStateUpdater,
2809
3165
  memo,
3166
+ noop,
2810
3167
  orderColumns,
2811
3168
  passiveEventSupported,
2812
3169
  reSplitAlphaNumeric,
package/package.json CHANGED
@@ -1,6 +1,7 @@
1
1
  {
2
2
  "name": "@redis-ui/table",
3
- "version": "2.4.0",
3
+ "license": "UNLICENSED",
4
+ "version": "2.18.0",
4
5
  "type": "module",
5
6
  "publishConfig": {
6
7
  "registry": "https://npm.pkg.github.com/"
@@ -30,10 +31,11 @@
30
31
  "styled-components": "^5.0.0"
31
32
  },
32
33
  "dependencies": {
33
- "@redis-ui/components": "^38.0.0",
34
- "@redis-ui/icons": "^4.3.0",
35
- "@redis-ui/styles": "^11.0.2",
36
- "@tanstack/react-table": "^8.9.8"
34
+ "@redis-ui/components": "^39.18.0",
35
+ "@redis-ui/icons": "^6.1.1",
36
+ "@redis-ui/styles": "^12.8.0",
37
+ "@tanstack/react-table": "^8.9.8",
38
+ "type-fest": "^3.13.1"
37
39
  },
38
40
  "devDependencies": {
39
41
  "@redislabsdev/eslint-config-redis-ui": "^2.0.0",