@tanstack/table-core 8.17.3 → 9.0.0-alpha.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.
- package/dist/cjs/aggregationFns.cjs +98 -0
- package/dist/cjs/aggregationFns.cjs.map +1 -0
- package/dist/cjs/aggregationFns.d.cts +14 -0
- package/dist/cjs/columnHelper.cjs +19 -0
- package/dist/cjs/columnHelper.cjs.map +1 -0
- package/dist/cjs/columnHelper.d.cts +9 -0
- package/dist/cjs/core/cell.cjs +38 -0
- package/dist/cjs/core/cell.cjs.map +1 -0
- package/dist/cjs/core/cell.d.cts +50 -0
- package/dist/cjs/core/column.cjs +81 -0
- package/dist/cjs/core/column.cjs.map +1 -0
- package/dist/cjs/core/column.d.cts +56 -0
- package/dist/cjs/core/headers.cjs +310 -0
- package/dist/cjs/core/headers.cjs.map +1 -0
- package/dist/cjs/core/headers.d.cts +195 -0
- package/dist/cjs/core/row.cjs +93 -0
- package/dist/cjs/core/row.cjs.map +1 -0
- package/dist/cjs/core/row.d.cts +92 -0
- package/dist/cjs/core/table.cjs +228 -0
- package/dist/cjs/core/table.cjs.map +1 -0
- package/dist/cjs/core/table.d.cts +221 -0
- package/dist/cjs/features/ColumnFaceting.cjs +29 -0
- package/dist/cjs/features/ColumnFaceting.cjs.map +1 -0
- package/dist/cjs/features/ColumnFaceting.d.cts +35 -0
- package/dist/cjs/features/ColumnFiltering.cjs +137 -0
- package/dist/cjs/features/ColumnFiltering.cjs.map +1 -0
- package/dist/cjs/features/ColumnFiltering.d.cts +195 -0
- package/dist/cjs/features/ColumnGrouping.cjs +134 -0
- package/dist/cjs/features/ColumnGrouping.cjs.map +1 -0
- package/dist/cjs/features/ColumnGrouping.d.cts +202 -0
- package/dist/cjs/features/ColumnOrdering.cjs +76 -0
- package/dist/cjs/features/ColumnOrdering.cjs.map +1 -0
- package/dist/cjs/features/ColumnOrdering.d.cts +54 -0
- package/dist/cjs/features/ColumnPinning.cjs +145 -0
- package/dist/cjs/features/ColumnPinning.cjs.map +1 -0
- package/dist/cjs/features/ColumnPinning.d.cts +127 -0
- package/dist/cjs/features/ColumnSizing.cjs +308 -0
- package/dist/cjs/features/ColumnSizing.cjs.map +1 -0
- package/dist/cjs/features/ColumnSizing.d.cts +194 -0
- package/dist/cjs/features/ColumnVisibility.cjs +144 -0
- package/dist/cjs/features/ColumnVisibility.cjs.map +1 -0
- package/dist/cjs/features/ColumnVisibility.d.cts +130 -0
- package/dist/cjs/features/GlobalFaceting.cjs +29 -0
- package/dist/cjs/features/GlobalFaceting.cjs.map +1 -0
- package/dist/cjs/features/GlobalFaceting.d.cts +27 -0
- package/dist/cjs/features/GlobalFiltering.cjs +50 -0
- package/dist/cjs/features/GlobalFiltering.cjs.map +1 -0
- package/dist/cjs/features/GlobalFiltering.d.cts +80 -0
- package/dist/cjs/features/RowExpanding.cjs +154 -0
- package/dist/cjs/features/RowExpanding.cjs.map +1 -0
- package/dist/cjs/features/RowExpanding.d.cts +155 -0
- package/dist/cjs/features/RowPagination.cjs +162 -0
- package/dist/cjs/features/RowPagination.cjs.map +1 -0
- package/dist/cjs/features/RowPagination.d.cts +166 -0
- package/dist/cjs/features/RowPinning.cjs +133 -0
- package/dist/cjs/features/RowPinning.cjs.map +1 -0
- package/dist/cjs/features/RowPinning.d.cts +99 -0
- package/dist/cjs/features/RowSelection.cjs +298 -0
- package/dist/cjs/features/RowSelection.cjs.map +1 -0
- package/dist/cjs/features/RowSelection.d.cts +177 -0
- package/dist/cjs/features/RowSorting.cjs +201 -0
- package/dist/cjs/features/RowSorting.cjs.map +1 -0
- package/dist/cjs/features/RowSorting.d.cts +238 -0
- package/dist/cjs/filterFns.cjs +88 -0
- package/dist/cjs/filterFns.cjs.map +1 -0
- package/dist/cjs/filterFns.d.cts +14 -0
- package/{build/lib/index.js → dist/cjs/index.cjs} +36 -49
- package/dist/cjs/index.cjs.map +1 -0
- package/dist/cjs/index.d.cts +34 -0
- package/{build/lib/sortingFns.js → dist/cjs/sortingFns.cjs} +23 -52
- package/dist/cjs/sortingFns.cjs.map +1 -0
- package/dist/cjs/sortingFns.d.cts +12 -0
- package/dist/cjs/types.d.cts +120 -0
- package/{build/lib/utils/filterRowsUtils.js → dist/cjs/utils/filterRowsUtils.cjs} +34 -46
- package/dist/cjs/utils/filterRowsUtils.cjs.map +1 -0
- package/dist/cjs/utils/filterRowsUtils.d.cts +3 -0
- package/dist/cjs/utils/getCoreRowModel.cjs +54 -0
- package/dist/cjs/utils/getCoreRowModel.cjs.map +1 -0
- package/dist/cjs/utils/getCoreRowModel.d.cts +3 -0
- package/dist/cjs/utils/getExpandedRowModel.cjs +41 -0
- package/dist/cjs/utils/getExpandedRowModel.cjs.map +1 -0
- package/dist/cjs/utils/getExpandedRowModel.d.cts +8 -0
- package/dist/cjs/utils/getFacetedMinMaxValues.cjs +36 -0
- package/dist/cjs/utils/getFacetedMinMaxValues.cjs.map +1 -0
- package/dist/cjs/utils/getFacetedMinMaxValues.d.cts +3 -0
- package/dist/cjs/utils/getFacetedRowModel.cjs +35 -0
- package/dist/cjs/utils/getFacetedRowModel.cjs.map +1 -0
- package/dist/cjs/utils/getFacetedRowModel.d.cts +3 -0
- package/dist/cjs/utils/getFacetedUniqueValues.cjs +38 -0
- package/dist/cjs/utils/getFacetedUniqueValues.cjs.map +1 -0
- package/dist/cjs/utils/getFacetedUniqueValues.d.cts +3 -0
- package/dist/cjs/utils/getFilteredRowModel.cjs +116 -0
- package/dist/cjs/utils/getFilteredRowModel.cjs.map +1 -0
- package/dist/cjs/utils/getFilteredRowModel.d.cts +3 -0
- package/dist/cjs/utils/getGroupedRowModel.cjs +118 -0
- package/dist/cjs/utils/getGroupedRowModel.cjs.map +1 -0
- package/dist/cjs/utils/getGroupedRowModel.d.cts +3 -0
- package/dist/cjs/utils/getPaginationRowModel.cjs +49 -0
- package/dist/cjs/utils/getPaginationRowModel.cjs.map +1 -0
- package/dist/cjs/utils/getPaginationRowModel.d.cts +5 -0
- package/dist/cjs/utils/getSortedRowModel.cjs +91 -0
- package/dist/cjs/utils/getSortedRowModel.cjs.map +1 -0
- package/dist/cjs/utils/getSortedRowModel.d.cts +3 -0
- package/{build/lib/utils.js → dist/cjs/utils.cjs} +30 -41
- package/dist/cjs/utils.cjs.map +1 -0
- package/dist/cjs/utils.d.cts +39 -0
- package/{build/lib → dist/esm}/aggregationFns.d.ts +2 -1
- package/dist/esm/aggregationFns.js +98 -0
- package/dist/esm/aggregationFns.js.map +1 -0
- package/{build/lib → dist/esm}/columnHelper.d.ts +3 -2
- package/dist/esm/columnHelper.js +19 -0
- package/{build/lib → dist/esm}/columnHelper.js.map +1 -1
- package/{build/lib → dist/esm}/core/cell.d.ts +1 -0
- package/dist/esm/core/cell.js +38 -0
- package/{build/lib → dist/esm}/core/cell.js.map +1 -1
- package/{build/lib → dist/esm}/core/column.d.ts +1 -0
- package/dist/esm/core/column.js +81 -0
- package/{build/lib → dist/esm}/core/column.js.map +1 -1
- package/{build/lib → dist/esm}/core/headers.d.ts +1 -0
- package/dist/esm/core/headers.js +310 -0
- package/{build/lib → dist/esm}/core/headers.js.map +1 -1
- package/{build/lib → dist/esm}/core/row.d.ts +1 -0
- package/dist/esm/core/row.js +93 -0
- package/{build/lib → dist/esm}/core/row.js.map +1 -1
- package/{build/lib → dist/esm}/core/table.d.ts +1 -0
- package/dist/esm/core/table.js +228 -0
- package/{build/lib → dist/esm}/core/table.js.map +1 -1
- package/{build/lib → dist/esm}/features/ColumnFaceting.d.ts +1 -0
- package/{build/lib → dist/esm}/features/ColumnFaceting.js +5 -18
- package/{build/lib → dist/esm}/features/ColumnFaceting.js.map +1 -1
- package/{build/lib → dist/esm}/features/ColumnFiltering.d.ts +1 -0
- package/dist/esm/features/ColumnFiltering.js +137 -0
- package/{build/lib → dist/esm}/features/ColumnFiltering.js.map +1 -1
- package/{build/lib → dist/esm}/features/ColumnGrouping.d.ts +1 -0
- package/dist/esm/features/ColumnGrouping.js +134 -0
- package/{build/lib → dist/esm}/features/ColumnGrouping.js.map +1 -1
- package/{build/lib → dist/esm}/features/ColumnOrdering.d.ts +1 -0
- package/dist/esm/features/ColumnOrdering.js +76 -0
- package/{build/lib → dist/esm}/features/ColumnOrdering.js.map +1 -1
- package/{build/lib → dist/esm}/features/ColumnPinning.d.ts +1 -0
- package/dist/esm/features/ColumnPinning.js +145 -0
- package/{build/lib → dist/esm}/features/ColumnPinning.js.map +1 -1
- package/{build/lib → dist/esm}/features/ColumnSizing.d.ts +2 -1
- package/dist/esm/features/ColumnSizing.js +308 -0
- package/{build/lib → dist/esm}/features/ColumnSizing.js.map +1 -1
- package/{build/lib → dist/esm}/features/ColumnVisibility.d.ts +1 -0
- package/dist/esm/features/ColumnVisibility.js +144 -0
- package/{build/lib → dist/esm}/features/ColumnVisibility.js.map +1 -1
- package/{build/lib → dist/esm}/features/GlobalFaceting.d.ts +1 -0
- package/{build/lib → dist/esm}/features/GlobalFaceting.js +8 -21
- package/{build/lib → dist/esm}/features/GlobalFaceting.js.map +1 -1
- package/{build/lib → dist/esm}/features/GlobalFiltering.d.ts +1 -0
- package/dist/esm/features/GlobalFiltering.js +50 -0
- package/{build/lib → dist/esm}/features/GlobalFiltering.js.map +1 -1
- package/{build/lib → dist/esm}/features/RowExpanding.d.ts +1 -0
- package/{build/lib → dist/esm}/features/RowExpanding.js +40 -59
- package/{build/lib → dist/esm}/features/RowExpanding.js.map +1 -1
- package/{build/lib → dist/esm}/features/RowPagination.d.ts +1 -0
- package/dist/esm/features/RowPagination.js +162 -0
- package/{build/lib → dist/esm}/features/RowPagination.js.map +1 -1
- package/{build/lib → dist/esm}/features/RowPinning.d.ts +1 -0
- package/dist/esm/features/RowPinning.js +133 -0
- package/{build/lib → dist/esm}/features/RowPinning.js.map +1 -1
- package/{build/lib → dist/esm}/features/RowSelection.d.ts +1 -0
- package/dist/esm/features/RowSelection.js +298 -0
- package/{build/lib → dist/esm}/features/RowSelection.js.map +1 -1
- package/{build/lib → dist/esm}/features/RowSorting.d.ts +1 -0
- package/dist/esm/features/RowSorting.js +201 -0
- package/{build/lib → dist/esm}/features/RowSorting.js.map +1 -1
- package/{build/lib → dist/esm}/filterFns.d.ts +2 -1
- package/dist/esm/filterFns.js +88 -0
- package/dist/esm/filterFns.js.map +1 -0
- package/dist/esm/index.d.ts +34 -0
- package/dist/esm/index.js +87 -0
- package/dist/esm/index.js.map +1 -0
- package/{build/lib → dist/esm}/sortingFns.d.ts +2 -1
- package/dist/esm/sortingFns.js +91 -0
- package/dist/esm/sortingFns.js.map +1 -0
- package/{build/lib → dist/esm}/types.d.ts +21 -20
- package/{build/lib → dist/esm}/utils/filterRowsUtils.d.ts +1 -0
- package/dist/esm/utils/filterRowsUtils.js +99 -0
- package/dist/esm/utils/filterRowsUtils.js.map +1 -0
- package/{build/lib → dist/esm}/utils/getCoreRowModel.d.ts +1 -0
- package/dist/esm/utils/getCoreRowModel.js +54 -0
- package/{build/lib → dist/esm}/utils/getCoreRowModel.js.map +1 -1
- package/{build/lib → dist/esm}/utils/getExpandedRowModel.d.ts +1 -0
- package/dist/esm/utils/getExpandedRowModel.js +41 -0
- package/dist/esm/utils/getExpandedRowModel.js.map +1 -0
- package/{build/lib → dist/esm}/utils/getFacetedMinMaxValues.d.ts +1 -0
- package/dist/esm/utils/getFacetedMinMaxValues.js +36 -0
- package/dist/esm/utils/getFacetedMinMaxValues.js.map +1 -0
- package/{build/lib → dist/esm}/utils/getFacetedRowModel.d.ts +1 -0
- package/dist/esm/utils/getFacetedRowModel.js +35 -0
- package/{build/lib → dist/esm}/utils/getFacetedRowModel.js.map +1 -1
- package/{build/lib → dist/esm}/utils/getFacetedUniqueValues.d.ts +1 -0
- package/dist/esm/utils/getFacetedUniqueValues.js +38 -0
- package/dist/esm/utils/getFacetedUniqueValues.js.map +1 -0
- package/{build/lib → dist/esm}/utils/getFilteredRowModel.d.ts +1 -0
- package/dist/esm/utils/getFilteredRowModel.js +116 -0
- package/{build/lib → dist/esm}/utils/getFilteredRowModel.js.map +1 -1
- package/{build/lib → dist/esm}/utils/getGroupedRowModel.d.ts +1 -0
- package/dist/esm/utils/getGroupedRowModel.js +118 -0
- package/{build/lib → dist/esm}/utils/getGroupedRowModel.js.map +1 -1
- package/{build/lib → dist/esm}/utils/getPaginationRowModel.d.ts +1 -0
- package/dist/esm/utils/getPaginationRowModel.js +49 -0
- package/dist/esm/utils/getPaginationRowModel.js.map +1 -0
- package/{build/lib → dist/esm}/utils/getSortedRowModel.d.ts +1 -0
- package/dist/esm/utils/getSortedRowModel.js +91 -0
- package/{build/lib → dist/esm}/utils/getSortedRowModel.js.map +1 -1
- package/{build/lib → dist/esm}/utils.d.ts +2 -1
- package/dist/esm/utils.js +100 -0
- package/{build/lib → dist/esm}/utils.js.map +1 -1
- package/package.json +15 -19
- package/build/lib/aggregationFns.js +0 -108
- package/build/lib/aggregationFns.js.map +0 -1
- package/build/lib/columnHelper.js +0 -71
- package/build/lib/core/cell.js +0 -42
- package/build/lib/core/column.js +0 -80
- package/build/lib/core/headers.js +0 -270
- package/build/lib/core/row.js +0 -89
- package/build/lib/core/table.js +0 -212
- package/build/lib/features/ColumnFiltering.js +0 -151
- package/build/lib/features/ColumnGrouping.js +0 -142
- package/build/lib/features/ColumnOrdering.js +0 -84
- package/build/lib/features/ColumnPinning.js +0 -130
- package/build/lib/features/ColumnSizing.js +0 -270
- package/build/lib/features/ColumnVisibility.js +0 -99
- package/build/lib/features/GlobalFiltering.js +0 -63
- package/build/lib/features/RowPagination.js +0 -169
- package/build/lib/features/RowPinning.js +0 -145
- package/build/lib/features/RowSelection.js +0 -391
- package/build/lib/features/RowSorting.js +0 -226
- package/build/lib/filterFns.js +0 -96
- package/build/lib/filterFns.js.map +0 -1
- package/build/lib/index.d.ts +0 -34
- package/build/lib/index.esm.js +0 -3522
- package/build/lib/index.esm.js.map +0 -1
- package/build/lib/index.js.map +0 -1
- package/build/lib/index.mjs +0 -3522
- package/build/lib/index.mjs.map +0 -1
- package/build/lib/sortingFns.js.map +0 -1
- package/build/lib/utils/filterRowsUtils.js.map +0 -1
- package/build/lib/utils/getCoreRowModel.js +0 -65
- package/build/lib/utils/getExpandedRowModel.js +0 -46
- package/build/lib/utils/getExpandedRowModel.js.map +0 -1
- package/build/lib/utils/getFacetedMinMaxValues.js +0 -43
- package/build/lib/utils/getFacetedMinMaxValues.js.map +0 -1
- package/build/lib/utils/getFacetedRowModel.js +0 -36
- package/build/lib/utils/getFacetedUniqueValues.js +0 -39
- package/build/lib/utils/getFacetedUniqueValues.js.map +0 -1
- package/build/lib/utils/getFilteredRowModel.js +0 -111
- package/build/lib/utils/getGroupedRowModel.js +0 -150
- package/build/lib/utils/getPaginationRowModel.js +0 -60
- package/build/lib/utils/getPaginationRowModel.js.map +0 -1
- package/build/lib/utils/getSortedRowModel.js +0 -102
- package/build/umd/index.development.js +0 -3578
- package/build/umd/index.development.js.map +0 -1
- package/build/umd/index.production.js +0 -12
- package/build/umd/index.production.js.map +0 -1
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const utils = require("../utils.cjs");
|
|
4
|
+
function getExpandedRowModel() {
|
|
5
|
+
return (table) => utils.memo(
|
|
6
|
+
() => [
|
|
7
|
+
table.getState().expanded,
|
|
8
|
+
table.getPreExpandedRowModel(),
|
|
9
|
+
table.options.paginateExpandedRows
|
|
10
|
+
],
|
|
11
|
+
(expanded, rowModel, paginateExpandedRows) => {
|
|
12
|
+
if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded ?? {}).length) {
|
|
13
|
+
return rowModel;
|
|
14
|
+
}
|
|
15
|
+
if (!paginateExpandedRows) {
|
|
16
|
+
return rowModel;
|
|
17
|
+
}
|
|
18
|
+
return expandRows(rowModel);
|
|
19
|
+
},
|
|
20
|
+
utils.getMemoOptions(table.options, "debugTable", "getExpandedRowModel")
|
|
21
|
+
);
|
|
22
|
+
}
|
|
23
|
+
function expandRows(rowModel) {
|
|
24
|
+
const expandedRows = [];
|
|
25
|
+
const handleRow = (row) => {
|
|
26
|
+
var _a;
|
|
27
|
+
expandedRows.push(row);
|
|
28
|
+
if (((_a = row.subRows) == null ? void 0 : _a.length) && row.getIsExpanded()) {
|
|
29
|
+
row.subRows.forEach(handleRow);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
rowModel.rows.forEach(handleRow);
|
|
33
|
+
return {
|
|
34
|
+
rows: expandedRows,
|
|
35
|
+
flatRows: rowModel.flatRows,
|
|
36
|
+
rowsById: rowModel.rowsById
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
exports.expandRows = expandRows;
|
|
40
|
+
exports.getExpandedRowModel = getExpandedRowModel;
|
|
41
|
+
//# sourceMappingURL=getExpandedRowModel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getExpandedRowModel.cjs","sources":["../../../src/utils/getExpandedRowModel.ts"],"sourcesContent":["import { Table, Row, RowModel, RowData } from '../types'\nimport { getMemoOptions, memo } from '../utils'\n\nexport function getExpandedRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [\n table.getState().expanded,\n table.getPreExpandedRowModel(),\n table.options.paginateExpandedRows,\n ],\n (expanded, rowModel, paginateExpandedRows) => {\n if (\n !rowModel.rows.length ||\n (expanded !== true && !Object.keys(expanded ?? {}).length)\n ) {\n return rowModel\n }\n\n if (!paginateExpandedRows) {\n // Only expand rows at this point if they are being paginated\n return rowModel\n }\n\n return expandRows(rowModel)\n },\n getMemoOptions(table.options, 'debugTable', 'getExpandedRowModel')\n )\n}\n\nexport function expandRows<TData extends RowData>(rowModel: RowModel<TData>) {\n const expandedRows: Row<TData>[] = []\n\n const handleRow = (row: Row<TData>) => {\n expandedRows.push(row)\n\n if (row.subRows?.length && row.getIsExpanded()) {\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":["memo","getMemoOptions"],"mappings":";;;AAGO,SAAS,sBAEW;AACzB,SAAO,CACL,UAAAA,MAAA;AAAA,IACE,MAAM;AAAA,MACJ,MAAM,WAAW;AAAA,MACjB,MAAM,uBAAuB;AAAA,MAC7B,MAAM,QAAQ;AAAA,IAChB;AAAA,IACA,CAAC,UAAU,UAAU,yBAAyB;AAC5C,UACE,CAAC,SAAS,KAAK,UACd,aAAa,QAAQ,CAAC,OAAO,KAAK,YAAY,CAAE,CAAA,EAAE,QACnD;AACO,eAAA;AAAA,MACT;AAEA,UAAI,CAAC,sBAAsB;AAElB,eAAA;AAAA,MACT;AAEA,aAAO,WAAW,QAAQ;AAAA,IAC5B;AAAA,IACAC,MAAAA,eAAe,MAAM,SAAS,cAAc,qBAAqB;AAAA,EAAA;AAEvE;AAEO,SAAS,WAAkC,UAA2B;AAC3E,QAAM,eAA6B,CAAA;AAE7B,QAAA,YAAY,CAAC,QAAoB;;AACrC,iBAAa,KAAK,GAAG;AAErB,UAAI,SAAI,YAAJ,mBAAa,WAAU,IAAI,iBAAiB;AAC1C,UAAA,QAAQ,QAAQ,SAAS;AAAA,IAC/B;AAAA,EAAA;AAGO,WAAA,KAAK,QAAQ,SAAS;AAExB,SAAA;AAAA,IACL,MAAM;AAAA,IACN,UAAU,SAAS;AAAA,IACnB,UAAU,SAAS;AAAA,EAAA;AAEvB;;;"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { Table, Row, RowModel, RowData } from '../types';
|
|
2
|
+
|
|
3
|
+
export declare function getExpandedRowModel<TData extends RowData>(): (table: Table<TData>) => () => RowModel<TData>;
|
|
4
|
+
export declare function expandRows<TData extends RowData>(rowModel: RowModel<TData>): {
|
|
5
|
+
rows: Row<TData>[];
|
|
6
|
+
flatRows: Row<TData>[];
|
|
7
|
+
rowsById: Record<string, Row<TData>>;
|
|
8
|
+
};
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const utils = require("../utils.cjs");
|
|
4
|
+
function getFacetedMinMaxValues() {
|
|
5
|
+
return (table, columnId) => utils.memo(
|
|
6
|
+
() => {
|
|
7
|
+
var _a;
|
|
8
|
+
return [(_a = table.getColumn(columnId)) == null ? void 0 : _a.getFacetedRowModel()];
|
|
9
|
+
},
|
|
10
|
+
(facetedRowModel) => {
|
|
11
|
+
var _a;
|
|
12
|
+
if (!facetedRowModel)
|
|
13
|
+
return void 0;
|
|
14
|
+
const firstValue = (_a = facetedRowModel.flatRows[0]) == null ? void 0 : _a.getUniqueValues(columnId);
|
|
15
|
+
if (typeof firstValue === "undefined") {
|
|
16
|
+
return void 0;
|
|
17
|
+
}
|
|
18
|
+
let facetedMinMaxValues = [firstValue, firstValue];
|
|
19
|
+
for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
|
|
20
|
+
const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);
|
|
21
|
+
for (let j = 0; j < values.length; j++) {
|
|
22
|
+
const value = values[j];
|
|
23
|
+
if (value < facetedMinMaxValues[0]) {
|
|
24
|
+
facetedMinMaxValues[0] = value;
|
|
25
|
+
} else if (value > facetedMinMaxValues[1]) {
|
|
26
|
+
facetedMinMaxValues[1] = value;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
return facetedMinMaxValues;
|
|
31
|
+
},
|
|
32
|
+
utils.getMemoOptions(table.options, "debugTable", "getFacetedMinMaxValues")
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
exports.getFacetedMinMaxValues = getFacetedMinMaxValues;
|
|
36
|
+
//# sourceMappingURL=getFacetedMinMaxValues.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFacetedMinMaxValues.cjs","sources":["../../../src/utils/getFacetedMinMaxValues.ts"],"sourcesContent":["import { Table, RowData } from '../types'\nimport { getMemoOptions, memo } from '../utils'\n\nexport function getFacetedMinMaxValues<TData extends RowData>(): (\n table: Table<TData>,\n columnId: string\n) => () => undefined | [number, number] {\n return (table, columnId) =>\n memo(\n () => [table.getColumn(columnId)?.getFacetedRowModel()],\n facetedRowModel => {\n if (!facetedRowModel) return undefined\n\n const firstValue =\n facetedRowModel.flatRows[0]?.getUniqueValues(columnId)\n\n if (typeof firstValue === 'undefined') {\n return undefined\n }\n\n let facetedMinMaxValues: [any, any] = [firstValue, firstValue]\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values =\n facetedRowModel.flatRows[i]!.getUniqueValues<number>(columnId)\n\n for (let j = 0; j < values.length; j++) {\n const value = values[j]!\n\n if (value < facetedMinMaxValues[0]) {\n facetedMinMaxValues[0] = value\n } else if (value > facetedMinMaxValues[1]) {\n facetedMinMaxValues[1] = value\n }\n }\n }\n\n return facetedMinMaxValues\n },\n getMemoOptions(table.options, 'debugTable', 'getFacetedMinMaxValues')\n )\n}\n"],"names":["memo","getMemoOptions"],"mappings":";;;AAGO,SAAS,yBAGwB;AAC/B,SAAA,CAAC,OAAO,aACbA,MAAA;AAAA,IACE,MAAA;;AAAM,eAAC,WAAM,UAAU,QAAQ,MAAxB,mBAA2B,oBAAoB;AAAA;AAAA,IACtD,CAAmB,oBAAA;;AACjB,UAAI,CAAC;AAAwB,eAAA;AAE7B,YAAM,cACJ,qBAAgB,SAAS,CAAC,MAA1B,mBAA6B,gBAAgB;AAE3C,UAAA,OAAO,eAAe,aAAa;AAC9B,eAAA;AAAA,MACT;AAEI,UAAA,sBAAkC,CAAC,YAAY,UAAU;AAE7D,eAAS,IAAI,GAAG,IAAI,gBAAgB,SAAS,QAAQ,KAAK;AACxD,cAAM,SACJ,gBAAgB,SAAS,CAAC,EAAG,gBAAwB,QAAQ;AAE/D,iBAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AAChC,gBAAA,QAAQ,OAAO,CAAC;AAElB,cAAA,QAAQ,oBAAoB,CAAC,GAAG;AAClC,gCAAoB,CAAC,IAAI;AAAA,UAChB,WAAA,QAAQ,oBAAoB,CAAC,GAAG;AACzC,gCAAoB,CAAC,IAAI;AAAA,UAC3B;AAAA,QACF;AAAA,MACF;AAEO,aAAA;AAAA,IACT;AAAA,IACAC,MAAAA,eAAe,MAAM,SAAS,cAAc,wBAAwB;AAAA,EAAA;AAE1E;;"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const utils = require("../utils.cjs");
|
|
4
|
+
const filterRowsUtils = require("./filterRowsUtils.cjs");
|
|
5
|
+
function getFacetedRowModel() {
|
|
6
|
+
return (table, columnId) => utils.memo(
|
|
7
|
+
() => [
|
|
8
|
+
table.getPreFilteredRowModel(),
|
|
9
|
+
table.getState().columnFilters,
|
|
10
|
+
table.getState().globalFilter,
|
|
11
|
+
table.getFilteredRowModel()
|
|
12
|
+
],
|
|
13
|
+
(preRowModel, columnFilters, globalFilter) => {
|
|
14
|
+
if (!preRowModel.rows.length || !(columnFilters == null ? void 0 : columnFilters.length) && !globalFilter) {
|
|
15
|
+
return preRowModel;
|
|
16
|
+
}
|
|
17
|
+
const filterableIds = [
|
|
18
|
+
...columnFilters.map((d) => d.id).filter((d) => d !== columnId),
|
|
19
|
+
globalFilter ? "__global__" : void 0
|
|
20
|
+
].filter(Boolean);
|
|
21
|
+
const filterRowsImpl = (row) => {
|
|
22
|
+
for (let i = 0; i < filterableIds.length; i++) {
|
|
23
|
+
if (row.columnFilters[filterableIds[i]] === false) {
|
|
24
|
+
return false;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
return true;
|
|
28
|
+
};
|
|
29
|
+
return filterRowsUtils.filterRows(preRowModel.rows, filterRowsImpl, table);
|
|
30
|
+
},
|
|
31
|
+
utils.getMemoOptions(table.options, "debugTable", "getFacetedRowModel")
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
exports.getFacetedRowModel = getFacetedRowModel;
|
|
35
|
+
//# sourceMappingURL=getFacetedRowModel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFacetedRowModel.cjs","sources":["../../../src/utils/getFacetedRowModel.ts"],"sourcesContent":["import { Table, RowModel, Row, RowData } from '../types'\nimport { getMemoOptions, memo } from '../utils'\nimport { filterRows } from './filterRowsUtils'\n\nexport function getFacetedRowModel<TData extends RowData>(): (\n table: Table<TData>,\n columnId: string\n) => () => RowModel<TData> {\n return (table, columnId) =>\n memo(\n () => [\n table.getPreFilteredRowModel(),\n table.getState().columnFilters,\n table.getState().globalFilter,\n table.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<TData>) => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]!] === false) {\n return false\n }\n }\n return true\n }\n\n return filterRows(preRowModel.rows, filterRowsImpl, table)\n },\n getMemoOptions(table.options, 'debugTable', 'getFacetedRowModel')\n )\n}\n"],"names":["memo","filterRows","getMemoOptions"],"mappings":";;;;AAIO,SAAS,qBAGW;AAClB,SAAA,CAAC,OAAO,aACbA,MAAA;AAAA,IACE,MAAM;AAAA,MACJ,MAAM,uBAAuB;AAAA,MAC7B,MAAM,WAAW;AAAA,MACjB,MAAM,WAAW;AAAA,MACjB,MAAM,oBAAoB;AAAA,IAC5B;AAAA,IACA,CAAC,aAAa,eAAe,iBAAiB;AAE1C,UAAA,CAAC,YAAY,KAAK,UACjB,EAAC,+CAAe,WAAU,CAAC,cAC5B;AACO,eAAA;AAAA,MACT;AAEA,YAAM,gBAAgB;AAAA,QACpB,GAAG,cAAc,IAAI,CAAK,MAAA,EAAE,EAAE,EAAE,OAAO,CAAK,MAAA,MAAM,QAAQ;AAAA,QAC1D,eAAe,eAAe;AAAA,MAAA,EAC9B,OAAO,OAAO;AAEV,YAAA,iBAAiB,CAAC,QAAoB;AAE1C,iBAAS,IAAI,GAAG,IAAI,cAAc,QAAQ,KAAK;AAC7C,cAAI,IAAI,cAAc,cAAc,CAAC,CAAE,MAAM,OAAO;AAC3C,mBAAA;AAAA,UACT;AAAA,QACF;AACO,eAAA;AAAA,MAAA;AAGT,aAAOC,gBAAW,WAAA,YAAY,MAAM,gBAAgB,KAAK;AAAA,IAC3D;AAAA,IACAC,MAAAA,eAAe,MAAM,SAAS,cAAc,oBAAoB;AAAA,EAAA;AAEtE;;"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const utils = require("../utils.cjs");
|
|
4
|
+
function getFacetedUniqueValues() {
|
|
5
|
+
return (table, columnId) => utils.memo(
|
|
6
|
+
() => {
|
|
7
|
+
var _a;
|
|
8
|
+
return [(_a = table.getColumn(columnId)) == null ? void 0 : _a.getFacetedRowModel()];
|
|
9
|
+
},
|
|
10
|
+
(facetedRowModel) => {
|
|
11
|
+
if (!facetedRowModel)
|
|
12
|
+
return /* @__PURE__ */ new Map();
|
|
13
|
+
let facetedUniqueValues = /* @__PURE__ */ new Map();
|
|
14
|
+
for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
|
|
15
|
+
const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);
|
|
16
|
+
for (let j = 0; j < values.length; j++) {
|
|
17
|
+
const value = values[j];
|
|
18
|
+
if (facetedUniqueValues.has(value)) {
|
|
19
|
+
facetedUniqueValues.set(
|
|
20
|
+
value,
|
|
21
|
+
(facetedUniqueValues.get(value) ?? 0) + 1
|
|
22
|
+
);
|
|
23
|
+
} else {
|
|
24
|
+
facetedUniqueValues.set(value, 1);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return facetedUniqueValues;
|
|
29
|
+
},
|
|
30
|
+
utils.getMemoOptions(
|
|
31
|
+
table.options,
|
|
32
|
+
"debugTable",
|
|
33
|
+
`getFacetedUniqueValues_${columnId}`
|
|
34
|
+
)
|
|
35
|
+
);
|
|
36
|
+
}
|
|
37
|
+
exports.getFacetedUniqueValues = getFacetedUniqueValues;
|
|
38
|
+
//# sourceMappingURL=getFacetedUniqueValues.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFacetedUniqueValues.cjs","sources":["../../../src/utils/getFacetedUniqueValues.ts"],"sourcesContent":["import { Table, RowData } from '../types'\nimport { getMemoOptions, memo } from '../utils'\n\nexport function getFacetedUniqueValues<TData extends RowData>(): (\n table: Table<TData>,\n columnId: string\n) => () => Map<any, number> {\n return (table, columnId) =>\n memo(\n () => [table.getColumn(columnId)?.getFacetedRowModel()],\n facetedRowModel => {\n if (!facetedRowModel) return new Map()\n\n let facetedUniqueValues = new Map<any, number>()\n\n for (let i = 0; i < facetedRowModel.flatRows.length; i++) {\n const values =\n facetedRowModel.flatRows[i]!.getUniqueValues<number>(columnId)\n\n for (let j = 0; j < values.length; j++) {\n const value = values[j]!\n\n if (facetedUniqueValues.has(value)) {\n facetedUniqueValues.set(\n value,\n (facetedUniqueValues.get(value) ?? 0) + 1\n )\n } else {\n facetedUniqueValues.set(value, 1)\n }\n }\n }\n\n return facetedUniqueValues\n },\n getMemoOptions(\n table.options,\n 'debugTable',\n `getFacetedUniqueValues_${columnId}`\n )\n )\n}\n"],"names":["memo","getMemoOptions"],"mappings":";;;AAGO,SAAS,yBAGY;AACnB,SAAA,CAAC,OAAO,aACbA,MAAA;AAAA,IACE,MAAA;;AAAM,eAAC,WAAM,UAAU,QAAQ,MAAxB,mBAA2B,oBAAoB;AAAA;AAAA,IACtD,CAAmB,oBAAA;AACjB,UAAI,CAAC;AAAiB,mCAAW,IAAI;AAEjC,UAAA,0CAA0B;AAE9B,eAAS,IAAI,GAAG,IAAI,gBAAgB,SAAS,QAAQ,KAAK;AACxD,cAAM,SACJ,gBAAgB,SAAS,CAAC,EAAG,gBAAwB,QAAQ;AAE/D,iBAAS,IAAI,GAAG,IAAI,OAAO,QAAQ,KAAK;AAChC,gBAAA,QAAQ,OAAO,CAAC;AAElB,cAAA,oBAAoB,IAAI,KAAK,GAAG;AACd,gCAAA;AAAA,cAClB;AAAA,eACC,oBAAoB,IAAI,KAAK,KAAK,KAAK;AAAA,YAAA;AAAA,UAC1C,OACK;AACe,gCAAA,IAAI,OAAO,CAAC;AAAA,UAClC;AAAA,QACF;AAAA,MACF;AAEO,aAAA;AAAA,IACT;AAAA,IACAC,MAAA;AAAA,MACE,MAAM;AAAA,MACN;AAAA,MACA,0BAA0B,QAAQ;AAAA,IACpC;AAAA,EAAA;AAEN;;"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const utils = require("../utils.cjs");
|
|
4
|
+
const filterRowsUtils = require("./filterRowsUtils.cjs");
|
|
5
|
+
function getFilteredRowModel() {
|
|
6
|
+
return (table) => utils.memo(
|
|
7
|
+
() => [
|
|
8
|
+
table.getPreFilteredRowModel(),
|
|
9
|
+
table.getState().columnFilters,
|
|
10
|
+
table.getState().globalFilter
|
|
11
|
+
],
|
|
12
|
+
(rowModel, columnFilters, globalFilter) => {
|
|
13
|
+
if (!rowModel.rows.length || !(columnFilters == null ? void 0 : columnFilters.length) && !globalFilter) {
|
|
14
|
+
for (let i = 0; i < rowModel.flatRows.length; i++) {
|
|
15
|
+
rowModel.flatRows[i].columnFilters = {};
|
|
16
|
+
rowModel.flatRows[i].columnFiltersMeta = {};
|
|
17
|
+
}
|
|
18
|
+
return rowModel;
|
|
19
|
+
}
|
|
20
|
+
const resolvedColumnFilters = [];
|
|
21
|
+
const resolvedGlobalFilters = [];
|
|
22
|
+
(columnFilters ?? []).forEach((d) => {
|
|
23
|
+
var _a;
|
|
24
|
+
const column = table.getColumn(d.id);
|
|
25
|
+
if (!column) {
|
|
26
|
+
return;
|
|
27
|
+
}
|
|
28
|
+
const filterFn = column.getFilterFn();
|
|
29
|
+
if (!filterFn) {
|
|
30
|
+
if (process.env.NODE_ENV !== "production") {
|
|
31
|
+
console.warn(
|
|
32
|
+
`Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`
|
|
33
|
+
);
|
|
34
|
+
}
|
|
35
|
+
return;
|
|
36
|
+
}
|
|
37
|
+
resolvedColumnFilters.push({
|
|
38
|
+
id: d.id,
|
|
39
|
+
filterFn,
|
|
40
|
+
resolvedValue: ((_a = filterFn.resolveFilterValue) == null ? void 0 : _a.call(filterFn, d.value)) ?? d.value
|
|
41
|
+
});
|
|
42
|
+
});
|
|
43
|
+
const filterableIds = (columnFilters ?? []).map((d) => d.id);
|
|
44
|
+
const globalFilterFn = table.getGlobalFilterFn();
|
|
45
|
+
const globallyFilterableColumns = table.getAllLeafColumns().filter((column) => column.getCanGlobalFilter());
|
|
46
|
+
if (globalFilter && globalFilterFn && globallyFilterableColumns.length) {
|
|
47
|
+
filterableIds.push("__global__");
|
|
48
|
+
globallyFilterableColumns.forEach((column) => {
|
|
49
|
+
var _a;
|
|
50
|
+
resolvedGlobalFilters.push({
|
|
51
|
+
id: column.id,
|
|
52
|
+
filterFn: globalFilterFn,
|
|
53
|
+
resolvedValue: ((_a = globalFilterFn.resolveFilterValue) == null ? void 0 : _a.call(globalFilterFn, globalFilter)) ?? globalFilter
|
|
54
|
+
});
|
|
55
|
+
});
|
|
56
|
+
}
|
|
57
|
+
let currentColumnFilter;
|
|
58
|
+
let currentGlobalFilter;
|
|
59
|
+
for (let j = 0; j < rowModel.flatRows.length; j++) {
|
|
60
|
+
const row = rowModel.flatRows[j];
|
|
61
|
+
row.columnFilters = {};
|
|
62
|
+
if (resolvedColumnFilters.length) {
|
|
63
|
+
for (let i = 0; i < resolvedColumnFilters.length; i++) {
|
|
64
|
+
currentColumnFilter = resolvedColumnFilters[i];
|
|
65
|
+
const id = currentColumnFilter.id;
|
|
66
|
+
row.columnFilters[id] = currentColumnFilter.filterFn(
|
|
67
|
+
row,
|
|
68
|
+
id,
|
|
69
|
+
currentColumnFilter.resolvedValue,
|
|
70
|
+
(filterMeta) => {
|
|
71
|
+
row.columnFiltersMeta[id] = filterMeta;
|
|
72
|
+
}
|
|
73
|
+
);
|
|
74
|
+
}
|
|
75
|
+
}
|
|
76
|
+
if (resolvedGlobalFilters.length) {
|
|
77
|
+
for (let i = 0; i < resolvedGlobalFilters.length; i++) {
|
|
78
|
+
currentGlobalFilter = resolvedGlobalFilters[i];
|
|
79
|
+
const id = currentGlobalFilter.id;
|
|
80
|
+
if (currentGlobalFilter.filterFn(
|
|
81
|
+
row,
|
|
82
|
+
id,
|
|
83
|
+
currentGlobalFilter.resolvedValue,
|
|
84
|
+
(filterMeta) => {
|
|
85
|
+
row.columnFiltersMeta[id] = filterMeta;
|
|
86
|
+
}
|
|
87
|
+
)) {
|
|
88
|
+
row.columnFilters.__global__ = true;
|
|
89
|
+
break;
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
if (row.columnFilters.__global__ !== true) {
|
|
93
|
+
row.columnFilters.__global__ = false;
|
|
94
|
+
}
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
const filterRowsImpl = (row) => {
|
|
98
|
+
for (let i = 0; i < filterableIds.length; i++) {
|
|
99
|
+
if (row.columnFilters[filterableIds[i]] === false) {
|
|
100
|
+
return false;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
return true;
|
|
104
|
+
};
|
|
105
|
+
return filterRowsUtils.filterRows(rowModel.rows, filterRowsImpl, table);
|
|
106
|
+
},
|
|
107
|
+
utils.getMemoOptions(
|
|
108
|
+
table.options,
|
|
109
|
+
"debugTable",
|
|
110
|
+
"getFilteredRowModel",
|
|
111
|
+
() => table._autoResetPageIndex()
|
|
112
|
+
)
|
|
113
|
+
);
|
|
114
|
+
}
|
|
115
|
+
exports.getFilteredRowModel = getFilteredRowModel;
|
|
116
|
+
//# sourceMappingURL=getFilteredRowModel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFilteredRowModel.cjs","sources":["../../../src/utils/getFilteredRowModel.ts"],"sourcesContent":["import { ResolvedColumnFilter } from '../features/ColumnFiltering'\nimport { Table, RowModel, Row, RowData } from '../types'\nimport { getMemoOptions, memo } from '../utils'\nimport { filterRows } from './filterRowsUtils'\n\nexport function getFilteredRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [\n table.getPreFilteredRowModel(),\n table.getState().columnFilters,\n table.getState().globalFilter,\n ],\n (rowModel, columnFilters, globalFilter) => {\n if (\n !rowModel.rows.length ||\n (!columnFilters?.length && !globalFilter)\n ) {\n for (let i = 0; i < rowModel.flatRows.length; i++) {\n rowModel.flatRows[i]!.columnFilters = {}\n rowModel.flatRows[i]!.columnFiltersMeta = {}\n }\n return rowModel\n }\n\n const resolvedColumnFilters: ResolvedColumnFilter<TData>[] = []\n const resolvedGlobalFilters: ResolvedColumnFilter<TData>[] = []\n\n ;(columnFilters ?? []).forEach(d => {\n const column = table.getColumn(d.id)\n\n if (!column) {\n return\n }\n\n const filterFn = column.getFilterFn()\n\n if (!filterFn) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n `Could not find a valid 'column.filterFn' for column with the ID: ${column.id}.`\n )\n }\n return\n }\n\n resolvedColumnFilters.push({\n id: d.id,\n filterFn,\n resolvedValue: filterFn.resolveFilterValue?.(d.value) ?? d.value,\n })\n })\n\n const filterableIds = (columnFilters ?? []).map(d => d.id)\n\n const globalFilterFn = table.getGlobalFilterFn()\n\n const globallyFilterableColumns = table\n .getAllLeafColumns()\n .filter(column => column.getCanGlobalFilter())\n\n if (\n globalFilter &&\n globalFilterFn &&\n globallyFilterableColumns.length\n ) {\n filterableIds.push('__global__')\n\n globallyFilterableColumns.forEach(column => {\n resolvedGlobalFilters.push({\n id: column.id,\n filterFn: globalFilterFn,\n resolvedValue:\n globalFilterFn.resolveFilterValue?.(globalFilter) ??\n globalFilter,\n })\n })\n }\n\n let currentColumnFilter\n let currentGlobalFilter\n\n // Flag the prefiltered row model with each filter state\n for (let j = 0; j < rowModel.flatRows.length; j++) {\n const row = rowModel.flatRows[j]!\n\n row.columnFilters = {}\n\n if (resolvedColumnFilters.length) {\n for (let i = 0; i < resolvedColumnFilters.length; i++) {\n currentColumnFilter = resolvedColumnFilters[i]!\n const id = currentColumnFilter.id\n\n // Tag the row with the column filter state\n row.columnFilters[id] = currentColumnFilter.filterFn(\n row,\n id,\n currentColumnFilter.resolvedValue,\n filterMeta => {\n row.columnFiltersMeta[id] = filterMeta\n }\n )\n }\n }\n\n if (resolvedGlobalFilters.length) {\n for (let i = 0; i < resolvedGlobalFilters.length; i++) {\n currentGlobalFilter = resolvedGlobalFilters[i]!\n const id = currentGlobalFilter.id\n // Tag the row with the first truthy global filter state\n if (\n currentGlobalFilter.filterFn(\n row,\n id,\n currentGlobalFilter.resolvedValue,\n filterMeta => {\n row.columnFiltersMeta[id] = filterMeta\n }\n )\n ) {\n row.columnFilters.__global__ = true\n break\n }\n }\n\n if (row.columnFilters.__global__ !== true) {\n row.columnFilters.__global__ = false\n }\n }\n }\n\n const filterRowsImpl = (row: Row<TData>) => {\n // Horizontally filter rows through each column\n for (let i = 0; i < filterableIds.length; i++) {\n if (row.columnFilters[filterableIds[i]!] === false) {\n return false\n }\n }\n return true\n }\n\n // Filter final rows using all of the active filters\n return filterRows(rowModel.rows, filterRowsImpl, table)\n },\n getMemoOptions(table.options, 'debugTable', 'getFilteredRowModel', () =>\n table._autoResetPageIndex()\n )\n )\n}\n"],"names":["memo","filterRows","getMemoOptions"],"mappings":"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"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const row = require("../core/row.cjs");
|
|
4
|
+
const utils = require("../utils.cjs");
|
|
5
|
+
function getGroupedRowModel() {
|
|
6
|
+
return (table) => utils.memo(
|
|
7
|
+
() => [table.getState().grouping, table.getPreGroupedRowModel()],
|
|
8
|
+
(grouping, rowModel) => {
|
|
9
|
+
if (!rowModel.rows.length || !grouping.length) {
|
|
10
|
+
return rowModel;
|
|
11
|
+
}
|
|
12
|
+
const existingGrouping = grouping.filter(
|
|
13
|
+
(columnId) => table.getColumn(columnId)
|
|
14
|
+
);
|
|
15
|
+
const groupedFlatRows = [];
|
|
16
|
+
const groupedRowsById = {};
|
|
17
|
+
const groupUpRecursively = (rows, depth = 0, parentId) => {
|
|
18
|
+
if (depth >= existingGrouping.length) {
|
|
19
|
+
return rows.map((row2) => {
|
|
20
|
+
row2.depth = depth;
|
|
21
|
+
groupedFlatRows.push(row2);
|
|
22
|
+
groupedRowsById[row2.id] = row2;
|
|
23
|
+
if (row2.subRows) {
|
|
24
|
+
row2.subRows = groupUpRecursively(row2.subRows, depth + 1, row2.id);
|
|
25
|
+
}
|
|
26
|
+
return row2;
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
const columnId = existingGrouping[depth];
|
|
30
|
+
const rowGroupsMap = groupBy(rows, columnId);
|
|
31
|
+
const aggregatedGroupedRows = Array.from(rowGroupsMap.entries()).map(
|
|
32
|
+
([groupingValue, groupedRows2], index) => {
|
|
33
|
+
let id = `${columnId}:${groupingValue}`;
|
|
34
|
+
id = parentId ? `${parentId}>${id}` : id;
|
|
35
|
+
const subRows = groupUpRecursively(groupedRows2, depth + 1, id);
|
|
36
|
+
const leafRows = depth ? utils.flattenBy(groupedRows2, (row2) => row2.subRows) : groupedRows2;
|
|
37
|
+
const row$1 = row.createRow(
|
|
38
|
+
table,
|
|
39
|
+
id,
|
|
40
|
+
leafRows[0].original,
|
|
41
|
+
index,
|
|
42
|
+
depth,
|
|
43
|
+
void 0,
|
|
44
|
+
parentId
|
|
45
|
+
);
|
|
46
|
+
Object.assign(row$1, {
|
|
47
|
+
groupingColumnId: columnId,
|
|
48
|
+
groupingValue,
|
|
49
|
+
subRows,
|
|
50
|
+
leafRows,
|
|
51
|
+
getValue: (columnId2) => {
|
|
52
|
+
if (existingGrouping.includes(columnId2)) {
|
|
53
|
+
if (row$1._valuesCache.hasOwnProperty(columnId2)) {
|
|
54
|
+
return row$1._valuesCache[columnId2];
|
|
55
|
+
}
|
|
56
|
+
if (groupedRows2[0]) {
|
|
57
|
+
row$1._valuesCache[columnId2] = groupedRows2[0].getValue(columnId2) ?? void 0;
|
|
58
|
+
}
|
|
59
|
+
return row$1._valuesCache[columnId2];
|
|
60
|
+
}
|
|
61
|
+
if (row$1._groupingValuesCache.hasOwnProperty(columnId2)) {
|
|
62
|
+
return row$1._groupingValuesCache[columnId2];
|
|
63
|
+
}
|
|
64
|
+
const column = table.getColumn(columnId2);
|
|
65
|
+
const aggregateFn = column == null ? void 0 : column.getAggregationFn();
|
|
66
|
+
if (aggregateFn) {
|
|
67
|
+
row$1._groupingValuesCache[columnId2] = aggregateFn(
|
|
68
|
+
columnId2,
|
|
69
|
+
leafRows,
|
|
70
|
+
groupedRows2
|
|
71
|
+
);
|
|
72
|
+
return row$1._groupingValuesCache[columnId2];
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
subRows.forEach((subRow) => {
|
|
77
|
+
groupedFlatRows.push(subRow);
|
|
78
|
+
groupedRowsById[subRow.id] = subRow;
|
|
79
|
+
});
|
|
80
|
+
return row$1;
|
|
81
|
+
}
|
|
82
|
+
);
|
|
83
|
+
return aggregatedGroupedRows;
|
|
84
|
+
};
|
|
85
|
+
const groupedRows = groupUpRecursively(rowModel.rows, 0);
|
|
86
|
+
groupedRows.forEach((subRow) => {
|
|
87
|
+
groupedFlatRows.push(subRow);
|
|
88
|
+
groupedRowsById[subRow.id] = subRow;
|
|
89
|
+
});
|
|
90
|
+
return {
|
|
91
|
+
rows: groupedRows,
|
|
92
|
+
flatRows: groupedFlatRows,
|
|
93
|
+
rowsById: groupedRowsById
|
|
94
|
+
};
|
|
95
|
+
},
|
|
96
|
+
utils.getMemoOptions(table.options, "debugTable", "getGroupedRowModel", () => {
|
|
97
|
+
table._queue(() => {
|
|
98
|
+
table._autoResetExpanded();
|
|
99
|
+
table._autoResetPageIndex();
|
|
100
|
+
});
|
|
101
|
+
})
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
function groupBy(rows, columnId) {
|
|
105
|
+
const groupMap = /* @__PURE__ */ new Map();
|
|
106
|
+
return rows.reduce((map, row2) => {
|
|
107
|
+
const resKey = `${row2.getGroupingValue(columnId)}`;
|
|
108
|
+
const previous = map.get(resKey);
|
|
109
|
+
if (!previous) {
|
|
110
|
+
map.set(resKey, [row2]);
|
|
111
|
+
} else {
|
|
112
|
+
previous.push(row2);
|
|
113
|
+
}
|
|
114
|
+
return map;
|
|
115
|
+
}, groupMap);
|
|
116
|
+
}
|
|
117
|
+
exports.getGroupedRowModel = getGroupedRowModel;
|
|
118
|
+
//# sourceMappingURL=getGroupedRowModel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getGroupedRowModel.cjs","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":["memo","row","groupedRows","flattenBy","createRow","columnId","getMemoOptions"],"mappings":"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"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const utils = require("../utils.cjs");
|
|
4
|
+
const getExpandedRowModel = require("./getExpandedRowModel.cjs");
|
|
5
|
+
function getPaginationRowModel(opts) {
|
|
6
|
+
return (table) => utils.memo(
|
|
7
|
+
() => [
|
|
8
|
+
table.getState().pagination,
|
|
9
|
+
table.getPrePaginationRowModel(),
|
|
10
|
+
table.options.paginateExpandedRows ? void 0 : table.getState().expanded
|
|
11
|
+
],
|
|
12
|
+
(pagination, rowModel) => {
|
|
13
|
+
if (!rowModel.rows.length) {
|
|
14
|
+
return rowModel;
|
|
15
|
+
}
|
|
16
|
+
const { pageSize, pageIndex } = pagination;
|
|
17
|
+
let { rows, flatRows, rowsById } = rowModel;
|
|
18
|
+
const pageStart = pageSize * pageIndex;
|
|
19
|
+
const pageEnd = pageStart + pageSize;
|
|
20
|
+
rows = rows.slice(pageStart, pageEnd);
|
|
21
|
+
let paginatedRowModel;
|
|
22
|
+
if (!table.options.paginateExpandedRows) {
|
|
23
|
+
paginatedRowModel = getExpandedRowModel.expandRows({
|
|
24
|
+
rows,
|
|
25
|
+
flatRows,
|
|
26
|
+
rowsById
|
|
27
|
+
});
|
|
28
|
+
} else {
|
|
29
|
+
paginatedRowModel = {
|
|
30
|
+
rows,
|
|
31
|
+
flatRows,
|
|
32
|
+
rowsById
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
paginatedRowModel.flatRows = [];
|
|
36
|
+
const handleRow = (row) => {
|
|
37
|
+
paginatedRowModel.flatRows.push(row);
|
|
38
|
+
if (row.subRows.length) {
|
|
39
|
+
row.subRows.forEach(handleRow);
|
|
40
|
+
}
|
|
41
|
+
};
|
|
42
|
+
paginatedRowModel.rows.forEach(handleRow);
|
|
43
|
+
return paginatedRowModel;
|
|
44
|
+
},
|
|
45
|
+
utils.getMemoOptions(table.options, "debugTable", "getPaginationRowModel")
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
exports.getPaginationRowModel = getPaginationRowModel;
|
|
49
|
+
//# sourceMappingURL=getPaginationRowModel.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getPaginationRowModel.cjs","sources":["../../../src/utils/getPaginationRowModel.ts"],"sourcesContent":["import { Table, RowModel, Row, RowData } from '../types'\nimport { getMemoOptions, memo } from '../utils'\nimport { expandRows } from './getExpandedRowModel'\n\nexport function getPaginationRowModel<TData extends RowData>(opts?: {\n initialSync: boolean\n}): (table: Table<TData>) => () => RowModel<TData> {\n return table =>\n memo(\n () => [\n table.getState().pagination,\n table.getPrePaginationRowModel(),\n table.options.paginateExpandedRows\n ? undefined\n : table.getState().expanded,\n ],\n (pagination, rowModel) => {\n if (!rowModel.rows.length) {\n return rowModel\n }\n\n const { pageSize, pageIndex } = pagination\n let { rows, flatRows, rowsById } = rowModel\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n rows = rows.slice(pageStart, pageEnd)\n\n let paginatedRowModel: RowModel<TData>\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows,\n flatRows,\n rowsById,\n })\n } else {\n paginatedRowModel = {\n rows,\n flatRows,\n rowsById,\n }\n }\n\n paginatedRowModel.flatRows = []\n\n const handleRow = (row: Row<TData>) => {\n paginatedRowModel.flatRows.push(row)\n if (row.subRows.length) {\n row.subRows.forEach(handleRow)\n }\n }\n\n paginatedRowModel.rows.forEach(handleRow)\n\n return paginatedRowModel\n },\n getMemoOptions(table.options, 'debugTable', 'getPaginationRowModel')\n )\n}\n"],"names":["memo","expandRows","getMemoOptions"],"mappings":";;;;AAIO,SAAS,sBAA6C,MAEV;AACjD,SAAO,CACL,UAAAA,MAAA;AAAA,IACE,MAAM;AAAA,MACJ,MAAM,WAAW;AAAA,MACjB,MAAM,yBAAyB;AAAA,MAC/B,MAAM,QAAQ,uBACV,SACA,MAAM,WAAW;AAAA,IACvB;AAAA,IACA,CAAC,YAAY,aAAa;AACpB,UAAA,CAAC,SAAS,KAAK,QAAQ;AAClB,eAAA;AAAA,MACT;AAEM,YAAA,EAAE,UAAU,UAAc,IAAA;AAChC,UAAI,EAAE,MAAM,UAAU,SAAA,IAAa;AACnC,YAAM,YAAY,WAAW;AAC7B,YAAM,UAAU,YAAY;AAErB,aAAA,KAAK,MAAM,WAAW,OAAO;AAEhC,UAAA;AAEA,UAAA,CAAC,MAAM,QAAQ,sBAAsB;AACvC,4BAAoBC,oBAAAA,WAAW;AAAA,UAC7B;AAAA,UACA;AAAA,UACA;AAAA,QAAA,CACD;AAAA,MAAA,OACI;AACe,4BAAA;AAAA,UAClB;AAAA,UACA;AAAA,UACA;AAAA,QAAA;AAAA,MAEJ;AAEA,wBAAkB,WAAW;AAEvB,YAAA,YAAY,CAAC,QAAoB;AACnB,0BAAA,SAAS,KAAK,GAAG;AAC/B,YAAA,IAAI,QAAQ,QAAQ;AAClB,cAAA,QAAQ,QAAQ,SAAS;AAAA,QAC/B;AAAA,MAAA;AAGgB,wBAAA,KAAK,QAAQ,SAAS;AAEjC,aAAA;AAAA,IACT;AAAA,IACAC,MAAAA,eAAe,MAAM,SAAS,cAAc,uBAAuB;AAAA,EAAA;AAEzE;;"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
|
|
3
|
+
const utils = require("../utils.cjs");
|
|
4
|
+
function getSortedRowModel() {
|
|
5
|
+
return (table) => utils.memo(
|
|
6
|
+
() => [table.getState().sorting, table.getPreSortedRowModel()],
|
|
7
|
+
(sorting, rowModel) => {
|
|
8
|
+
if (!rowModel.rows.length || !(sorting == null ? void 0 : sorting.length)) {
|
|
9
|
+
return rowModel;
|
|
10
|
+
}
|
|
11
|
+
const sortingState = table.getState().sorting;
|
|
12
|
+
const sortedFlatRows = [];
|
|
13
|
+
const availableSorting = sortingState.filter(
|
|
14
|
+
(sort) => {
|
|
15
|
+
var _a;
|
|
16
|
+
return (_a = table.getColumn(sort.id)) == null ? void 0 : _a.getCanSort();
|
|
17
|
+
}
|
|
18
|
+
);
|
|
19
|
+
const columnInfoById = {};
|
|
20
|
+
availableSorting.forEach((sortEntry) => {
|
|
21
|
+
const column = table.getColumn(sortEntry.id);
|
|
22
|
+
if (!column)
|
|
23
|
+
return;
|
|
24
|
+
columnInfoById[sortEntry.id] = {
|
|
25
|
+
sortUndefined: column.columnDef.sortUndefined,
|
|
26
|
+
invertSorting: column.columnDef.invertSorting,
|
|
27
|
+
sortingFn: column.getSortingFn()
|
|
28
|
+
};
|
|
29
|
+
});
|
|
30
|
+
const sortData = (rows) => {
|
|
31
|
+
const sortedData = rows.map((row) => ({ ...row }));
|
|
32
|
+
sortedData.sort((rowA, rowB) => {
|
|
33
|
+
for (let i = 0; i < availableSorting.length; i += 1) {
|
|
34
|
+
const sortEntry = availableSorting[i];
|
|
35
|
+
const columnInfo = columnInfoById[sortEntry.id];
|
|
36
|
+
const sortUndefined = columnInfo.sortUndefined;
|
|
37
|
+
const isDesc = (sortEntry == null ? void 0 : sortEntry.desc) ?? false;
|
|
38
|
+
let sortInt = 0;
|
|
39
|
+
if (sortUndefined) {
|
|
40
|
+
const aValue = rowA.getValue(sortEntry.id);
|
|
41
|
+
const bValue = rowB.getValue(sortEntry.id);
|
|
42
|
+
const aUndefined = aValue === void 0;
|
|
43
|
+
const bUndefined = bValue === void 0;
|
|
44
|
+
if (aUndefined || bUndefined) {
|
|
45
|
+
if (sortUndefined === "first")
|
|
46
|
+
return aUndefined ? -1 : 1;
|
|
47
|
+
if (sortUndefined === "last")
|
|
48
|
+
return aUndefined ? 1 : -1;
|
|
49
|
+
sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
if (sortInt === 0) {
|
|
53
|
+
sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id);
|
|
54
|
+
}
|
|
55
|
+
if (sortInt !== 0) {
|
|
56
|
+
if (isDesc) {
|
|
57
|
+
sortInt *= -1;
|
|
58
|
+
}
|
|
59
|
+
if (columnInfo.invertSorting) {
|
|
60
|
+
sortInt *= -1;
|
|
61
|
+
}
|
|
62
|
+
return sortInt;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
return rowA.index - rowB.index;
|
|
66
|
+
});
|
|
67
|
+
sortedData.forEach((row) => {
|
|
68
|
+
var _a;
|
|
69
|
+
sortedFlatRows.push(row);
|
|
70
|
+
if ((_a = row.subRows) == null ? void 0 : _a.length) {
|
|
71
|
+
row.subRows = sortData(row.subRows);
|
|
72
|
+
}
|
|
73
|
+
});
|
|
74
|
+
return sortedData;
|
|
75
|
+
};
|
|
76
|
+
return {
|
|
77
|
+
rows: sortData(rowModel.rows),
|
|
78
|
+
flatRows: sortedFlatRows,
|
|
79
|
+
rowsById: rowModel.rowsById
|
|
80
|
+
};
|
|
81
|
+
},
|
|
82
|
+
utils.getMemoOptions(
|
|
83
|
+
table.options,
|
|
84
|
+
"debugTable",
|
|
85
|
+
"getSortedRowModel",
|
|
86
|
+
() => table._autoResetPageIndex()
|
|
87
|
+
)
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
exports.getSortedRowModel = getSortedRowModel;
|
|
91
|
+
//# sourceMappingURL=getSortedRowModel.cjs.map
|