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

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 +65 -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 +95 -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,61 @@
1
+ import type { Table_Internal } from '../../types/Table'
2
+ import type { CellData, RowData } from '../../types/type-utils'
3
+ import type { TableFeatures } from '../../types/TableFeatures'
4
+ import type { Header } from '../../types/Header'
5
+ import type { Column } from '../../types/Column'
6
+ import type { Header_CoreProperties } from './coreHeadersFeature.types'
7
+
8
+ /**
9
+ * Creates or retrieves the header prototype for a table.
10
+ * The prototype is cached on the table and shared by all header instances.
11
+ */
12
+ function getHeaderPrototype<
13
+ TFeatures extends TableFeatures,
14
+ TData extends RowData,
15
+ >(table: Table_Internal<TFeatures, TData>): object {
16
+ if (!table._headerPrototype) {
17
+ table._headerPrototype = { table }
18
+ for (const feature of Object.values(table._features)) {
19
+ feature.assignHeaderPrototype?.(table._headerPrototype, table)
20
+ }
21
+ }
22
+ return table._headerPrototype
23
+ }
24
+
25
+ export function constructHeader<
26
+ TFeatures extends TableFeatures,
27
+ TData extends RowData,
28
+ TValue extends CellData = CellData,
29
+ >(
30
+ table: Table_Internal<TFeatures, TData>,
31
+ column: Column<TFeatures, TData, TValue>,
32
+ options: {
33
+ id?: string
34
+ isPlaceholder?: boolean
35
+ placeholderId?: string
36
+ index: number
37
+ depth: number
38
+ },
39
+ ): Header<TFeatures, TData, TValue> {
40
+ // Create header with shared prototype for memory efficiency
41
+ const headerPrototype = getHeaderPrototype(table)
42
+ const header = Object.create(headerPrototype) as Header_CoreProperties<
43
+ TFeatures,
44
+ TData,
45
+ TValue
46
+ >
47
+
48
+ // Only assign instance-specific properties
49
+ header.colSpan = 0
50
+ header.column = column
51
+ header.depth = options.depth
52
+ header.headerGroup = null
53
+ header.id = options.id ?? column.id
54
+ header.index = options.index
55
+ header.isPlaceholder = !!options.isPlaceholder
56
+ header.placeholderId = options.placeholderId
57
+ header.rowSpan = 0
58
+ header.subHeaders = []
59
+
60
+ return header as Header<TFeatures, TData, TValue>
61
+ }
@@ -0,0 +1,98 @@
1
+ import {
2
+ assignPrototypeAPIs,
3
+ assignTableAPIs,
4
+ callMemoOrStaticFn,
5
+ } from '../../utils'
6
+ import {
7
+ table_getCenterHeaderGroups,
8
+ table_getLeftHeaderGroups,
9
+ table_getRightHeaderGroups,
10
+ } from '../../features/column-pinning/columnPinningFeature.utils'
11
+ import {
12
+ header_getContext,
13
+ header_getLeafHeaders,
14
+ table_getFlatHeaders,
15
+ table_getFooterGroups,
16
+ table_getHeaderGroups,
17
+ table_getLeafHeaders,
18
+ } from './coreHeadersFeature.utils'
19
+ import type { RowData } from '../../types/type-utils'
20
+ import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
21
+ // import type { Header_Header, Table_Headers } from './coreHeadersFeature.types'
22
+
23
+ interface CoreHeadersFeatureConstructors<
24
+ TFeatures extends TableFeatures,
25
+ TData extends RowData,
26
+ > {
27
+ // Header: Header_Header<TFeatures, TData>
28
+ // Table: Table_Headers<TFeatures, TData>
29
+ }
30
+
31
+ export function constructCoreHeadersFeature<
32
+ TFeatures extends TableFeatures,
33
+ TData extends RowData,
34
+ >(): TableFeature<CoreHeadersFeatureConstructors<TFeatures, TData>> {
35
+ return {
36
+ assignHeaderPrototype: (prototype, table) => {
37
+ assignPrototypeAPIs('coreHeadersFeature', prototype, table, {
38
+ header_getLeafHeaders: {
39
+ fn: (header) => header_getLeafHeaders(header),
40
+ memoDeps: (header) => [header.column.table.options.columns],
41
+ },
42
+ header_getContext: {
43
+ fn: (header) => header_getContext(header),
44
+ memoDeps: (header) => [header.column.table.options.columns],
45
+ },
46
+ })
47
+ },
48
+
49
+ constructTableAPIs: (table) => {
50
+ assignTableAPIs('coreHeadersFeature', table, {
51
+ table_getHeaderGroups: {
52
+ fn: () => table_getHeaderGroups(table),
53
+ memoDeps: () => [
54
+ table.options.columns,
55
+ table.store.state.columnOrder,
56
+ table.store.state.grouping,
57
+ table.store.state.columnPinning,
58
+ table.store.state.columnVisibility,
59
+ table.options.groupedColumnMode,
60
+ ],
61
+ },
62
+ table_getFooterGroups: {
63
+ fn: () => table_getFooterGroups(table),
64
+ memoDeps: () => [table.getHeaderGroups()],
65
+ },
66
+ table_getFlatHeaders: {
67
+ fn: () => table_getFlatHeaders(table),
68
+ memoDeps: () => [table.getHeaderGroups()],
69
+ },
70
+ table_getLeafHeaders: {
71
+ fn: () => table_getLeafHeaders(table),
72
+ memoDeps: () => [
73
+ callMemoOrStaticFn(
74
+ table,
75
+ 'getLeftHeaderGroups',
76
+ table_getLeftHeaderGroups,
77
+ ),
78
+ callMemoOrStaticFn(
79
+ table,
80
+ 'getCenterHeaderGroups',
81
+ table_getCenterHeaderGroups,
82
+ ),
83
+ callMemoOrStaticFn(
84
+ table,
85
+ 'getRightHeaderGroups',
86
+ table_getRightHeaderGroups,
87
+ ),
88
+ ],
89
+ },
90
+ })
91
+ },
92
+ }
93
+ }
94
+
95
+ /**
96
+ * The Core Headers feature provides the core header functionality.
97
+ */
98
+ export const coreHeadersFeature = constructCoreHeadersFeature()
@@ -0,0 +1,123 @@
1
+ import type { CellData, RowData } from '../../types/type-utils'
2
+ import type { TableFeatures } from '../../types/TableFeatures'
3
+ import type { Table } from '../../types/Table'
4
+ import type { Header } from '../../types/Header'
5
+ import type { HeaderGroup } from '../../types/HeaderGroup'
6
+ import type { Column } from '../../types/Column'
7
+
8
+ export interface Table_Headers<
9
+ TFeatures extends TableFeatures,
10
+ TData extends RowData,
11
+ > {
12
+ /**
13
+ * Returns all header groups for the table.
14
+ */
15
+ getHeaderGroups: () => Array<HeaderGroup<TFeatures, TData>>
16
+ /**
17
+ * Returns the footer groups for the table.
18
+ */
19
+ getFooterGroups: () => Array<HeaderGroup<TFeatures, TData>>
20
+ /**
21
+ * Returns headers for all columns in the table, including parent headers.
22
+ */
23
+ getFlatHeaders: () => Array<Header<TFeatures, TData, unknown>>
24
+ /**
25
+ * Returns headers for all leaf columns in the table, (not including parent headers).
26
+ */
27
+ getLeafHeaders: () => Array<Header<TFeatures, TData, unknown>>
28
+ }
29
+
30
+ export interface HeaderContext<
31
+ TFeatures extends TableFeatures,
32
+ TData extends RowData,
33
+ TValue extends CellData = CellData,
34
+ > {
35
+ /**
36
+ * An instance of a column.
37
+ */
38
+ column: Column<TFeatures, TData, TValue>
39
+ /**
40
+ * An instance of a header.
41
+ */
42
+ header: Header<TFeatures, TData, TValue>
43
+ /**
44
+ * The table instance.
45
+ */
46
+ table: Table<TFeatures, TData>
47
+ }
48
+
49
+ export interface Header_CoreProperties<
50
+ TFeatures extends TableFeatures,
51
+ TData extends RowData,
52
+ TValue extends CellData = CellData,
53
+ > {
54
+ /**
55
+ * The col-span for the header.
56
+ */
57
+ colSpan: number
58
+ /**
59
+ * The header's associated column object.
60
+ */
61
+ column: Column<TFeatures, TData, TValue>
62
+ /**
63
+ * The depth of the header, zero-indexed based.
64
+ */
65
+ depth: number
66
+ /**
67
+ * The header's associated header group object.
68
+ */
69
+ headerGroup: HeaderGroup<TFeatures, TData> | null
70
+ /**
71
+ * The unique identifier for the header.
72
+ */
73
+ id: string
74
+ /**
75
+ * The index for the header within the header group.
76
+ */
77
+ index: number
78
+ /**
79
+ * A boolean denoting if the header is a placeholder header.
80
+ */
81
+ isPlaceholder: boolean
82
+ /**
83
+ * If the header is a placeholder header, this will be a unique header ID that does not conflict with any other headers across the table.
84
+ */
85
+ placeholderId?: string
86
+ /**
87
+ * The row-span for the header.
88
+ */
89
+ rowSpan: number
90
+ /**
91
+ * The header's hierarchical sub/child headers. Will be empty if the header's associated column is a leaf-column.
92
+ */
93
+ subHeaders: Array<Header<TFeatures, TData, TValue>>
94
+ /**
95
+ * Reference to the parent table instance.
96
+ */
97
+ table: Table<TFeatures, TData>
98
+ }
99
+
100
+ export interface Header_Header<
101
+ TFeatures extends TableFeatures,
102
+ TData extends RowData,
103
+ TValue extends CellData = CellData,
104
+ > extends Header_CoreProperties<TFeatures, TData, TValue> {
105
+ /**
106
+ * Returns the rendering context (or props) for column-based components like headers, footers and filters.
107
+ */
108
+ getContext: () => HeaderContext<TFeatures, TData, TValue>
109
+ /**
110
+ * Returns the leaf headers hierarchically nested under this header.
111
+ */
112
+ getLeafHeaders: () => Array<Header<TFeatures, TData, TValue>>
113
+ }
114
+
115
+ export interface HeaderGroup_Header<
116
+ TFeatures extends TableFeatures,
117
+ TData extends RowData,
118
+ TValue extends CellData = CellData,
119
+ > {
120
+ depth: number
121
+ headers: Array<Header<TFeatures, TData, TValue>>
122
+ id: string
123
+ }
@@ -0,0 +1,131 @@
1
+ import {
2
+ getDefaultColumnPinningState,
3
+ table_getCenterHeaderGroups,
4
+ table_getLeftHeaderGroups,
5
+ table_getRightHeaderGroups,
6
+ } from '../../features/column-pinning/columnPinningFeature.utils'
7
+ import { table_getVisibleLeafColumns } from '../../features/column-visibility/columnVisibilityFeature.utils'
8
+ import { callMemoOrStaticFn } from '../../utils'
9
+ import { buildHeaderGroups } from './buildHeaderGroups'
10
+ import type { Table_Internal } from '../../types/Table'
11
+ import type { Header } from '../../types/Header'
12
+ import type { RowData } from '../../types/type-utils'
13
+ import type { TableFeatures } from '../../types/TableFeatures'
14
+ import type { Header_Header } from './coreHeadersFeature.types'
15
+ import type { Column } from '../../types/Column'
16
+
17
+ export function header_getLeafHeaders<
18
+ TFeatures extends TableFeatures,
19
+ TData extends RowData,
20
+ TValue,
21
+ >(header: Header<TFeatures, TData, TValue>) {
22
+ const leafHeaders: Array<Header<TFeatures, TData, TValue>> = []
23
+
24
+ const recurseHeader = (h: Header_Header<TFeatures, TData, TValue>) => {
25
+ if (h.subHeaders.length) {
26
+ h.subHeaders.map(recurseHeader)
27
+ }
28
+ leafHeaders.push(h as Header<TFeatures, TData, TValue>)
29
+ }
30
+
31
+ recurseHeader(header)
32
+
33
+ return leafHeaders
34
+ }
35
+
36
+ export function header_getContext<
37
+ TFeatures extends TableFeatures,
38
+ TData extends RowData,
39
+ TValue,
40
+ >(header: Header<TFeatures, TData, TValue>) {
41
+ return {
42
+ column: header.column,
43
+ header,
44
+ table: header.column.table,
45
+ }
46
+ }
47
+
48
+ export function table_getHeaderGroups<
49
+ TFeatures extends TableFeatures,
50
+ TData extends RowData,
51
+ >(table: Table_Internal<TFeatures, TData>) {
52
+ const { left, right } =
53
+ table.store.state.columnPinning ?? getDefaultColumnPinningState()
54
+ const allColumns = table.getAllColumns()
55
+ const leafColumns = callMemoOrStaticFn(
56
+ table,
57
+ 'getVisibleLeafColumns',
58
+ table_getVisibleLeafColumns,
59
+ ) as unknown as Array<Column<TFeatures, TData, unknown>>
60
+
61
+ const leftColumns = left
62
+ .map((columnId) => leafColumns.find((d) => d.id === columnId)!)
63
+ .filter(Boolean)
64
+
65
+ const rightColumns = right
66
+ .map((columnId) => leafColumns.find((d) => d.id === columnId)!)
67
+ .filter(Boolean)
68
+
69
+ const centerColumns = leafColumns.filter(
70
+ (column) => !left.includes(column.id) && !right.includes(column.id),
71
+ )
72
+
73
+ const headerGroups = buildHeaderGroups(
74
+ allColumns,
75
+ [...leftColumns, ...centerColumns, ...rightColumns],
76
+ table,
77
+ )
78
+
79
+ return headerGroups
80
+ }
81
+
82
+ export function table_getFooterGroups<
83
+ TFeatures extends TableFeatures,
84
+ TData extends RowData,
85
+ >(table: Table_Internal<TFeatures, TData>) {
86
+ const headerGroups = table.getHeaderGroups()
87
+ return [...headerGroups].reverse()
88
+ }
89
+
90
+ export function table_getFlatHeaders<
91
+ TFeatures extends TableFeatures,
92
+ TData extends RowData,
93
+ >(table: Table_Internal<TFeatures, TData>) {
94
+ const headerGroups = table.getHeaderGroups()
95
+ return headerGroups
96
+ .map((headerGroup) => {
97
+ return headerGroup.headers
98
+ })
99
+ .flat()
100
+ }
101
+
102
+ export function table_getLeafHeaders<
103
+ TFeatures extends TableFeatures,
104
+ TData extends RowData,
105
+ >(table: Table_Internal<TFeatures, TData>) {
106
+ const left = callMemoOrStaticFn(
107
+ table,
108
+ 'getLeftHeaderGroups',
109
+ table_getLeftHeaderGroups,
110
+ )
111
+ const center = callMemoOrStaticFn(
112
+ table,
113
+ 'getCenterHeaderGroups',
114
+ table_getCenterHeaderGroups,
115
+ )
116
+ const right = callMemoOrStaticFn(
117
+ table,
118
+ 'getRightHeaderGroups',
119
+ table_getRightHeaderGroups,
120
+ )
121
+
122
+ return [
123
+ ...(left[0]?.headers ?? []),
124
+ ...(center[0]?.headers ?? []),
125
+ ...(right[0]?.headers ?? []),
126
+ ]
127
+ .map((header) => {
128
+ return header.getLeafHeaders()
129
+ })
130
+ .flat()
131
+ }
@@ -0,0 +1,78 @@
1
+ import { assignTableAPIs } from '../../utils'
2
+ import {
3
+ table_getCoreRowModel,
4
+ table_getExpandedRowModel,
5
+ table_getFilteredRowModel,
6
+ table_getGroupedRowModel,
7
+ table_getPaginatedRowModel,
8
+ table_getPreExpandedRowModel,
9
+ table_getPreFilteredRowModel,
10
+ table_getPreGroupedRowModel,
11
+ table_getPrePaginatedRowModel,
12
+ table_getPreSortedRowModel,
13
+ table_getRowModel,
14
+ table_getSortedRowModel,
15
+ } from './coreRowModelsFeature.utils'
16
+ import type { RowData } from '../../types/type-utils'
17
+ import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
18
+ // import type { Table_RowModels } from './coreRowModelsFeature.types'
19
+
20
+ interface CoreRowModelsFeatureConstructors<
21
+ TFeatures extends TableFeatures,
22
+ TData extends RowData,
23
+ > {
24
+ // Table: Table_RowModels<TFeatures, TData>
25
+ }
26
+
27
+ export function constructCoreRowModelsFeature<
28
+ TFeatures extends TableFeatures,
29
+ TData extends RowData,
30
+ >(): TableFeature<CoreRowModelsFeatureConstructors<TFeatures, TData>> {
31
+ return {
32
+ constructTableAPIs: (table) => {
33
+ assignTableAPIs('coreRowModelsFeature', table, {
34
+ table_getCoreRowModel: {
35
+ fn: () => table_getCoreRowModel(table),
36
+ },
37
+ table_getPreFilteredRowModel: {
38
+ fn: () => table_getPreFilteredRowModel(table),
39
+ },
40
+ table_getFilteredRowModel: {
41
+ fn: () => table_getFilteredRowModel(table),
42
+ },
43
+ table_getPreGroupedRowModel: {
44
+ fn: () => table_getPreGroupedRowModel(table),
45
+ },
46
+ table_getGroupedRowModel: {
47
+ fn: () => table_getGroupedRowModel(table),
48
+ },
49
+ table_getPreSortedRowModel: {
50
+ fn: () => table_getPreSortedRowModel(table),
51
+ },
52
+ table_getSortedRowModel: {
53
+ fn: () => table_getSortedRowModel(table),
54
+ },
55
+ table_getPreExpandedRowModel: {
56
+ fn: () => table_getPreExpandedRowModel(table),
57
+ },
58
+ table_getExpandedRowModel: {
59
+ fn: () => table_getExpandedRowModel(table),
60
+ },
61
+ table_getPrePaginatedRowModel: {
62
+ fn: () => table_getPrePaginatedRowModel(table),
63
+ },
64
+ table_getPaginatedRowModel: {
65
+ fn: () => table_getPaginatedRowModel(table),
66
+ },
67
+ table_getRowModel: {
68
+ fn: () => table_getRowModel(table),
69
+ },
70
+ })
71
+ },
72
+ }
73
+ }
74
+
75
+ /**
76
+ * The Core Row Models feature provides the core row model functionality.
77
+ */
78
+ export const coreRowModelsFeature = constructCoreRowModelsFeature()
@@ -0,0 +1,67 @@
1
+ import type { Table } from '../../types/Table'
2
+ import type { Table_RowModels_Faceted } from '../../features/column-faceting/columnFacetingFeature.types'
3
+ import type { Table_RowModels_Filtered } from '../../features/column-filtering/columnFilteringFeature.types'
4
+ import type { Table_RowModels_Grouped } from '../../features/column-grouping/columnGroupingFeature.types'
5
+ import type { Table_RowModels_Expanded } from '../../features/row-expanding/rowExpandingFeature.types'
6
+ import type { Table_RowModels_Paginated } from '../../features/row-pagination/rowPaginationFeature.types'
7
+ import type { Table_RowModels_Sorted } from '../../features/row-sorting/rowSortingFeature.types'
8
+ import type { Row } from '../../types/Row'
9
+ import type { TableFeatures } from '../../types/TableFeatures'
10
+ import type { RowData } from '../../types/type-utils'
11
+
12
+ export interface RowModel<
13
+ TFeatures extends TableFeatures,
14
+ TData extends RowData,
15
+ > {
16
+ rows: Array<Row<TFeatures, TData>>
17
+ flatRows: Array<Row<TFeatures, TData>>
18
+ rowsById: Record<string, Row<TFeatures, TData>>
19
+ }
20
+
21
+ export interface CreateRowModel_Plugins {}
22
+
23
+ export interface CreateRowModel_Core<
24
+ TFeatures extends TableFeatures,
25
+ TData extends RowData,
26
+ > extends CreateRowModel_Plugins {
27
+ /**
28
+ * This required option is a factory for a function that computes and returns the core row model for the table.
29
+ */
30
+ coreRowModel?: (
31
+ table: Table<TFeatures, TData>,
32
+ ) => () => RowModel<TFeatures, TData>
33
+ }
34
+
35
+ export interface CachedRowModel_Plugins {}
36
+
37
+ export interface CachedRowModel_Core<
38
+ TFeatures extends TableFeatures,
39
+ TData extends RowData,
40
+ > extends CachedRowModel_Plugins {
41
+ coreRowModel: () => RowModel<TFeatures, TData>
42
+ }
43
+
44
+ export interface Table_RowModels_Core<
45
+ TFeatures extends TableFeatures,
46
+ TData extends RowData,
47
+ > {
48
+ /**
49
+ * Returns the core row model before any processing has been applied.
50
+ */
51
+ getCoreRowModel: () => RowModel<TFeatures, TData>
52
+ /**
53
+ * Returns the final model after all processing from other used features has been applied. This is the row model that is most commonly used for rendering.
54
+ */
55
+ getRowModel: () => RowModel<TFeatures, TData>
56
+ }
57
+
58
+ export type Table_RowModels<
59
+ TFeatures extends TableFeatures,
60
+ TData extends RowData,
61
+ > = Table_RowModels_Core<TFeatures, TData> &
62
+ Table_RowModels_Faceted<TFeatures, TData> &
63
+ Table_RowModels_Filtered<TFeatures, TData> &
64
+ Table_RowModels_Grouped<TFeatures, TData> &
65
+ Table_RowModels_Expanded<TFeatures, TData> &
66
+ Table_RowModels_Paginated<TFeatures, TData> &
67
+ Table_RowModels_Sorted<TFeatures, TData>
@@ -0,0 +1,140 @@
1
+ import { createCoreRowModel } from './createCoreRowModel'
2
+ import type { Table_Internal } from '../../types/Table'
3
+ import type { TableFeatures } from '../../types/TableFeatures'
4
+ import type { RowData } from '../../types/type-utils'
5
+ import type { RowModel } from './coreRowModelsFeature.types'
6
+
7
+ export function table_getCoreRowModel<
8
+ TFeatures extends TableFeatures,
9
+ TData extends RowData,
10
+ >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
11
+ if (!table._rowModels.coreRowModel) {
12
+ table._rowModels.coreRowModel =
13
+ table.options._rowModels?.coreRowModel?.(table) ??
14
+ createCoreRowModel<TFeatures, TData>()(table)
15
+ }
16
+
17
+ return table._rowModels.coreRowModel()
18
+ }
19
+
20
+ export function table_getPreFilteredRowModel<
21
+ TFeatures extends TableFeatures,
22
+ TData extends RowData,
23
+ >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
24
+ return table.getCoreRowModel()
25
+ }
26
+
27
+ export function table_getFilteredRowModel<
28
+ TFeatures extends TableFeatures,
29
+ TData extends RowData,
30
+ >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
31
+ if (!table._rowModels.filteredRowModel) {
32
+ table._rowModels.filteredRowModel =
33
+ table.options._rowModels?.filteredRowModel?.(table)
34
+ }
35
+
36
+ if (table.options.manualFiltering || !table._rowModels.filteredRowModel) {
37
+ return table.getPreFilteredRowModel()
38
+ }
39
+
40
+ return table._rowModels.filteredRowModel()
41
+ }
42
+
43
+ export function table_getPreGroupedRowModel<
44
+ TFeatures extends TableFeatures,
45
+ TData extends RowData,
46
+ >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
47
+ return table.getFilteredRowModel()
48
+ }
49
+
50
+ export function table_getGroupedRowModel<
51
+ TFeatures extends TableFeatures,
52
+ TData extends RowData,
53
+ >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
54
+ if (!table._rowModels.groupedRowModel) {
55
+ table._rowModels.groupedRowModel =
56
+ table.options._rowModels?.groupedRowModel?.(table)
57
+ }
58
+
59
+ if (table.options.manualGrouping || !table._rowModels.groupedRowModel) {
60
+ return table.getPreGroupedRowModel()
61
+ }
62
+
63
+ return table._rowModels.groupedRowModel()
64
+ }
65
+
66
+ export function table_getPreSortedRowModel<
67
+ TFeatures extends TableFeatures,
68
+ TData extends RowData,
69
+ >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
70
+ return table.getGroupedRowModel()
71
+ }
72
+
73
+ export function table_getSortedRowModel<
74
+ TFeatures extends TableFeatures,
75
+ TData extends RowData,
76
+ >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
77
+ if (!table._rowModels.sortedRowModel) {
78
+ table._rowModels.sortedRowModel =
79
+ table.options._rowModels?.sortedRowModel?.(table)
80
+ }
81
+
82
+ if (table.options.manualSorting || !table._rowModels.sortedRowModel) {
83
+ return table.getPreSortedRowModel()
84
+ }
85
+
86
+ return table._rowModels.sortedRowModel()
87
+ }
88
+
89
+ export function table_getPreExpandedRowModel<
90
+ TFeatures extends TableFeatures,
91
+ TData extends RowData,
92
+ >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
93
+ return table.getSortedRowModel()
94
+ }
95
+
96
+ export function table_getExpandedRowModel<
97
+ TFeatures extends TableFeatures,
98
+ TData extends RowData,
99
+ >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
100
+ if (!table._rowModels.expandedRowModel) {
101
+ table._rowModels.expandedRowModel =
102
+ table.options._rowModels?.expandedRowModel?.(table)
103
+ }
104
+
105
+ if (table.options.manualExpanding || !table._rowModels.expandedRowModel) {
106
+ return table.getPreExpandedRowModel()
107
+ }
108
+
109
+ return table._rowModels.expandedRowModel()
110
+ }
111
+
112
+ export function table_getPrePaginatedRowModel<
113
+ TFeatures extends TableFeatures,
114
+ TData extends RowData,
115
+ >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
116
+ return table.getExpandedRowModel()
117
+ }
118
+
119
+ export function table_getPaginatedRowModel<
120
+ TFeatures extends TableFeatures,
121
+ TData extends RowData,
122
+ >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
123
+ if (!table._rowModels.paginatedRowModel) {
124
+ table._rowModels.paginatedRowModel =
125
+ table.options._rowModels?.paginatedRowModel?.(table)
126
+ }
127
+
128
+ if (table.options.manualPagination || !table._rowModels.paginatedRowModel) {
129
+ return table.getPrePaginatedRowModel()
130
+ }
131
+
132
+ return table._rowModels.paginatedRowModel()
133
+ }
134
+
135
+ export function table_getRowModel<
136
+ TFeatures extends TableFeatures,
137
+ TData extends RowData,
138
+ >(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {
139
+ return table.getPaginatedRowModel()
140
+ }