@tanstack/table-core 9.0.0-beta.2 → 9.0.0-beta.7

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 (278) hide show
  1. package/dist/core/cells/coreCellsFeature.cjs +11 -20
  2. package/dist/core/cells/coreCellsFeature.cjs.map +1 -1
  3. package/dist/core/cells/coreCellsFeature.d.cts +4 -12
  4. package/dist/core/cells/coreCellsFeature.d.ts +4 -12
  5. package/dist/core/cells/coreCellsFeature.js +12 -20
  6. package/dist/core/cells/coreCellsFeature.js.map +1 -1
  7. package/dist/core/columns/coreColumnsFeature.cjs +59 -68
  8. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -1
  9. package/dist/core/columns/coreColumnsFeature.d.cts +4 -12
  10. package/dist/core/columns/coreColumnsFeature.d.ts +4 -12
  11. package/dist/core/columns/coreColumnsFeature.js +60 -68
  12. package/dist/core/columns/coreColumnsFeature.js.map +1 -1
  13. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -1
  14. package/dist/core/headers/buildHeaderGroups.js.map +1 -1
  15. package/dist/core/headers/coreHeadersFeature.cjs +44 -53
  16. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -1
  17. package/dist/core/headers/coreHeadersFeature.d.cts +4 -12
  18. package/dist/core/headers/coreHeadersFeature.d.ts +4 -12
  19. package/dist/core/headers/coreHeadersFeature.js +45 -53
  20. package/dist/core/headers/coreHeadersFeature.js.map +1 -1
  21. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -1
  22. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -1
  23. package/dist/core/row-models/coreRowModelsFeature.cjs +17 -26
  24. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -1
  25. package/dist/core/row-models/coreRowModelsFeature.d.cts +4 -12
  26. package/dist/core/row-models/coreRowModelsFeature.d.ts +4 -12
  27. package/dist/core/row-models/coreRowModelsFeature.js +18 -26
  28. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -1
  29. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +3 -5
  30. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +3 -5
  31. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -1
  32. package/dist/core/row-models/createCoreRowModel.js.map +1 -1
  33. package/dist/core/rows/coreRowsFeature.cjs +27 -36
  34. package/dist/core/rows/coreRowsFeature.cjs.map +1 -1
  35. package/dist/core/rows/coreRowsFeature.d.cts +4 -12
  36. package/dist/core/rows/coreRowsFeature.d.ts +4 -12
  37. package/dist/core/rows/coreRowsFeature.js +28 -36
  38. package/dist/core/rows/coreRowsFeature.js.map +1 -1
  39. package/dist/core/table/constructTable.cjs +2 -2
  40. package/dist/core/table/constructTable.cjs.map +1 -1
  41. package/dist/core/table/constructTable.js +2 -2
  42. package/dist/core/table/constructTable.js.map +1 -1
  43. package/dist/core/table/coreTablesFeature.cjs +7 -16
  44. package/dist/core/table/coreTablesFeature.cjs.map +1 -1
  45. package/dist/core/table/coreTablesFeature.d.cts +4 -12
  46. package/dist/core/table/coreTablesFeature.d.ts +4 -12
  47. package/dist/core/table/coreTablesFeature.js +8 -16
  48. package/dist/core/table/coreTablesFeature.js.map +1 -1
  49. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -1
  50. package/dist/core/table/coreTablesFeature.utils.js.map +1 -1
  51. package/dist/features/column-faceting/columnFacetingFeature.cjs +49 -61
  52. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -1
  53. package/dist/features/column-faceting/columnFacetingFeature.d.cts +4 -15
  54. package/dist/features/column-faceting/columnFacetingFeature.d.ts +4 -15
  55. package/dist/features/column-faceting/columnFacetingFeature.js +50 -61
  56. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -1
  57. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -1
  58. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -1
  59. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -1
  60. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -1
  61. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -1
  62. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -1
  63. package/dist/features/column-filtering/columnFilteringFeature.cjs +40 -53
  64. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -1
  65. package/dist/features/column-filtering/columnFilteringFeature.d.cts +4 -16
  66. package/dist/features/column-filtering/columnFilteringFeature.d.ts +4 -16
  67. package/dist/features/column-filtering/columnFilteringFeature.js +41 -53
  68. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -1
  69. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +3 -3
  70. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +3 -3
  71. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -1
  72. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +1 -1
  73. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +1 -1
  74. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -1
  75. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -1
  76. package/dist/features/column-filtering/createFilteredRowModel.d.cts +1 -1
  77. package/dist/features/column-filtering/createFilteredRowModel.d.ts +1 -1
  78. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -1
  79. package/dist/features/column-grouping/columnGroupingFeature.cjs +57 -69
  80. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -1
  81. package/dist/features/column-grouping/columnGroupingFeature.d.cts +4 -15
  82. package/dist/features/column-grouping/columnGroupingFeature.d.ts +4 -15
  83. package/dist/features/column-grouping/columnGroupingFeature.js +58 -69
  84. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -1
  85. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -1
  86. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -1
  87. package/dist/features/column-ordering/columnOrderingFeature.cjs +47 -59
  88. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -1
  89. package/dist/features/column-ordering/columnOrderingFeature.d.cts +4 -15
  90. package/dist/features/column-ordering/columnOrderingFeature.d.ts +4 -15
  91. package/dist/features/column-ordering/columnOrderingFeature.js +48 -59
  92. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -1
  93. package/dist/features/column-pinning/columnPinningFeature.cjs +209 -221
  94. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -1
  95. package/dist/features/column-pinning/columnPinningFeature.d.cts +4 -15
  96. package/dist/features/column-pinning/columnPinningFeature.d.ts +4 -15
  97. package/dist/features/column-pinning/columnPinningFeature.js +210 -221
  98. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -1
  99. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -1
  100. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +12 -12
  101. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +12 -12
  102. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -1
  103. package/dist/features/column-resizing/columnResizingFeature.cjs +31 -43
  104. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -1
  105. package/dist/features/column-resizing/columnResizingFeature.d.cts +4 -15
  106. package/dist/features/column-resizing/columnResizingFeature.d.ts +4 -15
  107. package/dist/features/column-resizing/columnResizingFeature.js +32 -43
  108. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -1
  109. package/dist/features/column-sizing/columnSizingFeature.cjs +112 -125
  110. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -1
  111. package/dist/features/column-sizing/columnSizingFeature.d.cts +4 -16
  112. package/dist/features/column-sizing/columnSizingFeature.d.ts +4 -16
  113. package/dist/features/column-sizing/columnSizingFeature.js +113 -125
  114. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -1
  115. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +3 -3
  116. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +3 -3
  117. package/dist/features/column-visibility/columnVisibilityFeature.cjs +83 -95
  118. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -1
  119. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +4 -15
  120. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +4 -15
  121. package/dist/features/column-visibility/columnVisibilityFeature.js +84 -95
  122. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -1
  123. package/dist/features/global-filtering/globalFilteringFeature.cjs +31 -43
  124. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -1
  125. package/dist/features/global-filtering/globalFilteringFeature.d.cts +4 -15
  126. package/dist/features/global-filtering/globalFilteringFeature.d.ts +4 -15
  127. package/dist/features/global-filtering/globalFilteringFeature.js +32 -43
  128. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -1
  129. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -1
  130. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +4 -2
  131. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +4 -2
  132. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -1
  133. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -1
  134. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -1
  135. package/dist/features/row-expanding/rowExpandingFeature.cjs +37 -49
  136. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -1
  137. package/dist/features/row-expanding/rowExpandingFeature.d.cts +4 -15
  138. package/dist/features/row-expanding/rowExpandingFeature.d.ts +4 -15
  139. package/dist/features/row-expanding/rowExpandingFeature.js +38 -49
  140. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -1
  141. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -1
  142. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -1
  143. package/dist/features/row-pagination/rowPaginationFeature.cjs +35 -47
  144. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -1
  145. package/dist/features/row-pagination/rowPaginationFeature.d.cts +4 -15
  146. package/dist/features/row-pagination/rowPaginationFeature.d.ts +4 -15
  147. package/dist/features/row-pagination/rowPaginationFeature.js +36 -47
  148. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -1
  149. package/dist/features/row-pinning/rowPinningFeature.cjs +55 -67
  150. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -1
  151. package/dist/features/row-pinning/rowPinningFeature.d.cts +4 -15
  152. package/dist/features/row-pinning/rowPinningFeature.d.ts +4 -15
  153. package/dist/features/row-pinning/rowPinningFeature.js +56 -67
  154. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -1
  155. package/dist/features/row-selection/rowSelectionFeature.cjs +65 -77
  156. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -1
  157. package/dist/features/row-selection/rowSelectionFeature.d.cts +4 -15
  158. package/dist/features/row-selection/rowSelectionFeature.d.ts +4 -15
  159. package/dist/features/row-selection/rowSelectionFeature.js +66 -77
  160. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -1
  161. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -1
  162. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -1
  163. package/dist/features/row-sorting/rowSortingFeature.cjs +45 -57
  164. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -1
  165. package/dist/features/row-sorting/rowSortingFeature.d.cts +4 -15
  166. package/dist/features/row-sorting/rowSortingFeature.d.ts +4 -15
  167. package/dist/features/row-sorting/rowSortingFeature.js +46 -57
  168. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -1
  169. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +8 -5
  170. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -1
  171. package/dist/features/row-sorting/rowSortingFeature.utils.js +8 -5
  172. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -1
  173. package/dist/fns/aggregationFns.cjs +18 -18
  174. package/dist/fns/aggregationFns.cjs.map +1 -1
  175. package/dist/fns/aggregationFns.d.cts +21 -19
  176. package/dist/fns/aggregationFns.d.ts +21 -19
  177. package/dist/fns/aggregationFns.js +18 -18
  178. package/dist/fns/aggregationFns.js.map +1 -1
  179. package/dist/fns/filterFns.cjs +51 -65
  180. package/dist/fns/filterFns.cjs.map +1 -1
  181. package/dist/fns/filterFns.d.cts +82 -28
  182. package/dist/fns/filterFns.d.ts +82 -28
  183. package/dist/fns/filterFns.js +51 -65
  184. package/dist/fns/filterFns.js.map +1 -1
  185. package/dist/fns/sortFns.cjs +18 -6
  186. package/dist/fns/sortFns.cjs.map +1 -1
  187. package/dist/fns/sortFns.d.cts +15 -13
  188. package/dist/fns/sortFns.d.ts +15 -13
  189. package/dist/fns/sortFns.js +18 -6
  190. package/dist/fns/sortFns.js.map +1 -1
  191. package/dist/index.cjs +0 -20
  192. package/dist/index.d.cts +34 -34
  193. package/dist/index.d.ts +34 -34
  194. package/dist/index.js +21 -21
  195. package/dist/types/Cell.d.cts +3 -8
  196. package/dist/types/Cell.d.ts +3 -8
  197. package/dist/types/Column.d.cts +3 -8
  198. package/dist/types/Column.d.ts +3 -8
  199. package/dist/types/ColumnDef.d.cts +3 -8
  200. package/dist/types/ColumnDef.d.ts +3 -8
  201. package/dist/types/Header.d.cts +3 -8
  202. package/dist/types/Header.d.ts +3 -8
  203. package/dist/types/HeaderGroup.d.cts +3 -8
  204. package/dist/types/HeaderGroup.d.ts +3 -8
  205. package/dist/types/Row.d.cts +3 -8
  206. package/dist/types/Row.d.ts +3 -8
  207. package/dist/types/RowModel.d.cts +4 -10
  208. package/dist/types/RowModel.d.ts +4 -10
  209. package/dist/types/RowModelFns.d.cts +3 -8
  210. package/dist/types/RowModelFns.d.ts +3 -8
  211. package/dist/types/Table.d.cts +3 -8
  212. package/dist/types/Table.d.ts +3 -8
  213. package/dist/types/TableFeatures.d.cts +13 -39
  214. package/dist/types/TableFeatures.d.ts +13 -39
  215. package/dist/types/TableOptions.d.cts +3 -4
  216. package/dist/types/TableOptions.d.ts +3 -4
  217. package/dist/types/TableState.d.cts +5 -10
  218. package/dist/types/TableState.d.ts +5 -10
  219. package/dist/utils.cjs.map +1 -1
  220. package/dist/utils.d.cts +1 -1
  221. package/dist/utils.d.ts +1 -1
  222. package/dist/utils.js.map +1 -1
  223. package/package.json +1 -1
  224. package/src/core/cells/coreCellsFeature.ts +17 -39
  225. package/src/core/columns/coreColumnsFeature.ts +56 -83
  226. package/src/core/headers/buildHeaderGroups.ts +1 -1
  227. package/src/core/headers/coreHeadersFeature.ts +42 -64
  228. package/src/core/headers/coreHeadersFeature.utils.ts +1 -1
  229. package/src/core/row-models/coreRowModelsFeature.ts +43 -64
  230. package/src/core/row-models/coreRowModelsFeature.types.ts +2 -6
  231. package/src/core/row-models/createCoreRowModel.ts +1 -1
  232. package/src/core/rows/coreRowsFeature.ts +45 -72
  233. package/src/core/table/constructTable.ts +10 -7
  234. package/src/core/table/coreTablesFeature.ts +13 -35
  235. package/src/core/table/coreTablesFeature.utils.ts +1 -1
  236. package/src/features/column-faceting/columnFacetingFeature.ts +71 -102
  237. package/src/features/column-faceting/createFacetedMinMaxValues.ts +1 -1
  238. package/src/features/column-faceting/createFacetedRowModel.ts +1 -1
  239. package/src/features/column-faceting/createFacetedUniqueValues.ts +1 -1
  240. package/src/features/column-filtering/columnFilteringFeature.ts +60 -103
  241. package/src/features/column-filtering/columnFilteringFeature.types.ts +3 -3
  242. package/src/features/column-filtering/columnFilteringFeature.utils.ts +4 -4
  243. package/src/features/column-filtering/createFilteredRowModel.ts +2 -2
  244. package/src/features/column-grouping/columnGroupingFeature.ts +82 -126
  245. package/src/features/column-grouping/createGroupedRowModel.ts +1 -1
  246. package/src/features/column-ordering/columnOrderingFeature.ts +52 -84
  247. package/src/features/column-pinning/columnPinningFeature.ts +268 -304
  248. package/src/features/column-pinning/columnPinningFeature.utils.ts +5 -5
  249. package/src/features/column-resizing/columnResizingFeature.ts +44 -78
  250. package/src/features/column-sizing/columnSizingFeature.ts +115 -152
  251. package/src/features/column-visibility/columnVisibilityFeature.ts +92 -129
  252. package/src/features/global-filtering/globalFilteringFeature.ts +45 -79
  253. package/src/features/global-filtering/globalFilteringFeature.utils.ts +4 -2
  254. package/src/features/row-expanding/createExpandedRowModel.ts +1 -1
  255. package/src/features/row-expanding/rowExpandingFeature.ts +65 -101
  256. package/src/features/row-pagination/createPaginatedRowModel.ts +1 -1
  257. package/src/features/row-pagination/rowPaginationFeature.ts +69 -103
  258. package/src/features/row-pinning/rowPinningFeature.ts +72 -104
  259. package/src/features/row-selection/rowSelectionFeature.ts +103 -135
  260. package/src/features/row-sorting/createSortedRowModel.ts +1 -1
  261. package/src/features/row-sorting/rowSortingFeature.ts +73 -114
  262. package/src/features/row-sorting/rowSortingFeature.utils.ts +8 -6
  263. package/src/fns/aggregationFns.ts +26 -42
  264. package/src/fns/filterFns.ts +231 -264
  265. package/src/fns/sortFns.ts +51 -29
  266. package/src/types/Cell.ts +3 -19
  267. package/src/types/Column.ts +2 -18
  268. package/src/types/ColumnDef.ts +2 -18
  269. package/src/types/Header.ts +2 -18
  270. package/src/types/HeaderGroup.ts +2 -13
  271. package/src/types/Row.ts +2 -17
  272. package/src/types/RowModel.ts +3 -25
  273. package/src/types/RowModelFns.ts +2 -17
  274. package/src/types/Table.ts +2 -17
  275. package/src/types/TableFeatures.ts +51 -112
  276. package/src/types/TableOptions.ts +1 -12
  277. package/src/types/TableState.ts +4 -30
  278. package/src/utils.ts +5 -4
@@ -16,114 +16,82 @@ import {
16
16
  table_resetRowPinning,
17
17
  table_setRowPinning,
18
18
  } from './rowPinningFeature.utils'
19
- import type { RowData } from '../../types/type-utils'
20
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
21
- // import type {
22
- // Row_RowPinning,
23
- // TableOptions_RowPinning,
24
- // TableState_RowPinning,
25
- // Table_RowPinning,
26
- // } from './rowPinningFeature.types'
27
-
28
- export interface RowPinningFeatureConstructors<
29
- TFeatures extends TableFeatures,
30
- TData extends RowData,
31
- > {
32
- // Row: Row_RowPinning
33
- // Table: Table_RowPinning<TFeatures, RowData>
34
- // TableOptions: TableOptions_RowPinning<TFeatures, RowData>
35
- // TableState: TableState_RowPinning
36
- }
19
+ import type { TableFeature } from '../../types/TableFeatures'
37
20
 
38
21
  /**
39
- * Creates the stock row pinning feature.
40
- *
41
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
22
+ * Feature that adds row pinning state and APIs for top, center, and bottom rows.
42
23
  */
43
- export function constructRowPinningFeature<
44
- TFeatures extends TableFeatures,
45
- TData extends RowData,
46
- >(): TableFeature<RowPinningFeatureConstructors<TFeatures, TData>> {
47
- return {
48
- getInitialState: (initialState) => {
49
- return {
50
- ...initialState,
51
- rowPinning: {
52
- ...getDefaultRowPinningState(),
53
- ...initialState.rowPinning,
54
- },
55
- }
56
- },
24
+ export const rowPinningFeature: TableFeature = {
25
+ getInitialState: (initialState) => {
26
+ return {
27
+ ...initialState,
28
+ rowPinning: {
29
+ ...getDefaultRowPinningState(),
30
+ ...initialState.rowPinning,
31
+ },
32
+ }
33
+ },
57
34
 
58
- getDefaultTableOptions: (table) => {
59
- return {
60
- onRowPinningChange: makeStateUpdater('rowPinning', table),
61
- }
62
- },
35
+ getDefaultTableOptions: (table) => {
36
+ return {
37
+ onRowPinningChange: makeStateUpdater('rowPinning', table),
38
+ }
39
+ },
63
40
 
64
- assignRowPrototype: (prototype, table) => {
65
- assignPrototypeAPIs('rowPinningFeature', prototype, table, {
66
- row_getCanPin: {
67
- fn: (row) => row_getCanPin(row),
68
- },
69
- row_getIsPinned: {
70
- fn: (row) => row_getIsPinned(row),
71
- },
72
- row_getPinnedIndex: {
73
- fn: (row) => row_getPinnedIndex(row),
74
- memoDeps: (row) => [
75
- row.table.getRowModel().rows,
76
- row.table.atoms.rowPinning?.get(),
77
- ],
78
- },
79
- row_pin: {
80
- fn: (row, position, includeLeafRows, includeParentRows) =>
81
- row_pin(row, position, includeLeafRows, includeParentRows),
82
- },
83
- })
84
- },
41
+ assignRowPrototype: (prototype, table) => {
42
+ assignPrototypeAPIs('rowPinningFeature', prototype, table, {
43
+ row_getCanPin: {
44
+ fn: (row) => row_getCanPin(row),
45
+ },
46
+ row_getIsPinned: {
47
+ fn: (row) => row_getIsPinned(row),
48
+ },
49
+ row_getPinnedIndex: {
50
+ fn: (row) => row_getPinnedIndex(row),
51
+ memoDeps: (row) => [
52
+ row.table.getRowModel().rows,
53
+ row.table.atoms.rowPinning?.get(),
54
+ ],
55
+ },
56
+ row_pin: {
57
+ fn: (row, position, includeLeafRows, includeParentRows) =>
58
+ row_pin(row, position, includeLeafRows, includeParentRows),
59
+ },
60
+ })
61
+ },
85
62
 
86
- constructTableAPIs: (table) => {
87
- assignTableAPIs('rowPinningFeature', table, {
88
- table_setRowPinning: {
89
- fn: (updater) => table_setRowPinning(table, updater),
90
- },
91
- table_resetRowPinning: {
92
- fn: (defaultState) => table_resetRowPinning(table, defaultState),
93
- },
94
- table_getIsSomeRowsPinned: {
95
- fn: (position) => table_getIsSomeRowsPinned(table, position),
96
- },
97
- table_getTopRows: {
98
- fn: () => table_getTopRows(table),
99
- memoDeps: () => [
100
- table.getRowModel().rows,
101
- table.atoms.rowPinning?.get()?.top,
102
- ],
103
- },
104
- table_getBottomRows: {
105
- fn: () => table_getBottomRows(table),
106
- memoDeps: () => [
107
- table.getRowModel().rows,
108
- table.atoms.rowPinning?.get()?.bottom,
109
- ],
110
- },
111
- table_getCenterRows: {
112
- fn: () => table_getCenterRows(table),
113
- memoDeps: () => [
114
- table.getRowModel().rows,
115
- table.atoms.rowPinning?.get(),
116
- ],
117
- },
118
- })
119
- },
120
- }
63
+ constructTableAPIs: (table) => {
64
+ assignTableAPIs('rowPinningFeature', table, {
65
+ table_setRowPinning: {
66
+ fn: (updater) => table_setRowPinning(table, updater),
67
+ },
68
+ table_resetRowPinning: {
69
+ fn: (defaultState) => table_resetRowPinning(table, defaultState),
70
+ },
71
+ table_getIsSomeRowsPinned: {
72
+ fn: (position) => table_getIsSomeRowsPinned(table, position),
73
+ },
74
+ table_getTopRows: {
75
+ fn: () => table_getTopRows(table),
76
+ memoDeps: () => [
77
+ table.getRowModel().rows,
78
+ table.atoms.rowPinning?.get()?.top,
79
+ ],
80
+ },
81
+ table_getBottomRows: {
82
+ fn: () => table_getBottomRows(table),
83
+ memoDeps: () => [
84
+ table.getRowModel().rows,
85
+ table.atoms.rowPinning?.get()?.bottom,
86
+ ],
87
+ },
88
+ table_getCenterRows: {
89
+ fn: () => table_getCenterRows(table),
90
+ memoDeps: () => [
91
+ table.getRowModel().rows,
92
+ table.atoms.rowPinning?.get(),
93
+ ],
94
+ },
95
+ })
96
+ },
121
97
  }
122
-
123
- /**
124
- * The stock row pinning feature.
125
- *
126
- * Register this feature to add row pinning state and APIs for deriving top,
127
- * center, and bottom row regions.
128
- */
129
- export const rowPinningFeature = constructRowPinningFeature()
@@ -28,145 +28,113 @@ import {
28
28
  table_toggleAllPageRowsSelected,
29
29
  table_toggleAllRowsSelected,
30
30
  } from './rowSelectionFeature.utils'
31
- import type { RowData } from '../../types/type-utils'
32
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
33
- // import type {
34
- // Row_RowSelection,
35
- // TableOptions_RowSelection,
36
- // TableState_RowSelection,
37
- // Table_RowSelection,
38
- // } from './rowSelectionFeature.types'
39
-
40
- export interface RowSelectionFeatureConstructors<
41
- TFeatures extends TableFeatures,
42
- TData extends RowData,
43
- > {
44
- // Row: Row_RowSelection
45
- // Table: Table_RowSelection<TFeatures, TData>
46
- // TableOptions: TableOptions_RowSelection<TFeatures, TData>
47
- // TableState: TableState_RowSelection
48
- }
31
+ import type { TableFeature } from '../../types/TableFeatures'
49
32
 
50
33
  /**
51
- * Creates the stock row selection feature.
52
- *
53
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
34
+ * Feature that adds row selection state and APIs for row and page selection.
54
35
  */
55
- export function constructRowSelectionFeature<
56
- TFeatures extends TableFeatures,
57
- TData extends RowData,
58
- >(): TableFeature<RowSelectionFeatureConstructors<TFeatures, TData>> {
59
- return {
60
- getInitialState: (initialState) => {
61
- return {
62
- rowSelection: getDefaultRowSelectionState(),
63
- ...initialState,
64
- }
65
- },
36
+ export const rowSelectionFeature: TableFeature = {
37
+ getInitialState: (initialState) => {
38
+ return {
39
+ rowSelection: getDefaultRowSelectionState(),
40
+ ...initialState,
41
+ }
42
+ },
66
43
 
67
- getDefaultTableOptions: (table) => {
68
- return {
69
- onRowSelectionChange: makeStateUpdater('rowSelection', table),
70
- enableRowSelection: true,
71
- enableMultiRowSelection: true,
72
- enableSubRowSelection: true,
73
- }
74
- },
44
+ getDefaultTableOptions: (table) => {
45
+ return {
46
+ onRowSelectionChange: makeStateUpdater('rowSelection', table),
47
+ enableRowSelection: true,
48
+ enableMultiRowSelection: true,
49
+ enableSubRowSelection: true,
50
+ }
51
+ },
75
52
 
76
- assignRowPrototype: (prototype, table) => {
77
- assignPrototypeAPIs('rowSelectionFeature', prototype, table, {
78
- row_toggleSelected: {
79
- fn: (row, value, opts) => row_toggleSelected(row, value, opts),
80
- },
81
- row_getIsSelected: {
82
- fn: (row) => row_getIsSelected(row),
83
- },
84
- row_getIsSomeSelected: {
85
- fn: (row) => row_getIsSomeSelected(row),
86
- },
87
- row_getIsAllSubRowsSelected: {
88
- fn: (row) => row_getIsAllSubRowsSelected(row),
89
- },
90
- row_getCanSelect: {
91
- fn: (row) => row_getCanSelect(row),
92
- },
93
- row_getCanSelectSubRows: {
94
- fn: (row) => row_getCanSelectSubRows(row),
95
- },
96
- row_getCanMultiSelect: {
97
- fn: (row) => row_getCanMultiSelect(row),
98
- },
99
- row_getToggleSelectedHandler: {
100
- fn: (row) => row_getToggleSelectedHandler(row),
101
- },
102
- })
103
- },
53
+ assignRowPrototype: (prototype, table) => {
54
+ assignPrototypeAPIs('rowSelectionFeature', prototype, table, {
55
+ row_toggleSelected: {
56
+ fn: (row, value, opts) => row_toggleSelected(row, value, opts),
57
+ },
58
+ row_getIsSelected: {
59
+ fn: (row) => row_getIsSelected(row),
60
+ },
61
+ row_getIsSomeSelected: {
62
+ fn: (row) => row_getIsSomeSelected(row),
63
+ },
64
+ row_getIsAllSubRowsSelected: {
65
+ fn: (row) => row_getIsAllSubRowsSelected(row),
66
+ },
67
+ row_getCanSelect: {
68
+ fn: (row) => row_getCanSelect(row),
69
+ },
70
+ row_getCanSelectSubRows: {
71
+ fn: (row) => row_getCanSelectSubRows(row),
72
+ },
73
+ row_getCanMultiSelect: {
74
+ fn: (row) => row_getCanMultiSelect(row),
75
+ },
76
+ row_getToggleSelectedHandler: {
77
+ fn: (row) => row_getToggleSelectedHandler(row),
78
+ },
79
+ })
80
+ },
104
81
 
105
- constructTableAPIs: (table) => {
106
- assignTableAPIs('rowSelectionFeature', table, {
107
- table_setRowSelection: {
108
- fn: (updater) => table_setRowSelection(table, updater),
109
- },
110
- table_resetRowSelection: {
111
- fn: (defaultState) => table_resetRowSelection(table, defaultState),
112
- },
113
- table_toggleAllRowsSelected: {
114
- fn: (value) => table_toggleAllRowsSelected(table, value),
115
- },
116
- table_toggleAllPageRowsSelected: {
117
- fn: (value) => table_toggleAllPageRowsSelected(table, value),
118
- },
119
- table_getPreSelectedRowModel: {
120
- fn: () => table_getPreSelectedRowModel(table),
121
- },
122
- table_getSelectedRowModel: {
123
- fn: () => table_getSelectedRowModel(table),
124
- memoDeps: () => [
125
- table.atoms.rowSelection?.get(),
126
- table.getCoreRowModel(),
127
- ],
128
- },
129
- table_getFilteredSelectedRowModel: {
130
- fn: () => table_getFilteredSelectedRowModel(table),
131
- memoDeps: () => [
132
- table.atoms.rowSelection?.get(),
133
- table.getFilteredRowModel(),
134
- ],
135
- },
136
- table_getGroupedSelectedRowModel: {
137
- fn: () => table_getGroupedSelectedRowModel(table),
138
- memoDeps: () => [
139
- table.atoms.rowSelection?.get(),
140
- table.getSortedRowModel(),
141
- ],
142
- },
143
- table_getIsAllRowsSelected: {
144
- fn: () => table_getIsAllRowsSelected(table),
145
- },
146
- table_getIsAllPageRowsSelected: {
147
- fn: () => table_getIsAllPageRowsSelected(table),
148
- },
149
- table_getIsSomeRowsSelected: {
150
- fn: () => table_getIsSomeRowsSelected(table),
151
- },
152
- table_getIsSomePageRowsSelected: {
153
- fn: () => table_getIsSomePageRowsSelected(table),
154
- },
155
- table_getToggleAllRowsSelectedHandler: {
156
- fn: () => table_getToggleAllRowsSelectedHandler(table),
157
- },
158
- table_getToggleAllPageRowsSelectedHandler: {
159
- fn: () => table_getToggleAllPageRowsSelectedHandler(table),
160
- },
161
- })
162
- },
163
- }
82
+ constructTableAPIs: (table) => {
83
+ assignTableAPIs('rowSelectionFeature', table, {
84
+ table_setRowSelection: {
85
+ fn: (updater) => table_setRowSelection(table, updater),
86
+ },
87
+ table_resetRowSelection: {
88
+ fn: (defaultState) => table_resetRowSelection(table, defaultState),
89
+ },
90
+ table_toggleAllRowsSelected: {
91
+ fn: (value) => table_toggleAllRowsSelected(table, value),
92
+ },
93
+ table_toggleAllPageRowsSelected: {
94
+ fn: (value) => table_toggleAllPageRowsSelected(table, value),
95
+ },
96
+ table_getPreSelectedRowModel: {
97
+ fn: () => table_getPreSelectedRowModel(table),
98
+ },
99
+ table_getSelectedRowModel: {
100
+ fn: () => table_getSelectedRowModel(table),
101
+ memoDeps: () => [
102
+ table.atoms.rowSelection?.get(),
103
+ table.getCoreRowModel(),
104
+ ],
105
+ },
106
+ table_getFilteredSelectedRowModel: {
107
+ fn: () => table_getFilteredSelectedRowModel(table),
108
+ memoDeps: () => [
109
+ table.atoms.rowSelection?.get(),
110
+ table.getFilteredRowModel(),
111
+ ],
112
+ },
113
+ table_getGroupedSelectedRowModel: {
114
+ fn: () => table_getGroupedSelectedRowModel(table),
115
+ memoDeps: () => [
116
+ table.atoms.rowSelection?.get(),
117
+ table.getSortedRowModel(),
118
+ ],
119
+ },
120
+ table_getIsAllRowsSelected: {
121
+ fn: () => table_getIsAllRowsSelected(table),
122
+ },
123
+ table_getIsAllPageRowsSelected: {
124
+ fn: () => table_getIsAllPageRowsSelected(table),
125
+ },
126
+ table_getIsSomeRowsSelected: {
127
+ fn: () => table_getIsSomeRowsSelected(table),
128
+ },
129
+ table_getIsSomePageRowsSelected: {
130
+ fn: () => table_getIsSomePageRowsSelected(table),
131
+ },
132
+ table_getToggleAllRowsSelectedHandler: {
133
+ fn: () => table_getToggleAllRowsSelectedHandler(table),
134
+ },
135
+ table_getToggleAllPageRowsSelectedHandler: {
136
+ fn: () => table_getToggleAllPageRowsSelectedHandler(table),
137
+ },
138
+ })
139
+ },
164
140
  }
165
-
166
- /**
167
- * The stock row selection feature.
168
- *
169
- * Register this feature to add row selection state, selected row-model helpers,
170
- * and table/row APIs for checkbox and bulk-selection UI.
171
- */
172
- export const rowSelectionFeature = constructRowSelectionFeature()
@@ -21,7 +21,7 @@ export function createSortedRowModel<
21
21
  sortFns: Record<keyof SortFns, SortFn<TFeatures, TData>>,
22
22
  ): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {
23
23
  return (_table) => {
24
- const table: Table_Internal<TFeatures, TData> = _table
24
+ const table = _table as unknown as Table_Internal<TFeatures, TData>
25
25
  if (!table._rowModelFns.sortFns) table._rowModelFns.sortFns = sortFns
26
26
  return tableMemo({
27
27
  feature: 'rowSortingFeature',
@@ -20,125 +20,84 @@ import {
20
20
  table_resetSorting,
21
21
  table_setSorting,
22
22
  } from './rowSortingFeature.utils'
23
- import type { RowData } from '../../types/type-utils'
24
- import type { TableFeature, TableFeatures } from '../../types/TableFeatures'
25
- // import type {
26
- // CachedRowModel_Sorted,
27
- // ColumnDef_RowSorting,
28
- // Column_RowSorting,
29
- // CreateRowModel_Sorted,
30
- // RowModelFns_RowSorting,
31
- // TableOptions_RowSorting,
32
- // TableState_RowSorting,
33
- // Table_RowSorting,
34
- // } from './rowSortingFeature.types'
35
-
36
- export interface RowSortingFeatureConstructors<
37
- TFeatures extends TableFeatures,
38
- TData extends RowData,
39
- > {
40
- // CachedRowModel: CachedRowModel_Sorted<TFeatures, TData>
41
- // Column: Column_RowSorting<TFeatures, TData>
42
- // ColumnDef: ColumnDef_RowSorting<TFeatures, TData>
43
- // CreateRowModels: CreateRowModel_Sorted<TFeatures, TData>
44
- // RowModelFns: RowModelFns_RowSorting<TFeatures, TData>
45
- // Table: Table_RowSorting<TFeatures, TData>
46
- // TableOptions: TableOptions_RowSorting
47
- // TableState: TableState_RowSorting
48
- }
23
+ import type { TableFeature } from '../../types/TableFeatures'
49
24
 
50
25
  /**
51
- * Creates the stock row sorting feature.
52
- *
53
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
26
+ * Feature that adds row sorting state, defaults, and column/table sorting APIs.
54
27
  */
55
- export function constructRowSortingFeature<
56
- TFeatures extends TableFeatures,
57
- TData extends RowData,
58
- >(): TableFeature<RowSortingFeatureConstructors<TFeatures, TData>> {
59
- return {
60
- getInitialState(initialState) {
61
- return {
62
- sorting: getDefaultSortingState(),
63
- ...initialState,
64
- }
65
- },
28
+ export const rowSortingFeature: TableFeature = {
29
+ getInitialState(initialState) {
30
+ return {
31
+ sorting: getDefaultSortingState(),
32
+ ...initialState,
33
+ }
34
+ },
66
35
 
67
- getDefaultColumnDef() {
68
- return {
69
- sortFn: 'auto',
70
- sortUndefined: 1,
71
- }
72
- },
36
+ getDefaultColumnDef() {
37
+ return {
38
+ sortFn: 'auto',
39
+ sortUndefined: 1,
40
+ }
41
+ },
73
42
 
74
- getDefaultTableOptions(table) {
75
- return {
76
- onSortingChange: makeStateUpdater('sorting', table),
77
- isMultiSortEvent: (e: unknown) => {
78
- return (e as MouseEvent).shiftKey
79
- },
80
- }
81
- },
43
+ getDefaultTableOptions(table) {
44
+ return {
45
+ onSortingChange: makeStateUpdater('sorting', table),
46
+ isMultiSortEvent: (e: unknown) => {
47
+ return (e as MouseEvent).shiftKey
48
+ },
49
+ }
50
+ },
82
51
 
83
- assignColumnPrototype(prototype, table) {
84
- assignPrototypeAPIs('rowSortingFeature', prototype, table, {
85
- column_getAutoSortFn: {
86
- fn: (column) => column_getAutoSortFn(column),
87
- },
88
- column_getAutoSortDir: {
89
- fn: (column) => column_getAutoSortDir(column),
90
- },
91
- column_getSortFn: {
92
- fn: (column) => column_getSortFn(column),
93
- },
94
- column_toggleSorting: {
95
- fn: (column, desc, multi) =>
96
- column_toggleSorting(column, desc, multi),
97
- },
98
- column_getFirstSortDir: {
99
- fn: (column) => column_getFirstSortDir(column),
100
- },
101
- column_getNextSortingOrder: {
102
- fn: (column, multi) => column_getNextSortingOrder(column, multi),
103
- },
104
- column_getCanSort: {
105
- fn: (column) => column_getCanSort(column),
106
- },
107
- column_getCanMultiSort: {
108
- fn: (column) => column_getCanMultiSort(column),
109
- },
110
- column_getIsSorted: {
111
- fn: (column) => column_getIsSorted(column),
112
- },
113
- column_getSortIndex: {
114
- fn: (column) => column_getSortIndex(column),
115
- },
116
- column_clearSorting: {
117
- fn: (column) => column_clearSorting(column),
118
- },
119
- column_getToggleSortingHandler: {
120
- fn: (column) => column_getToggleSortingHandler(column),
121
- },
122
- })
123
- },
52
+ assignColumnPrototype(prototype, table) {
53
+ assignPrototypeAPIs('rowSortingFeature', prototype, table, {
54
+ column_getAutoSortFn: {
55
+ fn: (column) => column_getAutoSortFn(column),
56
+ },
57
+ column_getAutoSortDir: {
58
+ fn: (column) => column_getAutoSortDir(column),
59
+ },
60
+ column_getSortFn: {
61
+ fn: (column) => column_getSortFn(column),
62
+ },
63
+ column_toggleSorting: {
64
+ fn: (column, desc, multi) => column_toggleSorting(column, desc, multi),
65
+ },
66
+ column_getFirstSortDir: {
67
+ fn: (column) => column_getFirstSortDir(column),
68
+ },
69
+ column_getNextSortingOrder: {
70
+ fn: (column, multi) => column_getNextSortingOrder(column, multi),
71
+ },
72
+ column_getCanSort: {
73
+ fn: (column) => column_getCanSort(column),
74
+ },
75
+ column_getCanMultiSort: {
76
+ fn: (column) => column_getCanMultiSort(column),
77
+ },
78
+ column_getIsSorted: {
79
+ fn: (column) => column_getIsSorted(column),
80
+ },
81
+ column_getSortIndex: {
82
+ fn: (column) => column_getSortIndex(column),
83
+ },
84
+ column_clearSorting: {
85
+ fn: (column) => column_clearSorting(column),
86
+ },
87
+ column_getToggleSortingHandler: {
88
+ fn: (column) => column_getToggleSortingHandler(column),
89
+ },
90
+ })
91
+ },
124
92
 
125
- constructTableAPIs(table) {
126
- assignTableAPIs('rowSortingFeature', table, {
127
- table_setSorting: {
128
- fn: (updater) => table_setSorting(table, updater),
129
- },
130
- table_resetSorting: {
131
- fn: (defaultState) => table_resetSorting(table, defaultState),
132
- },
133
- })
134
- },
135
- }
93
+ constructTableAPIs(table) {
94
+ assignTableAPIs('rowSortingFeature', table, {
95
+ table_setSorting: {
96
+ fn: (updater) => table_setSorting(table, updater),
97
+ },
98
+ table_resetSorting: {
99
+ fn: (defaultState) => table_resetSorting(table, defaultState),
100
+ },
101
+ })
102
+ },
136
103
  }
137
-
138
- /**
139
- * The stock row sorting feature.
140
- *
141
- * Register this feature to add sorting state, column sorting APIs, and sorted
142
- * row-model support for client-side or manual sorting.
143
- */
144
- export const rowSortingFeature = constructRowSortingFeature()