@tanstack/table-core 8.17.3 → 9.0.0-alpha.4
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 @@
|
|
|
1
|
+
{"version":3,"file":"filterFns.js","sources":["../../src/filterFns.ts"],"sourcesContent":["import { FilterFn } from './features/ColumnFiltering'\n\nconst includesString: FilterFn<any> = (\n row,\n columnId: string,\n filterValue: string\n) => {\n const search = filterValue.toLowerCase()\n return Boolean(\n row\n .getValue<string | null>(columnId)\n ?.toString()\n ?.toLowerCase()\n ?.includes(search)\n )\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(\n row.getValue<string | null>(columnId)?.toString()?.includes(filterValue)\n )\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 | null>(columnId)?.toString()?.toLowerCase() ===\n 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(\n val => 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":[],"mappings":"AAEA,MAAM,iBAAgC,CACpC,KACA,UACA,gBACG;AAJL;AAKQ,QAAA,SAAS,YAAY;AACpB,SAAA;AAAA,KACL,qBACG,SAAwB,QAAQ,MADnC,mBAEI,eAFJ,mBAGI,kBAHJ,mBAII,SAAS;AAAA,EAAM;AAEvB;AAEA,eAAe,aAAa,CAAC,QAAa,WAAW,GAAG;AAExD,MAAM,0BAAyC,CAC7C,KACA,UACA,gBACG;AArBL;AAsBS,SAAA;AAAA,KACL,eAAI,SAAwB,QAAQ,MAApC,mBAAuC,eAAvC,mBAAmD,SAAS;AAAA,EAAW;AAE3E;AAEA,wBAAwB,aAAa,CAAC,QAAa,WAAW,GAAG;AAEjE,MAAM,eAA8B,CAClC,KACA,UACA,gBACG;AAjCL;AAmCI,WAAA,eAAI,SAAwB,QAAQ,MAApC,mBAAuC,eAAvC,mBAAmD,oBACnD,2CAAa;AAEjB;AAEA,aAAa,aAAa,CAAC,QAAa,WAAW,GAAG;AAEtD,MAAM,cAA6B,CACjC,KACA,UACA,gBACG;AA9CL;AA+CE,UAAO,SAAI,SAAoB,QAAQ,MAAhC,mBAAmC,SAAS;AACrD;AAEA,YAAY,aAAa,CAAC,QAAa,WAAW,GAAG,KAAK,EAAC,2BAAK;AAEhE,MAAM,iBAAgC,CACpC,KACA,UACA,gBACG;AACH,SAAO,CAAC,YAAY;AAAA,IAClB,SAAO;AA1DX;AA0DW,gBAAC,SAAI,SAAoB,QAAQ,MAAhC,mBAAmC,SAAS;AAAA;AAAA,EAAG;AAE3D;AAEA,eAAe,aAAa,CAAC,QAAa,WAAW,GAAG,KAAK,EAAC,2BAAK;AAEnE,MAAM,kBAAiC,CACrC,KACA,UACA,gBACG;AACH,SAAO,YAAY;AAAA,IACjB,SAAO;AAtEX;AAsEW,uBAAI,SAAoB,QAAQ,MAAhC,mBAAmC,SAAS;AAAA;AAAA,EAAG;AAE1D;AAEA,gBAAgB,aAAa,CAAC,QAAa,WAAW,GAAG,KAAK,EAAC,2BAAK;AAEpE,MAAM,SAAwB,CAAC,KAAK,UAAkB,gBAAyB;AACtE,SAAA,IAAI,SAAS,QAAQ,MAAM;AACpC;AAEA,OAAO,aAAa,CAAC,QAAa,WAAW,GAAG;AAEhD,MAAM,aAA4B,CAChC,KACA,UACA,gBACG;AACI,SAAA,IAAI,SAAS,QAAQ,KAAK;AACnC;AAEA,WAAW,aAAa,CAAC,QAAa,WAAW,GAAG;AAEpD,MAAM,gBAA+B,CACnC,KACA,UACA,gBACG;AACC,MAAA,CAAC,KAAK,GAAG,IAAI;AAEX,QAAA,WAAW,IAAI,SAAiB,QAAQ;AACvC,SAAA,YAAY,OAAO,YAAY;AACxC;AAEA,cAAc,qBAAqB,CAAC,QAAoB;AAClD,MAAA,CAAC,WAAW,SAAS,IAAI;AAE7B,MAAI,YACF,OAAO,cAAc,WAAW,WAAW,SAAmB,IAAI;AACpE,MAAI,YACF,OAAO,cAAc,WAAW,WAAW,SAAmB,IAAI;AAEpE,MAAI,MACF,cAAc,QAAQ,OAAO,MAAM,SAAS,IAAI,YAAY;AAC9D,MAAI,MAAM,cAAc,QAAQ,OAAO,MAAM,SAAS,IAAI,WAAW;AAErE,MAAI,MAAM,KAAK;AACb,UAAM,OAAO;AACP,UAAA;AACA,UAAA;AAAA,EACR;AAEO,SAAA,CAAC,KAAK,GAAG;AAClB;AAEA,cAAc,aAAa,CAAC,QAC1B,WAAW,GAAG,KAAM,WAAW,IAAI,CAAC,CAAC,KAAK,WAAW,IAAI,CAAC,CAAC;AAItD,MAAM,YAAY;AAAA,EACvB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAMA,SAAS,WAAW,KAAU;AAC5B,SAAO,QAAQ,UAAa,QAAQ,QAAQ,QAAQ;AACtD;"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
export * from './columnHelper.js';
|
|
2
|
+
export * from './types.js';
|
|
3
|
+
export * from './core/cell.js';
|
|
4
|
+
export * from './core/column.js';
|
|
5
|
+
export * from './core/headers.js';
|
|
6
|
+
export * from './core/row.js';
|
|
7
|
+
export * from './core/table.js';
|
|
8
|
+
export * from './features/ColumnFaceting.js';
|
|
9
|
+
export * from './features/ColumnFiltering.js';
|
|
10
|
+
export * from './features/ColumnGrouping.js';
|
|
11
|
+
export * from './features/ColumnOrdering.js';
|
|
12
|
+
export * from './features/ColumnPinning.js';
|
|
13
|
+
export * from './features/ColumnSizing.js';
|
|
14
|
+
export * from './features/ColumnVisibility.js';
|
|
15
|
+
export * from './features/GlobalFaceting.js';
|
|
16
|
+
export * from './features/GlobalFiltering.js';
|
|
17
|
+
export * from './features/RowExpanding.js';
|
|
18
|
+
export * from './features/RowPagination.js';
|
|
19
|
+
export * from './features/RowPinning.js';
|
|
20
|
+
export * from './features/RowSelection.js';
|
|
21
|
+
export * from './features/RowSorting.js';
|
|
22
|
+
export * from './utils.js';
|
|
23
|
+
export * from './utils/getCoreRowModel.js';
|
|
24
|
+
export * from './utils/getExpandedRowModel.js';
|
|
25
|
+
export * from './utils/getFacetedMinMaxValues.js';
|
|
26
|
+
export * from './utils/getFacetedRowModel.js';
|
|
27
|
+
export * from './utils/getFacetedUniqueValues.js';
|
|
28
|
+
export * from './utils/getFilteredRowModel.js';
|
|
29
|
+
export * from './utils/getGroupedRowModel.js';
|
|
30
|
+
export * from './utils/getPaginationRowModel.js';
|
|
31
|
+
export * from './utils/getSortedRowModel.js';
|
|
32
|
+
export * from './aggregationFns.js';
|
|
33
|
+
export * from './filterFns.js';
|
|
34
|
+
export * from './sortingFns.js';
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
import { createColumnHelper } from "./columnHelper.js";
|
|
2
|
+
import { createCell } from "./core/cell.js";
|
|
3
|
+
import { createColumn } from "./core/column.js";
|
|
4
|
+
import { Headers, buildHeaderGroups } from "./core/headers.js";
|
|
5
|
+
import { createRow } from "./core/row.js";
|
|
6
|
+
import { createTable } from "./core/table.js";
|
|
7
|
+
import { ColumnFaceting } from "./features/ColumnFaceting.js";
|
|
8
|
+
import { ColumnFiltering, shouldAutoRemoveFilter } from "./features/ColumnFiltering.js";
|
|
9
|
+
import { ColumnGrouping, orderColumns } from "./features/ColumnGrouping.js";
|
|
10
|
+
import { ColumnOrdering } from "./features/ColumnOrdering.js";
|
|
11
|
+
import { ColumnPinning } from "./features/ColumnPinning.js";
|
|
12
|
+
import { ColumnSizing, defaultColumnSizing, passiveEventSupported } from "./features/ColumnSizing.js";
|
|
13
|
+
import { ColumnVisibility, _getVisibleLeafColumns } from "./features/ColumnVisibility.js";
|
|
14
|
+
import { GlobalFaceting } from "./features/GlobalFaceting.js";
|
|
15
|
+
import { GlobalFiltering } from "./features/GlobalFiltering.js";
|
|
16
|
+
import { RowExpanding } from "./features/RowExpanding.js";
|
|
17
|
+
import { RowPagination } from "./features/RowPagination.js";
|
|
18
|
+
import { RowPinning } from "./features/RowPinning.js";
|
|
19
|
+
import { RowSelection, isRowSelected, isSubRowSelected, selectRowsFn } from "./features/RowSelection.js";
|
|
20
|
+
import { RowSorting } from "./features/RowSorting.js";
|
|
21
|
+
import { flattenBy, functionalUpdate, getMemoOptions, isFunction, isNumberArray, makeStateUpdater, memo, noop } from "./utils.js";
|
|
22
|
+
import { getCoreRowModel } from "./utils/getCoreRowModel.js";
|
|
23
|
+
import { expandRows, getExpandedRowModel } from "./utils/getExpandedRowModel.js";
|
|
24
|
+
import { getFacetedMinMaxValues } from "./utils/getFacetedMinMaxValues.js";
|
|
25
|
+
import { getFacetedRowModel } from "./utils/getFacetedRowModel.js";
|
|
26
|
+
import { getFacetedUniqueValues } from "./utils/getFacetedUniqueValues.js";
|
|
27
|
+
import { getFilteredRowModel } from "./utils/getFilteredRowModel.js";
|
|
28
|
+
import { getGroupedRowModel } from "./utils/getGroupedRowModel.js";
|
|
29
|
+
import { getPaginationRowModel } from "./utils/getPaginationRowModel.js";
|
|
30
|
+
import { getSortedRowModel } from "./utils/getSortedRowModel.js";
|
|
31
|
+
import { aggregationFns } from "./aggregationFns.js";
|
|
32
|
+
import { filterFns } from "./filterFns.js";
|
|
33
|
+
import { reSplitAlphaNumeric, sortingFns } from "./sortingFns.js";
|
|
34
|
+
export {
|
|
35
|
+
ColumnFaceting,
|
|
36
|
+
ColumnFiltering,
|
|
37
|
+
ColumnGrouping,
|
|
38
|
+
ColumnOrdering,
|
|
39
|
+
ColumnPinning,
|
|
40
|
+
ColumnSizing,
|
|
41
|
+
ColumnVisibility,
|
|
42
|
+
GlobalFaceting,
|
|
43
|
+
GlobalFiltering,
|
|
44
|
+
Headers,
|
|
45
|
+
RowExpanding,
|
|
46
|
+
RowPagination,
|
|
47
|
+
RowPinning,
|
|
48
|
+
RowSelection,
|
|
49
|
+
RowSorting,
|
|
50
|
+
_getVisibleLeafColumns,
|
|
51
|
+
aggregationFns,
|
|
52
|
+
buildHeaderGroups,
|
|
53
|
+
createCell,
|
|
54
|
+
createColumn,
|
|
55
|
+
createColumnHelper,
|
|
56
|
+
createRow,
|
|
57
|
+
createTable,
|
|
58
|
+
defaultColumnSizing,
|
|
59
|
+
expandRows,
|
|
60
|
+
filterFns,
|
|
61
|
+
flattenBy,
|
|
62
|
+
functionalUpdate,
|
|
63
|
+
getCoreRowModel,
|
|
64
|
+
getExpandedRowModel,
|
|
65
|
+
getFacetedMinMaxValues,
|
|
66
|
+
getFacetedRowModel,
|
|
67
|
+
getFacetedUniqueValues,
|
|
68
|
+
getFilteredRowModel,
|
|
69
|
+
getGroupedRowModel,
|
|
70
|
+
getMemoOptions,
|
|
71
|
+
getPaginationRowModel,
|
|
72
|
+
getSortedRowModel,
|
|
73
|
+
isFunction,
|
|
74
|
+
isNumberArray,
|
|
75
|
+
isRowSelected,
|
|
76
|
+
isSubRowSelected,
|
|
77
|
+
makeStateUpdater,
|
|
78
|
+
memo,
|
|
79
|
+
noop,
|
|
80
|
+
orderColumns,
|
|
81
|
+
passiveEventSupported,
|
|
82
|
+
reSplitAlphaNumeric,
|
|
83
|
+
selectRowsFn,
|
|
84
|
+
shouldAutoRemoveFilter,
|
|
85
|
+
sortingFns
|
|
86
|
+
};
|
|
87
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
const reSplitAlphaNumeric = /([0-9]+)/gm;
|
|
2
|
+
const alphanumeric = (rowA, rowB, columnId) => {
|
|
3
|
+
return compareAlphanumeric(
|
|
4
|
+
toString(rowA.getValue(columnId)).toLowerCase(),
|
|
5
|
+
toString(rowB.getValue(columnId)).toLowerCase()
|
|
6
|
+
);
|
|
7
|
+
};
|
|
8
|
+
const alphanumericCaseSensitive = (rowA, rowB, columnId) => {
|
|
9
|
+
return compareAlphanumeric(
|
|
10
|
+
toString(rowA.getValue(columnId)),
|
|
11
|
+
toString(rowB.getValue(columnId))
|
|
12
|
+
);
|
|
13
|
+
};
|
|
14
|
+
const text = (rowA, rowB, columnId) => {
|
|
15
|
+
return compareBasic(
|
|
16
|
+
toString(rowA.getValue(columnId)).toLowerCase(),
|
|
17
|
+
toString(rowB.getValue(columnId)).toLowerCase()
|
|
18
|
+
);
|
|
19
|
+
};
|
|
20
|
+
const textCaseSensitive = (rowA, rowB, columnId) => {
|
|
21
|
+
return compareBasic(
|
|
22
|
+
toString(rowA.getValue(columnId)),
|
|
23
|
+
toString(rowB.getValue(columnId))
|
|
24
|
+
);
|
|
25
|
+
};
|
|
26
|
+
const datetime = (rowA, rowB, columnId) => {
|
|
27
|
+
const a = rowA.getValue(columnId);
|
|
28
|
+
const b = rowB.getValue(columnId);
|
|
29
|
+
return a > b ? 1 : a < b ? -1 : 0;
|
|
30
|
+
};
|
|
31
|
+
const basic = (rowA, rowB, columnId) => {
|
|
32
|
+
return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId));
|
|
33
|
+
};
|
|
34
|
+
function compareBasic(a, b) {
|
|
35
|
+
return a === b ? 0 : a > b ? 1 : -1;
|
|
36
|
+
}
|
|
37
|
+
function toString(a) {
|
|
38
|
+
if (typeof a === "number") {
|
|
39
|
+
if (isNaN(a) || a === Infinity || a === -Infinity) {
|
|
40
|
+
return "";
|
|
41
|
+
}
|
|
42
|
+
return String(a);
|
|
43
|
+
}
|
|
44
|
+
if (typeof a === "string") {
|
|
45
|
+
return a;
|
|
46
|
+
}
|
|
47
|
+
return "";
|
|
48
|
+
}
|
|
49
|
+
function compareAlphanumeric(aStr, bStr) {
|
|
50
|
+
const a = aStr.split(reSplitAlphaNumeric).filter(Boolean);
|
|
51
|
+
const b = bStr.split(reSplitAlphaNumeric).filter(Boolean);
|
|
52
|
+
while (a.length && b.length) {
|
|
53
|
+
const aa = a.shift();
|
|
54
|
+
const bb = b.shift();
|
|
55
|
+
const an = parseInt(aa, 10);
|
|
56
|
+
const bn = parseInt(bb, 10);
|
|
57
|
+
const combo = [an, bn].sort();
|
|
58
|
+
if (isNaN(combo[0])) {
|
|
59
|
+
if (aa > bb) {
|
|
60
|
+
return 1;
|
|
61
|
+
}
|
|
62
|
+
if (bb > aa) {
|
|
63
|
+
return -1;
|
|
64
|
+
}
|
|
65
|
+
continue;
|
|
66
|
+
}
|
|
67
|
+
if (isNaN(combo[1])) {
|
|
68
|
+
return isNaN(an) ? -1 : 1;
|
|
69
|
+
}
|
|
70
|
+
if (an > bn) {
|
|
71
|
+
return 1;
|
|
72
|
+
}
|
|
73
|
+
if (bn > an) {
|
|
74
|
+
return -1;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return a.length - b.length;
|
|
78
|
+
}
|
|
79
|
+
const sortingFns = {
|
|
80
|
+
alphanumeric,
|
|
81
|
+
alphanumericCaseSensitive,
|
|
82
|
+
text,
|
|
83
|
+
textCaseSensitive,
|
|
84
|
+
datetime,
|
|
85
|
+
basic
|
|
86
|
+
};
|
|
87
|
+
export {
|
|
88
|
+
reSplitAlphaNumeric,
|
|
89
|
+
sortingFns
|
|
90
|
+
};
|
|
91
|
+
//# sourceMappingURL=sortingFns.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sortingFns.js","sources":["../../src/sortingFns.ts"],"sourcesContent":["import { SortingFn } from './features/RowSorting'\n\nexport const reSplitAlphaNumeric = /([0-9]+)/gm\n\nconst alphanumeric: SortingFn<any> = (rowA, rowB, columnId) => {\n return compareAlphanumeric(\n toString(rowA.getValue(columnId)).toLowerCase(),\n toString(rowB.getValue(columnId)).toLowerCase()\n )\n}\n\nconst alphanumericCaseSensitive: SortingFn<any> = (rowA, rowB, columnId) => {\n return compareAlphanumeric(\n toString(rowA.getValue(columnId)),\n toString(rowB.getValue(columnId))\n )\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst text: SortingFn<any> = (rowA, rowB, columnId) => {\n return compareBasic(\n toString(rowA.getValue(columnId)).toLowerCase(),\n toString(rowB.getValue(columnId)).toLowerCase()\n )\n}\n\n// The text filter is more basic (less numeric support)\n// but is much faster\nconst textCaseSensitive: SortingFn<any> = (rowA, rowB, columnId) => {\n return compareBasic(\n toString(rowA.getValue(columnId)),\n toString(rowB.getValue(columnId))\n )\n}\n\nconst datetime: SortingFn<any> = (rowA, rowB, columnId) => {\n const a = rowA.getValue<Date>(columnId)\n const b = rowB.getValue<Date>(columnId)\n\n // Can handle nullish values\n // Use > and < because == (and ===) doesn't work with\n // Date objects (would require calling getTime()).\n return a > b ? 1 : a < b ? -1 : 0\n}\n\nconst basic: SortingFn<any> = (rowA, rowB, columnId) => {\n return compareBasic(rowA.getValue(columnId), rowB.getValue(columnId))\n}\n\n// Utils\n\nfunction compareBasic(a: any, b: any) {\n return a === b ? 0 : a > b ? 1 : -1\n}\n\nfunction toString(a: any) {\n if (typeof a === 'number') {\n if (isNaN(a) || a === Infinity || a === -Infinity) {\n return ''\n }\n return String(a)\n }\n if (typeof a === 'string') {\n return a\n }\n return ''\n}\n\n// Mixed sorting is slow, but very inclusive of many edge cases.\n// It handles numbers, mixed alphanumeric combinations, and even\n// null, undefined, and Infinity\nfunction compareAlphanumeric(aStr: string, bStr: string) {\n // Split on number groups, but keep the delimiter\n // Then remove falsey split values\n const a = aStr.split(reSplitAlphaNumeric).filter(Boolean)\n const b = bStr.split(reSplitAlphaNumeric).filter(Boolean)\n\n // While\n while (a.length && b.length) {\n const aa = a.shift()!\n const bb = b.shift()!\n\n const an = parseInt(aa, 10)\n const bn = parseInt(bb, 10)\n\n const combo = [an, bn].sort()\n\n // Both are string\n if (isNaN(combo[0]!)) {\n if (aa > bb) {\n return 1\n }\n if (bb > aa) {\n return -1\n }\n continue\n }\n\n // One is a string, one is a number\n if (isNaN(combo[1]!)) {\n return isNaN(an) ? -1 : 1\n }\n\n // Both are numbers\n if (an > bn) {\n return 1\n }\n if (bn > an) {\n return -1\n }\n }\n\n return a.length - b.length\n}\n\n// Exports\n\nexport const sortingFns = {\n alphanumeric,\n alphanumericCaseSensitive,\n text,\n textCaseSensitive,\n datetime,\n basic,\n}\n\nexport type BuiltInSortingFn = keyof typeof sortingFns\n"],"names":[],"mappings":"AAEO,MAAM,sBAAsB;AAEnC,MAAM,eAA+B,CAAC,MAAM,MAAM,aAAa;AACtD,SAAA;AAAA,IACL,SAAS,KAAK,SAAS,QAAQ,CAAC,EAAE,YAAY;AAAA,IAC9C,SAAS,KAAK,SAAS,QAAQ,CAAC,EAAE,YAAY;AAAA,EAAA;AAElD;AAEA,MAAM,4BAA4C,CAAC,MAAM,MAAM,aAAa;AACnE,SAAA;AAAA,IACL,SAAS,KAAK,SAAS,QAAQ,CAAC;AAAA,IAChC,SAAS,KAAK,SAAS,QAAQ,CAAC;AAAA,EAAA;AAEpC;AAIA,MAAM,OAAuB,CAAC,MAAM,MAAM,aAAa;AAC9C,SAAA;AAAA,IACL,SAAS,KAAK,SAAS,QAAQ,CAAC,EAAE,YAAY;AAAA,IAC9C,SAAS,KAAK,SAAS,QAAQ,CAAC,EAAE,YAAY;AAAA,EAAA;AAElD;AAIA,MAAM,oBAAoC,CAAC,MAAM,MAAM,aAAa;AAC3D,SAAA;AAAA,IACL,SAAS,KAAK,SAAS,QAAQ,CAAC;AAAA,IAChC,SAAS,KAAK,SAAS,QAAQ,CAAC;AAAA,EAAA;AAEpC;AAEA,MAAM,WAA2B,CAAC,MAAM,MAAM,aAAa;AACnD,QAAA,IAAI,KAAK,SAAe,QAAQ;AAChC,QAAA,IAAI,KAAK,SAAe,QAAQ;AAKtC,SAAO,IAAI,IAAI,IAAI,IAAI,IAAI,KAAK;AAClC;AAEA,MAAM,QAAwB,CAAC,MAAM,MAAM,aAAa;AAC/C,SAAA,aAAa,KAAK,SAAS,QAAQ,GAAG,KAAK,SAAS,QAAQ,CAAC;AACtE;AAIA,SAAS,aAAa,GAAQ,GAAQ;AACpC,SAAO,MAAM,IAAI,IAAI,IAAI,IAAI,IAAI;AACnC;AAEA,SAAS,SAAS,GAAQ;AACpB,MAAA,OAAO,MAAM,UAAU;AACzB,QAAI,MAAM,CAAC,KAAK,MAAM,YAAY,MAAM,WAAW;AAC1C,aAAA;AAAA,IACT;AACA,WAAO,OAAO,CAAC;AAAA,EACjB;AACI,MAAA,OAAO,MAAM,UAAU;AAClB,WAAA;AAAA,EACT;AACO,SAAA;AACT;AAKA,SAAS,oBAAoB,MAAc,MAAc;AAGvD,QAAM,IAAI,KAAK,MAAM,mBAAmB,EAAE,OAAO,OAAO;AACxD,QAAM,IAAI,KAAK,MAAM,mBAAmB,EAAE,OAAO,OAAO;AAGjD,SAAA,EAAE,UAAU,EAAE,QAAQ;AACrB,UAAA,KAAK,EAAE;AACP,UAAA,KAAK,EAAE;AAEP,UAAA,KAAK,SAAS,IAAI,EAAE;AACpB,UAAA,KAAK,SAAS,IAAI,EAAE;AAE1B,UAAM,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK;AAG5B,QAAI,MAAM,MAAM,CAAC,CAAE,GAAG;AACpB,UAAI,KAAK,IAAI;AACJ,eAAA;AAAA,MACT;AACA,UAAI,KAAK,IAAI;AACJ,eAAA;AAAA,MACT;AACA;AAAA,IACF;AAGA,QAAI,MAAM,MAAM,CAAC,CAAE,GAAG;AACb,aAAA,MAAM,EAAE,IAAI,KAAK;AAAA,IAC1B;AAGA,QAAI,KAAK,IAAI;AACJ,aAAA;AAAA,IACT;AACA,QAAI,KAAK,IAAI;AACJ,aAAA;AAAA,IACT;AAAA,EACF;AAEO,SAAA,EAAE,SAAS,EAAE;AACtB;AAIO,MAAM,aAAa;AAAA,EACxB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;"}
|
|
@@ -1,23 +1,24 @@
|
|
|
1
|
-
import { CoreOptions, CoreTableState, CoreInstance } from './core/table';
|
|
2
|
-
import { VisibilityInstance, VisibilityTableState, VisibilityColumn as ColumnVisibilityColumn, VisibilityOptions, VisibilityColumnDef, VisibilityRow } from './features/ColumnVisibility';
|
|
3
|
-
import { ColumnOrderColumn, ColumnOrderInstance, ColumnOrderOptions, ColumnOrderTableState } from './features/ColumnOrdering';
|
|
4
|
-
import { ColumnPinningColumn, ColumnPinningColumnDef, ColumnPinningInstance, ColumnPinningOptions, ColumnPinningRow, ColumnPinningTableState } from './features/ColumnPinning';
|
|
5
|
-
import { RowPinningInstance, RowPinningOptions, RowPinningRow, RowPinningTableState } from './features/RowPinning';
|
|
6
|
-
import { CoreHeader, CoreHeaderGroup, HeaderContext, HeadersInstance } from './core/headers';
|
|
7
|
-
import { FacetedColumn, FacetedOptions } from './features/ColumnFaceting';
|
|
8
|
-
import { GlobalFacetingInstance } from './features/GlobalFaceting';
|
|
9
|
-
import { ColumnFiltersColumn, ColumnFiltersColumnDef, ColumnFiltersInstance, ColumnFiltersOptions, ColumnFiltersRow, ColumnFiltersTableState } from './features/ColumnFiltering';
|
|
10
|
-
import { GlobalFilterColumn, GlobalFilterColumnDef, GlobalFilterInstance, GlobalFilterOptions, GlobalFilterTableState } from './features/GlobalFiltering';
|
|
11
|
-
import { SortingColumn, SortingColumnDef, SortingInstance, SortingOptions, SortingTableState } from './features/RowSorting';
|
|
12
|
-
import { GroupingCell, GroupingColumn, GroupingColumnDef, GroupingInstance, GroupingOptions, GroupingRow, GroupingTableState } from './features/ColumnGrouping';
|
|
13
|
-
import { ExpandedInstance, ExpandedOptions, ExpandedTableState, ExpandedRow } from './features/RowExpanding';
|
|
14
|
-
import { ColumnSizingColumn, ColumnSizingColumnDef, ColumnSizingHeader, ColumnSizingInstance, ColumnSizingOptions, ColumnSizingTableState } from './features/ColumnSizing';
|
|
15
|
-
import { PaginationInitialTableState, PaginationInstance, PaginationOptions, PaginationTableState } from './features/RowPagination';
|
|
16
|
-
import { RowSelectionInstance, RowSelectionOptions, RowSelectionRow, RowSelectionTableState } from './features/RowSelection';
|
|
17
|
-
import { CoreRow } from './core/row';
|
|
18
|
-
import { PartialKeys, UnionToIntersection } from './utils';
|
|
19
|
-
import { CellContext, CoreCell } from './core/cell';
|
|
20
|
-
import { CoreColumn } from './core/column';
|
|
1
|
+
import { CoreOptions, CoreTableState, CoreInstance } from './core/table.js';
|
|
2
|
+
import { VisibilityInstance, VisibilityTableState, VisibilityColumn as ColumnVisibilityColumn, VisibilityOptions, VisibilityColumnDef, VisibilityRow } from './features/ColumnVisibility.js';
|
|
3
|
+
import { ColumnOrderColumn, ColumnOrderInstance, ColumnOrderOptions, ColumnOrderTableState } from './features/ColumnOrdering.js';
|
|
4
|
+
import { ColumnPinningColumn, ColumnPinningColumnDef, ColumnPinningInstance, ColumnPinningOptions, ColumnPinningRow, ColumnPinningTableState } from './features/ColumnPinning.js';
|
|
5
|
+
import { RowPinningInstance, RowPinningOptions, RowPinningRow, RowPinningTableState } from './features/RowPinning.js';
|
|
6
|
+
import { CoreHeader, CoreHeaderGroup, HeaderContext, HeadersInstance } from './core/headers.js';
|
|
7
|
+
import { FacetedColumn, FacetedOptions } from './features/ColumnFaceting.js';
|
|
8
|
+
import { GlobalFacetingInstance } from './features/GlobalFaceting.js';
|
|
9
|
+
import { ColumnFiltersColumn, ColumnFiltersColumnDef, ColumnFiltersInstance, ColumnFiltersOptions, ColumnFiltersRow, ColumnFiltersTableState } from './features/ColumnFiltering.js';
|
|
10
|
+
import { GlobalFilterColumn, GlobalFilterColumnDef, GlobalFilterInstance, GlobalFilterOptions, GlobalFilterTableState } from './features/GlobalFiltering.js';
|
|
11
|
+
import { SortingColumn, SortingColumnDef, SortingInstance, SortingOptions, SortingTableState } from './features/RowSorting.js';
|
|
12
|
+
import { GroupingCell, GroupingColumn, GroupingColumnDef, GroupingInstance, GroupingOptions, GroupingRow, GroupingTableState } from './features/ColumnGrouping.js';
|
|
13
|
+
import { ExpandedInstance, ExpandedOptions, ExpandedTableState, ExpandedRow } from './features/RowExpanding.js';
|
|
14
|
+
import { ColumnSizingColumn, ColumnSizingColumnDef, ColumnSizingHeader, ColumnSizingInstance, ColumnSizingOptions, ColumnSizingTableState } from './features/ColumnSizing.js';
|
|
15
|
+
import { PaginationInitialTableState, PaginationInstance, PaginationOptions, PaginationTableState } from './features/RowPagination.js';
|
|
16
|
+
import { RowSelectionInstance, RowSelectionOptions, RowSelectionRow, RowSelectionTableState } from './features/RowSelection.js';
|
|
17
|
+
import { CoreRow } from './core/row.js';
|
|
18
|
+
import { PartialKeys, UnionToIntersection } from './utils.js';
|
|
19
|
+
import { CellContext, CoreCell } from './core/cell.js';
|
|
20
|
+
import { CoreColumn } from './core/column.js';
|
|
21
|
+
|
|
21
22
|
export interface TableFeature<TData extends RowData = any> {
|
|
22
23
|
createCell?: (cell: Cell<TData, unknown>, column: Column<TData>, row: Row<TData>, table: Table<TData>) => void;
|
|
23
24
|
createColumn?: (column: Column<TData, unknown>, table: Table<TData>) => void;
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { createRow } from "../core/row.js";
|
|
2
|
+
function filterRows(rows, filterRowImpl, table) {
|
|
3
|
+
if (table.options.filterFromLeafRows) {
|
|
4
|
+
return filterRowModelFromLeafs(rows, filterRowImpl, table);
|
|
5
|
+
}
|
|
6
|
+
return filterRowModelFromRoot(rows, filterRowImpl, table);
|
|
7
|
+
}
|
|
8
|
+
function filterRowModelFromLeafs(rowsToFilter, filterRow, table) {
|
|
9
|
+
const newFilteredFlatRows = [];
|
|
10
|
+
const newFilteredRowsById = {};
|
|
11
|
+
const maxDepth = table.options.maxLeafRowFilterDepth ?? 100;
|
|
12
|
+
const recurseFilterRows = (rowsToFilter2, depth = 0) => {
|
|
13
|
+
var _a;
|
|
14
|
+
const rows = [];
|
|
15
|
+
for (let i = 0; i < rowsToFilter2.length; i++) {
|
|
16
|
+
let row = rowsToFilter2[i];
|
|
17
|
+
const newRow = createRow(
|
|
18
|
+
table,
|
|
19
|
+
row.id,
|
|
20
|
+
row.original,
|
|
21
|
+
row.index,
|
|
22
|
+
row.depth,
|
|
23
|
+
void 0,
|
|
24
|
+
row.parentId
|
|
25
|
+
);
|
|
26
|
+
newRow.columnFilters = row.columnFilters;
|
|
27
|
+
if (((_a = row.subRows) == null ? void 0 : _a.length) && depth < maxDepth) {
|
|
28
|
+
newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
|
|
29
|
+
row = newRow;
|
|
30
|
+
if (filterRow(row) && !newRow.subRows.length) {
|
|
31
|
+
rows.push(row);
|
|
32
|
+
newFilteredRowsById[row.id] = row;
|
|
33
|
+
newFilteredFlatRows.push(row);
|
|
34
|
+
continue;
|
|
35
|
+
}
|
|
36
|
+
if (filterRow(row) || newRow.subRows.length) {
|
|
37
|
+
rows.push(row);
|
|
38
|
+
newFilteredRowsById[row.id] = row;
|
|
39
|
+
newFilteredFlatRows.push(row);
|
|
40
|
+
continue;
|
|
41
|
+
}
|
|
42
|
+
} else {
|
|
43
|
+
row = newRow;
|
|
44
|
+
if (filterRow(row)) {
|
|
45
|
+
rows.push(row);
|
|
46
|
+
newFilteredRowsById[row.id] = row;
|
|
47
|
+
newFilteredFlatRows.push(row);
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return rows;
|
|
52
|
+
};
|
|
53
|
+
return {
|
|
54
|
+
rows: recurseFilterRows(rowsToFilter),
|
|
55
|
+
flatRows: newFilteredFlatRows,
|
|
56
|
+
rowsById: newFilteredRowsById
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
function filterRowModelFromRoot(rowsToFilter, filterRow, table) {
|
|
60
|
+
const newFilteredFlatRows = [];
|
|
61
|
+
const newFilteredRowsById = {};
|
|
62
|
+
const maxDepth = table.options.maxLeafRowFilterDepth ?? 100;
|
|
63
|
+
const recurseFilterRows = (rowsToFilter2, depth = 0) => {
|
|
64
|
+
var _a;
|
|
65
|
+
const rows = [];
|
|
66
|
+
for (let i = 0; i < rowsToFilter2.length; i++) {
|
|
67
|
+
let row = rowsToFilter2[i];
|
|
68
|
+
const pass = filterRow(row);
|
|
69
|
+
if (pass) {
|
|
70
|
+
if (((_a = row.subRows) == null ? void 0 : _a.length) && depth < maxDepth) {
|
|
71
|
+
const newRow = createRow(
|
|
72
|
+
table,
|
|
73
|
+
row.id,
|
|
74
|
+
row.original,
|
|
75
|
+
row.index,
|
|
76
|
+
row.depth,
|
|
77
|
+
void 0,
|
|
78
|
+
row.parentId
|
|
79
|
+
);
|
|
80
|
+
newRow.subRows = recurseFilterRows(row.subRows, depth + 1);
|
|
81
|
+
row = newRow;
|
|
82
|
+
}
|
|
83
|
+
rows.push(row);
|
|
84
|
+
newFilteredFlatRows.push(row);
|
|
85
|
+
newFilteredRowsById[row.id] = row;
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
return rows;
|
|
89
|
+
};
|
|
90
|
+
return {
|
|
91
|
+
rows: recurseFilterRows(rowsToFilter),
|
|
92
|
+
flatRows: newFilteredFlatRows,
|
|
93
|
+
rowsById: newFilteredRowsById
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
export {
|
|
97
|
+
filterRows
|
|
98
|
+
};
|
|
99
|
+
//# sourceMappingURL=filterRowsUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"filterRowsUtils.js","sources":["../../../src/utils/filterRowsUtils.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Row, RowModel, Table, RowData } from '../types'\n\nexport function filterRows<TData extends RowData>(\n rows: Row<TData>[],\n filterRowImpl: (row: Row<TData>) => any,\n table: Table<TData>\n) {\n if (table.options.filterFromLeafRows) {\n return filterRowModelFromLeafs(rows, filterRowImpl, table)\n }\n\n return filterRowModelFromRoot(rows, filterRowImpl, table)\n}\n\nfunction filterRowModelFromLeafs<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => Row<TData>[],\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n const maxDepth = table.options.maxLeafRowFilterDepth ?? 100\n\n const recurseFilterRows = (rowsToFilter: Row<TData>[], depth = 0) => {\n const rows: Row<TData>[] = []\n\n // Filter from children up first\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i]!\n\n const newRow = createRow(\n table,\n row.id,\n row.original,\n row.index,\n row.depth,\n undefined,\n row.parentId\n )\n newRow.columnFilters = row.columnFilters\n\n if (row.subRows?.length && depth < maxDepth) {\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1)\n row = newRow\n\n if (filterRow(row) && !newRow.subRows.length) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredFlatRows.push(row)\n continue\n }\n\n if (filterRow(row) || newRow.subRows.length) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredFlatRows.push(row)\n continue\n }\n } else {\n row = newRow\n if (filterRow(row)) {\n rows.push(row)\n newFilteredRowsById[row.id] = row\n newFilteredFlatRows.push(row)\n }\n }\n }\n\n return rows\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n\nfunction filterRowModelFromRoot<TData extends RowData>(\n rowsToFilter: Row<TData>[],\n filterRow: (row: Row<TData>) => any,\n table: Table<TData>\n): RowModel<TData> {\n const newFilteredFlatRows: Row<TData>[] = []\n const newFilteredRowsById: Record<string, Row<TData>> = {}\n const maxDepth = table.options.maxLeafRowFilterDepth ?? 100\n\n // Filters top level and nested rows\n const recurseFilterRows = (rowsToFilter: Row<TData>[], depth = 0) => {\n // Filter from parents downward first\n\n const rows: Row<TData>[] = []\n\n // Apply the filter to any subRows\n for (let i = 0; i < rowsToFilter.length; i++) {\n let row = rowsToFilter[i]!\n\n const pass = filterRow(row)\n\n if (pass) {\n if (row.subRows?.length && depth < maxDepth) {\n const newRow = createRow(\n table,\n row.id,\n row.original,\n row.index,\n row.depth,\n undefined,\n row.parentId\n )\n newRow.subRows = recurseFilterRows(row.subRows, depth + 1)\n row = newRow\n }\n\n rows.push(row)\n newFilteredFlatRows.push(row)\n newFilteredRowsById[row.id] = row\n }\n }\n\n return rows\n }\n\n return {\n rows: recurseFilterRows(rowsToFilter),\n flatRows: newFilteredFlatRows,\n rowsById: newFilteredRowsById,\n }\n}\n"],"names":["rowsToFilter"],"mappings":";AAGgB,SAAA,WACd,MACA,eACA,OACA;AACI,MAAA,MAAM,QAAQ,oBAAoB;AAC7B,WAAA,wBAAwB,MAAM,eAAe,KAAK;AAAA,EAC3D;AAEO,SAAA,uBAAuB,MAAM,eAAe,KAAK;AAC1D;AAEA,SAAS,wBACP,cACA,WACA,OACiB;AACjB,QAAM,sBAAoC,CAAA;AAC1C,QAAM,sBAAkD,CAAA;AAClD,QAAA,WAAW,MAAM,QAAQ,yBAAyB;AAExD,QAAM,oBAAoB,CAACA,eAA4B,QAAQ,MAAM;;AACnE,UAAM,OAAqB,CAAA;AAG3B,aAAS,IAAI,GAAG,IAAIA,cAAa,QAAQ,KAAK;AACxC,UAAA,MAAMA,cAAa,CAAC;AAExB,YAAM,SAAS;AAAA,QACb;AAAA,QACA,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ,IAAI;AAAA,QACJ;AAAA,QACA,IAAI;AAAA,MAAA;AAEN,aAAO,gBAAgB,IAAI;AAE3B,YAAI,SAAI,YAAJ,mBAAa,WAAU,QAAQ,UAAU;AAC3C,eAAO,UAAU,kBAAkB,IAAI,SAAS,QAAQ,CAAC;AACnD,cAAA;AAEN,YAAI,UAAU,GAAG,KAAK,CAAC,OAAO,QAAQ,QAAQ;AAC5C,eAAK,KAAK,GAAG;AACO,8BAAA,IAAI,EAAE,IAAI;AAC9B,8BAAoB,KAAK,GAAG;AAC5B;AAAA,QACF;AAEA,YAAI,UAAU,GAAG,KAAK,OAAO,QAAQ,QAAQ;AAC3C,eAAK,KAAK,GAAG;AACO,8BAAA,IAAI,EAAE,IAAI;AAC9B,8BAAoB,KAAK,GAAG;AAC5B;AAAA,QACF;AAAA,MAAA,OACK;AACC,cAAA;AACF,YAAA,UAAU,GAAG,GAAG;AAClB,eAAK,KAAK,GAAG;AACO,8BAAA,IAAI,EAAE,IAAI;AAC9B,8BAAoB,KAAK,GAAG;AAAA,QAC9B;AAAA,MACF;AAAA,IACF;AAEO,WAAA;AAAA,EAAA;AAGF,SAAA;AAAA,IACL,MAAM,kBAAkB,YAAY;AAAA,IACpC,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAEd;AAEA,SAAS,uBACP,cACA,WACA,OACiB;AACjB,QAAM,sBAAoC,CAAA;AAC1C,QAAM,sBAAkD,CAAA;AAClD,QAAA,WAAW,MAAM,QAAQ,yBAAyB;AAGxD,QAAM,oBAAoB,CAACA,eAA4B,QAAQ,MAAM;;AAGnE,UAAM,OAAqB,CAAA;AAG3B,aAAS,IAAI,GAAG,IAAIA,cAAa,QAAQ,KAAK;AACxC,UAAA,MAAMA,cAAa,CAAC;AAElB,YAAA,OAAO,UAAU,GAAG;AAE1B,UAAI,MAAM;AACR,cAAI,SAAI,YAAJ,mBAAa,WAAU,QAAQ,UAAU;AAC3C,gBAAM,SAAS;AAAA,YACb;AAAA,YACA,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ,IAAI;AAAA,YACJ;AAAA,YACA,IAAI;AAAA,UAAA;AAEN,iBAAO,UAAU,kBAAkB,IAAI,SAAS,QAAQ,CAAC;AACnD,gBAAA;AAAA,QACR;AAEA,aAAK,KAAK,GAAG;AACb,4BAAoB,KAAK,GAAG;AACR,4BAAA,IAAI,EAAE,IAAI;AAAA,MAChC;AAAA,IACF;AAEO,WAAA;AAAA,EAAA;AAGF,SAAA;AAAA,IACL,MAAM,kBAAkB,YAAY;AAAA,IACpC,UAAU;AAAA,IACV,UAAU;AAAA,EAAA;AAEd;"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { createRow } from "../core/row.js";
|
|
2
|
+
import { memo, getMemoOptions } from "../utils.js";
|
|
3
|
+
function getCoreRowModel() {
|
|
4
|
+
return (table) => memo(
|
|
5
|
+
() => [table.options.data],
|
|
6
|
+
(data) => {
|
|
7
|
+
const rowModel = {
|
|
8
|
+
rows: [],
|
|
9
|
+
flatRows: [],
|
|
10
|
+
rowsById: {}
|
|
11
|
+
};
|
|
12
|
+
const accessRows = (originalRows, depth = 0, parentRow) => {
|
|
13
|
+
var _a;
|
|
14
|
+
const rows = [];
|
|
15
|
+
for (let i = 0; i < originalRows.length; i++) {
|
|
16
|
+
const row = createRow(
|
|
17
|
+
table,
|
|
18
|
+
table._getRowId(originalRows[i], i, parentRow),
|
|
19
|
+
originalRows[i],
|
|
20
|
+
i,
|
|
21
|
+
depth,
|
|
22
|
+
void 0,
|
|
23
|
+
parentRow == null ? void 0 : parentRow.id
|
|
24
|
+
);
|
|
25
|
+
rowModel.flatRows.push(row);
|
|
26
|
+
rowModel.rowsById[row.id] = row;
|
|
27
|
+
rows.push(row);
|
|
28
|
+
if (table.options.getSubRows) {
|
|
29
|
+
row.originalSubRows = table.options.getSubRows(
|
|
30
|
+
originalRows[i],
|
|
31
|
+
i
|
|
32
|
+
);
|
|
33
|
+
if ((_a = row.originalSubRows) == null ? void 0 : _a.length) {
|
|
34
|
+
row.subRows = accessRows(row.originalSubRows, depth + 1, row);
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return rows;
|
|
39
|
+
};
|
|
40
|
+
rowModel.rows = accessRows(data);
|
|
41
|
+
return rowModel;
|
|
42
|
+
},
|
|
43
|
+
getMemoOptions(
|
|
44
|
+
table.options,
|
|
45
|
+
"debugTable",
|
|
46
|
+
"getRowModel",
|
|
47
|
+
() => table._autoResetPageIndex()
|
|
48
|
+
)
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
export {
|
|
52
|
+
getCoreRowModel
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=getCoreRowModel.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Table, Row, RowModel, RowData } from '../types'\nimport { getMemoOptions, 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 parentRow?: 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, parentRow),\n originalRows[i]!,\n i,\n depth,\n undefined,\n parentRow?.id\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 getMemoOptions(table.options, 'debugTable', 'getRowModel', () =>\n table._autoResetPageIndex()\n )\n )\n}\n"],"names":[
|
|
1
|
+
{"version":3,"file":"getCoreRowModel.js","sources":["../../../src/utils/getCoreRowModel.ts"],"sourcesContent":["import { createRow } from '../core/row'\nimport { Table, Row, RowModel, RowData } from '../types'\nimport { getMemoOptions, 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 parentRow?: 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, parentRow),\n originalRows[i]!,\n i,\n depth,\n undefined,\n parentRow?.id\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 getMemoOptions(table.options, 'debugTable', 'getRowModel', () =>\n table._autoResetPageIndex()\n )\n )\n}\n"],"names":[],"mappings":";;AAIO,SAAS,kBAEW;AACzB,SAAO,CACL,UAAA;AAAA,IACE,MAAM,CAAC,MAAM,QAAQ,IAAI;AAAA,IACzB,CACE,SAKG;AACH,YAAM,WAA4B;AAAA,QAChC,MAAM,CAAC;AAAA,QACP,UAAU,CAAC;AAAA,QACX,UAAU,CAAC;AAAA,MAAA;AAGb,YAAM,aAAa,CACjB,cACA,QAAQ,GACR,cACiB;;AACjB,cAAM,OAAO,CAAA;AAEb,iBAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAS5C,gBAAM,MAAM;AAAA,YACV;AAAA,YACA,MAAM,UAAU,aAAa,CAAC,GAAI,GAAG,SAAS;AAAA,YAC9C,aAAa,CAAC;AAAA,YACd;AAAA,YACA;AAAA,YACA;AAAA,YACA,uCAAW;AAAA,UAAA;AAIJ,mBAAA,SAAS,KAAK,GAAG;AAEjB,mBAAA,SAAS,IAAI,EAAE,IAAI;AAE5B,eAAK,KAAK,GAAG;AAGT,cAAA,MAAM,QAAQ,YAAY;AACxB,gBAAA,kBAAkB,MAAM,QAAQ;AAAA,cAClC,aAAa,CAAC;AAAA,cACd;AAAA,YAAA;AAIE,iBAAA,SAAI,oBAAJ,mBAAqB,QAAQ;AAC/B,kBAAI,UAAU,WAAW,IAAI,iBAAiB,QAAQ,GAAG,GAAG;AAAA,YAC9D;AAAA,UACF;AAAA,QACF;AAEO,eAAA;AAAA,MAAA;AAGA,eAAA,OAAO,WAAW,IAAI;AAExB,aAAA;AAAA,IACT;AAAA,IACA;AAAA,MAAe,MAAM;AAAA,MAAS;AAAA,MAAc;AAAA,MAAe,MACzD,MAAM,oBAAoB;AAAA,IAC5B;AAAA,EAAA;AAEN;"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { Table, Row, RowModel, RowData } from '../types';
|
|
2
|
+
|
|
2
3
|
export declare function getExpandedRowModel<TData extends RowData>(): (table: Table<TData>) => () => RowModel<TData>;
|
|
3
4
|
export declare function expandRows<TData extends RowData>(rowModel: RowModel<TData>): {
|
|
4
5
|
rows: Row<TData>[];
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { memo, getMemoOptions } from "../utils.js";
|
|
2
|
+
function getExpandedRowModel() {
|
|
3
|
+
return (table) => memo(
|
|
4
|
+
() => [
|
|
5
|
+
table.getState().expanded,
|
|
6
|
+
table.getPreExpandedRowModel(),
|
|
7
|
+
table.options.paginateExpandedRows
|
|
8
|
+
],
|
|
9
|
+
(expanded, rowModel, paginateExpandedRows) => {
|
|
10
|
+
if (!rowModel.rows.length || expanded !== true && !Object.keys(expanded ?? {}).length) {
|
|
11
|
+
return rowModel;
|
|
12
|
+
}
|
|
13
|
+
if (!paginateExpandedRows) {
|
|
14
|
+
return rowModel;
|
|
15
|
+
}
|
|
16
|
+
return expandRows(rowModel);
|
|
17
|
+
},
|
|
18
|
+
getMemoOptions(table.options, "debugTable", "getExpandedRowModel")
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
function expandRows(rowModel) {
|
|
22
|
+
const expandedRows = [];
|
|
23
|
+
const handleRow = (row) => {
|
|
24
|
+
var _a;
|
|
25
|
+
expandedRows.push(row);
|
|
26
|
+
if (((_a = row.subRows) == null ? void 0 : _a.length) && row.getIsExpanded()) {
|
|
27
|
+
row.subRows.forEach(handleRow);
|
|
28
|
+
}
|
|
29
|
+
};
|
|
30
|
+
rowModel.rows.forEach(handleRow);
|
|
31
|
+
return {
|
|
32
|
+
rows: expandedRows,
|
|
33
|
+
flatRows: rowModel.flatRows,
|
|
34
|
+
rowsById: rowModel.rowsById
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
export {
|
|
38
|
+
expandRows,
|
|
39
|
+
getExpandedRowModel
|
|
40
|
+
};
|
|
41
|
+
//# sourceMappingURL=getExpandedRowModel.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getExpandedRowModel.js","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":[],"mappings":";AAGO,SAAS,sBAEW;AACzB,SAAO,CACL,UAAA;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,IACA,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,36 @@
|
|
|
1
|
+
import { memo, getMemoOptions } from "../utils.js";
|
|
2
|
+
function getFacetedMinMaxValues() {
|
|
3
|
+
return (table, columnId) => memo(
|
|
4
|
+
() => {
|
|
5
|
+
var _a;
|
|
6
|
+
return [(_a = table.getColumn(columnId)) == null ? void 0 : _a.getFacetedRowModel()];
|
|
7
|
+
},
|
|
8
|
+
(facetedRowModel) => {
|
|
9
|
+
var _a;
|
|
10
|
+
if (!facetedRowModel)
|
|
11
|
+
return void 0;
|
|
12
|
+
const firstValue = (_a = facetedRowModel.flatRows[0]) == null ? void 0 : _a.getUniqueValues(columnId);
|
|
13
|
+
if (typeof firstValue === "undefined") {
|
|
14
|
+
return void 0;
|
|
15
|
+
}
|
|
16
|
+
let facetedMinMaxValues = [firstValue, firstValue];
|
|
17
|
+
for (let i = 0; i < facetedRowModel.flatRows.length; i++) {
|
|
18
|
+
const values = facetedRowModel.flatRows[i].getUniqueValues(columnId);
|
|
19
|
+
for (let j = 0; j < values.length; j++) {
|
|
20
|
+
const value = values[j];
|
|
21
|
+
if (value < facetedMinMaxValues[0]) {
|
|
22
|
+
facetedMinMaxValues[0] = value;
|
|
23
|
+
} else if (value > facetedMinMaxValues[1]) {
|
|
24
|
+
facetedMinMaxValues[1] = value;
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
return facetedMinMaxValues;
|
|
29
|
+
},
|
|
30
|
+
getMemoOptions(table.options, "debugTable", "getFacetedMinMaxValues")
|
|
31
|
+
);
|
|
32
|
+
}
|
|
33
|
+
export {
|
|
34
|
+
getFacetedMinMaxValues
|
|
35
|
+
};
|
|
36
|
+
//# sourceMappingURL=getFacetedMinMaxValues.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getFacetedMinMaxValues.js","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":[],"mappings":";AAGO,SAAS,yBAGwB;AAC/B,SAAA,CAAC,OAAO,aACb;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,IACA,eAAe,MAAM,SAAS,cAAc,wBAAwB;AAAA,EAAA;AAE1E;"}
|