@tanstack/table-core 8.16.0 → 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.
Files changed (261) hide show
  1. package/dist/cjs/aggregationFns.cjs +98 -0
  2. package/dist/cjs/aggregationFns.cjs.map +1 -0
  3. package/dist/cjs/aggregationFns.d.cts +14 -0
  4. package/dist/cjs/columnHelper.cjs +19 -0
  5. package/dist/cjs/columnHelper.cjs.map +1 -0
  6. package/dist/cjs/columnHelper.d.cts +9 -0
  7. package/dist/cjs/core/cell.cjs +38 -0
  8. package/dist/cjs/core/cell.cjs.map +1 -0
  9. package/dist/cjs/core/cell.d.cts +50 -0
  10. package/dist/cjs/core/column.cjs +81 -0
  11. package/dist/cjs/core/column.cjs.map +1 -0
  12. package/dist/cjs/core/column.d.cts +56 -0
  13. package/dist/cjs/core/headers.cjs +310 -0
  14. package/dist/cjs/core/headers.cjs.map +1 -0
  15. package/dist/cjs/core/headers.d.cts +195 -0
  16. package/dist/cjs/core/row.cjs +93 -0
  17. package/dist/cjs/core/row.cjs.map +1 -0
  18. package/dist/cjs/core/row.d.cts +92 -0
  19. package/dist/cjs/core/table.cjs +228 -0
  20. package/dist/cjs/core/table.cjs.map +1 -0
  21. package/dist/cjs/core/table.d.cts +221 -0
  22. package/dist/cjs/features/ColumnFaceting.cjs +29 -0
  23. package/dist/cjs/features/ColumnFaceting.cjs.map +1 -0
  24. package/dist/cjs/features/ColumnFaceting.d.cts +35 -0
  25. package/dist/cjs/features/ColumnFiltering.cjs +137 -0
  26. package/dist/cjs/features/ColumnFiltering.cjs.map +1 -0
  27. package/dist/cjs/features/ColumnFiltering.d.cts +195 -0
  28. package/dist/cjs/features/ColumnGrouping.cjs +134 -0
  29. package/dist/cjs/features/ColumnGrouping.cjs.map +1 -0
  30. package/dist/cjs/features/ColumnGrouping.d.cts +202 -0
  31. package/dist/cjs/features/ColumnOrdering.cjs +76 -0
  32. package/dist/cjs/features/ColumnOrdering.cjs.map +1 -0
  33. package/dist/cjs/features/ColumnOrdering.d.cts +54 -0
  34. package/dist/cjs/features/ColumnPinning.cjs +145 -0
  35. package/dist/cjs/features/ColumnPinning.cjs.map +1 -0
  36. package/dist/cjs/features/ColumnPinning.d.cts +127 -0
  37. package/dist/cjs/features/ColumnSizing.cjs +308 -0
  38. package/dist/cjs/features/ColumnSizing.cjs.map +1 -0
  39. package/dist/cjs/features/ColumnSizing.d.cts +194 -0
  40. package/dist/cjs/features/ColumnVisibility.cjs +144 -0
  41. package/dist/cjs/features/ColumnVisibility.cjs.map +1 -0
  42. package/dist/cjs/features/ColumnVisibility.d.cts +130 -0
  43. package/dist/cjs/features/GlobalFaceting.cjs +29 -0
  44. package/dist/cjs/features/GlobalFaceting.cjs.map +1 -0
  45. package/dist/cjs/features/GlobalFaceting.d.cts +27 -0
  46. package/dist/cjs/features/GlobalFiltering.cjs +50 -0
  47. package/dist/cjs/features/GlobalFiltering.cjs.map +1 -0
  48. package/dist/cjs/features/GlobalFiltering.d.cts +80 -0
  49. package/dist/cjs/features/RowExpanding.cjs +154 -0
  50. package/dist/cjs/features/RowExpanding.cjs.map +1 -0
  51. package/dist/cjs/features/RowExpanding.d.cts +155 -0
  52. package/dist/cjs/features/RowPagination.cjs +162 -0
  53. package/dist/cjs/features/RowPagination.cjs.map +1 -0
  54. package/dist/cjs/features/RowPagination.d.cts +166 -0
  55. package/dist/cjs/features/RowPinning.cjs +133 -0
  56. package/dist/cjs/features/RowPinning.cjs.map +1 -0
  57. package/dist/cjs/features/RowPinning.d.cts +99 -0
  58. package/dist/cjs/features/RowSelection.cjs +298 -0
  59. package/dist/cjs/features/RowSelection.cjs.map +1 -0
  60. package/dist/cjs/features/RowSelection.d.cts +177 -0
  61. package/dist/cjs/features/RowSorting.cjs +201 -0
  62. package/dist/cjs/features/RowSorting.cjs.map +1 -0
  63. package/dist/cjs/features/RowSorting.d.cts +238 -0
  64. package/dist/cjs/filterFns.cjs +88 -0
  65. package/dist/cjs/filterFns.cjs.map +1 -0
  66. package/dist/cjs/filterFns.d.cts +14 -0
  67. package/{build/lib/index.js → dist/cjs/index.cjs} +36 -49
  68. package/dist/cjs/index.cjs.map +1 -0
  69. package/dist/cjs/index.d.cts +34 -0
  70. package/{build/lib/sortingFns.js → dist/cjs/sortingFns.cjs} +23 -52
  71. package/dist/cjs/sortingFns.cjs.map +1 -0
  72. package/dist/cjs/sortingFns.d.cts +12 -0
  73. package/dist/cjs/types.d.cts +120 -0
  74. package/{build/lib/utils/filterRowsUtils.js → dist/cjs/utils/filterRowsUtils.cjs} +34 -46
  75. package/dist/cjs/utils/filterRowsUtils.cjs.map +1 -0
  76. package/dist/cjs/utils/filterRowsUtils.d.cts +3 -0
  77. package/dist/cjs/utils/getCoreRowModel.cjs +54 -0
  78. package/dist/cjs/utils/getCoreRowModel.cjs.map +1 -0
  79. package/dist/cjs/utils/getCoreRowModel.d.cts +3 -0
  80. package/dist/cjs/utils/getExpandedRowModel.cjs +41 -0
  81. package/dist/cjs/utils/getExpandedRowModel.cjs.map +1 -0
  82. package/dist/cjs/utils/getExpandedRowModel.d.cts +8 -0
  83. package/dist/cjs/utils/getFacetedMinMaxValues.cjs +36 -0
  84. package/dist/cjs/utils/getFacetedMinMaxValues.cjs.map +1 -0
  85. package/dist/cjs/utils/getFacetedMinMaxValues.d.cts +3 -0
  86. package/dist/cjs/utils/getFacetedRowModel.cjs +35 -0
  87. package/dist/cjs/utils/getFacetedRowModel.cjs.map +1 -0
  88. package/dist/cjs/utils/getFacetedRowModel.d.cts +3 -0
  89. package/dist/cjs/utils/getFacetedUniqueValues.cjs +38 -0
  90. package/dist/cjs/utils/getFacetedUniqueValues.cjs.map +1 -0
  91. package/dist/cjs/utils/getFacetedUniqueValues.d.cts +3 -0
  92. package/dist/cjs/utils/getFilteredRowModel.cjs +116 -0
  93. package/dist/cjs/utils/getFilteredRowModel.cjs.map +1 -0
  94. package/dist/cjs/utils/getFilteredRowModel.d.cts +3 -0
  95. package/dist/cjs/utils/getGroupedRowModel.cjs +118 -0
  96. package/dist/cjs/utils/getGroupedRowModel.cjs.map +1 -0
  97. package/dist/cjs/utils/getGroupedRowModel.d.cts +3 -0
  98. package/dist/cjs/utils/getPaginationRowModel.cjs +49 -0
  99. package/dist/cjs/utils/getPaginationRowModel.cjs.map +1 -0
  100. package/dist/cjs/utils/getPaginationRowModel.d.cts +5 -0
  101. package/dist/cjs/utils/getSortedRowModel.cjs +91 -0
  102. package/dist/cjs/utils/getSortedRowModel.cjs.map +1 -0
  103. package/dist/cjs/utils/getSortedRowModel.d.cts +3 -0
  104. package/{build/lib/utils.js → dist/cjs/utils.cjs} +30 -41
  105. package/dist/cjs/utils.cjs.map +1 -0
  106. package/dist/cjs/utils.d.cts +39 -0
  107. package/{build/lib → dist/esm}/aggregationFns.d.ts +2 -1
  108. package/dist/esm/aggregationFns.js +98 -0
  109. package/dist/esm/aggregationFns.js.map +1 -0
  110. package/{build/lib → dist/esm}/columnHelper.d.ts +3 -2
  111. package/dist/esm/columnHelper.js +19 -0
  112. package/{build/lib → dist/esm}/columnHelper.js.map +1 -1
  113. package/{build/lib → dist/esm}/core/cell.d.ts +1 -0
  114. package/dist/esm/core/cell.js +38 -0
  115. package/{build/lib → dist/esm}/core/cell.js.map +1 -1
  116. package/{build/lib → dist/esm}/core/column.d.ts +1 -0
  117. package/dist/esm/core/column.js +81 -0
  118. package/{build/lib → dist/esm}/core/column.js.map +1 -1
  119. package/{build/lib → dist/esm}/core/headers.d.ts +1 -0
  120. package/dist/esm/core/headers.js +310 -0
  121. package/{build/lib → dist/esm}/core/headers.js.map +1 -1
  122. package/{build/lib → dist/esm}/core/row.d.ts +1 -0
  123. package/dist/esm/core/row.js +93 -0
  124. package/{build/lib → dist/esm}/core/row.js.map +1 -1
  125. package/{build/lib → dist/esm}/core/table.d.ts +1 -0
  126. package/dist/esm/core/table.js +228 -0
  127. package/{build/lib → dist/esm}/core/table.js.map +1 -1
  128. package/{build/lib → dist/esm}/features/ColumnFaceting.d.ts +1 -0
  129. package/{build/lib → dist/esm}/features/ColumnFaceting.js +5 -18
  130. package/{build/lib → dist/esm}/features/ColumnFaceting.js.map +1 -1
  131. package/{build/lib → dist/esm}/features/ColumnFiltering.d.ts +1 -0
  132. package/dist/esm/features/ColumnFiltering.js +137 -0
  133. package/{build/lib → dist/esm}/features/ColumnFiltering.js.map +1 -1
  134. package/{build/lib → dist/esm}/features/ColumnGrouping.d.ts +1 -0
  135. package/dist/esm/features/ColumnGrouping.js +134 -0
  136. package/{build/lib → dist/esm}/features/ColumnGrouping.js.map +1 -1
  137. package/{build/lib → dist/esm}/features/ColumnOrdering.d.ts +1 -0
  138. package/dist/esm/features/ColumnOrdering.js +76 -0
  139. package/{build/lib → dist/esm}/features/ColumnOrdering.js.map +1 -1
  140. package/{build/lib → dist/esm}/features/ColumnPinning.d.ts +1 -0
  141. package/dist/esm/features/ColumnPinning.js +145 -0
  142. package/{build/lib → dist/esm}/features/ColumnPinning.js.map +1 -1
  143. package/{build/lib → dist/esm}/features/ColumnSizing.d.ts +2 -1
  144. package/dist/esm/features/ColumnSizing.js +308 -0
  145. package/{build/lib → dist/esm}/features/ColumnSizing.js.map +1 -1
  146. package/{build/lib → dist/esm}/features/ColumnVisibility.d.ts +1 -0
  147. package/dist/esm/features/ColumnVisibility.js +144 -0
  148. package/{build/lib → dist/esm}/features/ColumnVisibility.js.map +1 -1
  149. package/{build/lib → dist/esm}/features/GlobalFaceting.d.ts +1 -0
  150. package/{build/lib → dist/esm}/features/GlobalFaceting.js +8 -21
  151. package/{build/lib → dist/esm}/features/GlobalFaceting.js.map +1 -1
  152. package/{build/lib → dist/esm}/features/GlobalFiltering.d.ts +1 -0
  153. package/dist/esm/features/GlobalFiltering.js +50 -0
  154. package/{build/lib → dist/esm}/features/GlobalFiltering.js.map +1 -1
  155. package/{build/lib → dist/esm}/features/RowExpanding.d.ts +1 -0
  156. package/{build/lib → dist/esm}/features/RowExpanding.js +40 -59
  157. package/{build/lib → dist/esm}/features/RowExpanding.js.map +1 -1
  158. package/{build/lib → dist/esm}/features/RowPagination.d.ts +1 -0
  159. package/dist/esm/features/RowPagination.js +162 -0
  160. package/{build/lib → dist/esm}/features/RowPagination.js.map +1 -1
  161. package/{build/lib → dist/esm}/features/RowPinning.d.ts +1 -0
  162. package/dist/esm/features/RowPinning.js +133 -0
  163. package/{build/lib → dist/esm}/features/RowPinning.js.map +1 -1
  164. package/{build/lib → dist/esm}/features/RowSelection.d.ts +1 -0
  165. package/dist/esm/features/RowSelection.js +298 -0
  166. package/{build/lib → dist/esm}/features/RowSelection.js.map +1 -1
  167. package/{build/lib → dist/esm}/features/RowSorting.d.ts +1 -0
  168. package/dist/esm/features/RowSorting.js +201 -0
  169. package/{build/lib → dist/esm}/features/RowSorting.js.map +1 -1
  170. package/{build/lib → dist/esm}/filterFns.d.ts +2 -1
  171. package/dist/esm/filterFns.js +88 -0
  172. package/dist/esm/filterFns.js.map +1 -0
  173. package/dist/esm/index.d.ts +34 -0
  174. package/dist/esm/index.js +87 -0
  175. package/dist/esm/index.js.map +1 -0
  176. package/{build/lib → dist/esm}/sortingFns.d.ts +2 -1
  177. package/dist/esm/sortingFns.js +91 -0
  178. package/dist/esm/sortingFns.js.map +1 -0
  179. package/{build/lib → dist/esm}/types.d.ts +21 -20
  180. package/{build/lib → dist/esm}/utils/filterRowsUtils.d.ts +1 -0
  181. package/dist/esm/utils/filterRowsUtils.js +99 -0
  182. package/dist/esm/utils/filterRowsUtils.js.map +1 -0
  183. package/{build/lib → dist/esm}/utils/getCoreRowModel.d.ts +1 -0
  184. package/dist/esm/utils/getCoreRowModel.js +54 -0
  185. package/{build/lib → dist/esm}/utils/getCoreRowModel.js.map +1 -1
  186. package/{build/lib → dist/esm}/utils/getExpandedRowModel.d.ts +1 -0
  187. package/dist/esm/utils/getExpandedRowModel.js +41 -0
  188. package/dist/esm/utils/getExpandedRowModel.js.map +1 -0
  189. package/{build/lib → dist/esm}/utils/getFacetedMinMaxValues.d.ts +1 -0
  190. package/dist/esm/utils/getFacetedMinMaxValues.js +36 -0
  191. package/dist/esm/utils/getFacetedMinMaxValues.js.map +1 -0
  192. package/{build/lib → dist/esm}/utils/getFacetedRowModel.d.ts +1 -0
  193. package/dist/esm/utils/getFacetedRowModel.js +35 -0
  194. package/{build/lib → dist/esm}/utils/getFacetedRowModel.js.map +1 -1
  195. package/{build/lib → dist/esm}/utils/getFacetedUniqueValues.d.ts +1 -0
  196. package/dist/esm/utils/getFacetedUniqueValues.js +38 -0
  197. package/dist/esm/utils/getFacetedUniqueValues.js.map +1 -0
  198. package/{build/lib → dist/esm}/utils/getFilteredRowModel.d.ts +1 -0
  199. package/dist/esm/utils/getFilteredRowModel.js +116 -0
  200. package/dist/esm/utils/getFilteredRowModel.js.map +1 -0
  201. package/{build/lib → dist/esm}/utils/getGroupedRowModel.d.ts +1 -0
  202. package/dist/esm/utils/getGroupedRowModel.js +118 -0
  203. package/{build/lib → dist/esm}/utils/getGroupedRowModel.js.map +1 -1
  204. package/{build/lib → dist/esm}/utils/getPaginationRowModel.d.ts +1 -0
  205. package/dist/esm/utils/getPaginationRowModel.js +49 -0
  206. package/dist/esm/utils/getPaginationRowModel.js.map +1 -0
  207. package/{build/lib → dist/esm}/utils/getSortedRowModel.d.ts +1 -0
  208. package/dist/esm/utils/getSortedRowModel.js +91 -0
  209. package/{build/lib → dist/esm}/utils/getSortedRowModel.js.map +1 -1
  210. package/{build/lib → dist/esm}/utils.d.ts +2 -1
  211. package/dist/esm/utils.js +100 -0
  212. package/{build/lib → dist/esm}/utils.js.map +1 -1
  213. package/package.json +15 -19
  214. package/src/utils/getFilteredRowModel.ts +1 -1
  215. package/build/lib/aggregationFns.js +0 -108
  216. package/build/lib/aggregationFns.js.map +0 -1
  217. package/build/lib/columnHelper.js +0 -71
  218. package/build/lib/core/cell.js +0 -42
  219. package/build/lib/core/column.js +0 -80
  220. package/build/lib/core/headers.js +0 -270
  221. package/build/lib/core/row.js +0 -89
  222. package/build/lib/core/table.js +0 -212
  223. package/build/lib/features/ColumnFiltering.js +0 -151
  224. package/build/lib/features/ColumnGrouping.js +0 -142
  225. package/build/lib/features/ColumnOrdering.js +0 -84
  226. package/build/lib/features/ColumnPinning.js +0 -130
  227. package/build/lib/features/ColumnSizing.js +0 -270
  228. package/build/lib/features/ColumnVisibility.js +0 -99
  229. package/build/lib/features/GlobalFiltering.js +0 -63
  230. package/build/lib/features/RowPagination.js +0 -169
  231. package/build/lib/features/RowPinning.js +0 -145
  232. package/build/lib/features/RowSelection.js +0 -391
  233. package/build/lib/features/RowSorting.js +0 -226
  234. package/build/lib/filterFns.js +0 -96
  235. package/build/lib/filterFns.js.map +0 -1
  236. package/build/lib/index.d.ts +0 -34
  237. package/build/lib/index.esm.js +0 -3522
  238. package/build/lib/index.esm.js.map +0 -1
  239. package/build/lib/index.js.map +0 -1
  240. package/build/lib/index.mjs +0 -3522
  241. package/build/lib/index.mjs.map +0 -1
  242. package/build/lib/sortingFns.js.map +0 -1
  243. package/build/lib/utils/filterRowsUtils.js.map +0 -1
  244. package/build/lib/utils/getCoreRowModel.js +0 -65
  245. package/build/lib/utils/getExpandedRowModel.js +0 -46
  246. package/build/lib/utils/getExpandedRowModel.js.map +0 -1
  247. package/build/lib/utils/getFacetedMinMaxValues.js +0 -43
  248. package/build/lib/utils/getFacetedMinMaxValues.js.map +0 -1
  249. package/build/lib/utils/getFacetedRowModel.js +0 -36
  250. package/build/lib/utils/getFacetedUniqueValues.js +0 -39
  251. package/build/lib/utils/getFacetedUniqueValues.js.map +0 -1
  252. package/build/lib/utils/getFilteredRowModel.js +0 -111
  253. package/build/lib/utils/getFilteredRowModel.js.map +0 -1
  254. package/build/lib/utils/getGroupedRowModel.js +0 -150
  255. package/build/lib/utils/getPaginationRowModel.js +0 -60
  256. package/build/lib/utils/getPaginationRowModel.js.map +0 -1
  257. package/build/lib/utils/getSortedRowModel.js +0 -102
  258. package/build/umd/index.development.js +0 -3578
  259. package/build/umd/index.development.js.map +0 -1
  260. package/build/umd/index.production.js +0 -12
  261. 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -1,4 +1,5 @@
1
- import { SortingFn } from './features/RowSorting';
1
+ import { SortingFn } from './features/RowSorting.js';
2
+
2
3
  export declare const reSplitAlphaNumeric: RegExp;
3
4
  export declare const sortingFns: {
4
5
  alphanumeric: SortingFn<any>;
@@ -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;
@@ -1,2 +1,3 @@
1
1
  import { Row, RowModel, Table, RowData } from '../types';
2
+
2
3
  export declare function filterRows<TData extends RowData>(rows: Row<TData>[], filterRowImpl: (row: Row<TData>) => any, table: Table<TData>): RowModel<TData>;
@@ -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;"}
@@ -1,2 +1,3 @@
1
1
  import { Table, RowModel, RowData } from '../types';
2
+
2
3
  export declare function getCoreRowModel<TData extends RowData>(): (table: Table<TData>) => () => RowModel<TData>;
@@ -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":["getCoreRowModel","table","memo","options","data","rowModel","rows","flatRows","rowsById","accessRows","originalRows","depth","parentRow","i","length","row","createRow","_getRowId","undefined","id","push","getSubRows","_row$originalSubRows","originalSubRows","subRows","getMemoOptions","_autoResetPageIndex"],"mappings":";;;;;;;;;;;;;;;AAIO,SAASA,eAAeA,GAEJ;AACzB,EAAA,OAAOC,KAAK,IACVC,UAAI,CACF,MAAM,CAACD,KAAK,CAACE,OAAO,CAACC,IAAI,CAAC,EAExBA,IAAI,IAKD;AACH,IAAA,MAAMC,QAAyB,GAAG;AAChCC,MAAAA,IAAI,EAAE,EAAE;AACRC,MAAAA,QAAQ,EAAE,EAAE;AACZC,MAAAA,QAAQ,EAAE,EAAC;KACZ,CAAA;IAED,MAAMC,UAAU,GAAG,UACjBC,YAAqB,EACrBC,KAAK,EACLC,SAAsB,EACL;AAAA,MAAA,IAFjBD,KAAK,KAAA,KAAA,CAAA,EAAA;AAALA,QAAAA,KAAK,GAAG,CAAC,CAAA;AAAA,OAAA;MAGT,MAAML,IAAI,GAAG,EAAkB,CAAA;AAE/B,MAAA,KAAK,IAAIO,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGH,YAAY,CAACI,MAAM,EAAED,CAAC,EAAE,EAAE;AAC5C;AACA;AACA;AACA;AACA;AACA;;AAEA;AACA,QAAA,MAAME,KAAG,GAAGC,aAAS,CACnBf,KAAK,EACLA,KAAK,CAACgB,SAAS,CAACP,YAAY,CAACG,CAAC,CAAC,EAAGA,CAAC,EAAED,SAAS,CAAC,EAC/CF,YAAY,CAACG,CAAC,CAAC,EACfA,CAAC,EACDF,KAAK,EACLO,SAAS,EACTN,SAAS,IAAA,IAAA,GAAA,KAAA,CAAA,GAATA,SAAS,CAAEO,EACb,CAAC,CAAA;;AAED;AACAd,QAAAA,QAAQ,CAACE,QAAQ,CAACa,IAAI,CAACL,KAAG,CAAC,CAAA;AAC3B;QACAV,QAAQ,CAACG,QAAQ,CAACO,KAAG,CAACI,EAAE,CAAC,GAAGJ,KAAG,CAAA;AAC/B;AACAT,QAAAA,IAAI,CAACc,IAAI,CAACL,KAAG,CAAC,CAAA;;AAEd;AACA,QAAA,IAAId,KAAK,CAACE,OAAO,CAACkB,UAAU,EAAE;AAAA,UAAA,IAAAC,oBAAA,CAAA;AAC5BP,UAAAA,KAAG,CAACQ,eAAe,GAAGtB,KAAK,CAACE,OAAO,CAACkB,UAAU,CAC5CX,YAAY,CAACG,CAAC,CAAC,EACfA,CACF,CAAC,CAAA;;AAED;UACA,IAAAS,CAAAA,oBAAA,GAAIP,KAAG,CAACQ,eAAe,KAAnBD,IAAAA,IAAAA,oBAAA,CAAqBR,MAAM,EAAE;AAC/BC,YAAAA,KAAG,CAACS,OAAO,GAAGf,UAAU,CAACM,KAAG,CAACQ,eAAe,EAAEZ,KAAK,GAAG,CAAC,EAAEI,KAAG,CAAC,CAAA;AAC/D,WAAA;AACF,SAAA;AACF,OAAA;AAEA,MAAA,OAAOT,IAAI,CAAA;KACZ,CAAA;AAEDD,IAAAA,QAAQ,CAACC,IAAI,GAAGG,UAAU,CAACL,IAAI,CAAC,CAAA;AAEhC,IAAA,OAAOC,QAAQ,CAAA;AACjB,GAAC,EACDoB,oBAAc,CAACxB,KAAK,CAACE,OAAO,EAAE,YAAY,EAAE,aAAa,EAAE,MACzDF,KAAK,CAACyB,mBAAmB,EAC3B,CACF,CAAC,CAAA;AACL;;;;"}
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;"}
@@ -1,2 +1,3 @@
1
1
  import { Table, RowData } from '../types';
2
+
2
3
  export declare function getFacetedMinMaxValues<TData extends RowData>(): (table: Table<TData>, columnId: string) => () => undefined | [number, number];
@@ -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;"}
@@ -1,2 +1,3 @@
1
1
  import { Table, RowModel, RowData } from '../types';
2
+
2
3
  export declare function getFacetedRowModel<TData extends RowData>(): (table: Table<TData>, columnId: string) => () => RowModel<TData>;