@tanstack/react-table 8.5.16 → 8.5.18

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.
@@ -115,6 +115,9 @@ function createColumn(table, columnDef, depth, parent) {
115
115
  let result = originalRow;
116
116
  for (const key of accessorKey.split('.')) {
117
117
  result = result[key];
118
+ if (process.env.NODE_ENV !== 'production' && result === undefined) {
119
+ throw new Error(`"${key}" in deeply nested key "${accessorKey}" returned undefined.`);
120
+ }
118
121
  }
119
122
  return result;
120
123
  };
@@ -2669,6 +2672,7 @@ const createRow = (table, id, original, rowIndex, depth, subRows) => {
2669
2672
  original,
2670
2673
  depth,
2671
2674
  _valuesCache: {},
2675
+ _uniqueValuesCache: {},
2672
2676
  getValue: columnId => {
2673
2677
  if (row._valuesCache.hasOwnProperty(columnId)) {
2674
2678
  return row._valuesCache[columnId];
@@ -2680,6 +2684,21 @@ const createRow = (table, id, original, rowIndex, depth, subRows) => {
2680
2684
  row._valuesCache[columnId] = column.accessorFn(row.original, rowIndex);
2681
2685
  return row._valuesCache[columnId];
2682
2686
  },
2687
+ getUniqueValues: columnId => {
2688
+ if (row._uniqueValuesCache.hasOwnProperty(columnId)) {
2689
+ return row._uniqueValuesCache[columnId];
2690
+ }
2691
+ const column = table.getColumn(columnId);
2692
+ if (!column.accessorFn) {
2693
+ return undefined;
2694
+ }
2695
+ if (!column.columnDef.getUniqueValues) {
2696
+ row._uniqueValuesCache[columnId] = [row.getValue(columnId)];
2697
+ return row._uniqueValuesCache[columnId];
2698
+ }
2699
+ row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(row.original, rowIndex);
2700
+ return row._uniqueValuesCache[columnId];
2701
+ },
2683
2702
  renderValue: columnId => row.getValue(columnId) ?? table.options.renderFallbackValue,
2684
2703
  subRows: subRows ?? [],
2685
2704
  getLeafRows: () => flattenBy(row.subRows, d => d.subRows),
@@ -3020,12 +3039,14 @@ function getFacetedUniqueValues() {
3020
3039
  return (table, columnId) => memo(() => [table.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {
3021
3040
  let facetedUniqueValues = new Map();
3022
3041
  for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
3023
- var _facetedRowModel$flat;
3024
- const value = (_facetedRowModel$flat = facetedRowModel.flatRows[i]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);
3025
- if (facetedUniqueValues.has(value)) {
3026
- facetedUniqueValues.set(value, (facetedUniqueValues.get(value) ?? 0) + 1);
3027
- } else {
3028
- facetedUniqueValues.set(value, 1);
3042
+ const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);
3043
+ for (let j = 0; j < values.length; j++) {
3044
+ const value = values[j];
3045
+ if (facetedUniqueValues.has(value)) {
3046
+ facetedUniqueValues.set(value, (facetedUniqueValues.get(value) ?? 0) + 1);
3047
+ } else {
3048
+ facetedUniqueValues.set(value, 1);
3049
+ }
3029
3050
  }
3030
3051
  }
3031
3052
  return facetedUniqueValues;
@@ -3039,17 +3060,20 @@ function getFacetedUniqueValues() {
3039
3060
  function getFacetedMinMaxValues() {
3040
3061
  return (table, columnId) => memo(() => [table.getColumn(columnId).getFacetedRowModel()], facetedRowModel => {
3041
3062
  var _facetedRowModel$flat;
3042
- const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getValue(columnId);
3063
+ const firstValue = (_facetedRowModel$flat = facetedRowModel.flatRows[0]) == null ? void 0 : _facetedRowModel$flat.getUniqueValues(columnId);
3043
3064
  if (typeof firstValue === 'undefined') {
3044
3065
  return undefined;
3045
3066
  }
3046
3067
  let facetedMinMaxValues = [firstValue, firstValue];
3047
3068
  for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
3048
- const value = facetedRowModel.flatRows[i].getValue(columnId);
3049
- if (value < facetedMinMaxValues[0]) {
3050
- facetedMinMaxValues[0] = value;
3051
- } else if (value > facetedMinMaxValues[1]) {
3052
- facetedMinMaxValues[1] = value;
3069
+ const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);
3070
+ for (let j = 0; j < values.length; j++) {
3071
+ const value = values[j];
3072
+ if (value < facetedMinMaxValues[0]) {
3073
+ facetedMinMaxValues[0] = value;
3074
+ } else if (value > facetedMinMaxValues[1]) {
3075
+ facetedMinMaxValues[1] = value;
3076
+ }
3053
3077
  }
3054
3078
  }
3055
3079
  return facetedMinMaxValues;