@tanstack/table-core 8.19.1 → 8.19.3

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.
@@ -1,2 +1,2 @@
1
- import { Table, RowModel, RowData } from '../types';
1
+ import { RowData, RowModel, Table } from '../types';
2
2
  export declare function getGroupedRowModel<TData extends RowData>(): (table: Table<TData>) => () => RowModel<TData>;
@@ -16,6 +16,10 @@ var utils = require('../utils.js');
16
16
  function getGroupedRowModel() {
17
17
  return table => utils.memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {
18
18
  if (!rowModel.rows.length || !grouping.length) {
19
+ rowModel.rows.forEach(row => {
20
+ row.depth = 0;
21
+ row.parentId = undefined;
22
+ });
19
23
  return rowModel;
20
24
  }
21
25
 
@@ -51,7 +55,7 @@ function getGroupedRowModel() {
51
55
  // Group the rows together for this level
52
56
  const rowGroupsMap = groupBy(rows, columnId);
53
57
 
54
- // Peform aggregations for each group
58
+ // Perform aggregations for each group
55
59
  const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {
56
60
  let [groupingValue, groupedRows] = _ref;
57
61
  let id = `${columnId}:${groupingValue}`;
@@ -59,6 +63,9 @@ function getGroupedRowModel() {
59
63
 
60
64
  // First, Recurse to group sub rows before aggregation
61
65
  const subRows = groupUpRecursively(groupedRows, depth + 1, id);
66
+ subRows.forEach(subRow => {
67
+ subRow.parentId = id;
68
+ });
62
69
 
63
70
  // Flatten the leaf rows of the rows in this group
64
71
  const leafRows = depth ? utils.flattenBy(groupedRows, row => row.subRows) : groupedRows;
@@ -1 +1 @@
1
- {"version":3,"file":"getGroupedRowModel.js","sources":["../../../src/utils/getGroupedRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Table, Row, RowModel, RowData } from '../types'\nimport { flattenBy, getMemoOptions, memo } from '../utils'\n\nexport function getGroupedRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.getState().grouping, table.getPreGroupedRowModel()],\n (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n return rowModel\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId =>\n table.getColumn(columnId)\n )\n\n const groupedFlatRows: Row<TData>[] = []\n const groupedRowsById: Record<string, Row<TData>> = {}\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = (\n rows: Row<TData>[],\n depth = 0,\n parentId?: string\n ) => {\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth\n\n groupedFlatRows.push(row)\n groupedRowsById[row.id] = row\n\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id)\n }\n\n return row\n })\n }\n\n const columnId: string = existingGrouping[depth]!\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId)\n\n // Peform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(\n ([groupingValue, groupedRows], index) => {\n let id = `${columnId}:${groupingValue}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, row => row.subRows)\n : groupedRows\n\n const row = createRow(\n table,\n id,\n leafRows[0]!.original,\n index,\n depth,\n undefined,\n parentId\n )\n\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: (columnId: string) => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n if (groupedRows[0]) {\n row._valuesCache[columnId] =\n groupedRows[0].getValue(columnId) ?? undefined\n }\n\n return row._valuesCache[columnId]\n }\n\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId]\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId)\n const aggregateFn = column?.getAggregationFn()\n\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(\n columnId,\n leafRows,\n groupedRows\n )\n\n return row._groupingValuesCache[columnId]\n }\n },\n })\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return row\n }\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rowModel.rows, 0)\n\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n }\n },\n getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded()\n table._autoResetPageIndex()\n })\n })\n )\n}\n\nfunction groupBy<TData extends RowData>(rows: Row<TData>[], columnId: string) {\n const groupMap = new Map<any, Row<TData>[]>()\n\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`\n const previous = map.get(resKey)\n if (!previous) {\n map.set(resKey, [row])\n } else {\n previous.push(row)\n }\n return map\n }, groupMap)\n}\n"],"names":["getGroupedRowModel","table","memo","getState","grouping","getPreGroupedRowModel","rowModel","rows","length","existingGrouping","filter","columnId","getColumn","groupedFlatRows","groupedRowsById","groupUpRecursively","depth","parentId","map","row","push","id","subRows","rowGroupsMap","groupBy","aggregatedGroupedRows","Array","from","entries","_ref","index","groupingValue","groupedRows","leafRows","flattenBy","createRow","original","undefined","Object","assign","groupingColumnId","getValue","includes","_valuesCache","hasOwnProperty","_groupedRows$0$getVal","_groupingValuesCache","column","aggregateFn","getAggregationFn","forEach","subRow","flatRows","rowsById","getMemoOptions","options","_queue","_autoResetExpanded","_autoResetPageIndex","groupMap","Map","reduce","resKey","getGroupingValue","previous","get","set"],"mappings":"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"}
1
+ {"version":3,"file":"getGroupedRowModel.js","sources":["../../../src/utils/getGroupedRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Row, RowData, RowModel, Table } from '../types'\nimport { flattenBy, getMemoOptions, memo } from '../utils'\nimport { GroupingState } from '../features/ColumnGrouping'\n\nexport function getGroupedRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.getState().grouping, table.getPreGroupedRowModel()],\n (grouping, rowModel) => {\n if (!rowModel.rows.length || !grouping.length) {\n rowModel.rows.forEach(row => {\n row.depth = 0\n row.parentId = undefined\n })\n return rowModel\n }\n\n // Filter the grouping list down to columns that exist\n const existingGrouping = grouping.filter(columnId =>\n table.getColumn(columnId)\n )\n\n const groupedFlatRows: Row<TData>[] = []\n const groupedRowsById: Record<string, Row<TData>> = {}\n // const onlyGroupedFlatRows: Row[] = [];\n // const onlyGroupedRowsById: Record<RowId, Row> = {};\n // const nonGroupedFlatRows: Row[] = [];\n // const nonGroupedRowsById: Record<RowId, Row> = {};\n\n // Recursively group the data\n const groupUpRecursively = (\n rows: Row<TData>[],\n depth = 0,\n parentId?: string\n ) => {\n // Grouping depth has been been met\n // Stop grouping and simply rewrite thd depth and row relationships\n if (depth >= existingGrouping.length) {\n return rows.map(row => {\n row.depth = depth\n\n groupedFlatRows.push(row)\n groupedRowsById[row.id] = row\n\n if (row.subRows) {\n row.subRows = groupUpRecursively(row.subRows, depth + 1, row.id)\n }\n\n return row\n })\n }\n\n const columnId: string = existingGrouping[depth]!\n\n // Group the rows together for this level\n const rowGroupsMap = groupBy(rows, columnId)\n\n // Perform aggregations for each group\n const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(\n ([groupingValue, groupedRows], index) => {\n let id = `${columnId}:${groupingValue}`\n id = parentId ? `${parentId}>${id}` : id\n\n // First, Recurse to group sub rows before aggregation\n const subRows = groupUpRecursively(groupedRows, depth + 1, id)\n\n subRows.forEach(subRow => {\n subRow.parentId = id\n })\n\n // Flatten the leaf rows of the rows in this group\n const leafRows = depth\n ? flattenBy(groupedRows, row => row.subRows)\n : groupedRows\n\n const row = createRow(\n table,\n id,\n leafRows[0]!.original,\n index,\n depth,\n undefined,\n parentId\n )\n\n Object.assign(row, {\n groupingColumnId: columnId,\n groupingValue,\n subRows,\n leafRows,\n getValue: (columnId: string) => {\n // Don't aggregate columns that are in the grouping\n if (existingGrouping.includes(columnId)) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n if (groupedRows[0]) {\n row._valuesCache[columnId] =\n groupedRows[0].getValue(columnId) ?? undefined\n }\n\n return row._valuesCache[columnId]\n }\n\n if (row._groupingValuesCache.hasOwnProperty(columnId)) {\n return row._groupingValuesCache[columnId]\n }\n\n // Aggregate the values\n const column = table.getColumn(columnId)\n const aggregateFn = column?.getAggregationFn()\n\n if (aggregateFn) {\n row._groupingValuesCache[columnId] = aggregateFn(\n columnId,\n leafRows,\n groupedRows\n )\n\n return row._groupingValuesCache[columnId]\n }\n },\n })\n\n subRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return row\n }\n )\n\n return aggregatedGroupedRows\n }\n\n const groupedRows = groupUpRecursively(rowModel.rows, 0)\n\n groupedRows.forEach(subRow => {\n groupedFlatRows.push(subRow)\n groupedRowsById[subRow.id] = subRow\n // if (subRow.getIsGrouped?.()) {\n // onlyGroupedFlatRows.push(subRow);\n // onlyGroupedRowsById[subRow.id] = subRow;\n // } else {\n // nonGroupedFlatRows.push(subRow);\n // nonGroupedRowsById[subRow.id] = subRow;\n // }\n })\n\n return {\n rows: groupedRows,\n flatRows: groupedFlatRows,\n rowsById: groupedRowsById,\n }\n },\n getMemoOptions(table.options, 'debugTable', 'getGroupedRowModel', () => {\n table._queue(() => {\n table._autoResetExpanded()\n table._autoResetPageIndex()\n })\n })\n )\n}\n\nfunction groupBy<TData extends RowData>(rows: Row<TData>[], columnId: string) {\n const groupMap = new Map<any, Row<TData>[]>()\n\n return rows.reduce((map, row) => {\n const resKey = `${row.getGroupingValue(columnId)}`\n const previous = map.get(resKey)\n if (!previous) {\n map.set(resKey, [row])\n } else {\n previous.push(row)\n }\n return map\n }, groupMap)\n}\n"],"names":["getGroupedRowModel","table","memo","getState","grouping","getPreGroupedRowModel","rowModel","rows","length","forEach","row","depth","parentId","undefined","existingGrouping","filter","columnId","getColumn","groupedFlatRows","groupedRowsById","groupUpRecursively","map","push","id","subRows","rowGroupsMap","groupBy","aggregatedGroupedRows","Array","from","entries","_ref","index","groupingValue","groupedRows","subRow","leafRows","flattenBy","createRow","original","Object","assign","groupingColumnId","getValue","includes","_valuesCache","hasOwnProperty","_groupedRows$0$getVal","_groupingValuesCache","column","aggregateFn","getAggregationFn","flatRows","rowsById","getMemoOptions","options","_queue","_autoResetExpanded","_autoResetPageIndex","groupMap","Map","reduce","resKey","getGroupingValue","previous","get","set"],"mappings":"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"}
@@ -2008,13 +2008,13 @@
2008
2008
  return isTop ? 'top' : isBottom ? 'bottom' : false;
2009
2009
  };
2010
2010
  row.getPinnedIndex = () => {
2011
- var _table$_getPinnedRows, _visiblePinnedRowIds$;
2011
+ var _ref4, _visiblePinnedRowIds$;
2012
2012
  const position = row.getIsPinned();
2013
2013
  if (!position) return -1;
2014
- const visiblePinnedRowIds = (_table$_getPinnedRows = table._getPinnedRows(position)) == null ? void 0 : _table$_getPinnedRows.map(_ref4 => {
2014
+ const visiblePinnedRowIds = (_ref4 = position === 'top' ? table.getTopRows() : table.getBottomRows()) == null ? void 0 : _ref4.map(_ref5 => {
2015
2015
  let {
2016
2016
  id
2017
- } = _ref4;
2017
+ } = _ref5;
2018
2018
  return id;
2019
2019
  });
2020
2020
  return (_visiblePinnedRowIds$ = visiblePinnedRowIds == null ? void 0 : visiblePinnedRowIds.indexOf(row.id)) != null ? _visiblePinnedRowIds$ : -1;
@@ -2035,7 +2035,7 @@
2035
2035
  }
2036
2036
  return Boolean((_pinningState$positio = pinningState[position]) == null ? void 0 : _pinningState$positio.length);
2037
2037
  };
2038
- table._getPinnedRows = memo(position => [table.getRowModel().rows, table.getState().rowPinning[position], position], (visibleRows, pinnedRowIds, position) => {
2038
+ table._getPinnedRows = (visibleRows, pinnedRowIds, position) => {
2039
2039
  var _table$options$keepPi;
2040
2040
  const rows = ((_table$options$keepPi = table.options.keepPinnedRows) != null ? _table$options$keepPi : true) ?
2041
2041
  //get all rows that are pinned even if they would not be otherwise visible
@@ -2050,9 +2050,9 @@
2050
2050
  ...d,
2051
2051
  position
2052
2052
  }));
2053
- }, getMemoOptions(table.options, 'debugRows', '_getPinnedRows'));
2054
- table.getTopRows = () => table._getPinnedRows('top');
2055
- table.getBottomRows = () => table._getPinnedRows('bottom');
2053
+ };
2054
+ table.getTopRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top], (allRows, topPinnedRowIds) => table._getPinnedRows(allRows, topPinnedRowIds, 'top'), getMemoOptions(table.options, 'debugRows', 'getTopRows'));
2055
+ table.getBottomRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.bottom], (allRows, bottomPinnedRowIds) => table._getPinnedRows(allRows, bottomPinnedRowIds, 'bottom'), getMemoOptions(table.options, 'debugRows', 'getBottomRows'));
2056
2056
  table.getCenterRows = memo(() => [table.getRowModel().rows, table.getState().rowPinning.top, table.getState().rowPinning.bottom], (allRows, top, bottom) => {
2057
2057
  const topAndBottom = new Set([...(top != null ? top : []), ...(bottom != null ? bottom : [])]);
2058
2058
  return allRows.filter(d => !topAndBottom.has(d.id));
@@ -3263,6 +3263,10 @@
3263
3263
  function getGroupedRowModel() {
3264
3264
  return table => memo(() => [table.getState().grouping, table.getPreGroupedRowModel()], (grouping, rowModel) => {
3265
3265
  if (!rowModel.rows.length || !grouping.length) {
3266
+ rowModel.rows.forEach(row => {
3267
+ row.depth = 0;
3268
+ row.parentId = undefined;
3269
+ });
3266
3270
  return rowModel;
3267
3271
  }
3268
3272
 
@@ -3298,7 +3302,7 @@
3298
3302
  // Group the rows together for this level
3299
3303
  const rowGroupsMap = groupBy(rows, columnId);
3300
3304
 
3301
- // Peform aggregations for each group
3305
+ // Perform aggregations for each group
3302
3306
  const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map((_ref, index) => {
3303
3307
  let [groupingValue, groupedRows] = _ref;
3304
3308
  let id = `${columnId}:${groupingValue}`;
@@ -3306,6 +3310,9 @@
3306
3310
 
3307
3311
  // First, Recurse to group sub rows before aggregation
3308
3312
  const subRows = groupUpRecursively(groupedRows, depth + 1, id);
3313
+ subRows.forEach(subRow => {
3314
+ subRow.parentId = id;
3315
+ });
3309
3316
 
3310
3317
  // Flatten the leaf rows of the rows in this group
3311
3318
  const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;