@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,155 @@
1
+ import {
2
+ assignPrototypeAPIs,
3
+ assignTableAPIs,
4
+ makeStateUpdater,
5
+ } from '../../utils'
6
+ import {
7
+ row_getCenterVisibleCells,
8
+ row_getLeftVisibleCells,
9
+ row_getRightVisibleCells,
10
+ } from '../column-pinning/columnPinningFeature.utils'
11
+ import {
12
+ column_getCanHide,
13
+ column_getIsVisible,
14
+ column_getToggleVisibilityHandler,
15
+ column_toggleVisibility,
16
+ getDefaultColumnVisibilityState,
17
+ row_getAllVisibleCells,
18
+ row_getVisibleCells,
19
+ table_getIsAllColumnsVisible,
20
+ table_getIsSomeColumnsVisible,
21
+ table_getToggleAllColumnsVisibilityHandler,
22
+ table_getVisibleFlatColumns,
23
+ table_getVisibleLeafColumns,
24
+ table_resetColumnVisibility,
25
+ table_setColumnVisibility,
26
+ table_toggleAllColumnsVisible,
27
+ } from './columnVisibilityFeature.utils'
28
+ import type { RowData } from '../../types/type-utils'
29
+ import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
30
+ // import type {
31
+ // ColumnDef_ColumnVisibility,
32
+ // Column_ColumnVisibility,
33
+ // Row_ColumnVisibility,
34
+ // TableOptions_ColumnVisibility,
35
+ // TableState_ColumnVisibility,
36
+ // Table_ColumnVisibility,
37
+ // } from './columnVisibilityFeature.types'
38
+
39
+ interface ColumnVisibilityFeatureConstructors<
40
+ TFeatures extends TableFeatures,
41
+ TData extends RowData,
42
+ > {
43
+ // ColumnDef: ColumnDef_ColumnVisibility
44
+ // Column: Column_ColumnVisibility
45
+ // Row: Row_ColumnVisibility<TFeatures, TData>
46
+ // Table: Table_ColumnVisibility<TFeatures, TData>
47
+ // TableOptions: TableOptions_ColumnVisibility
48
+ // TableState: TableState_ColumnVisibility
49
+ }
50
+
51
+ export function constructColumnVisibilityFeature<
52
+ TFeatures extends TableFeatures,
53
+ TData extends RowData,
54
+ >(): TableFeature<ColumnVisibilityFeatureConstructors<TFeatures, TData>> {
55
+ return {
56
+ getInitialState: (initialState) => {
57
+ return {
58
+ columnVisibility: getDefaultColumnVisibilityState(),
59
+ ...initialState,
60
+ }
61
+ },
62
+
63
+ getDefaultTableOptions: (table) => {
64
+ return {
65
+ onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),
66
+ }
67
+ },
68
+
69
+ assignColumnPrototype: (prototype, table) => {
70
+ assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {
71
+ column_getIsVisible: {
72
+ fn: (column) => column_getIsVisible(column),
73
+ memoDeps: (column) => [
74
+ column.table.options.columns,
75
+ column.table.store.state.columnVisibility,
76
+ column.columns,
77
+ ],
78
+ },
79
+ column_getCanHide: {
80
+ fn: (column) => column_getCanHide(column),
81
+ },
82
+ column_getToggleVisibilityHandler: {
83
+ fn: (column) => column_getToggleVisibilityHandler(column),
84
+ },
85
+ column_toggleVisibility: {
86
+ fn: (column, visible) => column_toggleVisibility(column, visible),
87
+ },
88
+ })
89
+ },
90
+
91
+ assignRowPrototype: (prototype, table) => {
92
+ assignPrototypeAPIs('columnVisibilityFeature', prototype, table, {
93
+ row_getAllVisibleCells: {
94
+ fn: (row) => row_getAllVisibleCells(row),
95
+ memoDeps: (row) => [
96
+ row.getAllCells(),
97
+ row.table.store.state.columnVisibility,
98
+ ],
99
+ },
100
+ row_getVisibleCells: {
101
+ fn: (row, left, center, right) =>
102
+ row_getVisibleCells(left, center, right),
103
+ memoDeps: (row) => [
104
+ row_getLeftVisibleCells(row),
105
+ row_getCenterVisibleCells(row),
106
+ row_getRightVisibleCells(row),
107
+ ],
108
+ },
109
+ })
110
+ },
111
+
112
+ constructTableAPIs: (table) => {
113
+ assignTableAPIs('columnVisibilityFeature', table, {
114
+ table_getVisibleFlatColumns: {
115
+ fn: () => table_getVisibleFlatColumns(table),
116
+ memoDeps: () => [
117
+ table.store.state.columnVisibility,
118
+ table.options.columns,
119
+ ],
120
+ },
121
+ table_getVisibleLeafColumns: {
122
+ fn: () => table_getVisibleLeafColumns(table),
123
+ memoDeps: () => [
124
+ table.store.state.columnVisibility,
125
+ table.options.columns,
126
+ ],
127
+ },
128
+ table_setColumnVisibility: {
129
+ fn: (updater) => table_setColumnVisibility(table, updater),
130
+ },
131
+ table_resetColumnVisibility: {
132
+ fn: (defaultState) =>
133
+ table_resetColumnVisibility(table, defaultState),
134
+ },
135
+ table_toggleAllColumnsVisible: {
136
+ fn: (value) => table_toggleAllColumnsVisible(table, value),
137
+ },
138
+ table_getIsAllColumnsVisible: {
139
+ fn: () => table_getIsAllColumnsVisible(table),
140
+ },
141
+ table_getIsSomeColumnsVisible: {
142
+ fn: () => table_getIsSomeColumnsVisible(table),
143
+ },
144
+ table_getToggleAllColumnsVisibilityHandler: {
145
+ fn: () => table_getToggleAllColumnsVisibilityHandler(table),
146
+ },
147
+ })
148
+ },
149
+ }
150
+ }
151
+
152
+ /**
153
+ * The Column Visibility feature adds column visibility state and APIs to the table, row, and column objects.
154
+ */
155
+ export const columnVisibilityFeature = constructColumnVisibilityFeature()
@@ -0,0 +1,101 @@
1
+ import type { OnChangeFn, RowData, Updater } from '../../types/type-utils'
2
+ import type { TableFeatures } from '../../types/TableFeatures'
3
+ import type { Cell } from '../../types/Cell'
4
+ import type { Column } from '../../types/Column'
5
+
6
+ export type ColumnVisibilityState = Record<string, boolean>
7
+
8
+ export interface TableState_ColumnVisibility {
9
+ columnVisibility: ColumnVisibilityState
10
+ }
11
+
12
+ export interface TableOptions_ColumnVisibility {
13
+ /**
14
+ * Whether to enable column hiding. Defaults to `true`.
15
+ */
16
+ enableHiding?: boolean
17
+ /**
18
+ * If provided, this function will be called with an `updaterFn` when `state.columnVisibility` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.
19
+ */
20
+ onColumnVisibilityChange?: OnChangeFn<ColumnVisibilityState>
21
+ }
22
+
23
+ export type VisibilityDefaultOptions = Pick<
24
+ TableOptions_ColumnVisibility,
25
+ 'onColumnVisibilityChange'
26
+ >
27
+
28
+ export interface Table_ColumnVisibility<
29
+ TFeatures extends TableFeatures,
30
+ TData extends RowData,
31
+ > {
32
+ /**
33
+ * Returns whether all columns are visible
34
+ */
35
+ getIsAllColumnsVisible: () => boolean
36
+ /**
37
+ * Returns whether any columns are visible
38
+ */
39
+ getIsSomeColumnsVisible: () => boolean
40
+ /**
41
+ * Returns a handler for toggling the visibility of all columns, meant to be bound to a `input[type=checkbox]` element.
42
+ */
43
+ getToggleAllColumnsVisibilityHandler: () => (event: unknown) => void
44
+ /**
45
+ * Returns a flat array of columns that are visible, including parent columns.
46
+ */
47
+ getVisibleFlatColumns: () => Array<Column<TFeatures, TData, unknown>>
48
+ /**
49
+ * Returns a flat array of leaf-node columns that are visible.
50
+ */
51
+ getVisibleLeafColumns: () => Array<Column<TFeatures, TData, unknown>>
52
+ /**
53
+ * Resets the column visibility state to the initial state. If `defaultState` is provided, the state will be reset to `{}`
54
+ */
55
+ resetColumnVisibility: (defaultState?: boolean) => void
56
+ /**
57
+ * Sets or updates the `state.columnVisibility` state.
58
+ */
59
+ setColumnVisibility: (updater: Updater<ColumnVisibilityState>) => void
60
+ /**
61
+ * Toggles the visibility of all columns.
62
+ */
63
+ toggleAllColumnsVisible: (value?: boolean) => void
64
+ }
65
+
66
+ export interface ColumnDef_ColumnVisibility {
67
+ /**
68
+ * Enables/disables column hiding for this column. Defaults to `true`.
69
+ */
70
+ enableHiding?: boolean
71
+ }
72
+
73
+ export interface Row_ColumnVisibility<
74
+ TFeatures extends TableFeatures,
75
+ TData extends RowData,
76
+ > {
77
+ getAllVisibleCells: () => Array<Cell<TFeatures, TData, unknown>>
78
+ /**
79
+ * Returns an array of cells that account for column visibility for the row.
80
+ */
81
+ getVisibleCells: () => Array<Cell<TFeatures, TData, unknown>>
82
+ }
83
+
84
+ export interface Column_ColumnVisibility {
85
+ /**
86
+ * Returns whether the column can be hidden
87
+ */
88
+ getCanHide: () => boolean
89
+ /**
90
+ * Returns whether the column is visible
91
+ */
92
+ getIsVisible: () => boolean
93
+ /**
94
+ * Returns a function that can be used to toggle the column visibility. This function can be used to bind to an event handler to a checkbox.
95
+ */
96
+ getToggleVisibilityHandler: () => (event: unknown) => void
97
+ /**
98
+ * Toggles the visibility of the column.
99
+ */
100
+ toggleVisibility: (value?: boolean) => void
101
+ }
@@ -0,0 +1,183 @@
1
+ import { callMemoOrStaticFn } from '../../utils'
2
+ import type { CellData, RowData, Updater } from '../../types/type-utils'
3
+ import type { TableFeatures } from '../../types/TableFeatures'
4
+ import type { Table_Internal } from '../../types/Table'
5
+ import type { Cell } from '../../types/Cell'
6
+ import type { Column_Internal } from '../../types/Column'
7
+ import type { ColumnVisibilityState } from './columnVisibilityFeature.types'
8
+ import type { Row } from '../../types/Row'
9
+
10
+ export function getDefaultColumnVisibilityState(): ColumnVisibilityState {
11
+ return structuredClone({})
12
+ }
13
+
14
+ export function column_toggleVisibility<
15
+ TFeatures extends TableFeatures,
16
+ TData extends RowData,
17
+ TValue extends CellData = CellData,
18
+ >(column: Column_Internal<TFeatures, TData, TValue>, visible?: boolean): void {
19
+ if (column_getCanHide(column)) {
20
+ table_setColumnVisibility(column.table, (old) => ({
21
+ ...old,
22
+ [column.id]:
23
+ visible ??
24
+ !callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
25
+ }))
26
+ }
27
+ }
28
+
29
+ export function column_getIsVisible<
30
+ TFeatures extends TableFeatures,
31
+ TData extends RowData,
32
+ TValue extends CellData = CellData,
33
+ >(column: Column_Internal<TFeatures, TData, TValue>): boolean {
34
+ const childColumns = column.columns
35
+ return (
36
+ (childColumns.length
37
+ ? childColumns.some((childColumn) =>
38
+ callMemoOrStaticFn(childColumn, 'getIsVisible', column_getIsVisible),
39
+ )
40
+ : column.table.store.state.columnVisibility?.[column.id]) ?? true
41
+ )
42
+ }
43
+
44
+ export function column_getCanHide<
45
+ TFeatures extends TableFeatures,
46
+ TData extends RowData,
47
+ TValue extends CellData = CellData,
48
+ >(column: Column_Internal<TFeatures, TData, TValue>) {
49
+ return (
50
+ (column.columnDef.enableHiding ?? true) &&
51
+ (column.table.options.enableHiding ?? true)
52
+ )
53
+ }
54
+
55
+ export function column_getToggleVisibilityHandler<
56
+ TFeatures extends TableFeatures,
57
+ TData extends RowData,
58
+ TValue extends CellData = CellData,
59
+ >(column: Column_Internal<TFeatures, TData, TValue>) {
60
+ return (e: unknown) => {
61
+ column_toggleVisibility(
62
+ column,
63
+ ((e as MouseEvent).target as HTMLInputElement).checked,
64
+ )
65
+ }
66
+ }
67
+
68
+ export function row_getAllVisibleCells<
69
+ TFeatures extends TableFeatures,
70
+ TData extends RowData,
71
+ >(row: Row<TFeatures, TData>) {
72
+ return row
73
+ .getAllCells()
74
+ .filter((cell) =>
75
+ callMemoOrStaticFn(cell.column, 'getIsVisible', column_getIsVisible),
76
+ )
77
+ }
78
+
79
+ export function row_getVisibleCells<
80
+ TFeatures extends TableFeatures,
81
+ TData extends RowData,
82
+ >(
83
+ left: Array<Cell<TFeatures, TData, unknown>>,
84
+ center: Array<Cell<TFeatures, TData, unknown>>,
85
+ right: Array<Cell<TFeatures, TData, unknown>>,
86
+ ) {
87
+ return [...left, ...center, ...right]
88
+ }
89
+
90
+ export function table_getVisibleFlatColumns<
91
+ TFeatures extends TableFeatures,
92
+ TData extends RowData,
93
+ >(table: Table_Internal<TFeatures, TData>) {
94
+ return table
95
+ .getAllFlatColumns()
96
+ .filter((column) =>
97
+ callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
98
+ )
99
+ }
100
+
101
+ export function table_getVisibleLeafColumns<
102
+ TFeatures extends TableFeatures,
103
+ TData extends RowData,
104
+ >(table: Table_Internal<TFeatures, TData>) {
105
+ return table
106
+ .getAllLeafColumns()
107
+ .filter((column) =>
108
+ callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
109
+ )
110
+ }
111
+
112
+ export function table_setColumnVisibility<
113
+ TFeatures extends TableFeatures,
114
+ TData extends RowData,
115
+ >(
116
+ table: Table_Internal<TFeatures, TData>,
117
+ updater: Updater<ColumnVisibilityState>,
118
+ ) {
119
+ table.options.onColumnVisibilityChange?.(updater)
120
+ }
121
+
122
+ export function table_resetColumnVisibility<
123
+ TFeatures extends TableFeatures,
124
+ TData extends RowData,
125
+ >(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
126
+ table_setColumnVisibility(
127
+ table,
128
+ defaultState ? {} : (table.initialState.columnVisibility ?? {}),
129
+ )
130
+ }
131
+
132
+ export function table_toggleAllColumnsVisible<
133
+ TFeatures extends TableFeatures,
134
+ TData extends RowData,
135
+ >(table: Table_Internal<TFeatures, TData>, value?: boolean) {
136
+ value = value ?? !table_getIsAllColumnsVisible(table)
137
+
138
+ table_setColumnVisibility(
139
+ table,
140
+ table.getAllLeafColumns().reduce(
141
+ (obj, column) => ({
142
+ ...obj,
143
+ [column.id]: !value ? !column_getCanHide(column) : value,
144
+ }),
145
+ {},
146
+ ),
147
+ )
148
+ }
149
+
150
+ export function table_getIsAllColumnsVisible<
151
+ TFeatures extends TableFeatures,
152
+ TData extends RowData,
153
+ >(table: Table_Internal<TFeatures, TData>) {
154
+ return !table
155
+ .getAllLeafColumns()
156
+ .some(
157
+ (column) =>
158
+ !callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
159
+ )
160
+ }
161
+
162
+ export function table_getIsSomeColumnsVisible<
163
+ TFeatures extends TableFeatures,
164
+ TData extends RowData,
165
+ >(table: Table_Internal<TFeatures, TData>) {
166
+ return table
167
+ .getAllLeafColumns()
168
+ .some((column) =>
169
+ callMemoOrStaticFn(column, 'getIsVisible', column_getIsVisible),
170
+ )
171
+ }
172
+
173
+ export function table_getToggleAllColumnsVisibilityHandler<
174
+ TFeatures extends TableFeatures,
175
+ TData extends RowData,
176
+ >(table: Table_Internal<TFeatures, TData>) {
177
+ return (e: unknown) => {
178
+ table_toggleAllColumnsVisible(
179
+ table,
180
+ ((e as MouseEvent).target as HTMLInputElement).checked,
181
+ )
182
+ }
183
+ }
@@ -0,0 +1,92 @@
1
+ import {
2
+ assignPrototypeAPIs,
3
+ assignTableAPIs,
4
+ makeStateUpdater,
5
+ } from '../../utils'
6
+ import {
7
+ column_getCanGlobalFilter,
8
+ table_getGlobalAutoFilterFn,
9
+ table_getGlobalFilterFn,
10
+ table_resetGlobalFilter,
11
+ table_setGlobalFilter,
12
+ } from './globalFilteringFeature.utils'
13
+ import type { RowData } from '../../types/type-utils'
14
+ import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
15
+ // import type {
16
+ // ColumnDef_GlobalFiltering,
17
+ // Column_GlobalFiltering,
18
+ // TableOptions_GlobalFiltering,
19
+ // TableState_GlobalFiltering,
20
+ // Table_GlobalFiltering,
21
+ // } from './globalFilteringFeature.types'
22
+
23
+ interface GlobalFilteringFeatureConstructors<
24
+ TFeatures extends TableFeatures,
25
+ TData extends RowData,
26
+ > {
27
+ // Column: Column_GlobalFiltering
28
+ // ColumnDef: ColumnDef_GlobalFiltering
29
+ // Table: Table_GlobalFiltering<TFeatures, TData>
30
+ // TableOptions: TableOptions_GlobalFiltering<TFeatures, TData>
31
+ // TableState: TableState_GlobalFiltering
32
+ }
33
+
34
+ export function constructGlobalFilteringFeature<
35
+ TFeatures extends TableFeatures,
36
+ TData extends RowData,
37
+ >(): TableFeature<GlobalFilteringFeatureConstructors<TFeatures, TData>> {
38
+ return {
39
+ getInitialState: (initialState) => {
40
+ return {
41
+ globalFilter: undefined,
42
+ ...initialState,
43
+ }
44
+ },
45
+
46
+ getDefaultTableOptions: (table) => {
47
+ return {
48
+ onGlobalFilterChange: makeStateUpdater('globalFilter', table),
49
+ globalFilterFn: 'auto',
50
+ getColumnCanGlobalFilter: (column) => {
51
+ const value = table
52
+ .getCoreRowModel()
53
+ .flatRows[0]?.getAllCellsByColumnId()
54
+ [column.id]?.getValue()
55
+
56
+ return typeof value === 'string' || typeof value === 'number'
57
+ },
58
+ }
59
+ },
60
+
61
+ assignColumnPrototype: (prototype, table) => {
62
+ assignPrototypeAPIs('globalFilteringFeature', prototype, table, {
63
+ column_getCanGlobalFilter: {
64
+ fn: (column) => column_getCanGlobalFilter(column),
65
+ },
66
+ })
67
+ },
68
+
69
+ constructTableAPIs: (table) => {
70
+ assignTableAPIs('globalFilteringFeature', table, {
71
+ table_getGlobalAutoFilterFn: {
72
+ fn: () => table_getGlobalAutoFilterFn(),
73
+ },
74
+ table_getGlobalFilterFn: {
75
+ fn: () => table_getGlobalFilterFn(table),
76
+ },
77
+ table_setGlobalFilter: {
78
+ fn: (updater) => table_setGlobalFilter(table, updater),
79
+ },
80
+ table_resetGlobalFilter: {
81
+ fn: (defaultState) => table_resetGlobalFilter(table, defaultState),
82
+ },
83
+ })
84
+ },
85
+ }
86
+ }
87
+
88
+ /**
89
+ * The Global Filtering feature adds global filtering state and APIs to the table and column objects.
90
+ * **Note:** This is dependent on the columnFilteringFeature feature.
91
+ */
92
+ export const globalFilteringFeature = constructGlobalFilteringFeature()
@@ -0,0 +1,84 @@
1
+ import type {
2
+ CellData,
3
+ OnChangeFn,
4
+ RowData,
5
+ Updater,
6
+ } from '../../types/type-utils'
7
+ import type { TableFeatures } from '../../types/TableFeatures'
8
+ import type { Column } from '../../types/Column'
9
+ import type {
10
+ FilterFn,
11
+ FilterFnOption,
12
+ } from '../column-filtering/columnFilteringFeature.types'
13
+
14
+ export interface TableState_GlobalFiltering {
15
+ globalFilter: any
16
+ }
17
+
18
+ export interface ColumnDef_GlobalFiltering {
19
+ /**
20
+ * Enables/disables the **global** filter for this column.
21
+ */
22
+ enableGlobalFilter?: boolean
23
+ }
24
+
25
+ export interface Column_GlobalFiltering {
26
+ /**
27
+ * Returns whether or not the column can be **globally** filtered. Set to `false` to disable a column from being scanned during global filtering.
28
+ */
29
+ getCanGlobalFilter: () => boolean
30
+ }
31
+
32
+ export interface TableOptions_GlobalFiltering<
33
+ TFeatures extends TableFeatures,
34
+ TData extends RowData,
35
+ > {
36
+ /**
37
+ * Enables/disables **global** filtering for all columns.
38
+ */
39
+ enableGlobalFilter?: boolean
40
+ /**
41
+ * If provided, this function will be called with the column and should return `true` or `false` to indicate whether this column should be used for global filtering.
42
+ * This is useful if the column can contain data that is not `string` or `number` (i.e. `undefined`).
43
+ */
44
+ getColumnCanGlobalFilter?: <
45
+ TFeatures extends TableFeatures,
46
+ TData extends RowData,
47
+ TValue extends CellData = CellData,
48
+ >(
49
+ column: Column<TFeatures, TData, TValue>,
50
+ ) => boolean
51
+ /**
52
+ * The filter function to use for global filtering.
53
+ * - A `string` referencing a built-in filter function
54
+ * - A `string` that references a custom filter functions provided via the `tableOptions.filterFns` option
55
+ * - A custom filter function
56
+ */
57
+ globalFilterFn?: FilterFnOption<TFeatures, TData>
58
+ /**
59
+ * If provided, this function will be called with an `updaterFn` when `state.globalFilter` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.
60
+ */
61
+ onGlobalFilterChange?: OnChangeFn<any>
62
+ }
63
+
64
+ export interface Table_GlobalFiltering<
65
+ TFeatures extends TableFeatures,
66
+ TData extends RowData,
67
+ > {
68
+ /**
69
+ * Currently, this function returns the built-in `includesString` filter function. In future releases, it may return more dynamic filter functions based on the nature of the data provided.
70
+ */
71
+ getGlobalAutoFilterFn: () => FilterFn<TFeatures, TData> | undefined
72
+ /**
73
+ * Returns the filter function (either user-defined or automatic, depending on configuration) for the global filter.
74
+ */
75
+ getGlobalFilterFn: () => FilterFn<TFeatures, TData> | undefined
76
+ /**
77
+ * Resets the **globalFilter** state to `initialState.globalFilter`, or `true` can be passed to force a default blank state reset to `undefined`.
78
+ */
79
+ resetGlobalFilter: (defaultState?: boolean) => void
80
+ /**
81
+ * Sets or updates the `state.globalFilter` state.
82
+ */
83
+ setGlobalFilter: (updater: Updater<any>) => void
84
+ }
@@ -0,0 +1,60 @@
1
+ import { filterFn_includesString } from '../../fns/filterFns'
2
+ import { isFunction } from '../../utils'
3
+ import type { Column_Internal } from '../../types/Column'
4
+ import type { FilterFn } from '../column-filtering/columnFilteringFeature.types'
5
+ import type { CellData, RowData } from '../../types/type-utils'
6
+ import type { TableFeatures } from '../../types/TableFeatures'
7
+ import type { Table_Internal } from '../../types/Table'
8
+
9
+ export function column_getCanGlobalFilter<
10
+ TFeatures extends TableFeatures,
11
+ TData extends RowData,
12
+ TValue extends CellData = CellData,
13
+ >(column: Column_Internal<TFeatures, TData, TValue>): boolean {
14
+ return (
15
+ (column.columnDef.enableGlobalFilter ?? true) &&
16
+ (column.table.options.enableGlobalFilter ?? true) &&
17
+ (column.table.options.enableFilters ?? true) &&
18
+ (column.table.options.getColumnCanGlobalFilter?.(column) ?? true) &&
19
+ !!column.accessorFn
20
+ )
21
+ }
22
+
23
+ export function table_getGlobalAutoFilterFn() {
24
+ return filterFn_includesString
25
+ }
26
+
27
+ export function table_getGlobalFilterFn<
28
+ TFeatures extends TableFeatures,
29
+ TData extends RowData,
30
+ >(
31
+ table: Table_Internal<TFeatures, TData>,
32
+ ): FilterFn<TFeatures, TData> | FilterFn<TFeatures, TData> | undefined {
33
+ const { globalFilterFn: globalFilterFn } = table.options
34
+ const filterFns = table._rowModelFns.filterFns as
35
+ | Record<string, FilterFn<TFeatures, TData>>
36
+ | undefined
37
+
38
+ return isFunction(globalFilterFn)
39
+ ? globalFilterFn
40
+ : globalFilterFn === 'auto'
41
+ ? table_getGlobalAutoFilterFn()
42
+ : filterFns?.[globalFilterFn as string]
43
+ }
44
+
45
+ export function table_setGlobalFilter<
46
+ TFeatures extends TableFeatures,
47
+ TData extends RowData,
48
+ >(table: Table_Internal<TFeatures, TData>, updater: any) {
49
+ table.options.onGlobalFilterChange?.(updater)
50
+ }
51
+
52
+ export function table_resetGlobalFilter<
53
+ TFeatures extends TableFeatures,
54
+ TData extends RowData,
55
+ >(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {
56
+ table_setGlobalFilter(
57
+ table,
58
+ defaultState ? undefined : table.initialState.globalFilter,
59
+ )
60
+ }