@tanstack/table-core 9.0.0-alpha.10 → 9.0.0-alpha.12

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 (570) hide show
  1. package/dist/esm/core/cells/constructCell.d.ts +7 -0
  2. package/dist/esm/core/cells/constructCell.js +21 -0
  3. package/dist/esm/core/cells/constructCell.js.map +1 -0
  4. package/dist/esm/core/cells/coreCellsFeature.d.ts +10 -0
  5. package/dist/esm/core/cells/coreCellsFeature.js +26 -0
  6. package/dist/esm/core/cells/coreCellsFeature.js.map +1 -0
  7. package/dist/esm/core/cells/coreCellsFeature.types.d.ts +52 -0
  8. package/dist/esm/core/cells/coreCellsFeature.utils.d.ts +13 -0
  9. package/dist/esm/core/cells/coreCellsFeature.utils.js +23 -0
  10. package/dist/esm/core/cells/coreCellsFeature.utils.js.map +1 -0
  11. package/dist/esm/core/columns/constructColumn.d.ts +6 -0
  12. package/dist/esm/core/columns/constructColumn.js +60 -0
  13. package/dist/esm/core/columns/constructColumn.js.map +1 -0
  14. package/dist/esm/core/columns/coreColumnsFeature.d.ts +10 -0
  15. package/dist/esm/core/columns/coreColumnsFeature.js +61 -0
  16. package/dist/esm/core/columns/coreColumnsFeature.js.map +1 -0
  17. package/dist/esm/core/columns/coreColumnsFeature.types.d.ts +84 -0
  18. package/dist/esm/core/columns/coreColumnsFeature.utils.d.ts +13 -0
  19. package/dist/esm/core/columns/coreColumnsFeature.utils.js +91 -0
  20. package/dist/esm/core/columns/coreColumnsFeature.utils.js.map +1 -0
  21. package/dist/esm/core/coreFeatures.d.ts +15 -0
  22. package/dist/esm/core/coreFeatures.js +18 -0
  23. package/dist/esm/core/coreFeatures.js.map +1 -0
  24. package/dist/esm/core/headers/buildHeaderGroups.d.ts +6 -0
  25. package/dist/esm/core/headers/buildHeaderGroups.js +99 -0
  26. package/dist/esm/core/headers/buildHeaderGroups.js.map +1 -0
  27. package/dist/esm/core/headers/constructHeader.d.ts +12 -0
  28. package/dist/esm/core/headers/constructHeader.js +28 -0
  29. package/dist/esm/core/headers/constructHeader.js.map +1 -0
  30. package/dist/esm/core/headers/coreHeadersFeature.d.ts +10 -0
  31. package/dist/esm/core/headers/coreHeadersFeature.js +68 -0
  32. package/dist/esm/core/headers/coreHeadersFeature.js.map +1 -0
  33. package/dist/esm/core/headers/coreHeadersFeature.types.d.ts +99 -0
  34. package/dist/esm/core/headers/coreHeadersFeature.utils.d.ts +15 -0
  35. package/dist/esm/core/headers/coreHeadersFeature.utils.js +85 -0
  36. package/dist/esm/core/headers/coreHeadersFeature.utils.js.map +1 -0
  37. package/dist/esm/core/row-models/coreRowModelsFeature.d.ts +10 -0
  38. package/dist/esm/core/row-models/coreRowModelsFeature.js +52 -0
  39. package/dist/esm/core/row-models/coreRowModelsFeature.js.map +1 -0
  40. package/dist/esm/core/row-models/coreRowModelsFeature.types.d.ts +39 -0
  41. package/dist/esm/core/row-models/coreRowModelsFeature.utils.d.ts +16 -0
  42. package/dist/esm/core/row-models/coreRowModelsFeature.utils.js +85 -0
  43. package/dist/esm/core/row-models/coreRowModelsFeature.utils.js.map +1 -0
  44. package/dist/esm/core/row-models/createCoreRowModel.d.ts +5 -0
  45. package/dist/esm/core/row-models/createCoreRowModel.js +54 -0
  46. package/dist/esm/core/row-models/createCoreRowModel.js.map +1 -0
  47. package/dist/esm/core/rows/constructRow.d.ts +5 -0
  48. package/dist/esm/core/rows/constructRow.js +29 -0
  49. package/dist/esm/core/rows/constructRow.js.map +1 -0
  50. package/dist/esm/core/rows/coreRowsFeature.d.ts +10 -0
  51. package/dist/esm/core/rows/coreRowsFeature.js +52 -0
  52. package/dist/esm/core/rows/coreRowsFeature.js.map +1 -0
  53. package/dist/esm/core/rows/coreRowsFeature.types.d.ts +91 -0
  54. package/dist/esm/core/rows/coreRowsFeature.utils.d.ts +15 -0
  55. package/dist/esm/core/rows/coreRowsFeature.utils.js +94 -0
  56. package/dist/esm/core/rows/coreRowsFeature.utils.js.map +1 -0
  57. package/dist/esm/core/table/constructTable.d.ts +9 -0
  58. package/dist/esm/core/table/constructTable.js +62 -0
  59. package/dist/esm/core/table/constructTable.js.map +1 -0
  60. package/dist/esm/core/table/coreTablesFeature.d.ts +10 -0
  61. package/dist/esm/core/table/coreTablesFeature.js +22 -0
  62. package/dist/esm/core/table/coreTablesFeature.js.map +1 -0
  63. package/dist/esm/core/table/coreTablesFeature.types.d.ts +105 -0
  64. package/dist/esm/core/table/coreTablesFeature.utils.d.ts +7 -0
  65. package/dist/esm/core/table/coreTablesFeature.utils.js +23 -0
  66. package/dist/esm/core/table/coreTablesFeature.utils.js.map +1 -0
  67. package/dist/esm/features/column-faceting/columnFacetingFeature.d.ts +10 -0
  68. package/dist/esm/features/column-faceting/columnFacetingFeature.js +80 -0
  69. package/dist/esm/features/column-faceting/columnFacetingFeature.js.map +1 -0
  70. package/dist/esm/features/column-faceting/columnFacetingFeature.types.d.ts +68 -0
  71. package/dist/esm/features/column-faceting/columnFacetingFeature.utils.d.ts +11 -0
  72. package/dist/esm/features/column-faceting/columnFacetingFeature.utils.js +33 -0
  73. package/dist/esm/features/column-faceting/columnFacetingFeature.utils.js.map +1 -0
  74. package/dist/esm/features/column-faceting/createFacetedMinMaxValues.d.ts +4 -0
  75. package/dist/esm/features/column-faceting/createFacetedMinMaxValues.js +41 -0
  76. package/dist/esm/features/column-faceting/createFacetedMinMaxValues.js.map +1 -0
  77. package/dist/esm/features/column-faceting/createFacetedRowModel.d.ts +5 -0
  78. package/dist/esm/features/column-faceting/createFacetedRowModel.js +47 -0
  79. package/dist/esm/features/column-faceting/createFacetedRowModel.js.map +1 -0
  80. package/dist/esm/features/column-faceting/createFacetedUniqueValues.d.ts +4 -0
  81. package/dist/esm/features/column-faceting/createFacetedUniqueValues.js +46 -0
  82. package/dist/esm/features/column-faceting/createFacetedUniqueValues.js.map +1 -0
  83. package/dist/esm/features/column-filtering/columnFilteringFeature.d.ts +11 -0
  84. package/dist/esm/features/column-filtering/columnFilteringFeature.js +69 -0
  85. package/dist/esm/features/column-filtering/columnFilteringFeature.js.map +1 -0
  86. package/dist/esm/features/column-filtering/columnFilteringFeature.types.d.ts +145 -0
  87. package/dist/esm/features/column-filtering/columnFilteringFeature.utils.d.ts +16 -0
  88. package/dist/esm/features/column-filtering/columnFilteringFeature.utils.js +118 -0
  89. package/dist/esm/features/column-filtering/columnFilteringFeature.utils.js.map +1 -0
  90. package/dist/esm/features/column-filtering/createFilteredRowModel.d.ts +6 -0
  91. package/dist/esm/features/column-filtering/createFilteredRowModel.js +110 -0
  92. package/dist/esm/features/column-filtering/createFilteredRowModel.js.map +1 -0
  93. package/dist/esm/features/column-filtering/filterRowsUtils.d.ts +6 -0
  94. package/dist/esm/{utils → features/column-filtering}/filterRowsUtils.js +15 -19
  95. package/dist/esm/features/column-filtering/filterRowsUtils.js.map +1 -0
  96. package/dist/esm/features/column-grouping/columnGroupingFeature.d.ts +10 -0
  97. package/dist/esm/features/column-grouping/columnGroupingFeature.js +91 -0
  98. package/dist/esm/features/column-grouping/columnGroupingFeature.js.map +1 -0
  99. package/dist/esm/features/column-grouping/columnGroupingFeature.types.d.ts +153 -0
  100. package/dist/esm/features/column-grouping/columnGroupingFeature.utils.d.ts +22 -0
  101. package/dist/esm/features/column-grouping/columnGroupingFeature.utils.js +99 -0
  102. package/dist/esm/features/column-grouping/columnGroupingFeature.utils.js.map +1 -0
  103. package/dist/esm/features/column-grouping/createGroupedRowModel.d.ts +6 -0
  104. package/dist/esm/features/column-grouping/createGroupedRowModel.js +144 -0
  105. package/dist/esm/features/column-grouping/createGroupedRowModel.js.map +1 -0
  106. package/dist/esm/features/column-ordering/columnOrderingFeature.d.ts +10 -0
  107. package/dist/esm/features/column-ordering/columnOrderingFeature.js +60 -0
  108. package/dist/esm/features/column-ordering/columnOrderingFeature.js.map +1 -0
  109. package/dist/{cjs/features/ColumnOrdering.d.cts → esm/features/column-ordering/columnOrderingFeature.types.d.ts} +8 -22
  110. package/dist/esm/features/column-ordering/columnOrderingFeature.utils.d.ts +14 -0
  111. package/dist/esm/features/column-ordering/columnOrderingFeature.utils.js +72 -0
  112. package/dist/esm/features/column-ordering/columnOrderingFeature.utils.js.map +1 -0
  113. package/dist/esm/features/column-pinning/columnPinningFeature.d.ts +10 -0
  114. package/dist/esm/features/column-pinning/columnPinningFeature.js +260 -0
  115. package/dist/esm/features/column-pinning/columnPinningFeature.js.map +1 -0
  116. package/dist/esm/features/column-pinning/columnPinningFeature.types.d.ts +157 -0
  117. package/dist/esm/features/column-pinning/columnPinningFeature.utils.d.ts +39 -0
  118. package/dist/esm/features/column-pinning/columnPinningFeature.utils.js +325 -0
  119. package/dist/esm/features/column-pinning/columnPinningFeature.utils.js.map +1 -0
  120. package/dist/esm/features/column-resizing/columnResizingFeature.d.ts +11 -0
  121. package/dist/esm/features/column-resizing/columnResizingFeature.js +52 -0
  122. package/dist/esm/features/column-resizing/columnResizingFeature.js.map +1 -0
  123. package/dist/esm/features/column-resizing/columnResizingFeature.types.d.ts +68 -0
  124. package/dist/esm/features/column-resizing/columnResizingFeature.utils.d.ts +14 -0
  125. package/dist/esm/features/column-resizing/columnResizingFeature.utils.js +193 -0
  126. package/dist/esm/features/column-resizing/columnResizingFeature.utils.js.map +1 -0
  127. package/dist/esm/features/column-sizing/columnSizingFeature.d.ts +11 -0
  128. package/dist/esm/features/column-sizing/columnSizingFeature.js +95 -0
  129. package/dist/esm/features/column-sizing/columnSizingFeature.js.map +1 -0
  130. package/dist/esm/features/column-sizing/columnSizingFeature.types.d.ts +81 -0
  131. package/dist/esm/features/column-sizing/columnSizingFeature.utils.d.ts +25 -0
  132. package/dist/esm/features/column-sizing/columnSizingFeature.utils.js +128 -0
  133. package/dist/esm/features/column-sizing/columnSizingFeature.utils.js.map +1 -0
  134. package/dist/esm/features/column-visibility/columnVisibilityFeature.d.ts +10 -0
  135. package/dist/esm/features/column-visibility/columnVisibilityFeature.js +100 -0
  136. package/dist/esm/features/column-visibility/columnVisibilityFeature.js.map +1 -0
  137. package/dist/esm/features/column-visibility/columnVisibilityFeature.types.d.ts +84 -0
  138. package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.d.ts +22 -0
  139. package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.js +105 -0
  140. package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -0
  141. package/dist/esm/features/global-filtering/globalFilteringFeature.d.ts +11 -0
  142. package/dist/esm/features/global-filtering/globalFilteringFeature.js +51 -0
  143. package/dist/esm/features/global-filtering/globalFilteringFeature.js.map +1 -0
  144. package/dist/esm/features/global-filtering/globalFilteringFeature.types.d.ts +59 -0
  145. package/dist/esm/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -0
  146. package/dist/esm/features/global-filtering/globalFilteringFeature.utils.js +30 -0
  147. package/dist/esm/features/global-filtering/globalFilteringFeature.utils.js.map +1 -0
  148. package/dist/esm/features/row-expanding/createExpandedRowModel.d.ts +6 -0
  149. package/dist/esm/features/row-expanding/createExpandedRowModel.js +49 -0
  150. package/dist/esm/features/row-expanding/createExpandedRowModel.js.map +1 -0
  151. package/dist/esm/features/row-expanding/rowExpandingFeature.d.ts +10 -0
  152. package/dist/esm/features/row-expanding/rowExpandingFeature.js +74 -0
  153. package/dist/esm/features/row-expanding/rowExpandingFeature.js.map +1 -0
  154. package/dist/esm/features/row-expanding/rowExpandingFeature.types.d.ts +116 -0
  155. package/dist/esm/features/row-expanding/rowExpandingFeature.utils.d.ts +20 -0
  156. package/dist/esm/features/row-expanding/rowExpandingFeature.utils.js +125 -0
  157. package/dist/esm/features/row-expanding/rowExpandingFeature.utils.js.map +1 -0
  158. package/dist/esm/features/row-pagination/createPaginatedRowModel.d.ts +5 -0
  159. package/dist/esm/features/row-pagination/createPaginatedRowModel.js +58 -0
  160. package/dist/esm/features/row-pagination/createPaginatedRowModel.js.map +1 -0
  161. package/dist/esm/features/row-pagination/rowPaginationFeature.d.ts +10 -0
  162. package/dist/esm/features/row-pagination/rowPaginationFeature.js +78 -0
  163. package/dist/esm/features/row-pagination/rowPaginationFeature.js.map +1 -0
  164. package/dist/esm/features/row-pagination/rowPaginationFeature.types.d.ts +119 -0
  165. package/dist/esm/features/row-pagination/rowPaginationFeature.utils.d.ts +21 -0
  166. package/dist/esm/features/row-pagination/rowPaginationFeature.utils.js +126 -0
  167. package/dist/esm/features/row-pagination/rowPaginationFeature.utils.js.map +1 -0
  168. package/dist/esm/features/row-pinning/rowPinningFeature.d.ts +10 -0
  169. package/dist/esm/features/row-pinning/rowPinningFeature.js +80 -0
  170. package/dist/esm/features/row-pinning/rowPinningFeature.js.map +1 -0
  171. package/dist/esm/features/row-pinning/rowPinningFeature.types.d.ts +72 -0
  172. package/dist/esm/features/row-pinning/rowPinningFeature.utils.d.ts +16 -0
  173. package/dist/esm/features/row-pinning/rowPinningFeature.utils.js +115 -0
  174. package/dist/esm/features/row-pinning/rowPinningFeature.utils.js.map +1 -0
  175. package/dist/esm/features/row-selection/rowSelectionFeature.d.ts +10 -0
  176. package/dist/esm/features/row-selection/rowSelectionFeature.js +112 -0
  177. package/dist/esm/features/row-selection/rowSelectionFeature.js.map +1 -0
  178. package/dist/esm/features/row-selection/rowSelectionFeature.types.d.ts +123 -0
  179. package/dist/esm/features/row-selection/rowSelectionFeature.utils.d.ts +34 -0
  180. package/dist/esm/features/row-selection/rowSelectionFeature.utils.js +290 -0
  181. package/dist/esm/features/row-selection/rowSelectionFeature.utils.js.map +1 -0
  182. package/dist/esm/features/row-sorting/createSortedRowModel.d.ts +6 -0
  183. package/dist/esm/features/row-sorting/createSortedRowModel.js +94 -0
  184. package/dist/esm/features/row-sorting/createSortedRowModel.js.map +1 -0
  185. package/dist/esm/features/row-sorting/rowSortingFeature.d.ts +10 -0
  186. package/dist/esm/features/row-sorting/rowSortingFeature.js +82 -0
  187. package/dist/esm/features/row-sorting/rowSortingFeature.js.map +1 -0
  188. package/dist/esm/features/row-sorting/rowSortingFeature.types.d.ts +178 -0
  189. package/dist/esm/features/row-sorting/rowSortingFeature.utils.d.ts +20 -0
  190. package/dist/esm/features/row-sorting/rowSortingFeature.utils.js +181 -0
  191. package/dist/esm/features/row-sorting/rowSortingFeature.utils.js.map +1 -0
  192. package/dist/esm/features/stockFeatures.d.ts +31 -0
  193. package/dist/esm/features/stockFeatures.js +34 -0
  194. package/dist/esm/features/stockFeatures.js.map +1 -0
  195. package/dist/esm/fns/aggregationFns.d.ts +49 -0
  196. package/dist/esm/fns/aggregationFns.js +110 -0
  197. package/dist/esm/fns/aggregationFns.js.map +1 -0
  198. package/dist/esm/fns/filterFns.d.ts +76 -0
  199. package/dist/esm/fns/filterFns.js +134 -0
  200. package/dist/esm/fns/filterFns.js.map +1 -0
  201. package/dist/esm/fns/sortFns.d.ts +17 -0
  202. package/dist/esm/{sortingFns.js → fns/sortFns.js} +21 -15
  203. package/dist/esm/fns/sortFns.js.map +1 -0
  204. package/dist/esm/helpers/columnHelper.d.ts +61 -0
  205. package/dist/esm/{columnHelper.js → helpers/columnHelper.js} +1 -0
  206. package/dist/esm/helpers/columnHelper.js.map +1 -0
  207. package/dist/esm/helpers/tableFeatures.d.ts +13 -0
  208. package/dist/esm/helpers/tableFeatures.js +7 -0
  209. package/dist/esm/helpers/tableFeatures.js.map +1 -0
  210. package/dist/esm/helpers/tableHelper.d.ts +25 -0
  211. package/dist/esm/helpers/tableHelper.js +13 -0
  212. package/dist/esm/helpers/tableHelper.js.map +1 -0
  213. package/dist/esm/helpers/tableOptions.d.ts +23 -0
  214. package/dist/esm/helpers/tableOptions.js +7 -0
  215. package/dist/esm/helpers/tableOptions.js.map +1 -0
  216. package/dist/esm/index.d.ts +109 -33
  217. package/dist/esm/index.js +397 -66
  218. package/dist/esm/index.js.map +1 -1
  219. package/dist/esm/types/Cell.d.ts +13 -0
  220. package/dist/esm/types/Column.d.ts +26 -0
  221. package/dist/esm/types/ColumnDef.d.ts +64 -0
  222. package/dist/esm/types/Header.d.ts +14 -0
  223. package/dist/esm/types/HeaderGroup.d.ts +12 -0
  224. package/dist/esm/types/Row.d.ts +19 -0
  225. package/dist/esm/types/RowModel.d.ts +23 -0
  226. package/dist/esm/types/RowModelFns.d.ts +15 -0
  227. package/dist/esm/types/Table.d.ts +53 -0
  228. package/dist/esm/types/TableFeatures.d.ts +77 -0
  229. package/dist/esm/types/TableOptions.d.ts +39 -0
  230. package/dist/esm/types/TableState.d.ts +23 -0
  231. package/dist/esm/types/type-utils.d.ts +22 -0
  232. package/dist/esm/utils.d.ts +66 -33
  233. package/dist/esm/utils.js +183 -50
  234. package/dist/esm/utils.js.map +1 -1
  235. package/package.json +21 -12
  236. package/src/core/cells/constructCell.ts +49 -0
  237. package/src/core/cells/coreCellsFeature.ts +44 -0
  238. package/src/core/cells/coreCellsFeature.types.ts +68 -0
  239. package/src/core/cells/coreCellsFeature.utils.ts +35 -0
  240. package/src/core/columns/constructColumn.ts +111 -0
  241. package/src/core/columns/coreColumnsFeature.ts +90 -0
  242. package/src/core/columns/coreColumnsFeature.types.ts +103 -0
  243. package/src/core/columns/coreColumnsFeature.utils.ts +160 -0
  244. package/src/core/coreFeatures.ts +24 -0
  245. package/src/core/headers/buildHeaderGroups.ts +177 -0
  246. package/src/core/headers/constructHeader.ts +61 -0
  247. package/src/core/headers/coreHeadersFeature.ts +98 -0
  248. package/src/core/headers/coreHeadersFeature.types.ts +123 -0
  249. package/src/core/headers/coreHeadersFeature.utils.ts +131 -0
  250. package/src/core/row-models/coreRowModelsFeature.ts +78 -0
  251. package/src/core/row-models/coreRowModelsFeature.types.ts +67 -0
  252. package/src/core/row-models/coreRowModelsFeature.utils.ts +140 -0
  253. package/src/core/row-models/createCoreRowModel.ts +88 -0
  254. package/src/core/rows/constructRow.ts +59 -0
  255. package/src/core/rows/coreRowsFeature.ts +84 -0
  256. package/src/core/rows/coreRowsFeature.types.ts +111 -0
  257. package/src/core/rows/coreRowsFeature.utils.ts +152 -0
  258. package/src/core/table/constructTable.ts +89 -0
  259. package/src/core/table/coreTablesFeature.ts +36 -0
  260. package/src/core/table/coreTablesFeature.types.ts +123 -0
  261. package/src/core/table/coreTablesFeature.utils.ts +40 -0
  262. package/src/features/column-faceting/columnFacetingFeature.ts +112 -0
  263. package/src/features/column-faceting/columnFacetingFeature.types.ts +97 -0
  264. package/src/features/column-faceting/columnFacetingFeature.utils.ts +77 -0
  265. package/src/features/column-faceting/createFacetedMinMaxValues.ts +63 -0
  266. package/src/features/column-faceting/createFacetedRowModel.ts +76 -0
  267. package/src/features/column-faceting/createFacetedUniqueValues.ts +60 -0
  268. package/src/features/column-filtering/columnFilteringFeature.ts +121 -0
  269. package/src/features/column-filtering/columnFilteringFeature.types.ts +219 -0
  270. package/src/features/column-filtering/columnFilteringFeature.utils.ts +213 -0
  271. package/src/features/column-filtering/createFilteredRowModel.ts +171 -0
  272. package/src/features/column-filtering/filterRowsUtils.ts +152 -0
  273. package/src/features/column-grouping/columnGroupingFeature.ts +151 -0
  274. package/src/features/column-grouping/columnGroupingFeature.types.ts +218 -0
  275. package/src/features/column-grouping/columnGroupingFeature.utils.ts +192 -0
  276. package/src/features/column-grouping/createGroupedRowModel.ts +215 -0
  277. package/src/features/column-ordering/columnOrderingFeature.ts +96 -0
  278. package/src/features/column-ordering/columnOrderingFeature.types.ts +49 -0
  279. package/src/features/column-ordering/columnOrderingFeature.utils.ts +133 -0
  280. package/src/features/column-pinning/columnPinningFeature.ts +324 -0
  281. package/src/features/column-pinning/columnPinningFeature.types.ts +176 -0
  282. package/src/features/column-pinning/columnPinningFeature.utils.ts +537 -0
  283. package/src/features/column-resizing/columnResizingFeature.ts +92 -0
  284. package/src/features/column-resizing/columnResizingFeature.types.ts +81 -0
  285. package/src/features/column-resizing/columnResizingFeature.utils.ts +265 -0
  286. package/src/features/column-sizing/columnSizingFeature.ts +146 -0
  287. package/src/features/column-sizing/columnSizingFeature.types.ts +92 -0
  288. package/src/features/column-sizing/columnSizingFeature.utils.ts +211 -0
  289. package/src/features/column-visibility/columnVisibilityFeature.ts +155 -0
  290. package/src/features/column-visibility/columnVisibilityFeature.types.ts +101 -0
  291. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +183 -0
  292. package/src/features/global-filtering/globalFilteringFeature.ts +92 -0
  293. package/src/features/global-filtering/globalFilteringFeature.types.ts +84 -0
  294. package/src/features/global-filtering/globalFilteringFeature.utils.ts +60 -0
  295. package/src/features/row-expanding/createExpandedRowModel.ts +72 -0
  296. package/src/features/row-expanding/rowExpandingFeature.ts +122 -0
  297. package/src/features/row-expanding/rowExpandingFeature.types.ts +141 -0
  298. package/src/features/row-expanding/rowExpandingFeature.utils.ts +207 -0
  299. package/src/features/row-pagination/createPaginatedRowModel.ts +78 -0
  300. package/src/features/row-pagination/rowPaginationFeature.ts +121 -0
  301. package/src/features/row-pagination/rowPaginationFeature.types.ts +141 -0
  302. package/src/features/row-pagination/rowPaginationFeature.utils.ts +204 -0
  303. package/src/features/row-pinning/rowPinningFeature.ts +121 -0
  304. package/src/features/row-pinning/rowPinningFeature.types.ts +89 -0
  305. package/src/features/row-pinning/rowPinningFeature.utils.ts +197 -0
  306. package/src/features/row-selection/rowSelectionFeature.ts +164 -0
  307. package/src/features/row-selection/rowSelectionFeature.types.ts +143 -0
  308. package/src/features/row-selection/rowSelectionFeature.utils.ts +464 -0
  309. package/src/features/row-sorting/createSortedRowModel.ts +147 -0
  310. package/src/features/row-sorting/rowSortingFeature.ts +136 -0
  311. package/src/features/row-sorting/rowSortingFeature.types.ts +229 -0
  312. package/src/features/row-sorting/rowSortingFeature.utils.ts +320 -0
  313. package/src/features/stockFeatures.ts +48 -0
  314. package/src/fns/aggregationFns.ts +220 -0
  315. package/src/fns/filterFns.ts +379 -0
  316. package/src/{sortingFns.ts → fns/sortFns.ts} +66 -21
  317. package/src/helpers/columnHelper.ts +117 -0
  318. package/src/helpers/tableFeatures.ts +24 -0
  319. package/src/helpers/tableHelper.ts +61 -0
  320. package/src/helpers/tableOptions.ts +82 -0
  321. package/src/index.ts +156 -42
  322. package/src/types/Cell.ts +41 -0
  323. package/src/types/Column.ts +86 -0
  324. package/src/types/ColumnDef.ts +217 -0
  325. package/src/types/Header.ts +45 -0
  326. package/src/types/HeaderGroup.ts +24 -0
  327. package/src/types/Row.ts +55 -0
  328. package/src/types/RowModel.ts +137 -0
  329. package/src/types/RowModelFns.ts +51 -0
  330. package/src/types/Table.ts +125 -0
  331. package/src/types/TableFeatures.ts +150 -0
  332. package/src/types/TableOptions.ts +125 -0
  333. package/src/types/TableState.ts +88 -0
  334. package/src/types/type-utils.ts +84 -0
  335. package/src/utils.ts +344 -164
  336. package/dist/cjs/aggregationFns.cjs +0 -94
  337. package/dist/cjs/aggregationFns.cjs.map +0 -1
  338. package/dist/cjs/aggregationFns.d.cts +0 -14
  339. package/dist/cjs/columnHelper.cjs +0 -19
  340. package/dist/cjs/columnHelper.cjs.map +0 -1
  341. package/dist/cjs/columnHelper.d.cts +0 -9
  342. package/dist/cjs/core/cell.cjs +0 -38
  343. package/dist/cjs/core/cell.cjs.map +0 -1
  344. package/dist/cjs/core/cell.d.cts +0 -50
  345. package/dist/cjs/core/column.cjs +0 -81
  346. package/dist/cjs/core/column.cjs.map +0 -1
  347. package/dist/cjs/core/column.d.cts +0 -56
  348. package/dist/cjs/core/headers.cjs +0 -310
  349. package/dist/cjs/core/headers.cjs.map +0 -1
  350. package/dist/cjs/core/headers.d.cts +0 -195
  351. package/dist/cjs/core/row.cjs +0 -92
  352. package/dist/cjs/core/row.cjs.map +0 -1
  353. package/dist/cjs/core/row.d.cts +0 -92
  354. package/dist/cjs/core/table.cjs +0 -232
  355. package/dist/cjs/core/table.cjs.map +0 -1
  356. package/dist/cjs/core/table.d.cts +0 -229
  357. package/dist/cjs/features/ColumnFaceting.cjs +0 -29
  358. package/dist/cjs/features/ColumnFaceting.cjs.map +0 -1
  359. package/dist/cjs/features/ColumnFaceting.d.cts +0 -35
  360. package/dist/cjs/features/ColumnFiltering.cjs +0 -137
  361. package/dist/cjs/features/ColumnFiltering.cjs.map +0 -1
  362. package/dist/cjs/features/ColumnFiltering.d.cts +0 -195
  363. package/dist/cjs/features/ColumnGrouping.cjs +0 -133
  364. package/dist/cjs/features/ColumnGrouping.cjs.map +0 -1
  365. package/dist/cjs/features/ColumnGrouping.d.cts +0 -202
  366. package/dist/cjs/features/ColumnOrdering.cjs +0 -76
  367. package/dist/cjs/features/ColumnOrdering.cjs.map +0 -1
  368. package/dist/cjs/features/ColumnPinning.cjs +0 -145
  369. package/dist/cjs/features/ColumnPinning.cjs.map +0 -1
  370. package/dist/cjs/features/ColumnPinning.d.cts +0 -127
  371. package/dist/cjs/features/ColumnSizing.cjs +0 -307
  372. package/dist/cjs/features/ColumnSizing.cjs.map +0 -1
  373. package/dist/cjs/features/ColumnSizing.d.cts +0 -194
  374. package/dist/cjs/features/ColumnVisibility.cjs +0 -144
  375. package/dist/cjs/features/ColumnVisibility.cjs.map +0 -1
  376. package/dist/cjs/features/ColumnVisibility.d.cts +0 -130
  377. package/dist/cjs/features/GlobalFaceting.cjs +0 -29
  378. package/dist/cjs/features/GlobalFaceting.cjs.map +0 -1
  379. package/dist/cjs/features/GlobalFaceting.d.cts +0 -27
  380. package/dist/cjs/features/GlobalFiltering.cjs +0 -50
  381. package/dist/cjs/features/GlobalFiltering.cjs.map +0 -1
  382. package/dist/cjs/features/GlobalFiltering.d.cts +0 -80
  383. package/dist/cjs/features/RowExpanding.cjs +0 -152
  384. package/dist/cjs/features/RowExpanding.cjs.map +0 -1
  385. package/dist/cjs/features/RowExpanding.d.cts +0 -155
  386. package/dist/cjs/features/RowPagination.cjs +0 -161
  387. package/dist/cjs/features/RowPagination.cjs.map +0 -1
  388. package/dist/cjs/features/RowPagination.d.cts +0 -166
  389. package/dist/cjs/features/RowPinning.cjs +0 -132
  390. package/dist/cjs/features/RowPinning.cjs.map +0 -1
  391. package/dist/cjs/features/RowPinning.d.cts +0 -99
  392. package/dist/cjs/features/RowSelection.cjs +0 -296
  393. package/dist/cjs/features/RowSelection.cjs.map +0 -1
  394. package/dist/cjs/features/RowSelection.d.cts +0 -177
  395. package/dist/cjs/features/RowSorting.cjs +0 -200
  396. package/dist/cjs/features/RowSorting.cjs.map +0 -1
  397. package/dist/cjs/features/RowSorting.d.cts +0 -238
  398. package/dist/cjs/filterFns.cjs +0 -88
  399. package/dist/cjs/filterFns.cjs.map +0 -1
  400. package/dist/cjs/filterFns.d.cts +0 -14
  401. package/dist/cjs/index.cjs +0 -88
  402. package/dist/cjs/index.cjs.map +0 -1
  403. package/dist/cjs/index.d.cts +0 -34
  404. package/dist/cjs/sortingFns.cjs +0 -91
  405. package/dist/cjs/sortingFns.cjs.map +0 -1
  406. package/dist/cjs/sortingFns.d.cts +0 -12
  407. package/dist/cjs/types.d.cts +0 -120
  408. package/dist/cjs/utils/filterRowsUtils.cjs +0 -99
  409. package/dist/cjs/utils/filterRowsUtils.cjs.map +0 -1
  410. package/dist/cjs/utils/filterRowsUtils.d.cts +0 -3
  411. package/dist/cjs/utils/getCoreRowModel.cjs +0 -54
  412. package/dist/cjs/utils/getCoreRowModel.cjs.map +0 -1
  413. package/dist/cjs/utils/getCoreRowModel.d.cts +0 -3
  414. package/dist/cjs/utils/getExpandedRowModel.cjs +0 -41
  415. package/dist/cjs/utils/getExpandedRowModel.cjs.map +0 -1
  416. package/dist/cjs/utils/getExpandedRowModel.d.cts +0 -8
  417. package/dist/cjs/utils/getFacetedMinMaxValues.cjs +0 -35
  418. package/dist/cjs/utils/getFacetedMinMaxValues.cjs.map +0 -1
  419. package/dist/cjs/utils/getFacetedMinMaxValues.d.cts +0 -3
  420. package/dist/cjs/utils/getFacetedRowModel.cjs +0 -35
  421. package/dist/cjs/utils/getFacetedRowModel.cjs.map +0 -1
  422. package/dist/cjs/utils/getFacetedRowModel.d.cts +0 -3
  423. package/dist/cjs/utils/getFacetedUniqueValues.cjs +0 -37
  424. package/dist/cjs/utils/getFacetedUniqueValues.cjs.map +0 -1
  425. package/dist/cjs/utils/getFacetedUniqueValues.d.cts +0 -3
  426. package/dist/cjs/utils/getFilteredRowModel.cjs +0 -116
  427. package/dist/cjs/utils/getFilteredRowModel.cjs.map +0 -1
  428. package/dist/cjs/utils/getFilteredRowModel.d.cts +0 -3
  429. package/dist/cjs/utils/getGroupedRowModel.cjs +0 -118
  430. package/dist/cjs/utils/getGroupedRowModel.cjs.map +0 -1
  431. package/dist/cjs/utils/getGroupedRowModel.d.cts +0 -3
  432. package/dist/cjs/utils/getPaginationRowModel.cjs +0 -49
  433. package/dist/cjs/utils/getPaginationRowModel.cjs.map +0 -1
  434. package/dist/cjs/utils/getPaginationRowModel.d.cts +0 -5
  435. package/dist/cjs/utils/getSortedRowModel.cjs +0 -88
  436. package/dist/cjs/utils/getSortedRowModel.cjs.map +0 -1
  437. package/dist/cjs/utils/getSortedRowModel.d.cts +0 -3
  438. package/dist/cjs/utils.cjs +0 -98
  439. package/dist/cjs/utils.cjs.map +0 -1
  440. package/dist/cjs/utils.d.cts +0 -39
  441. package/dist/esm/aggregationFns.d.ts +0 -14
  442. package/dist/esm/aggregationFns.js +0 -94
  443. package/dist/esm/aggregationFns.js.map +0 -1
  444. package/dist/esm/columnHelper.d.ts +0 -9
  445. package/dist/esm/columnHelper.js.map +0 -1
  446. package/dist/esm/core/cell.d.ts +0 -50
  447. package/dist/esm/core/cell.js +0 -38
  448. package/dist/esm/core/cell.js.map +0 -1
  449. package/dist/esm/core/column.d.ts +0 -56
  450. package/dist/esm/core/column.js +0 -81
  451. package/dist/esm/core/column.js.map +0 -1
  452. package/dist/esm/core/headers.d.ts +0 -195
  453. package/dist/esm/core/headers.js +0 -310
  454. package/dist/esm/core/headers.js.map +0 -1
  455. package/dist/esm/core/row.d.ts +0 -92
  456. package/dist/esm/core/row.js +0 -92
  457. package/dist/esm/core/row.js.map +0 -1
  458. package/dist/esm/core/table.d.ts +0 -229
  459. package/dist/esm/core/table.js +0 -232
  460. package/dist/esm/core/table.js.map +0 -1
  461. package/dist/esm/features/ColumnFaceting.d.ts +0 -35
  462. package/dist/esm/features/ColumnFaceting.js +0 -29
  463. package/dist/esm/features/ColumnFaceting.js.map +0 -1
  464. package/dist/esm/features/ColumnFiltering.d.ts +0 -195
  465. package/dist/esm/features/ColumnFiltering.js +0 -137
  466. package/dist/esm/features/ColumnFiltering.js.map +0 -1
  467. package/dist/esm/features/ColumnGrouping.d.ts +0 -202
  468. package/dist/esm/features/ColumnGrouping.js +0 -133
  469. package/dist/esm/features/ColumnGrouping.js.map +0 -1
  470. package/dist/esm/features/ColumnOrdering.d.ts +0 -54
  471. package/dist/esm/features/ColumnOrdering.js +0 -76
  472. package/dist/esm/features/ColumnOrdering.js.map +0 -1
  473. package/dist/esm/features/ColumnPinning.d.ts +0 -127
  474. package/dist/esm/features/ColumnPinning.js +0 -145
  475. package/dist/esm/features/ColumnPinning.js.map +0 -1
  476. package/dist/esm/features/ColumnSizing.d.ts +0 -194
  477. package/dist/esm/features/ColumnSizing.js +0 -307
  478. package/dist/esm/features/ColumnSizing.js.map +0 -1
  479. package/dist/esm/features/ColumnVisibility.d.ts +0 -130
  480. package/dist/esm/features/ColumnVisibility.js +0 -144
  481. package/dist/esm/features/ColumnVisibility.js.map +0 -1
  482. package/dist/esm/features/GlobalFaceting.d.ts +0 -27
  483. package/dist/esm/features/GlobalFaceting.js +0 -29
  484. package/dist/esm/features/GlobalFaceting.js.map +0 -1
  485. package/dist/esm/features/GlobalFiltering.d.ts +0 -80
  486. package/dist/esm/features/GlobalFiltering.js +0 -50
  487. package/dist/esm/features/GlobalFiltering.js.map +0 -1
  488. package/dist/esm/features/RowExpanding.d.ts +0 -155
  489. package/dist/esm/features/RowExpanding.js +0 -152
  490. package/dist/esm/features/RowExpanding.js.map +0 -1
  491. package/dist/esm/features/RowPagination.d.ts +0 -166
  492. package/dist/esm/features/RowPagination.js +0 -161
  493. package/dist/esm/features/RowPagination.js.map +0 -1
  494. package/dist/esm/features/RowPinning.d.ts +0 -99
  495. package/dist/esm/features/RowPinning.js +0 -132
  496. package/dist/esm/features/RowPinning.js.map +0 -1
  497. package/dist/esm/features/RowSelection.d.ts +0 -177
  498. package/dist/esm/features/RowSelection.js +0 -296
  499. package/dist/esm/features/RowSelection.js.map +0 -1
  500. package/dist/esm/features/RowSorting.d.ts +0 -238
  501. package/dist/esm/features/RowSorting.js +0 -200
  502. package/dist/esm/features/RowSorting.js.map +0 -1
  503. package/dist/esm/filterFns.d.ts +0 -14
  504. package/dist/esm/filterFns.js +0 -88
  505. package/dist/esm/filterFns.js.map +0 -1
  506. package/dist/esm/sortingFns.d.ts +0 -12
  507. package/dist/esm/sortingFns.js.map +0 -1
  508. package/dist/esm/types.d.ts +0 -120
  509. package/dist/esm/utils/filterRowsUtils.d.ts +0 -3
  510. package/dist/esm/utils/filterRowsUtils.js.map +0 -1
  511. package/dist/esm/utils/getCoreRowModel.d.ts +0 -3
  512. package/dist/esm/utils/getCoreRowModel.js +0 -54
  513. package/dist/esm/utils/getCoreRowModel.js.map +0 -1
  514. package/dist/esm/utils/getExpandedRowModel.d.ts +0 -8
  515. package/dist/esm/utils/getExpandedRowModel.js +0 -41
  516. package/dist/esm/utils/getExpandedRowModel.js.map +0 -1
  517. package/dist/esm/utils/getFacetedMinMaxValues.d.ts +0 -3
  518. package/dist/esm/utils/getFacetedMinMaxValues.js +0 -35
  519. package/dist/esm/utils/getFacetedMinMaxValues.js.map +0 -1
  520. package/dist/esm/utils/getFacetedRowModel.d.ts +0 -3
  521. package/dist/esm/utils/getFacetedRowModel.js +0 -35
  522. package/dist/esm/utils/getFacetedRowModel.js.map +0 -1
  523. package/dist/esm/utils/getFacetedUniqueValues.d.ts +0 -3
  524. package/dist/esm/utils/getFacetedUniqueValues.js +0 -37
  525. package/dist/esm/utils/getFacetedUniqueValues.js.map +0 -1
  526. package/dist/esm/utils/getFilteredRowModel.d.ts +0 -3
  527. package/dist/esm/utils/getFilteredRowModel.js +0 -116
  528. package/dist/esm/utils/getFilteredRowModel.js.map +0 -1
  529. package/dist/esm/utils/getGroupedRowModel.d.ts +0 -3
  530. package/dist/esm/utils/getGroupedRowModel.js +0 -118
  531. package/dist/esm/utils/getGroupedRowModel.js.map +0 -1
  532. package/dist/esm/utils/getPaginationRowModel.d.ts +0 -5
  533. package/dist/esm/utils/getPaginationRowModel.js +0 -49
  534. package/dist/esm/utils/getPaginationRowModel.js.map +0 -1
  535. package/dist/esm/utils/getSortedRowModel.d.ts +0 -3
  536. package/dist/esm/utils/getSortedRowModel.js +0 -88
  537. package/dist/esm/utils/getSortedRowModel.js.map +0 -1
  538. package/src/aggregationFns.ts +0 -123
  539. package/src/columnHelper.ts +0 -91
  540. package/src/core/cell.ts +0 -91
  541. package/src/core/column.ts +0 -165
  542. package/src/core/headers.ts +0 -639
  543. package/src/core/row.ts +0 -201
  544. package/src/core/table.ts +0 -563
  545. package/src/features/ColumnFaceting.ts +0 -84
  546. package/src/features/ColumnFiltering.ts +0 -429
  547. package/src/features/ColumnGrouping.ts +0 -422
  548. package/src/features/ColumnOrdering.ts +0 -161
  549. package/src/features/ColumnPinning.ts +0 -336
  550. package/src/features/ColumnSizing.ts +0 -579
  551. package/src/features/ColumnVisibility.ts +0 -317
  552. package/src/features/GlobalFaceting.ts +0 -66
  553. package/src/features/GlobalFiltering.ts +0 -162
  554. package/src/features/RowExpanding.ts +0 -355
  555. package/src/features/RowPagination.ts +0 -396
  556. package/src/features/RowPinning.ts +0 -277
  557. package/src/features/RowSelection.ts +0 -668
  558. package/src/features/RowSorting.ts +0 -542
  559. package/src/filterFns.ts +0 -150
  560. package/src/types.ts +0 -361
  561. package/src/utils/filterRowsUtils.ts +0 -130
  562. package/src/utils/getCoreRowModel.ts +0 -82
  563. package/src/utils/getExpandedRowModel.ts +0 -51
  564. package/src/utils/getFacetedMinMaxValues.ts +0 -42
  565. package/src/utils/getFacetedRowModel.ts +0 -44
  566. package/src/utils/getFacetedUniqueValues.ts +0 -42
  567. package/src/utils/getFilteredRowModel.ts +0 -151
  568. package/src/utils/getGroupedRowModel.ts +0 -181
  569. package/src/utils/getPaginationRowModel.ts +0 -60
  570. package/src/utils/getSortedRowModel.ts +0 -121
@@ -0,0 +1,121 @@
1
+ import { assignTableAPIs, makeStateUpdater } from '../../utils'
2
+ import {
3
+ getDefaultPaginationState,
4
+ table_autoResetPageIndex,
5
+ table_firstPage,
6
+ table_getCanNextPage,
7
+ table_getCanPreviousPage,
8
+ table_getPageCount,
9
+ table_getPageOptions,
10
+ table_getRowCount,
11
+ table_lastPage,
12
+ table_nextPage,
13
+ table_previousPage,
14
+ table_resetPageIndex,
15
+ table_resetPageSize,
16
+ table_resetPagination,
17
+ table_setPageIndex,
18
+ table_setPageSize,
19
+ table_setPagination,
20
+ } from './rowPaginationFeature.utils'
21
+ import type { RowData } from '../../types/type-utils'
22
+ import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
23
+ // import type {
24
+ // CachedRowModel_Paginated,
25
+ // CreateRowModel_Paginated,
26
+ // TableOptions_RowPagination,
27
+ // TableState_RowPagination,
28
+ // Table_RowPagination,
29
+ // } from './rowPaginationFeature.types'
30
+
31
+ interface RowPaginationFeatureConstructors<
32
+ TFeatures extends TableFeatures,
33
+ TData extends RowData,
34
+ > {
35
+ // CachedRowModel: CachedRowModel_Paginated<TFeatures, TData>
36
+ // CreateRowModels: CreateRowModel_Paginated<TFeatures, TData>
37
+ // Table: Table_RowPagination<TFeatures, TData>
38
+ // TableOptions: TableOptions_RowPagination<TFeatures, TData>
39
+ // TableState: TableState_RowPagination
40
+ }
41
+
42
+ export function constructRowPaginationFeature<
43
+ TFeatures extends TableFeatures,
44
+ TData extends RowData,
45
+ >(): TableFeature<RowPaginationFeatureConstructors<TFeatures, TData>> {
46
+ return {
47
+ getInitialState: (initialState) => {
48
+ return {
49
+ ...initialState,
50
+ pagination: {
51
+ ...getDefaultPaginationState(),
52
+ ...initialState.pagination,
53
+ },
54
+ }
55
+ },
56
+
57
+ getDefaultTableOptions: (table) => {
58
+ return {
59
+ onPaginationChange: makeStateUpdater('pagination', table),
60
+ }
61
+ },
62
+
63
+ constructTableAPIs: (table) => {
64
+ assignTableAPIs('rowPaginationFeature', table, {
65
+ table_autoResetPageIndex: {
66
+ fn: () => table_autoResetPageIndex(table),
67
+ },
68
+ table_setPagination: {
69
+ fn: (updater) => table_setPagination(table, updater),
70
+ },
71
+ table_resetPagination: {
72
+ fn: (defaultState) => table_resetPagination(table, defaultState),
73
+ },
74
+ table_setPageIndex: {
75
+ fn: (updater) => table_setPageIndex(table, updater),
76
+ },
77
+ table_resetPageIndex: {
78
+ fn: (defaultState) => table_resetPageIndex(table, defaultState),
79
+ },
80
+ table_setPageSize: {
81
+ fn: (updater) => table_setPageSize(table, updater),
82
+ },
83
+ table_getPageCount: {
84
+ fn: () => table_getPageCount(table),
85
+ },
86
+ table_resetPageSize: {
87
+ fn: (defaultState) => table_resetPageSize(table, defaultState),
88
+ },
89
+ table_getPageOptions: {
90
+ fn: () => table_getPageOptions(table),
91
+ },
92
+ table_getCanPreviousPage: {
93
+ fn: () => table_getCanPreviousPage(table),
94
+ },
95
+ table_getCanNextPage: {
96
+ fn: () => table_getCanNextPage(table),
97
+ },
98
+ table_previousPage: {
99
+ fn: () => table_previousPage(table),
100
+ },
101
+ table_nextPage: {
102
+ fn: () => table_nextPage(table),
103
+ },
104
+ table_firstPage: {
105
+ fn: () => table_firstPage(table),
106
+ },
107
+ table_lastPage: {
108
+ fn: () => table_lastPage(table),
109
+ },
110
+ table_getRowCount: {
111
+ fn: () => table_getRowCount(table),
112
+ },
113
+ })
114
+ },
115
+ }
116
+ }
117
+
118
+ /**
119
+ * The (Row) Pagination feature adds pagination state and APIs to the table object.
120
+ */
121
+ export const rowPaginationFeature = constructRowPaginationFeature()
@@ -0,0 +1,141 @@
1
+ import type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'
2
+ import type { Table } from '../../types/Table'
3
+ import type { OnChangeFn, RowData, Updater } from '../../types/type-utils'
4
+ import type { TableFeatures } from '../../types/TableFeatures'
5
+
6
+ export interface PaginationState {
7
+ pageIndex: number
8
+ pageSize: number
9
+ }
10
+
11
+ export interface TableState_RowPagination {
12
+ pagination: PaginationState
13
+ }
14
+
15
+ export interface TableOptions_RowPagination {
16
+ /**
17
+ * If set to `true`, pagination will be reset to the first page when page-altering state changes eg. `data` is updated, filters change, grouping changes, etc.
18
+ */
19
+ autoResetPageIndex?: boolean
20
+ /**
21
+ * Enables manual pagination. If this option is set to `true`, the table will not automatically paginate rows using `getPaginatedRowModel()` and instead will expect you to manually paginate the rows before passing them to the table. This is useful if you are doing server-side pagination and aggregation.
22
+ */
23
+ manualPagination?: boolean
24
+ /**
25
+ * If this function is provided, it will be called when the pagination state changes and you will be expected to manage the state yourself. You can pass the managed state back to the table via the `tableOptions.state.pagination` option.
26
+ */
27
+ onPaginationChange?: OnChangeFn<PaginationState>
28
+ /**
29
+ * When manually controlling pagination, you can supply a total `pageCount` value to the table if you know it (Or supply a `rowCount` and `pageCount` will be calculated). If you do not know how many pages there are, you can set this to `-1`.
30
+ */
31
+ pageCount?: number
32
+ /**
33
+ * When manually controlling pagination, you can supply a total `rowCount` value to the table if you know it. The `pageCount` can be calculated from this value and the `pageSize`.
34
+ */
35
+ rowCount?: number
36
+ }
37
+
38
+ export interface PaginationDefaultOptions {
39
+ onPaginationChange: OnChangeFn<PaginationState>
40
+ }
41
+
42
+ export interface Table_RowPagination<
43
+ TFeatures extends TableFeatures,
44
+ TData extends RowData,
45
+ > {
46
+ _autoResetPageIndex: () => void
47
+ /**
48
+ * Returns whether the table can go to the next page.
49
+ */
50
+ getCanNextPage: () => boolean
51
+ /**
52
+ * Returns whether the table can go to the previous page.
53
+ */
54
+ getCanPreviousPage: () => boolean
55
+ /**
56
+ * Returns the page count. If manually paginating or controlling the pagination state, this will come directly from the `options.pageCount` table option, otherwise it will be calculated from the table data using the total row count and current page size.
57
+ */
58
+ getPageCount: () => number
59
+ /**
60
+ * Returns the row count. If manually paginating or controlling the pagination state, this will come directly from the `options.rowCount` table option, otherwise it will be calculated from the table data.
61
+ */
62
+ getRowCount: () => number
63
+ /**
64
+ * Returns an array of page options (zero-index-based) for the current page size.
65
+ */
66
+ getPageOptions: () => Array<number>
67
+ /**
68
+ * Increments the page index by one, if possible.
69
+ */
70
+ nextPage: () => void
71
+ /**
72
+ * Decrements the page index by one, if possible.
73
+ */
74
+ previousPage: () => void
75
+ /**
76
+ * Sets the page index to `0`.
77
+ */
78
+ firstPage: () => void
79
+ /**
80
+ * Sets the page index to the last page.
81
+ */
82
+ lastPage: () => void
83
+ /**
84
+ * Resets the page index to its initial state. If `defaultState` is `true`, the page index will be reset to `0` regardless of initial state.
85
+ */
86
+ resetPageIndex: (defaultState?: boolean) => void
87
+ /**
88
+ * Resets the page size to its initial state. If `defaultState` is `true`, the page size will be reset to `10` regardless of initial state.
89
+ */
90
+ resetPageSize: (defaultState?: boolean) => void
91
+ /**
92
+ * Resets the **pagination** state to `initialState.pagination`, or `true` can be passed to force a default blank state reset to `[]`.
93
+ */
94
+ resetPagination: (defaultState?: boolean) => void
95
+ /**
96
+ * Updates the page index using the provided function or value in the `state.pagination.pageIndex` state.
97
+ */
98
+ setPageIndex: (updater: Updater<number>) => void
99
+ /**
100
+ * Updates the page size using the provided function or value in the `state.pagination.pageSize` state.
101
+ */
102
+ setPageSize: (updater: Updater<number>) => void
103
+ /**
104
+ * Sets or updates the `state.pagination` state.
105
+ */
106
+ setPagination: (updater: Updater<PaginationState>) => void
107
+ }
108
+
109
+ export interface Table_RowModels_Paginated<
110
+ TFeatures extends TableFeatures,
111
+ TData extends RowData,
112
+ > {
113
+ /**
114
+ * Returns the row model for the table after pagination has been applied.
115
+ */
116
+ getPaginatedRowModel: () => RowModel<TFeatures, TData>
117
+ /**
118
+ * Returns the row model for the table before any pagination has been applied.
119
+ */
120
+ getPrePaginatedRowModel: () => RowModel<TFeatures, TData>
121
+ }
122
+
123
+ export interface CreateRowModel_Paginated<
124
+ TFeatures extends TableFeatures,
125
+ TData extends RowData,
126
+ > {
127
+ /**
128
+ * Returns the row model after pagination has taken place, but no further.
129
+ * Pagination columns are automatically reordered by default to the start of the columns list. If you would rather remove them or leave them as-is, set the appropriate mode here.
130
+ */
131
+ paginatedRowModel?: (
132
+ table: Table<TFeatures, TData>,
133
+ ) => () => RowModel<TFeatures, TData>
134
+ }
135
+
136
+ export interface CachedRowModel_Paginated<
137
+ TFeatures extends TableFeatures,
138
+ TData extends RowData,
139
+ > {
140
+ paginatedRowModel: () => RowModel<TFeatures, TData>
141
+ }
@@ -0,0 +1,204 @@
1
+ import { functionalUpdate } from '../../utils'
2
+ import type { RowData, Updater } from '../../types/type-utils'
3
+ import type { TableFeatures } from '../../types/TableFeatures'
4
+ import type { Table_Internal } from '../../types/Table'
5
+ import type { PaginationState } from './rowPaginationFeature.types'
6
+
7
+ const defaultPageIndex = 0
8
+ const defaultPageSize = 10
9
+
10
+ export function getDefaultPaginationState(): PaginationState {
11
+ return structuredClone({
12
+ pageIndex: defaultPageIndex,
13
+ pageSize: defaultPageSize,
14
+ })
15
+ }
16
+
17
+ export function table_autoResetPageIndex<
18
+ TFeatures extends TableFeatures,
19
+ TData extends RowData,
20
+ >(table: Table_Internal<TFeatures, TData>) {
21
+ if (
22
+ table.options.autoResetAll ??
23
+ table.options.autoResetPageIndex ??
24
+ !table.options.manualPagination
25
+ ) {
26
+ table_resetPageIndex(table)
27
+ }
28
+ }
29
+
30
+ export function table_setPagination<
31
+ TFeatures extends TableFeatures,
32
+ TData extends RowData,
33
+ >(table: Table_Internal<TFeatures, TData>, updater: Updater<PaginationState>) {
34
+ const safeUpdater: Updater<PaginationState> = (old) => {
35
+ const newState = functionalUpdate(updater, old)
36
+
37
+ return newState
38
+ }
39
+
40
+ return table.options.onPaginationChange?.(safeUpdater)
41
+ }
42
+
43
+ export function table_resetPagination<
44
+ TFeatures extends TableFeatures,
45
+ TData extends RowData,
46
+ >(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
47
+ table_setPagination(
48
+ table,
49
+ defaultState
50
+ ? getDefaultPaginationState()
51
+ : (table.initialState.pagination ?? getDefaultPaginationState()),
52
+ )
53
+ }
54
+
55
+ export function table_setPageIndex<
56
+ TFeatures extends TableFeatures,
57
+ TData extends RowData,
58
+ >(table: Table_Internal<TFeatures, TData>, updater: Updater<number>) {
59
+ table_setPagination(table, (old) => {
60
+ let pageIndex = functionalUpdate(updater, old.pageIndex)
61
+
62
+ const maxPageIndex =
63
+ typeof table.options.pageCount === 'undefined' ||
64
+ table.options.pageCount === -1
65
+ ? Number.MAX_SAFE_INTEGER
66
+ : table.options.pageCount - 1
67
+
68
+ pageIndex = Math.max(0, Math.min(pageIndex, maxPageIndex))
69
+
70
+ return {
71
+ ...old,
72
+ pageIndex,
73
+ }
74
+ })
75
+ }
76
+
77
+ export function table_resetPageIndex<
78
+ TFeatures extends TableFeatures,
79
+ TData extends RowData,
80
+ >(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
81
+ table_setPageIndex(
82
+ table,
83
+ defaultState
84
+ ? defaultPageIndex
85
+ : (table.initialState.pagination?.pageIndex ?? defaultPageIndex),
86
+ )
87
+ }
88
+
89
+ export function table_resetPageSize<
90
+ TFeatures extends TableFeatures,
91
+ TData extends RowData,
92
+ >(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
93
+ table_setPageSize(
94
+ table,
95
+ defaultState
96
+ ? defaultPageSize
97
+ : (table.initialState.pagination?.pageSize ?? defaultPageSize),
98
+ )
99
+ }
100
+
101
+ export function table_setPageSize<
102
+ TFeatures extends TableFeatures,
103
+ TData extends RowData,
104
+ >(table: Table_Internal<TFeatures, TData>, updater: Updater<number>) {
105
+ table_setPagination(table, (old) => {
106
+ const pageSize = Math.max(1, functionalUpdate(updater, old.pageSize))
107
+ const topRowIndex = old.pageSize * old.pageIndex
108
+ const pageIndex = Math.floor(topRowIndex / pageSize)
109
+
110
+ return {
111
+ ...old,
112
+ pageIndex,
113
+ pageSize,
114
+ }
115
+ })
116
+ }
117
+
118
+ export function table_getPageOptions<
119
+ TFeatures extends TableFeatures,
120
+ TData extends RowData,
121
+ >(table: Table_Internal<TFeatures, TData>) {
122
+ const pageCount = table_getPageCount(table)
123
+ let pageOptions: Array<number> = []
124
+ if (pageCount && pageCount > 0) {
125
+ pageOptions = [...new Array(pageCount)].fill(null).map((_, i) => i)
126
+ }
127
+ return pageOptions
128
+ }
129
+
130
+ export function table_getCanPreviousPage<
131
+ TFeatures extends TableFeatures,
132
+ TData extends RowData,
133
+ >(table: Table_Internal<TFeatures, TData>) {
134
+ return (table.store.state.pagination?.pageIndex ?? 0) > 0
135
+ }
136
+
137
+ export function table_getCanNextPage<
138
+ TFeatures extends TableFeatures,
139
+ TData extends RowData,
140
+ >(table: Table_Internal<TFeatures, TData>) {
141
+ const pageIndex = table.store.state.pagination?.pageIndex ?? defaultPageIndex
142
+
143
+ const pageCount = table_getPageCount(table)
144
+
145
+ if (pageCount === -1) {
146
+ return true
147
+ }
148
+
149
+ if (pageCount === 0) {
150
+ return false
151
+ }
152
+
153
+ return pageIndex < pageCount - 1
154
+ }
155
+
156
+ export function table_previousPage<
157
+ TFeatures extends TableFeatures,
158
+ TData extends RowData,
159
+ >(table: Table_Internal<TFeatures, TData>) {
160
+ return table_setPageIndex(table, (old) => old - 1)
161
+ }
162
+
163
+ export function table_nextPage<
164
+ TFeatures extends TableFeatures,
165
+ TData extends RowData,
166
+ >(table: Table_Internal<TFeatures, TData>) {
167
+ return table_setPageIndex(table, (old) => {
168
+ return old + 1
169
+ })
170
+ }
171
+
172
+ export function table_firstPage<
173
+ TFeatures extends TableFeatures,
174
+ TData extends RowData,
175
+ >(table: Table_Internal<TFeatures, TData>) {
176
+ return table_setPageIndex(table, 0)
177
+ }
178
+
179
+ export function table_lastPage<
180
+ TFeatures extends TableFeatures,
181
+ TData extends RowData,
182
+ >(table: Table_Internal<TFeatures, TData>) {
183
+ return table_setPageIndex(table, table_getPageCount(table) - 1)
184
+ }
185
+
186
+ export function table_getPageCount<
187
+ TFeatures extends TableFeatures,
188
+ TData extends RowData,
189
+ >(table: Table_Internal<TFeatures, TData>) {
190
+ return (
191
+ table.options.pageCount ??
192
+ Math.ceil(
193
+ table_getRowCount(table) /
194
+ (table.store.state.pagination?.pageSize ?? defaultPageSize),
195
+ )
196
+ )
197
+ }
198
+
199
+ export function table_getRowCount<
200
+ TFeatures extends TableFeatures,
201
+ TData extends RowData,
202
+ >(table: Table_Internal<TFeatures, TData>) {
203
+ return table.options.rowCount ?? table.getPrePaginatedRowModel().rows.length
204
+ }
@@ -0,0 +1,121 @@
1
+ import {
2
+ assignPrototypeAPIs,
3
+ assignTableAPIs,
4
+ makeStateUpdater,
5
+ } from '../../utils'
6
+ import {
7
+ getDefaultRowPinningState,
8
+ row_getCanPin,
9
+ row_getIsPinned,
10
+ row_getPinnedIndex,
11
+ row_pin,
12
+ table_getBottomRows,
13
+ table_getCenterRows,
14
+ table_getIsSomeRowsPinned,
15
+ table_getTopRows,
16
+ table_resetRowPinning,
17
+ table_setRowPinning,
18
+ } from './rowPinningFeature.utils'
19
+ import type { RowData } from '../../types/type-utils'
20
+ import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
21
+ // import type {
22
+ // Row_RowPinning,
23
+ // TableOptions_RowPinning,
24
+ // TableState_RowPinning,
25
+ // Table_RowPinning,
26
+ // } from './rowPinningFeature.types'
27
+
28
+ interface RowPinningFeatureConstructors<
29
+ TFeatures extends TableFeatures,
30
+ TData extends RowData,
31
+ > {
32
+ // Row: Row_RowPinning
33
+ // Table: Table_RowPinning<TFeatures, RowData>
34
+ // TableOptions: TableOptions_RowPinning<TFeatures, RowData>
35
+ // TableState: TableState_RowPinning
36
+ }
37
+
38
+ export function constructRowPinningFeature<
39
+ TFeatures extends TableFeatures,
40
+ TData extends RowData,
41
+ >(): TableFeature<RowPinningFeatureConstructors<TFeatures, TData>> {
42
+ return {
43
+ getInitialState: (initialState) => {
44
+ return {
45
+ ...initialState,
46
+ rowPinning: {
47
+ ...getDefaultRowPinningState(),
48
+ ...initialState.rowPinning,
49
+ },
50
+ }
51
+ },
52
+
53
+ getDefaultTableOptions: (table) => {
54
+ return {
55
+ onRowPinningChange: makeStateUpdater('rowPinning', table),
56
+ }
57
+ },
58
+
59
+ assignRowPrototype: (prototype, table) => {
60
+ assignPrototypeAPIs('rowPinningFeature', prototype, table, {
61
+ row_getCanPin: {
62
+ fn: (row) => row_getCanPin(row),
63
+ },
64
+ row_getIsPinned: {
65
+ fn: (row) => row_getIsPinned(row),
66
+ },
67
+ row_getPinnedIndex: {
68
+ fn: (row) => row_getPinnedIndex(row),
69
+ memoDeps: (row) => [
70
+ row.table.getRowModel().rows,
71
+ row.table.store.state.rowPinning,
72
+ ],
73
+ },
74
+ row_pin: {
75
+ fn: (row, position, includeLeafRows, includeParentRows) =>
76
+ row_pin(row, position, includeLeafRows, includeParentRows),
77
+ },
78
+ })
79
+ },
80
+
81
+ constructTableAPIs: (table) => {
82
+ assignTableAPIs('rowPinningFeature', table, {
83
+ table_setRowPinning: {
84
+ fn: (updater) => table_setRowPinning(table, updater),
85
+ },
86
+ table_resetRowPinning: {
87
+ fn: (defaultState) => table_resetRowPinning(table, defaultState),
88
+ },
89
+ table_getIsSomeRowsPinned: {
90
+ fn: (position) => table_getIsSomeRowsPinned(table, position),
91
+ },
92
+ table_getTopRows: {
93
+ fn: () => table_getTopRows(table),
94
+ memoDeps: () => [
95
+ table.getRowModel().rows,
96
+ table.store.state.rowPinning?.top,
97
+ ],
98
+ },
99
+ table_getBottomRows: {
100
+ fn: () => table_getBottomRows(table),
101
+ memoDeps: () => [
102
+ table.getRowModel().rows,
103
+ table.store.state.rowPinning?.bottom,
104
+ ],
105
+ },
106
+ table_getCenterRows: {
107
+ fn: () => table_getCenterRows(table),
108
+ memoDeps: () => [
109
+ table.getRowModel().rows,
110
+ table.store.state.rowPinning,
111
+ ],
112
+ },
113
+ })
114
+ },
115
+ }
116
+ }
117
+
118
+ /**
119
+ * The Row Pinning feature adds row pinning state and APIs to the table and row objects.
120
+ */
121
+ export const rowPinningFeature = constructRowPinningFeature()
@@ -0,0 +1,89 @@
1
+ import type { OnChangeFn, RowData, Updater } from '../../types/type-utils'
2
+ import type { TableFeatures } from '../../types/TableFeatures'
3
+ import type { Row } from '../../types/Row'
4
+
5
+ export type RowPinningPosition = false | 'top' | 'bottom'
6
+
7
+ export interface RowPinningState {
8
+ bottom: Array<string>
9
+ top: Array<string>
10
+ }
11
+
12
+ export interface TableState_RowPinning {
13
+ rowPinning: RowPinningState
14
+ }
15
+
16
+ export interface TableOptions_RowPinning<
17
+ TFeatures extends TableFeatures,
18
+ TData extends RowData,
19
+ > {
20
+ /**
21
+ * Enables/disables row pinning for the table. Defaults to `true`.
22
+ */
23
+ enableRowPinning?: boolean | ((row: Row<TFeatures, TData>) => boolean)
24
+ /**
25
+ * When `false`, pinned rows will not be visible if they are filtered or paginated out of the table. When `true`, pinned rows will always be visible regardless of filtering or pagination. Defaults to `true`.
26
+ */
27
+ keepPinnedRows?: boolean
28
+ /**
29
+ * If provided, this function will be called with an `updaterFn` when `state.rowPinning` changes. This overrides the default internal state management, so you will also need to supply `state.rowPinning` from your own managed state.
30
+ */
31
+ onRowPinningChange?: OnChangeFn<RowPinningState>
32
+ }
33
+
34
+ export interface RowPinningDefaultOptions {
35
+ onRowPinningChange: OnChangeFn<RowPinningState>
36
+ }
37
+
38
+ export interface Row_RowPinning {
39
+ /**
40
+ * Returns whether or not the row can be pinned.
41
+ */
42
+ getCanPin: () => boolean
43
+ /**
44
+ * Returns the pinned position of the row. (`'top'`, `'bottom'` or `false`)
45
+ */
46
+ getIsPinned: () => RowPinningPosition
47
+ /**
48
+ * Returns the numeric pinned index of the row within a pinned row group.
49
+ */
50
+ getPinnedIndex: () => number
51
+ /**
52
+ * Pins a row to the `'top'` or `'bottom'`, or unpins the row to the center if `false` is passed.
53
+ */
54
+ pin: (
55
+ position: RowPinningPosition,
56
+ includeLeafRows?: boolean,
57
+ includeParentRows?: boolean,
58
+ ) => void
59
+ }
60
+
61
+ export interface Table_RowPinning<
62
+ TFeatures extends TableFeatures,
63
+ TData extends RowData,
64
+ > {
65
+ /**
66
+ * Returns all bottom pinned rows.
67
+ */
68
+ getBottomRows: () => Array<Row<TFeatures, TData>>
69
+ /**
70
+ * Returns all rows that are not pinned to the top or bottom.
71
+ */
72
+ getCenterRows: () => Array<Row<TFeatures, TData>>
73
+ /**
74
+ * Returns whether or not any rows are pinned. Optionally specify to only check for pinned rows in either the `top` or `bottom` position.
75
+ */
76
+ getIsSomeRowsPinned: (position?: RowPinningPosition) => boolean
77
+ /**
78
+ * Returns all top pinned rows.
79
+ */
80
+ getTopRows: () => Array<Row<TFeatures, TData>>
81
+ /**
82
+ * Resets the **rowPinning** state to `initialState.rowPinning`, or `true` can be passed to force a default blank state reset to `{ top: [], bottom: [], }`.
83
+ */
84
+ resetRowPinning: (defaultState?: boolean) => void
85
+ /**
86
+ * Sets or updates the `state.rowPinning` state.
87
+ */
88
+ setRowPinning: (updater: Updater<RowPinningState>) => void
89
+ }