@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,537 @@
1
+ import {
2
+ column_getIsVisible,
3
+ row_getAllVisibleCells,
4
+ table_getVisibleLeafColumns,
5
+ } from '../column-visibility/columnVisibilityFeature.utils'
6
+ import { buildHeaderGroups } from '../../core/headers/buildHeaderGroups'
7
+ import { callMemoOrStaticFn } from '../../utils'
8
+ import type { HeaderGroup } from '../../types/HeaderGroup'
9
+ import type { Cell } from '../../types/Cell'
10
+ import type { Row } from '../../types/Row'
11
+ import type { CellData, RowData, Updater } from '../../types/type-utils'
12
+ import type { TableFeatures } from '../../types/TableFeatures'
13
+ import type { Table_Internal } from '../../types/Table'
14
+ import type { Column_Internal } from '../../types/Column'
15
+ import type {
16
+ ColumnPinningPosition,
17
+ ColumnPinningState,
18
+ } from './columnPinningFeature.types'
19
+
20
+ // State
21
+
22
+ export function getDefaultColumnPinningState(): ColumnPinningState {
23
+ return structuredClone({
24
+ left: [],
25
+ right: [],
26
+ })
27
+ }
28
+
29
+ // Column APIs
30
+
31
+ export function column_pin<
32
+ TFeatures extends TableFeatures,
33
+ TData extends RowData,
34
+ TValue extends CellData = CellData,
35
+ >(
36
+ column: Column_Internal<TFeatures, TData, TValue>,
37
+ position: ColumnPinningPosition,
38
+ ) {
39
+ const columnIds = column
40
+ .getLeafColumns()
41
+ .map((d) => d.id)
42
+ .filter(Boolean)
43
+
44
+ table_setColumnPinning(column.table, (old) => {
45
+ if (position === 'right') {
46
+ return {
47
+ left: old.left.filter((d) => !columnIds.includes(d)),
48
+ right: [
49
+ ...old.right.filter((d) => !columnIds.includes(d)),
50
+ ...columnIds,
51
+ ],
52
+ }
53
+ }
54
+
55
+ if (position === 'left') {
56
+ return {
57
+ left: [...old.left.filter((d) => !columnIds.includes(d)), ...columnIds],
58
+ right: old.right.filter((d) => !columnIds.includes(d)),
59
+ }
60
+ }
61
+
62
+ return {
63
+ left: old.left.filter((d) => !columnIds.includes(d)),
64
+ right: old.right.filter((d) => !columnIds.includes(d)),
65
+ }
66
+ })
67
+ }
68
+
69
+ export function column_getCanPin<
70
+ TFeatures extends TableFeatures,
71
+ TData extends RowData,
72
+ TValue extends CellData = CellData,
73
+ >(column: Column_Internal<TFeatures, TData, TValue>) {
74
+ const leafColumns = column.getLeafColumns() as Array<
75
+ Column_Internal<TFeatures, TData, TValue>
76
+ >
77
+
78
+ return leafColumns.some(
79
+ (leafColumn) =>
80
+ (leafColumn.columnDef.enablePinning ?? true) &&
81
+ (column.table.options.enableColumnPinning ?? true),
82
+ )
83
+ }
84
+
85
+ export function column_getIsPinned<
86
+ TFeatures extends TableFeatures,
87
+ TData extends RowData,
88
+ TValue extends CellData = CellData,
89
+ >(
90
+ column: Column_Internal<TFeatures, TData, TValue>,
91
+ ): ColumnPinningPosition | false {
92
+ const leafColumnIds = column.getLeafColumns().map((d) => d.id)
93
+
94
+ const { left, right } =
95
+ column.table.store.state.columnPinning ?? getDefaultColumnPinningState()
96
+
97
+ const isLeft = leafColumnIds.some((d) => left.includes(d))
98
+ const isRight = leafColumnIds.some((d) => right.includes(d))
99
+
100
+ return isLeft ? 'left' : isRight ? 'right' : false
101
+ }
102
+
103
+ export function column_getPinnedIndex<
104
+ TFeatures extends TableFeatures,
105
+ TData extends RowData,
106
+ TValue extends CellData = CellData,
107
+ >(column: Column_Internal<TFeatures, TData, TValue>) {
108
+ const position = column_getIsPinned(column)
109
+
110
+ return position
111
+ ? (column.table.store.state.columnPinning?.[position].indexOf(column.id) ??
112
+ -1)
113
+ : 0
114
+ }
115
+
116
+ // Row APIs
117
+
118
+ export function row_getCenterVisibleCells<
119
+ TFeatures extends TableFeatures,
120
+ TData extends RowData,
121
+ >(row: Row<TFeatures, TData>) {
122
+ const allCells = callMemoOrStaticFn(
123
+ row,
124
+ 'getAllVisibleCells',
125
+ row_getAllVisibleCells,
126
+ )
127
+ const { left, right } =
128
+ row.table.store.state.columnPinning ?? getDefaultColumnPinningState()
129
+ const leftAndRight: Array<string> = [...left, ...right]
130
+ return allCells.filter((d) => !leftAndRight.includes(d.column.id))
131
+ }
132
+
133
+ export function row_getLeftVisibleCells<
134
+ TFeatures extends TableFeatures,
135
+ TData extends RowData,
136
+ >(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {
137
+ const allCells = callMemoOrStaticFn(
138
+ row,
139
+ 'getAllVisibleCells',
140
+ row_getAllVisibleCells,
141
+ )
142
+ const { left } =
143
+ row.table.store.state.columnPinning ?? getDefaultColumnPinningState()
144
+ const cells = left
145
+ .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)
146
+ .filter(Boolean)
147
+ // Assign position property directly to preserve prototype chain
148
+ cells.forEach((cell) => {
149
+ cell.position = 'left'
150
+ })
151
+ return cells as any
152
+ }
153
+
154
+ export function row_getRightVisibleCells<
155
+ TFeatures extends TableFeatures,
156
+ TData extends RowData,
157
+ >(row: Row<TFeatures, TData>) {
158
+ const allCells = callMemoOrStaticFn(
159
+ row,
160
+ 'getAllVisibleCells',
161
+ row_getAllVisibleCells,
162
+ )
163
+ const { right } =
164
+ row.table.store.state.columnPinning ?? getDefaultColumnPinningState()
165
+ const cells = right
166
+ .map((columnId) => allCells.find((cell) => cell.column.id === columnId)!)
167
+ .filter(Boolean)
168
+ // Assign position property directly to preserve prototype chain
169
+ cells.forEach((cell) => {
170
+ cell.position = 'right'
171
+ })
172
+ return cells as any
173
+ }
174
+
175
+ // Table APIs
176
+
177
+ export function table_setColumnPinning<
178
+ TFeatures extends TableFeatures,
179
+ TData extends RowData,
180
+ >(
181
+ table: Table_Internal<TFeatures, TData>,
182
+ updater: Updater<ColumnPinningState>,
183
+ ) {
184
+ table.options.onColumnPinningChange?.(updater)
185
+ }
186
+
187
+ export function table_resetColumnPinning<
188
+ TFeatures extends TableFeatures,
189
+ TData extends RowData,
190
+ >(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
191
+ table_setColumnPinning(
192
+ table,
193
+ defaultState
194
+ ? getDefaultColumnPinningState()
195
+ : (table.initialState.columnPinning ?? getDefaultColumnPinningState()),
196
+ )
197
+ }
198
+
199
+ export function table_getIsSomeColumnsPinned<
200
+ TFeatures extends TableFeatures,
201
+ TData extends RowData,
202
+ >(table: Table_Internal<TFeatures, TData>, position?: ColumnPinningPosition) {
203
+ const pinningState = table.store.state.columnPinning
204
+
205
+ if (!position) {
206
+ return Boolean(pinningState?.left.length || pinningState?.right.length)
207
+ }
208
+ return Boolean(pinningState?.[position].length)
209
+ }
210
+
211
+ // header groups
212
+
213
+ export function table_getLeftHeaderGroups<
214
+ TFeatures extends TableFeatures,
215
+ TData extends RowData,
216
+ >(table: Table_Internal<TFeatures, TData>) {
217
+ const allColumns = table.getAllColumns()
218
+ const leafColumns = callMemoOrStaticFn(
219
+ table,
220
+ 'getVisibleLeafColumns',
221
+ table_getVisibleLeafColumns,
222
+ ) as Array<Column_Internal<TFeatures, TData, unknown>>
223
+ const { left } =
224
+ table.store.state.columnPinning ?? getDefaultColumnPinningState()
225
+
226
+ const orderedLeafColumns = left
227
+ .map((columnId) => leafColumns.find((d) => d.id === columnId)!)
228
+ .filter(Boolean)
229
+
230
+ return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'left')
231
+ }
232
+
233
+ export function table_getRightHeaderGroups<
234
+ TFeatures extends TableFeatures,
235
+ TData extends RowData,
236
+ >(table: Table_Internal<TFeatures, TData>) {
237
+ const allColumns = table.getAllColumns()
238
+ const leafColumns = callMemoOrStaticFn(
239
+ table,
240
+ 'getVisibleLeafColumns',
241
+ table_getVisibleLeafColumns,
242
+ ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>
243
+ const { right } =
244
+ table.store.state.columnPinning ?? getDefaultColumnPinningState()
245
+
246
+ const orderedLeafColumns = right
247
+ .map((columnId) => leafColumns.find((d) => d.id === columnId)!)
248
+ .filter(Boolean)
249
+
250
+ return buildHeaderGroups(allColumns, orderedLeafColumns, table, 'right')
251
+ }
252
+
253
+ export function table_getCenterHeaderGroups<
254
+ TFeatures extends TableFeatures,
255
+ TData extends RowData,
256
+ >(
257
+ table: Table_Internal<TFeatures, TData>,
258
+ ): Array<HeaderGroup<TFeatures, TData>> {
259
+ const allColumns = table.getAllColumns()
260
+ let leafColumns = callMemoOrStaticFn(
261
+ table,
262
+ 'getVisibleLeafColumns',
263
+ table_getVisibleLeafColumns,
264
+ ) as unknown as Array<Column_Internal<TFeatures, TData, unknown>>
265
+ const { left, right } =
266
+ table.store.state.columnPinning ?? getDefaultColumnPinningState()
267
+ const leftAndRight: Array<string> = [...left, ...right]
268
+
269
+ leafColumns = leafColumns.filter(
270
+ (column) => !leftAndRight.includes(column.id),
271
+ )
272
+ return buildHeaderGroups(allColumns, leafColumns, table, 'center')
273
+ }
274
+
275
+ // footer groups
276
+
277
+ export function table_getLeftFooterGroups<
278
+ TFeatures extends TableFeatures,
279
+ TData extends RowData,
280
+ >(table: Table_Internal<TFeatures, TData>) {
281
+ const headerGroups = callMemoOrStaticFn(
282
+ table,
283
+ 'getLeftHeaderGroups',
284
+ table_getLeftHeaderGroups,
285
+ )
286
+ return [...headerGroups].reverse()
287
+ }
288
+
289
+ export function table_getRightFooterGroups<
290
+ TFeatures extends TableFeatures,
291
+ TData extends RowData,
292
+ >(table: Table_Internal<TFeatures, TData>) {
293
+ const headerGroups = callMemoOrStaticFn(
294
+ table,
295
+ 'getRightHeaderGroups',
296
+ table_getRightHeaderGroups,
297
+ )
298
+ return [...headerGroups].reverse()
299
+ }
300
+
301
+ export function table_getCenterFooterGroups<
302
+ TFeatures extends TableFeatures,
303
+ TData extends RowData,
304
+ >(table: Table_Internal<TFeatures, TData>) {
305
+ const headerGroups = callMemoOrStaticFn(
306
+ table,
307
+ 'getCenterHeaderGroups',
308
+ table_getCenterHeaderGroups,
309
+ )
310
+ return [...headerGroups].reverse()
311
+ }
312
+
313
+ // flat headers
314
+
315
+ export function table_getLeftFlatHeaders<
316
+ TFeatures extends TableFeatures,
317
+ TData extends RowData,
318
+ >(table: Table_Internal<TFeatures, TData>) {
319
+ const leftHeaderGroups = callMemoOrStaticFn(
320
+ table,
321
+ 'getLeftHeaderGroups',
322
+ table_getLeftHeaderGroups,
323
+ )
324
+ return leftHeaderGroups
325
+ .map((headerGroup) => {
326
+ return headerGroup.headers
327
+ })
328
+ .flat()
329
+ }
330
+
331
+ export function table_getRightFlatHeaders<
332
+ TFeatures extends TableFeatures,
333
+ TData extends RowData,
334
+ >(table: Table_Internal<TFeatures, TData>) {
335
+ const rightHeaderGroups = callMemoOrStaticFn(
336
+ table,
337
+ 'getRightHeaderGroups',
338
+ table_getRightHeaderGroups,
339
+ )
340
+ return rightHeaderGroups
341
+ .map((headerGroup) => {
342
+ return headerGroup.headers
343
+ })
344
+ .flat()
345
+ }
346
+
347
+ export function table_getCenterFlatHeaders<
348
+ TFeatures extends TableFeatures,
349
+ TData extends RowData,
350
+ >(table: Table_Internal<TFeatures, TData>) {
351
+ const centerHeaderGroups = callMemoOrStaticFn(
352
+ table,
353
+ 'getCenterHeaderGroups',
354
+ table_getCenterHeaderGroups,
355
+ )
356
+ return centerHeaderGroups
357
+ .map((headerGroup) => {
358
+ return headerGroup.headers
359
+ })
360
+ .flat()
361
+ }
362
+
363
+ // leaf headers
364
+
365
+ export function table_getLeftLeafHeaders<
366
+ TFeatures extends TableFeatures,
367
+ TData extends RowData,
368
+ >(table: Table_Internal<TFeatures, TData>) {
369
+ return callMemoOrStaticFn(
370
+ table,
371
+ 'getLeftFlatHeaders',
372
+ table_getLeftFlatHeaders,
373
+ ).filter((header) => !header.subHeaders.length)
374
+ }
375
+
376
+ export function table_getRightLeafHeaders<
377
+ TFeatures extends TableFeatures,
378
+ TData extends RowData,
379
+ >(table: Table_Internal<TFeatures, TData>) {
380
+ return callMemoOrStaticFn(
381
+ table,
382
+ 'getRightFlatHeaders',
383
+ table_getRightFlatHeaders,
384
+ ).filter((header) => !header.subHeaders.length)
385
+ }
386
+
387
+ export function table_getCenterLeafHeaders<
388
+ TFeatures extends TableFeatures,
389
+ TData extends RowData,
390
+ >(table: Table_Internal<TFeatures, TData>) {
391
+ return callMemoOrStaticFn(
392
+ table,
393
+ 'getCenterFlatHeaders',
394
+ table_getCenterFlatHeaders,
395
+ ).filter((header) => !header.subHeaders.length)
396
+ }
397
+
398
+ // leaf columns
399
+
400
+ export function table_getLeftLeafColumns<
401
+ TFeatures extends TableFeatures,
402
+ TData extends RowData,
403
+ >(table: Table_Internal<TFeatures, TData>) {
404
+ const { left } =
405
+ table.store.state.columnPinning ?? getDefaultColumnPinningState()
406
+ return left
407
+ .map(
408
+ (columnId) =>
409
+ table.getAllLeafColumns().find((column) => column.id === columnId)!,
410
+ )
411
+ .filter(Boolean)
412
+ }
413
+
414
+ export function table_getRightLeafColumns<
415
+ TFeatures extends TableFeatures,
416
+ TData extends RowData,
417
+ >(table: Table_Internal<TFeatures, TData>) {
418
+ const { right } =
419
+ table.store.state.columnPinning ?? getDefaultColumnPinningState()
420
+ return right
421
+ .map(
422
+ (columnId) =>
423
+ table.getAllLeafColumns().find((column) => column.id === columnId)!,
424
+ )
425
+ .filter(Boolean)
426
+ }
427
+
428
+ export function table_getCenterLeafColumns<
429
+ TFeatures extends TableFeatures,
430
+ TData extends RowData,
431
+ >(table: Table_Internal<TFeatures, TData>) {
432
+ const { left, right } =
433
+ table.store.state.columnPinning ?? getDefaultColumnPinningState()
434
+ const leftAndRight: Array<string> = [...left, ...right]
435
+ return table.getAllLeafColumns().filter((d) => !leftAndRight.includes(d.id))
436
+ }
437
+
438
+ export function table_getPinnedLeafColumns<
439
+ TFeatures extends TableFeatures,
440
+ TData extends RowData,
441
+ >(
442
+ table: Table_Internal<TFeatures, TData>,
443
+ position: ColumnPinningPosition | 'center',
444
+ ) {
445
+ return !position
446
+ ? table.getAllLeafColumns()
447
+ : position === 'left'
448
+ ? callMemoOrStaticFn(
449
+ table,
450
+ 'getLeftLeafColumns',
451
+ table_getLeftLeafColumns,
452
+ )
453
+ : position === 'right'
454
+ ? callMemoOrStaticFn(
455
+ table,
456
+ 'getRightLeafColumns',
457
+ table_getRightLeafColumns,
458
+ )
459
+ : callMemoOrStaticFn(
460
+ table,
461
+ 'getCenterLeafColumns',
462
+ table_getCenterLeafColumns,
463
+ )
464
+ }
465
+
466
+ // visible leaf columns
467
+
468
+ export function table_getLeftVisibleLeafColumns<
469
+ TFeatures extends TableFeatures,
470
+ TData extends RowData,
471
+ >(table: Table_Internal<TFeatures, TData>) {
472
+ return callMemoOrStaticFn(
473
+ table,
474
+ 'getLeftLeafColumns',
475
+ table_getLeftLeafColumns,
476
+ ).filter((column) =>
477
+ callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
478
+ )
479
+ }
480
+
481
+ export function table_getRightVisibleLeafColumns<
482
+ TFeatures extends TableFeatures,
483
+ TData extends RowData,
484
+ >(table: Table_Internal<TFeatures, TData>) {
485
+ return callMemoOrStaticFn(
486
+ table,
487
+ 'getRightLeafColumns',
488
+ table_getRightLeafColumns,
489
+ ).filter((column) =>
490
+ callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
491
+ )
492
+ }
493
+
494
+ export function table_getCenterVisibleLeafColumns<
495
+ TFeatures extends TableFeatures,
496
+ TData extends RowData,
497
+ >(table: Table_Internal<TFeatures, TData>) {
498
+ return callMemoOrStaticFn(
499
+ table,
500
+ 'getCenterLeafColumns',
501
+ table_getCenterLeafColumns,
502
+ ).filter((column) =>
503
+ callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
504
+ )
505
+ }
506
+
507
+ export function table_getPinnedVisibleLeafColumns<
508
+ TFeatures extends TableFeatures,
509
+ TData extends RowData,
510
+ >(
511
+ table: Table_Internal<TFeatures, TData>,
512
+ position?: ColumnPinningPosition | 'center',
513
+ ) {
514
+ return !position
515
+ ? callMemoOrStaticFn(
516
+ table,
517
+ 'getVisibleLeafColumns',
518
+ table_getVisibleLeafColumns,
519
+ )
520
+ : position === 'left'
521
+ ? callMemoOrStaticFn(
522
+ table,
523
+ 'getLeftVisibleLeafColumns',
524
+ table_getLeftVisibleLeafColumns,
525
+ )
526
+ : position === 'right'
527
+ ? callMemoOrStaticFn(
528
+ table,
529
+ 'getRightVisibleLeafColumns',
530
+ table_getRightVisibleLeafColumns,
531
+ )
532
+ : callMemoOrStaticFn(
533
+ table,
534
+ 'getCenterVisibleLeafColumns',
535
+ table_getCenterVisibleLeafColumns,
536
+ )
537
+ }
@@ -0,0 +1,92 @@
1
+ import {
2
+ assignPrototypeAPIs,
3
+ assignTableAPIs,
4
+ makeStateUpdater,
5
+ } from '../../utils'
6
+ import {
7
+ column_getCanResize,
8
+ column_getIsResizing,
9
+ getDefaultColumnResizingState,
10
+ header_getResizeHandler,
11
+ table_resetHeaderSizeInfo,
12
+ table_setColumnResizing,
13
+ } from './columnResizingFeature.utils'
14
+ import type { RowData } from '../../types/type-utils'
15
+ import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
16
+ // import type {
17
+ // Column_ColumnResizing,
18
+ // Header_ColumnResizing,
19
+ // TableOptions_ColumnResizing,
20
+ // TableState_ColumnResizing,
21
+ // Table_ColumnResizing,
22
+ // } from './columnResizingFeature.types'
23
+
24
+ interface ColumnResizingFeatureConstructors<
25
+ TFeatures extends TableFeatures,
26
+ TData extends RowData,
27
+ > {
28
+ // Column: Column_ColumnResizing
29
+ // Header: Header_ColumnResizing
30
+ // Table: Table_ColumnResizing
31
+ // TableOptions: TableOptions_ColumnResizing
32
+ // TableState: TableState_ColumnResizing
33
+ }
34
+
35
+ export function constructColumnResizingFeature<
36
+ TFeatures extends TableFeatures,
37
+ TData extends RowData,
38
+ >(): TableFeature<ColumnResizingFeatureConstructors<TFeatures, TData>> {
39
+ return {
40
+ getInitialState: (initialState) => {
41
+ return {
42
+ columnResizing: getDefaultColumnResizingState(),
43
+ ...initialState,
44
+ }
45
+ },
46
+
47
+ getDefaultTableOptions: (table) => {
48
+ return {
49
+ columnResizeMode: 'onEnd',
50
+ columnResizeDirection: 'ltr',
51
+ onColumnResizingChange: makeStateUpdater('columnResizing', table),
52
+ }
53
+ },
54
+
55
+ assignColumnPrototype: (prototype, table) => {
56
+ assignPrototypeAPIs('columnResizingFeature', prototype, table, {
57
+ column_getCanResize: {
58
+ fn: (column) => column_getCanResize(column),
59
+ },
60
+ column_getIsResizing: {
61
+ fn: (column) => column_getIsResizing(column),
62
+ },
63
+ })
64
+ },
65
+
66
+ assignHeaderPrototype: (prototype, table) => {
67
+ assignPrototypeAPIs('columnResizingFeature', prototype, table, {
68
+ header_getResizeHandler: {
69
+ fn: (header, _contextDocument) =>
70
+ header_getResizeHandler(header, _contextDocument),
71
+ },
72
+ })
73
+ },
74
+
75
+ constructTableAPIs: (table) => {
76
+ assignTableAPIs('columnResizingFeature', table, {
77
+ table_setColumnResizing: {
78
+ fn: (updater) => table_setColumnResizing(table, updater),
79
+ },
80
+ table_resetHeaderSizeInfo: {
81
+ fn: (defaultState) => table_resetHeaderSizeInfo(table, defaultState),
82
+ },
83
+ })
84
+ },
85
+ }
86
+ }
87
+
88
+ /**
89
+ * The Column Resizing feature adds column resizing state and APIs to the table and column objects.
90
+ * **Note:** This is dependent on the Column Sizing feature.
91
+ */
92
+ export const columnResizingFeature = constructColumnResizingFeature()
@@ -0,0 +1,81 @@
1
+ import type { OnChangeFn, Updater } from '../../types/type-utils'
2
+
3
+ export interface TableState_ColumnResizing {
4
+ columnResizing: columnResizingState
5
+ }
6
+
7
+ export interface columnResizingState {
8
+ columnSizingStart: Array<[string, number]>
9
+ deltaOffset: null | number
10
+ deltaPercentage: null | number
11
+ isResizingColumn: false | string
12
+ startOffset: null | number
13
+ startSize: null | number
14
+ }
15
+
16
+ export type ColumnResizeMode = 'onChange' | 'onEnd'
17
+
18
+ export type ColumnResizeDirection = 'ltr' | 'rtl'
19
+
20
+ export interface TableOptions_ColumnResizing {
21
+ /**
22
+ * Determines when the columnSizing state is updated. `onChange` updates the state when the user is dragging the resize handle. `onEnd` updates the state when the user releases the resize handle.
23
+ */
24
+ columnResizeMode?: ColumnResizeMode
25
+ /**
26
+ * Enables or disables column resizing for the column.
27
+ */
28
+ enableColumnResizing?: boolean
29
+ /**
30
+ * Enables or disables right-to-left support for resizing the column. defaults to 'ltr'.
31
+ */
32
+ columnResizeDirection?: ColumnResizeDirection
33
+ /**
34
+ * If provided, this function will be called with an `updaterFn` when `state.columnResizing` changes. This overrides the default internal state management, so you will also need to supply `state.columnResizing` from your own managed state.
35
+ */
36
+ onColumnResizingChange?: OnChangeFn<columnResizingState>
37
+ }
38
+
39
+ export type ColumnResizingDefaultOptions = Pick<
40
+ TableOptions_ColumnResizing,
41
+ 'columnResizeMode' | 'onColumnResizingChange' | 'columnResizeDirection'
42
+ >
43
+
44
+ export interface Table_ColumnResizing {
45
+ /**
46
+ * Resets column sizing info to its initial state. If `defaultState` is `true`, the default state for the table will be used instead of the initialValue provided to the table.
47
+ */
48
+ resetHeaderSizeInfo: (defaultState?: boolean) => void
49
+ /**
50
+ * Sets the column sizing info state using an updater function or a value. This will trigger the underlying `oncolumnResizingChange` function if one is passed to the table options, otherwise the state will be managed automatically by the table.
51
+ */
52
+ setcolumnResizing: (updater: Updater<columnResizingState>) => void
53
+ }
54
+
55
+ export interface ColumnDef_ColumnResizing {
56
+ /**
57
+ * Enables or disables column resizing for the column.
58
+ */
59
+ enableResizing?: boolean
60
+ }
61
+
62
+ export interface Column_ColumnResizing {
63
+ /**
64
+ * Returns `true` if the column can be resized.
65
+ */
66
+ getCanResize: () => boolean
67
+ /**
68
+ * Returns `true` if the column is currently being resized.
69
+ */
70
+ getIsResizing: () => boolean
71
+ }
72
+
73
+ export interface Header_ColumnResizing {
74
+ /**
75
+ * Returns an event handler function that can be used to resize the header. It can be used as an:
76
+ * - `onMouseDown` handler
77
+ * - `onTouchStart` handler
78
+ * The dragging and release events are automatically handled for you.
79
+ */
80
+ getResizeHandler: (context?: Document) => (event: unknown) => void
81
+ }