@tanstack/table-core 8.2.0 → 8.2.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/build/cjs/core/column.js.map +1 -1
- package/build/cjs/core/row.js.map +1 -1
- package/build/cjs/utils/getCoreRowModel.js.map +1 -1
- package/build/cjs/utils/getGroupedRowModel.js +1 -1
- package/build/cjs/utils/getGroupedRowModel.js.map +1 -1
- package/build/esm/index.js +1 -1
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +301 -301
- package/build/types/index.d.ts +2 -2
- package/build/umd/index.development.js +1 -1
- package/build/umd/index.development.js.map +1 -1
- package/build/umd/index.production.js +1 -1
- package/build/umd/index.production.js.map +1 -1
- package/package.json +1 -1
- package/src/core/column.ts +1 -1
- package/src/core/row.ts +2 -2
- package/src/utils/getCoreRowModel.ts +1 -1
- package/src/utils/getGroupedRowModel.ts +7 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import {\n Column,\n Table,\n AccessorFn,\n ColumnDef,\n ColumnDefTemplate,\n RowData,\n ColumnMeta,\n} from '../types'\nimport { memo, UnionToIntersection } from '../utils'\nimport { CoreCell } from './cell'\nimport { CoreHeader } from './headers'\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\ntype CoreColumnDefBase<TData extends RowData, TValue> = {\n columns?: ColumnDef<TData>[]\n header?: ColumnDefTemplate<\n ReturnType<CoreHeader<TData, TValue>['getContext']>\n >\n footer?: ColumnDefTemplate<\n ReturnType<CoreHeader<TData, TValue>['getContext']>\n >\n cell?: ColumnDefTemplate<ReturnType<CoreCell<TData, TValue>['getContext']>>\n meta?: ColumnMeta\n}\n\ntype CoreColumnDefDisplay<TData extends RowData, TValue> = CoreColumnDefBase<\n TData,\n TValue\n> & {\n id: string\n}\n\ntype CoreColumnDefDisplayWithStringHeader<\n TData extends RowData,\n TValue\n> = CoreColumnDefBase<TData, TValue> & {\n header: string\n id?: string\n}\n\ntype CoreColumnDefAccessorFn<\n TData extends RowData,\n TValue = unknown\n> = CoreColumnDefBase<TData, TValue> & {\n accessorFn: AccessorFn<TData, TValue>\n id: string\n // accessorKey?: never\n}\n\ntype CoreColumnDefAccessorKey<\n TData extends RowData,\n TValue\n> = CoreColumnDefBase<TData, TValue> & {\n accessorKey: keyof TData\n id?: string\n // accessorFn?: never\n}\n\nexport type CoreColumnDef<TData extends RowData, TValue> =\n | CoreColumnDefDisplay<TData, TValue>\n | CoreColumnDefDisplayWithStringHeader<TData, TValue>\n | CoreColumnDefAccessorFn<TData>\n | CoreColumnDefAccessorKey<TData, TValue>\n\nexport type CoreColumnDefResolved<\n TData extends RowData,\n TValue = unknown\n> = Partial<UnionToIntersection<CoreColumnDef<TData, TValue>>>\n\nexport type CoreColumn<TData extends RowData, TValue> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData, TValue>\n columnDef: ColumnDef<TData>\n columns: Column<TData, TValue>[]\n parent?: Column<TData, TValue>\n getFlatColumns: () => Column<TData, TValue>[]\n getLeafColumns: () => Column<TData, TValue>[]\n}\n\nexport function createColumn<TData extends RowData, TValue>(\n table: Table<TData>,\n columnDef: ColumnDef<TData>,\n depth: number,\n parent?: Column<TData, TValue>\n) {\n const defaultColumn = table._getDefaultColumnDef()\n\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef,\n } as CoreColumnDefResolved<TData>\n\n let id =\n resolvedColumnDef.id ??\n resolvedColumnDef.accessorKey ??\n (typeof resolvedColumnDef.header === 'string'\n ? resolvedColumnDef.header\n : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn\n } else if (resolvedColumnDef.accessorKey) {\n accessorFn = (originalRow
|
|
1
|
+
{"version":3,"file":"column.js","sources":["../../../src/core/column.ts"],"sourcesContent":["import {\n Column,\n Table,\n AccessorFn,\n ColumnDef,\n ColumnDefTemplate,\n RowData,\n ColumnMeta,\n} from '../types'\nimport { memo, UnionToIntersection } from '../utils'\nimport { CoreCell } from './cell'\nimport { CoreHeader } from './headers'\n\nexport type CoreColumnDefType = 'data' | 'display' | 'group'\n\ntype CoreColumnDefBase<TData extends RowData, TValue> = {\n columns?: ColumnDef<TData>[]\n header?: ColumnDefTemplate<\n ReturnType<CoreHeader<TData, TValue>['getContext']>\n >\n footer?: ColumnDefTemplate<\n ReturnType<CoreHeader<TData, TValue>['getContext']>\n >\n cell?: ColumnDefTemplate<ReturnType<CoreCell<TData, TValue>['getContext']>>\n meta?: ColumnMeta\n}\n\ntype CoreColumnDefDisplay<TData extends RowData, TValue> = CoreColumnDefBase<\n TData,\n TValue\n> & {\n id: string\n}\n\ntype CoreColumnDefDisplayWithStringHeader<\n TData extends RowData,\n TValue\n> = CoreColumnDefBase<TData, TValue> & {\n header: string\n id?: string\n}\n\ntype CoreColumnDefAccessorFn<\n TData extends RowData,\n TValue = unknown\n> = CoreColumnDefBase<TData, TValue> & {\n accessorFn: AccessorFn<TData, TValue>\n id: string\n // accessorKey?: never\n}\n\ntype CoreColumnDefAccessorKey<\n TData extends RowData,\n TValue\n> = CoreColumnDefBase<TData, TValue> & {\n accessorKey: keyof TData\n id?: string\n // accessorFn?: never\n}\n\nexport type CoreColumnDef<TData extends RowData, TValue> =\n | CoreColumnDefDisplay<TData, TValue>\n | CoreColumnDefDisplayWithStringHeader<TData, TValue>\n | CoreColumnDefAccessorFn<TData>\n | CoreColumnDefAccessorKey<TData, TValue>\n\nexport type CoreColumnDefResolved<\n TData extends RowData,\n TValue = unknown\n> = Partial<UnionToIntersection<CoreColumnDef<TData, TValue>>>\n\nexport type CoreColumn<TData extends RowData, TValue> = {\n id: string\n depth: number\n accessorFn?: AccessorFn<TData, TValue>\n columnDef: ColumnDef<TData>\n columns: Column<TData, TValue>[]\n parent?: Column<TData, TValue>\n getFlatColumns: () => Column<TData, TValue>[]\n getLeafColumns: () => Column<TData, TValue>[]\n}\n\nexport function createColumn<TData extends RowData, TValue>(\n table: Table<TData>,\n columnDef: ColumnDef<TData>,\n depth: number,\n parent?: Column<TData, TValue>\n) {\n const defaultColumn = table._getDefaultColumnDef()\n\n const resolvedColumnDef = {\n ...defaultColumn,\n ...columnDef,\n } as CoreColumnDefResolved<TData>\n\n let id =\n resolvedColumnDef.id ??\n resolvedColumnDef.accessorKey ??\n (typeof resolvedColumnDef.header === 'string'\n ? resolvedColumnDef.header\n : undefined)\n\n let accessorFn: AccessorFn<TData> | undefined\n\n if (resolvedColumnDef.accessorFn) {\n accessorFn = resolvedColumnDef.accessorFn\n } else if (resolvedColumnDef.accessorKey) {\n accessorFn = (originalRow: TData) =>\n (originalRow as any)[resolvedColumnDef.accessorKey]\n }\n\n if (!id) {\n if (process.env.NODE_ENV !== 'production') {\n throw new Error(\n resolvedColumnDef.accessorFn\n ? `Columns require an id when using an accessorFn`\n : `Columns require an id when using a non-string header`\n )\n }\n throw new Error()\n }\n\n let column: CoreColumn<TData, any> = {\n id: `${String(id)}`,\n accessorFn,\n parent: parent as any,\n depth,\n columnDef: resolvedColumnDef as ColumnDef<TData>,\n columns: [],\n getFlatColumns: memo(\n () => [true],\n () => {\n return [\n column as Column<TData, TValue>,\n ...column.columns?.flatMap(d => d.getFlatColumns()),\n ]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getFlatColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n getLeafColumns: memo(\n () => [table._getOrderColumnsFn()],\n orderColumns => {\n if (column.columns?.length) {\n let leafColumns = column.columns.flatMap(column =>\n column.getLeafColumns()\n )\n\n return orderColumns(leafColumns)\n }\n\n return [column as Column<TData, TValue>]\n },\n {\n key: process.env.NODE_ENV === 'production' && 'column.getLeafColumns',\n debug: () => table.options.debugAll ?? table.options.debugColumns,\n }\n ),\n }\n\n column = table._features.reduce((obj, feature) => {\n return Object.assign(obj, feature.createColumn?.(column, table))\n }, column)\n\n // Yes, we have to convert table to uknown, because we know more than the compiler here.\n return column as Column<TData, TValue>\n}\n"],"names":["createColumn","table","columnDef","depth","parent","defaultColumn","_getDefaultColumnDef","resolvedColumnDef","id","accessorKey","header","undefined","accessorFn","originalRow","process","env","NODE_ENV","Error","column","String","columns","getFlatColumns","memo","flatMap","d","key","debug","options","debugAll","debugColumns","getLeafColumns","_getOrderColumnsFn","orderColumns","length","leafColumns","_features","reduce","obj","feature","Object","assign"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { RowData, Cell, Row, TableGenerics, Table } from '../types'\nimport { flattenBy, memo } from '../utils'\nimport { createCell } from './cell'\n\nexport type CoreRow<TData extends RowData> = {\n id: string\n index: number\n original
|
|
1
|
+
{"version":3,"file":"row.js","sources":["../../../src/core/row.ts"],"sourcesContent":["import { RowData, Cell, Row, TableGenerics, Table } from '../types'\nimport { flattenBy, memo } from '../utils'\nimport { createCell } from './cell'\n\nexport type CoreRow<TData extends RowData> = {\n id: string\n index: number\n original: TData\n depth: number\n _valuesCache: Record<string, unknown>\n getValue: <TValue>(columnId: string) => TValue\n renderValue: <TValue>(columnId: string) => TValue\n subRows: Row<TData>[]\n getLeafRows: () => Row<TData>[]\n originalSubRows?: TData[]\n getAllCells: () => Cell<TData, unknown>[]\n _getAllCellsByColumnId: () => Record<string, Cell<TData, unknown>>\n}\n\nexport const createRow = <TData extends RowData>(\n table: Table<TData>,\n id: string,\n original: TData,\n rowIndex: number,\n depth: number,\n subRows?: Row<TData>[]\n): Row<TData> => {\n let row: CoreRow<TData> = {\n id,\n index: rowIndex,\n original,\n depth,\n _valuesCache: {},\n getValue: columnId => {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = table.getColumn(columnId)\n\n if (!column.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(\n row.original as TData,\n rowIndex\n )\n\n return row._valuesCache[columnId] as any\n },\n renderValue: columnId =>\n row.getValue(columnId) ?? table.options.renderFallbackValue,\n subRows: subRows ?? [],\n getLeafRows: () => flattenBy(row.subRows, d => d.subRows),\n getAllCells: memo(\n () => [table.getAllLeafColumns()],\n leafColumns => {\n return leafColumns.map(column => {\n return createCell(table, row as Row<TData>, column, column.id)\n })\n },\n {\n key: process.env.NODE_ENV === 'development' && 'row.getAllCells',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n\n _getAllCellsByColumnId: memo(\n () => [row.getAllCells()],\n allCells => {\n return allCells.reduce((acc, cell) => {\n acc[cell.column.id] = cell\n return acc\n }, {} as Record<string, Cell<TData, unknown>>)\n },\n {\n key:\n process.env.NODE_ENV === 'production' && 'row.getAllCellsByColumnId',\n debug: () => table.options.debugAll ?? table.options.debugRows,\n }\n ),\n }\n\n for (let i = 0; i < table._features.length; i++) {\n const feature = table._features[i]\n Object.assign(row, feature?.createRow?.(row, table))\n }\n\n return row as Row<TData>\n}\n"],"names":["createRow","table","id","original","rowIndex","depth","subRows","row","index","_valuesCache","getValue","columnId","hasOwnProperty","column","getColumn","accessorFn","undefined","renderValue","options","renderFallbackValue","getLeafRows","flattenBy","d","getAllCells","memo","getAllLeafColumns","leafColumns","map","createCell","key","process","env","NODE_ENV","debug","debugAll","debugRows","_getAllCellsByColumnId","allCells","reduce","acc","cell","i","_features","length","feature","Object","assign"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Table, Row, RowModel, TableGenerics, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.options.data],\n (\n data\n ): {\n rows: Row<TData>[]\n flatRows: Row<TData>[]\n rowsById: Record<string, Row<TData>>\n } => {\n const rowModel: RowModel<TData> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n const accessRows = (\n originalRows: TData[],\n depth = 0,\n parent?: Row<TData>\n ): Row<TData>[] => {\n const rows = [] as Row<TData>[]\n\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(\n table,\n table._getRowId(originalRows[i]!, i, parent),\n originalRows[i]
|
|
1
|
+
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Table, Row, RowModel, TableGenerics, RowData } from '../types'\nimport { memo } from '../utils'\n\nexport function getCoreRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.options.data],\n (\n data\n ): {\n rows: Row<TData>[]\n flatRows: Row<TData>[]\n rowsById: Record<string, Row<TData>>\n } => {\n const rowModel: RowModel<TData> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n const accessRows = (\n originalRows: TData[],\n depth = 0,\n parent?: Row<TData>\n ): Row<TData>[] => {\n const rows = [] as Row<TData>[]\n\n for (let i = 0; i < originalRows.length; i++) {\n // This could be an expensive check at scale, so we should move it somewhere else, but where?\n // if (!id) {\n // if (process.env.NODE_ENV !== 'production') {\n // throw new Error(`getRowId expected an ID, but got ${id}`)\n // }\n // }\n\n // Make the row\n const row = createRow(\n table,\n table._getRowId(originalRows[i]!, i, parent),\n originalRows[i]!,\n i,\n depth\n )\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row)\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row\n // Push table row into parent\n rows.push(row)\n\n // Get the original subrows\n if (table.options.getSubRows) {\n row.originalSubRows = table.options.getSubRows(\n originalRows[i]!,\n i\n )\n\n // Then recursively access them\n if (row.originalSubRows?.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row)\n }\n }\n }\n\n return rows\n }\n\n rowModel.rows = accessRows(data)\n\n return rowModel\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {\n table._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getCoreRowModel","table","memo","options","data","rowModel","rows","flatRows","rowsById","accessRows","originalRows","depth","parent","i","length","row","createRow","_getRowId","push","id","getSubRows","originalSubRows","subRows","key","process","env","NODE_ENV","debug","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":";;;;;;;;;;;;;;;;;AAIO,SAASA,eAAT,GAEoB;AACzB,EAAA,OAAOC,KAAK,IACVC,UAAI,CACF,MAAM,CAACD,KAAK,CAACE,OAAN,CAAcC,IAAf,CADJ,EAGAA,IADF,IAMK;AACH,IAAA,MAAMC,QAAyB,GAAG;AAChCC,MAAAA,IAAI,EAAE,EAD0B;AAEhCC,MAAAA,QAAQ,EAAE,EAFsB;AAGhCC,MAAAA,QAAQ,EAAE,EAAA;KAHZ,CAAA;;IAMA,MAAMC,UAAU,GAAG,UACjBC,YADiB,EAEjBC,KAFiB,EAGjBC,MAHiB,EAIA;AAAA,MAAA,IAFjBD,KAEiB,KAAA,KAAA,CAAA,EAAA;AAFjBA,QAAAA,KAEiB,GAFT,CAES,CAAA;AAAA,OAAA;;MACjB,MAAML,IAAI,GAAG,EAAb,CAAA;;AAEA,MAAA,KAAK,IAAIO,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGH,YAAY,CAACI,MAAjC,EAAyCD,CAAC,EAA1C,EAA8C;AAC5C;AACA;AACA;AACA;AACA;AACA;AAEA;AACA,QAAA,MAAME,KAAG,GAAGC,aAAS,CACnBf,KADmB,EAEnBA,KAAK,CAACgB,SAAN,CAAgBP,YAAY,CAACG,CAAD,CAA5B,EAAkCA,CAAlC,EAAqCD,MAArC,CAFmB,EAGnBF,YAAY,CAACG,CAAD,CAHO,EAInBA,CAJmB,EAKnBF,KALmB,CAArB,CAT4C;;AAkB5CN,QAAAA,QAAQ,CAACE,QAAT,CAAkBW,IAAlB,CAAuBH,KAAvB,EAlB4C;;QAoB5CV,QAAQ,CAACG,QAAT,CAAkBO,KAAG,CAACI,EAAtB,CAAA,GAA4BJ,KAA5B,CApB4C;;AAsB5CT,QAAAA,IAAI,CAACY,IAAL,CAAUH,KAAV,EAtB4C;;AAyB5C,QAAA,IAAId,KAAK,CAACE,OAAN,CAAciB,UAAlB,EAA8B;AAAA,UAAA,IAAA,oBAAA,CAAA;;AAC5BL,UAAAA,KAAG,CAACM,eAAJ,GAAsBpB,KAAK,CAACE,OAAN,CAAciB,UAAd,CACpBV,YAAY,CAACG,CAAD,CADQ,EAEpBA,CAFoB,CAAtB,CAD4B;;AAO5B,UAAA,IAAA,CAAA,oBAAA,GAAIE,KAAG,CAACM,eAAR,KAAI,IAAA,IAAA,oBAAA,CAAqBP,MAAzB,EAAiC;AAC/BC,YAAAA,KAAG,CAACO,OAAJ,GAAcb,UAAU,CAACM,KAAG,CAACM,eAAL,EAAsBV,KAAK,GAAG,CAA9B,EAAiCI,KAAjC,CAAxB,CAAA;AACD,WAAA;AACF,SAAA;AACF,OAAA;;AAED,MAAA,OAAOT,IAAP,CAAA;KA7CF,CAAA;;AAgDAD,IAAAA,QAAQ,CAACC,IAAT,GAAgBG,UAAU,CAACL,IAAD,CAA1B,CAAA;AAEA,IAAA,OAAOC,QAAP,CAAA;AACD,GAlEC,EAmEF;IACEkB,GAAG,EAAEC,OAAO,CAACC,GAAR,CAAYC,QAAZ,KAAyB,aAAzB,IAA0C,aADjD;AAEEC,IAAAA,KAAK,EAAE,MAAA;AAAA,MAAA,IAAA,qBAAA,CAAA;;MAAA,OAAM1B,CAAAA,qBAAAA,GAAAA,KAAK,CAACE,OAAN,CAAcyB,QAApB,oCAAgC3B,KAAK,CAACE,OAAN,CAAc0B,UAA9C,CAAA;KAFT;AAGEC,IAAAA,QAAQ,EAAE,MAAM;AACd7B,MAAAA,KAAK,CAAC8B,mBAAN,EAAA,CAAA;AACD,KAAA;AALH,GAnEE,CADN,CAAA;AA4ED;;;;"}
|
|
@@ -52,7 +52,7 @@ function getGroupedRowModel() {
|
|
|
52
52
|
const subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
|
|
53
53
|
|
|
54
54
|
const leafRows = depth ? utils.flattenBy(groupedRows, row => row.subRows) : groupedRows;
|
|
55
|
-
const row$1 = row.createRow(table, id,
|
|
55
|
+
const row$1 = row.createRow(table, id, leafRows[0].original, index, depth);
|
|
56
56
|
Object.assign(row$1, {
|
|
57
57
|
groupingColumnId: columnId,
|
|
58
58
|
groupingValue,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getGroupedRowModel.js","sources":["../../../src/utils/getGroupedRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Table, Row, RowModel, TableGenerics, RowData } from '../types'\nimport { flattenBy, 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 // This is the last level, just return the rows\n if (depth === existingGrouping.length) {\n return rows\n }\n\n const columnId = 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(table, id, undefined, index, depth)\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 {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {\n table._queue(() => {\n table._autoResetExpanded()\n table._autoResetPageIndex()\n })\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.getValue(columnId)}`\n const previous = map.get(resKey)\n if (!previous) {\n map.set(resKey, [row])\n } else {\n map.set(resKey, [...previous, 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","rowGroupsMap","groupBy","aggregatedGroupedRows","Array","from","entries","map","index","groupingValue","groupedRows","id","subRows","leafRows","flattenBy","row","createRow","undefined","Object","assign","groupingColumnId","getValue","includes","_valuesCache","hasOwnProperty","_groupingValuesCache","column","aggregateFn","getAggregationFn","forEach","subRow","push","flatRows","rowsById","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange","_queue","_autoResetExpanded","_autoResetPageIndex","groupMap","Map","reduce","resKey","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 { Table, Row, RowModel, TableGenerics, RowData } from '../types'\nimport { flattenBy, 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 // This is the last level, just return the rows\n if (depth === existingGrouping.length) {\n return rows\n }\n\n const columnId = 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 )\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 {\n key: process.env.NODE_ENV === 'development' && 'getGroupedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {\n table._queue(() => {\n table._autoResetExpanded()\n table._autoResetPageIndex()\n })\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.getValue(columnId)}`\n const previous = map.get(resKey)\n if (!previous) {\n map.set(resKey, [row])\n } else {\n map.set(resKey, [...previous, 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","rowGroupsMap","groupBy","aggregatedGroupedRows","Array","from","entries","map","index","groupingValue","groupedRows","id","subRows","leafRows","flattenBy","row","createRow","original","Object","assign","groupingColumnId","getValue","includes","_valuesCache","hasOwnProperty","undefined","_groupingValuesCache","column","aggregateFn","getAggregationFn","forEach","subRow","push","flatRows","rowsById","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange","_queue","_autoResetExpanded","_autoResetPageIndex","groupMap","Map","reduce","resKey","previous","get","set"],"mappings":"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"}
|
package/build/esm/index.js
CHANGED
|
@@ -3561,7 +3561,7 @@ function getGroupedRowModel() {
|
|
|
3561
3561
|
const subRows = groupUpRecursively(groupedRows, depth + 1, id); // Flatten the leaf rows of the rows in this group
|
|
3562
3562
|
|
|
3563
3563
|
const leafRows = depth ? flattenBy(groupedRows, row => row.subRows) : groupedRows;
|
|
3564
|
-
const row = createRow(table, id,
|
|
3564
|
+
const row = createRow(table, id, leafRows[0].original, index, depth);
|
|
3565
3565
|
Object.assign(row, {
|
|
3566
3566
|
groupingColumnId: columnId,
|
|
3567
3567
|
groupingValue,
|