@tanstack/table-core 8.5.25 → 8.5.27
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/filterFns.js +2 -2
- package/build/cjs/filterFns.js.map +1 -1
- package/build/cjs/utils/getSortedRowModel.js +3 -3
- package/build/cjs/utils/getSortedRowModel.js.map +1 -1
- package/build/esm/index.js +5 -5
- package/build/esm/index.js.map +1 -1
- package/build/stats-html.html +1 -1
- package/build/stats-react.json +314 -314
- package/build/umd/index.development.js +5 -5
- 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/filterFns.ts +2 -2
- package/src/utils/getSortedRowModel.ts +2 -3
package/build/cjs/filterFns.js
CHANGED
|
@@ -15,12 +15,12 @@ Object.defineProperty(exports, '__esModule', { value: true });
|
|
|
15
15
|
const includesString = (row, columnId, filterValue) => {
|
|
16
16
|
var _row$getValue;
|
|
17
17
|
const search = filterValue.toLowerCase();
|
|
18
|
-
return (_row$getValue = row.getValue(columnId)) == null ? void 0 : _row$getValue.toLowerCase().includes(search);
|
|
18
|
+
return Boolean((_row$getValue = row.getValue(columnId)) == null ? void 0 : _row$getValue.toLowerCase().includes(search));
|
|
19
19
|
};
|
|
20
20
|
includesString.autoRemove = val => testFalsey(val);
|
|
21
21
|
const includesStringSensitive = (row, columnId, filterValue) => {
|
|
22
22
|
var _row$getValue2;
|
|
23
|
-
return (_row$getValue2 = row.getValue(columnId)) == null ? void 0 : _row$getValue2.includes(filterValue);
|
|
23
|
+
return Boolean((_row$getValue2 = row.getValue(columnId)) == null ? void 0 : _row$getValue2.includes(filterValue));
|
|
24
24
|
};
|
|
25
25
|
includesStringSensitive.autoRemove = val => testFalsey(val);
|
|
26
26
|
const equalsString = (row, columnId, filterValue) => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { FilterFn } from './features/Filters'\n\nconst includesString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n const search = filterValue.toLowerCase()\n return row.getValue<string>(columnId)?.toLowerCase().includes(search)\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nconst includesStringSensitive: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return row.getValue<string>(columnId)?.includes(filterValue)\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nconst equalsString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return (\n row.getValue<string>(columnId)?.toLowerCase() === filterValue.toLowerCase()\n )\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nconst arrIncludes: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue<unknown[]>(columnId)?.includes(filterValue)\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesAll: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return !filterValue.some(\n val => !row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesSome: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return filterValue.some(val =>\n row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst equals: FilterFn<any> = (row, columnId: string, filterValue: unknown) => {\n return row.getValue(columnId) === filterValue\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nconst weakEquals: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nconst inNumberRange: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: [number, number]\n) => {\n let [min, max] = filterValue\n\n const rowValue = row.getValue<number>(columnId)\n return rowValue >= min && rowValue <= max\n}\n\ninNumberRange.resolveFilterValue = (val: [any, any]) => {\n let [unsafeMin, unsafeMax] = val\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return [min, max] as const\n}\n\ninNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Export\n\nexport const filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["includesString","row","columnId","filterValue","search","toLowerCase","getValue","includes","autoRemove","val","testFalsey","includesStringSensitive","equalsString","arrIncludes","length","arrIncludesAll","some","arrIncludesSome","equals","weakEquals","inNumberRange","min","max","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","Number","isNaN","Infinity","temp","filterFns","undefined"],"mappings":";;;;;;;;;;;;;;AAEA,MAAMA,cAA6B,GAAG,CACpCC,GAAG,EACHC,QAAgB,EAChBC,WAAmB,KAChB;AAAA,EAAA,IAAA,aAAA,CAAA;AACH,EAAA,MAAMC,MAAM,GAAGD,WAAW,CAACE,WAAW,EAAE,CAAA;AACxC,EAAA,
|
|
1
|
+
{"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { FilterFn } from './features/Filters'\n\nconst includesString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n const search = filterValue.toLowerCase()\n return Boolean(row.getValue<string>(columnId)?.toLowerCase().includes(search))\n}\n\nincludesString.autoRemove = (val: any) => testFalsey(val)\n\nconst includesStringSensitive: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return Boolean(row.getValue<string>(columnId)?.includes(filterValue))\n}\n\nincludesStringSensitive.autoRemove = (val: any) => testFalsey(val)\n\nconst equalsString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n return (\n row.getValue<string>(columnId)?.toLowerCase() === filterValue.toLowerCase()\n )\n}\n\nequalsString.autoRemove = (val: any) => testFalsey(val)\n\nconst arrIncludes: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue<unknown[]>(columnId)?.includes(filterValue)\n}\n\narrIncludes.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesAll: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return !filterValue.some(\n val => !row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesAll.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst arrIncludesSome: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown[]\n) => {\n return filterValue.some(val =>\n row.getValue<unknown[]>(columnId)?.includes(val)\n )\n}\n\narrIncludesSome.autoRemove = (val: any) => testFalsey(val) || !val?.length\n\nconst equals: FilterFn<any> = (row, columnId: string, filterValue: unknown) => {\n return row.getValue(columnId) === filterValue\n}\n\nequals.autoRemove = (val: any) => testFalsey(val)\n\nconst weakEquals: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: unknown\n) => {\n return row.getValue(columnId) == filterValue\n}\n\nweakEquals.autoRemove = (val: any) => testFalsey(val)\n\nconst inNumberRange: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: [number, number]\n) => {\n let [min, max] = filterValue\n\n const rowValue = row.getValue<number>(columnId)\n return rowValue >= min && rowValue <= max\n}\n\ninNumberRange.resolveFilterValue = (val: [any, any]) => {\n let [unsafeMin, unsafeMax] = val\n\n let parsedMin =\n typeof unsafeMin !== 'number' ? parseFloat(unsafeMin as string) : unsafeMin\n let parsedMax =\n typeof unsafeMax !== 'number' ? parseFloat(unsafeMax as string) : unsafeMax\n\n let min =\n unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin\n let max = unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax\n\n if (min > max) {\n const temp = min\n min = max\n max = temp\n }\n\n return [min, max] as const\n}\n\ninNumberRange.autoRemove = (val: any) =>\n testFalsey(val) || (testFalsey(val[0]) && testFalsey(val[1]))\n\n// Export\n\nexport const filterFns = {\n includesString,\n includesStringSensitive,\n equalsString,\n arrIncludes,\n arrIncludesAll,\n arrIncludesSome,\n equals,\n weakEquals,\n inNumberRange,\n}\n\nexport type BuiltInFilterFn = keyof typeof filterFns\n\n// Utils\n\nfunction testFalsey(val: any) {\n return val === undefined || val === null || val === ''\n}\n"],"names":["includesString","row","columnId","filterValue","search","toLowerCase","Boolean","getValue","includes","autoRemove","val","testFalsey","includesStringSensitive","equalsString","arrIncludes","length","arrIncludesAll","some","arrIncludesSome","equals","weakEquals","inNumberRange","min","max","rowValue","resolveFilterValue","unsafeMin","unsafeMax","parsedMin","parseFloat","parsedMax","Number","isNaN","Infinity","temp","filterFns","undefined"],"mappings":";;;;;;;;;;;;;;AAEA,MAAMA,cAA6B,GAAG,CACpCC,GAAG,EACHC,QAAgB,EAChBC,WAAmB,KAChB;AAAA,EAAA,IAAA,aAAA,CAAA;AACH,EAAA,MAAMC,MAAM,GAAGD,WAAW,CAACE,WAAW,EAAE,CAAA;AACxC,EAAA,OAAOC,OAAO,CAACL,CAAAA,aAAAA,GAAAA,GAAG,CAACM,QAAQ,CAASL,QAAQ,CAAC,KAA9B,IAAA,GAAA,KAAA,CAAA,GAAA,aAAA,CAAgCG,WAAW,EAAE,CAACG,QAAQ,CAACJ,MAAM,CAAC,CAAC,CAAA;AAChF,CAAC,CAAA;AAEDJ,cAAc,CAACS,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAEzD,MAAME,uBAAsC,GAAG,CAC7CX,GAAG,EACHC,QAAgB,EAChBC,WAAmB,KAChB;AAAA,EAAA,IAAA,cAAA,CAAA;AACH,EAAA,OAAOG,OAAO,CAAA,CAAA,cAAA,GAACL,GAAG,CAACM,QAAQ,CAASL,QAAQ,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAA9B,cAAgCM,CAAAA,QAAQ,CAACL,WAAW,CAAC,CAAC,CAAA;AACvE,CAAC,CAAA;AAEDS,uBAAuB,CAACH,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAElE,MAAMG,YAA2B,GAAG,CAClCZ,GAAG,EACHC,QAAgB,EAChBC,WAAmB,KAChB;AAAA,EAAA,IAAA,cAAA,CAAA;AACH,EAAA,OACE,CAAAF,CAAAA,cAAAA,GAAAA,GAAG,CAACM,QAAQ,CAASL,QAAQ,CAAC,KAA9B,IAAA,GAAA,KAAA,CAAA,GAAA,cAAA,CAAgCG,WAAW,EAAE,MAAKF,WAAW,CAACE,WAAW,EAAE,CAAA;AAE/E,CAAC,CAAA;AAEDQ,YAAY,CAACJ,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAEvD,MAAMI,WAA0B,GAAG,CACjCb,GAAG,EACHC,QAAgB,EAChBC,WAAoB,KACjB;AAAA,EAAA,IAAA,cAAA,CAAA;EACH,OAAOF,CAAAA,cAAAA,GAAAA,GAAG,CAACM,QAAQ,CAAYL,QAAQ,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjC,cAAmCM,CAAAA,QAAQ,CAACL,WAAW,CAAC,CAAA;AACjE,CAAC,CAAA;AAEDW,WAAW,CAACL,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,IAAI,EAACA,GAAG,IAAHA,IAAAA,IAAAA,GAAG,CAAEK,MAAM,CAAA,CAAA;AAEtE,MAAMC,cAA6B,GAAG,CACpCf,GAAG,EACHC,QAAgB,EAChBC,WAAsB,KACnB;AACH,EAAA,OAAO,CAACA,WAAW,CAACc,IAAI,CACtBP,GAAG,IAAA;AAAA,IAAA,IAAA,cAAA,CAAA;AAAA,IAAA,OAAI,EAACT,CAAAA,cAAAA,GAAAA,GAAG,CAACM,QAAQ,CAAYL,QAAQ,CAAC,KAAA,IAAA,IAAjC,cAAmCM,CAAAA,QAAQ,CAACE,GAAG,CAAC,CAAA,CAAA;GACzD,CAAA,CAAA;AACH,CAAC,CAAA;AAEDM,cAAc,CAACP,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,IAAI,EAACA,GAAG,IAAHA,IAAAA,IAAAA,GAAG,CAAEK,MAAM,CAAA,CAAA;AAEzE,MAAMG,eAA8B,GAAG,CACrCjB,GAAG,EACHC,QAAgB,EAChBC,WAAsB,KACnB;AACH,EAAA,OAAOA,WAAW,CAACc,IAAI,CAACP,GAAG,IAAA;AAAA,IAAA,IAAA,cAAA,CAAA;IAAA,OACzBT,CAAAA,cAAAA,GAAAA,GAAG,CAACM,QAAQ,CAAYL,QAAQ,CAAC,KAAA,IAAA,GAAA,KAAA,CAAA,GAAjC,cAAmCM,CAAAA,QAAQ,CAACE,GAAG,CAAC,CAAA;GACjD,CAAA,CAAA;AACH,CAAC,CAAA;AAEDQ,eAAe,CAACT,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,IAAI,EAACA,GAAG,IAAHA,IAAAA,IAAAA,GAAG,CAAEK,MAAM,CAAA,CAAA;AAE1E,MAAMI,MAAqB,GAAG,CAAClB,GAAG,EAAEC,QAAgB,EAAEC,WAAoB,KAAK;AAC7E,EAAA,OAAOF,GAAG,CAACM,QAAQ,CAACL,QAAQ,CAAC,KAAKC,WAAW,CAAA;AAC/C,CAAC,CAAA;AAEDgB,MAAM,CAACV,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAEjD,MAAMU,UAAyB,GAAG,CAChCnB,GAAG,EACHC,QAAgB,EAChBC,WAAoB,KACjB;AACH,EAAA,OAAOF,GAAG,CAACM,QAAQ,CAACL,QAAQ,CAAC,IAAIC,WAAW,CAAA;AAC9C,CAAC,CAAA;AAEDiB,UAAU,CAACX,UAAU,GAAIC,GAAQ,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAA;AAErD,MAAMW,aAA4B,GAAG,CACnCpB,GAAG,EACHC,QAAgB,EAChBC,WAA6B,KAC1B;AACH,EAAA,IAAI,CAACmB,GAAG,EAAEC,GAAG,CAAC,GAAGpB,WAAW,CAAA;AAE5B,EAAA,MAAMqB,QAAQ,GAAGvB,GAAG,CAACM,QAAQ,CAASL,QAAQ,CAAC,CAAA;AAC/C,EAAA,OAAOsB,QAAQ,IAAIF,GAAG,IAAIE,QAAQ,IAAID,GAAG,CAAA;AAC3C,CAAC,CAAA;AAEDF,aAAa,CAACI,kBAAkB,GAAIf,GAAe,IAAK;AACtD,EAAA,IAAI,CAACgB,SAAS,EAAEC,SAAS,CAAC,GAAGjB,GAAG,CAAA;AAEhC,EAAA,IAAIkB,SAAS,GACX,OAAOF,SAAS,KAAK,QAAQ,GAAGG,UAAU,CAACH,SAAS,CAAW,GAAGA,SAAS,CAAA;AAC7E,EAAA,IAAII,SAAS,GACX,OAAOH,SAAS,KAAK,QAAQ,GAAGE,UAAU,CAACF,SAAS,CAAW,GAAGA,SAAS,CAAA;AAE7E,EAAA,IAAIL,GAAG,GACLI,SAAS,KAAK,IAAI,IAAIK,MAAM,CAACC,KAAK,CAACJ,SAAS,CAAC,GAAG,CAACK,QAAQ,GAAGL,SAAS,CAAA;AACvE,EAAA,IAAIL,GAAG,GAAGI,SAAS,KAAK,IAAI,IAAII,MAAM,CAACC,KAAK,CAACF,SAAS,CAAC,GAAGG,QAAQ,GAAGH,SAAS,CAAA;EAE9E,IAAIR,GAAG,GAAGC,GAAG,EAAE;IACb,MAAMW,IAAI,GAAGZ,GAAG,CAAA;AAChBA,IAAAA,GAAG,GAAGC,GAAG,CAAA;AACTA,IAAAA,GAAG,GAAGW,IAAI,CAAA;AACZ,GAAA;AAEA,EAAA,OAAO,CAACZ,GAAG,EAAEC,GAAG,CAAC,CAAA;AACnB,CAAC,CAAA;AAEDF,aAAa,CAACZ,UAAU,GAAIC,GAAQ,IAClCC,UAAU,CAACD,GAAG,CAAC,IAAKC,UAAU,CAACD,GAAG,CAAC,CAAC,CAAC,CAAC,IAAIC,UAAU,CAACD,GAAG,CAAC,CAAC,CAAC,CAAE,CAAA;;AAE/D;;AAEO,MAAMyB,SAAS,GAAG;EACvBnC,cAAc;EACdY,uBAAuB;EACvBC,YAAY;EACZC,WAAW;EACXE,cAAc;EACdE,eAAe;EACfC,MAAM;EACNC,UAAU;AACVC,EAAAA,aAAAA;AACF,EAAC;AAID;;AAEA,SAASV,UAAU,CAACD,GAAQ,EAAE;EAC5B,OAAOA,GAAG,KAAK0B,SAAS,IAAI1B,GAAG,KAAK,IAAI,IAAIA,GAAG,KAAK,EAAE,CAAA;AACxD;;;;"}
|
|
@@ -69,11 +69,11 @@ function getSortedRowModel() {
|
|
|
69
69
|
|
|
70
70
|
// If there are sub-rows, sort them
|
|
71
71
|
sortedData.forEach(row => {
|
|
72
|
+
var _row$subRows;
|
|
72
73
|
sortedFlatRows.push(row);
|
|
73
|
-
if (
|
|
74
|
-
|
|
74
|
+
if ((_row$subRows = row.subRows) != null && _row$subRows.length) {
|
|
75
|
+
row.subRows = sortData(row.subRows);
|
|
75
76
|
}
|
|
76
|
-
row.subRows = sortData(row.subRows);
|
|
77
77
|
});
|
|
78
78
|
return sortedData;
|
|
79
79
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getSortedRowModel.js","sources":["../../../src/utils/getSortedRowModel.ts"],"sourcesContent":["import { Table, Row, RowModel, RowData } from '../types'\nimport { SortingFn } from '../features/Sorting'\nimport { memo } from '../utils'\n\nexport function getSortedRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.getState().sorting, table.getPreSortedRowModel()],\n (sorting, rowModel) => {\n if (!rowModel.rows.length || !sorting?.length) {\n return rowModel\n }\n\n const sortingState = table.getState().sorting\n\n const sortedFlatRows: Row<TData>[] = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort =>\n table.getColumn(sort.id).getCanSort()\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1\n invertSorting?: boolean\n sortingFn: SortingFn<TData>\n }\n > = {}\n\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id)\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn(),\n }\n })\n\n const sortData = (rows: Row<TData>[]) => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = [...rows]\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const isDesc = sortEntry?.desc ?? false\n\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id)\n const bValue = rowB.getValue(sortEntry.id)\n\n const aUndefined = typeof aValue === 'undefined'\n const bUndefined = typeof bValue === 'undefined'\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined\n ? 0\n : aUndefined\n ? columnInfo.sortUndefined\n : -columnInfo.sortUndefined\n }\n }\n\n // This function should always return in ascending order\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id)\n\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (
|
|
1
|
+
{"version":3,"file":"getSortedRowModel.js","sources":["../../../src/utils/getSortedRowModel.ts"],"sourcesContent":["import { Table, Row, RowModel, RowData } from '../types'\nimport { SortingFn } from '../features/Sorting'\nimport { memo } from '../utils'\n\nexport function getSortedRowModel<TData extends RowData>(): (\n table: Table<TData>\n) => () => RowModel<TData> {\n return table =>\n memo(\n () => [table.getState().sorting, table.getPreSortedRowModel()],\n (sorting, rowModel) => {\n if (!rowModel.rows.length || !sorting?.length) {\n return rowModel\n }\n\n const sortingState = table.getState().sorting\n\n const sortedFlatRows: Row<TData>[] = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sortingState.filter(sort =>\n table.getColumn(sort.id).getCanSort()\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1\n invertSorting?: boolean\n sortingFn: SortingFn<TData>\n }\n > = {}\n\n availableSorting.forEach(sortEntry => {\n const column = table.getColumn(sortEntry.id)\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortingFn: column.getSortingFn(),\n }\n })\n\n const sortData = (rows: Row<TData>[]) => {\n // This will also perform a stable sorting using the row index\n // if needed.\n const sortedData = [...rows]\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i += 1) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const isDesc = sortEntry?.desc ?? false\n\n if (columnInfo.sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id)\n const bValue = rowB.getValue(sortEntry.id)\n\n const aUndefined = typeof aValue === 'undefined'\n const bUndefined = typeof bValue === 'undefined'\n\n if (aUndefined || bUndefined) {\n return aUndefined && bUndefined\n ? 0\n : aUndefined\n ? columnInfo.sortUndefined\n : -columnInfo.sortUndefined\n }\n }\n\n // This function should always return in ascending order\n let sortInt = columnInfo.sortingFn(rowA, rowB, sortEntry.id)\n\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them\n sortedData.forEach(row => {\n sortedFlatRows.push(row)\n if (row.subRows?.length) {\n row.subRows = sortData(row.subRows);\n }\n })\n\n return sortedData\n }\n\n return {\n rows: sortData(rowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: rowModel.rowsById,\n }\n },\n {\n key: process.env.NODE_ENV === 'development' && 'getSortedRowModel',\n debug: () => table.options.debugAll ?? table.options.debugTable,\n onChange: () => {\n table._autoResetPageIndex()\n },\n }\n )\n}\n"],"names":["getSortedRowModel","table","memo","getState","sorting","getPreSortedRowModel","rowModel","rows","length","sortingState","sortedFlatRows","availableSorting","filter","sort","getColumn","id","getCanSort","columnInfoById","forEach","sortEntry","column","sortUndefined","columnDef","invertSorting","sortingFn","getSortingFn","sortData","sortedData","rowA","rowB","i","columnInfo","isDesc","desc","aValue","getValue","bValue","aUndefined","bUndefined","sortInt","index","row","push","subRows","flatRows","rowsById","key","process","env","NODE_ENV","debug","options","debugAll","debugTable","onChange","_autoResetPageIndex"],"mappings":"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"}
|
package/build/esm/index.js
CHANGED
|
@@ -853,12 +853,12 @@ const Expanding = {
|
|
|
853
853
|
const includesString = (row, columnId, filterValue) => {
|
|
854
854
|
var _row$getValue;
|
|
855
855
|
const search = filterValue.toLowerCase();
|
|
856
|
-
return (_row$getValue = row.getValue(columnId)) == null ? void 0 : _row$getValue.toLowerCase().includes(search);
|
|
856
|
+
return Boolean((_row$getValue = row.getValue(columnId)) == null ? void 0 : _row$getValue.toLowerCase().includes(search));
|
|
857
857
|
};
|
|
858
858
|
includesString.autoRemove = val => testFalsey(val);
|
|
859
859
|
const includesStringSensitive = (row, columnId, filterValue) => {
|
|
860
860
|
var _row$getValue2;
|
|
861
|
-
return (_row$getValue2 = row.getValue(columnId)) == null ? void 0 : _row$getValue2.includes(filterValue);
|
|
861
|
+
return Boolean((_row$getValue2 = row.getValue(columnId)) == null ? void 0 : _row$getValue2.includes(filterValue));
|
|
862
862
|
};
|
|
863
863
|
includesStringSensitive.autoRemove = val => testFalsey(val);
|
|
864
864
|
const equalsString = (row, columnId, filterValue) => {
|
|
@@ -3138,11 +3138,11 @@ function getSortedRowModel() {
|
|
|
3138
3138
|
|
|
3139
3139
|
// If there are sub-rows, sort them
|
|
3140
3140
|
sortedData.forEach(row => {
|
|
3141
|
+
var _row$subRows;
|
|
3141
3142
|
sortedFlatRows.push(row);
|
|
3142
|
-
if (
|
|
3143
|
-
|
|
3143
|
+
if ((_row$subRows = row.subRows) != null && _row$subRows.length) {
|
|
3144
|
+
row.subRows = sortData(row.subRows);
|
|
3144
3145
|
}
|
|
3145
|
-
row.subRows = sortData(row.subRows);
|
|
3146
3146
|
});
|
|
3147
3147
|
return sortedData;
|
|
3148
3148
|
};
|