@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
@@ -3,85 +3,73 @@ const require_rowSelectionFeature_utils = require('./rowSelectionFeature.utils.c
3
3
 
4
4
  //#region src/features/row-selection/rowSelectionFeature.ts
5
5
  /**
6
- * Creates the stock row selection feature.
7
- *
8
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
6
+ * Feature that adds row selection state and APIs for row and page selection.
9
7
  */
10
- function constructRowSelectionFeature() {
11
- return {
12
- getInitialState: (initialState) => {
13
- return {
14
- rowSelection: require_rowSelectionFeature_utils.getDefaultRowSelectionState(),
15
- ...initialState
16
- };
17
- },
18
- getDefaultTableOptions: (table) => {
19
- return {
20
- onRowSelectionChange: require_utils.makeStateUpdater("rowSelection", table),
21
- enableRowSelection: true,
22
- enableMultiRowSelection: true,
23
- enableSubRowSelection: true
24
- };
25
- },
26
- assignRowPrototype: (prototype, table) => {
27
- require_utils.assignPrototypeAPIs("rowSelectionFeature", prototype, table, {
28
- row_toggleSelected: { fn: (row, value, opts) => require_rowSelectionFeature_utils.row_toggleSelected(row, value, opts) },
29
- row_getIsSelected: { fn: (row) => require_rowSelectionFeature_utils.row_getIsSelected(row) },
30
- row_getIsSomeSelected: { fn: (row) => require_rowSelectionFeature_utils.row_getIsSomeSelected(row) },
31
- row_getIsAllSubRowsSelected: { fn: (row) => require_rowSelectionFeature_utils.row_getIsAllSubRowsSelected(row) },
32
- row_getCanSelect: { fn: (row) => require_rowSelectionFeature_utils.row_getCanSelect(row) },
33
- row_getCanSelectSubRows: { fn: (row) => require_rowSelectionFeature_utils.row_getCanSelectSubRows(row) },
34
- row_getCanMultiSelect: { fn: (row) => require_rowSelectionFeature_utils.row_getCanMultiSelect(row) },
35
- row_getToggleSelectedHandler: { fn: (row) => require_rowSelectionFeature_utils.row_getToggleSelectedHandler(row) }
36
- });
37
- },
38
- constructTableAPIs: (table) => {
39
- require_utils.assignTableAPIs("rowSelectionFeature", table, {
40
- table_setRowSelection: { fn: (updater) => require_rowSelectionFeature_utils.table_setRowSelection(table, updater) },
41
- table_resetRowSelection: { fn: (defaultState) => require_rowSelectionFeature_utils.table_resetRowSelection(table, defaultState) },
42
- table_toggleAllRowsSelected: { fn: (value) => require_rowSelectionFeature_utils.table_toggleAllRowsSelected(table, value) },
43
- table_toggleAllPageRowsSelected: { fn: (value) => require_rowSelectionFeature_utils.table_toggleAllPageRowsSelected(table, value) },
44
- table_getPreSelectedRowModel: { fn: () => require_rowSelectionFeature_utils.table_getPreSelectedRowModel(table) },
45
- table_getSelectedRowModel: {
46
- fn: () => require_rowSelectionFeature_utils.table_getSelectedRowModel(table),
47
- memoDeps: () => {
48
- var _table$atoms$rowSelec;
49
- return [(_table$atoms$rowSelec = table.atoms.rowSelection) === null || _table$atoms$rowSelec === void 0 ? void 0 : _table$atoms$rowSelec.get(), table.getCoreRowModel()];
50
- }
51
- },
52
- table_getFilteredSelectedRowModel: {
53
- fn: () => require_rowSelectionFeature_utils.table_getFilteredSelectedRowModel(table),
54
- memoDeps: () => {
55
- var _table$atoms$rowSelec2;
56
- return [(_table$atoms$rowSelec2 = table.atoms.rowSelection) === null || _table$atoms$rowSelec2 === void 0 ? void 0 : _table$atoms$rowSelec2.get(), table.getFilteredRowModel()];
57
- }
58
- },
59
- table_getGroupedSelectedRowModel: {
60
- fn: () => require_rowSelectionFeature_utils.table_getGroupedSelectedRowModel(table),
61
- memoDeps: () => {
62
- var _table$atoms$rowSelec3;
63
- return [(_table$atoms$rowSelec3 = table.atoms.rowSelection) === null || _table$atoms$rowSelec3 === void 0 ? void 0 : _table$atoms$rowSelec3.get(), table.getSortedRowModel()];
64
- }
65
- },
66
- table_getIsAllRowsSelected: { fn: () => require_rowSelectionFeature_utils.table_getIsAllRowsSelected(table) },
67
- table_getIsAllPageRowsSelected: { fn: () => require_rowSelectionFeature_utils.table_getIsAllPageRowsSelected(table) },
68
- table_getIsSomeRowsSelected: { fn: () => require_rowSelectionFeature_utils.table_getIsSomeRowsSelected(table) },
69
- table_getIsSomePageRowsSelected: { fn: () => require_rowSelectionFeature_utils.table_getIsSomePageRowsSelected(table) },
70
- table_getToggleAllRowsSelectedHandler: { fn: () => require_rowSelectionFeature_utils.table_getToggleAllRowsSelectedHandler(table) },
71
- table_getToggleAllPageRowsSelectedHandler: { fn: () => require_rowSelectionFeature_utils.table_getToggleAllPageRowsSelectedHandler(table) }
72
- });
73
- }
74
- };
75
- }
76
- /**
77
- * The stock row selection feature.
78
- *
79
- * Register this feature to add row selection state, selected row-model helpers,
80
- * and table/row APIs for checkbox and bulk-selection UI.
81
- */
82
- const rowSelectionFeature = constructRowSelectionFeature();
8
+ const rowSelectionFeature = {
9
+ getInitialState: (initialState) => {
10
+ return {
11
+ rowSelection: require_rowSelectionFeature_utils.getDefaultRowSelectionState(),
12
+ ...initialState
13
+ };
14
+ },
15
+ getDefaultTableOptions: (table) => {
16
+ return {
17
+ onRowSelectionChange: require_utils.makeStateUpdater("rowSelection", table),
18
+ enableRowSelection: true,
19
+ enableMultiRowSelection: true,
20
+ enableSubRowSelection: true
21
+ };
22
+ },
23
+ assignRowPrototype: (prototype, table) => {
24
+ require_utils.assignPrototypeAPIs("rowSelectionFeature", prototype, table, {
25
+ row_toggleSelected: { fn: (row, value, opts) => require_rowSelectionFeature_utils.row_toggleSelected(row, value, opts) },
26
+ row_getIsSelected: { fn: (row) => require_rowSelectionFeature_utils.row_getIsSelected(row) },
27
+ row_getIsSomeSelected: { fn: (row) => require_rowSelectionFeature_utils.row_getIsSomeSelected(row) },
28
+ row_getIsAllSubRowsSelected: { fn: (row) => require_rowSelectionFeature_utils.row_getIsAllSubRowsSelected(row) },
29
+ row_getCanSelect: { fn: (row) => require_rowSelectionFeature_utils.row_getCanSelect(row) },
30
+ row_getCanSelectSubRows: { fn: (row) => require_rowSelectionFeature_utils.row_getCanSelectSubRows(row) },
31
+ row_getCanMultiSelect: { fn: (row) => require_rowSelectionFeature_utils.row_getCanMultiSelect(row) },
32
+ row_getToggleSelectedHandler: { fn: (row) => require_rowSelectionFeature_utils.row_getToggleSelectedHandler(row) }
33
+ });
34
+ },
35
+ constructTableAPIs: (table) => {
36
+ require_utils.assignTableAPIs("rowSelectionFeature", table, {
37
+ table_setRowSelection: { fn: (updater) => require_rowSelectionFeature_utils.table_setRowSelection(table, updater) },
38
+ table_resetRowSelection: { fn: (defaultState) => require_rowSelectionFeature_utils.table_resetRowSelection(table, defaultState) },
39
+ table_toggleAllRowsSelected: { fn: (value) => require_rowSelectionFeature_utils.table_toggleAllRowsSelected(table, value) },
40
+ table_toggleAllPageRowsSelected: { fn: (value) => require_rowSelectionFeature_utils.table_toggleAllPageRowsSelected(table, value) },
41
+ table_getPreSelectedRowModel: { fn: () => require_rowSelectionFeature_utils.table_getPreSelectedRowModel(table) },
42
+ table_getSelectedRowModel: {
43
+ fn: () => require_rowSelectionFeature_utils.table_getSelectedRowModel(table),
44
+ memoDeps: () => {
45
+ var _table$atoms$rowSelec;
46
+ return [(_table$atoms$rowSelec = table.atoms.rowSelection) === null || _table$atoms$rowSelec === void 0 ? void 0 : _table$atoms$rowSelec.get(), table.getCoreRowModel()];
47
+ }
48
+ },
49
+ table_getFilteredSelectedRowModel: {
50
+ fn: () => require_rowSelectionFeature_utils.table_getFilteredSelectedRowModel(table),
51
+ memoDeps: () => {
52
+ var _table$atoms$rowSelec2;
53
+ return [(_table$atoms$rowSelec2 = table.atoms.rowSelection) === null || _table$atoms$rowSelec2 === void 0 ? void 0 : _table$atoms$rowSelec2.get(), table.getFilteredRowModel()];
54
+ }
55
+ },
56
+ table_getGroupedSelectedRowModel: {
57
+ fn: () => require_rowSelectionFeature_utils.table_getGroupedSelectedRowModel(table),
58
+ memoDeps: () => {
59
+ var _table$atoms$rowSelec3;
60
+ return [(_table$atoms$rowSelec3 = table.atoms.rowSelection) === null || _table$atoms$rowSelec3 === void 0 ? void 0 : _table$atoms$rowSelec3.get(), table.getSortedRowModel()];
61
+ }
62
+ },
63
+ table_getIsAllRowsSelected: { fn: () => require_rowSelectionFeature_utils.table_getIsAllRowsSelected(table) },
64
+ table_getIsAllPageRowsSelected: { fn: () => require_rowSelectionFeature_utils.table_getIsAllPageRowsSelected(table) },
65
+ table_getIsSomeRowsSelected: { fn: () => require_rowSelectionFeature_utils.table_getIsSomeRowsSelected(table) },
66
+ table_getIsSomePageRowsSelected: { fn: () => require_rowSelectionFeature_utils.table_getIsSomePageRowsSelected(table) },
67
+ table_getToggleAllRowsSelectedHandler: { fn: () => require_rowSelectionFeature_utils.table_getToggleAllRowsSelectedHandler(table) },
68
+ table_getToggleAllPageRowsSelectedHandler: { fn: () => require_rowSelectionFeature_utils.table_getToggleAllPageRowsSelectedHandler(table) }
69
+ });
70
+ }
71
+ };
83
72
 
84
73
  //#endregion
85
- exports.constructRowSelectionFeature = constructRowSelectionFeature;
86
74
  exports.rowSelectionFeature = rowSelectionFeature;
87
75
  //# sourceMappingURL=rowSelectionFeature.cjs.map
@@ -1 +1 @@
1
- {"version":3,"file":"rowSelectionFeature.cjs","names":["getDefaultRowSelectionState","makeStateUpdater","row_toggleSelected","row_getIsSelected","row_getIsSomeSelected","row_getIsAllSubRowsSelected","row_getCanSelect","row_getCanSelectSubRows","row_getCanMultiSelect","row_getToggleSelectedHandler","table_setRowSelection","table_resetRowSelection","table_toggleAllRowsSelected","table_toggleAllPageRowsSelected","table_getPreSelectedRowModel","table_getSelectedRowModel","table_getFilteredSelectedRowModel","table_getGroupedSelectedRowModel","table_getIsAllRowsSelected","table_getIsAllPageRowsSelected","table_getIsSomeRowsSelected","table_getIsSomePageRowsSelected","table_getToggleAllRowsSelectedHandler","table_getToggleAllPageRowsSelectedHandler"],"sources":["../../../src/features/row-selection/rowSelectionFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n getDefaultRowSelectionState,\n row_getCanMultiSelect,\n row_getCanSelect,\n row_getCanSelectSubRows,\n row_getIsAllSubRowsSelected,\n row_getIsSelected,\n row_getIsSomeSelected,\n row_getToggleSelectedHandler,\n row_toggleSelected,\n table_getFilteredSelectedRowModel,\n table_getGroupedSelectedRowModel,\n table_getIsAllPageRowsSelected,\n table_getIsAllRowsSelected,\n table_getIsSomePageRowsSelected,\n table_getIsSomeRowsSelected,\n table_getPreSelectedRowModel,\n table_getSelectedRowModel,\n table_getToggleAllPageRowsSelectedHandler,\n table_getToggleAllRowsSelectedHandler,\n table_resetRowSelection,\n table_setRowSelection,\n table_toggleAllPageRowsSelected,\n table_toggleAllRowsSelected,\n} from './rowSelectionFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// Row_RowSelection,\n// TableOptions_RowSelection,\n// TableState_RowSelection,\n// Table_RowSelection,\n// } from './rowSelectionFeature.types'\n\nexport interface RowSelectionFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Row: Row_RowSelection\n // Table: Table_RowSelection<TFeatures, TData>\n // TableOptions: TableOptions_RowSelection<TFeatures, TData>\n // TableState: TableState_RowSelection\n}\n\n/**\n * Creates the stock row selection feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructRowSelectionFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowSelectionFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n rowSelection: getDefaultRowSelectionState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n }\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('rowSelectionFeature', prototype, table, {\n row_toggleSelected: {\n fn: (row, value, opts) => row_toggleSelected(row, value, opts),\n },\n row_getIsSelected: {\n fn: (row) => row_getIsSelected(row),\n },\n row_getIsSomeSelected: {\n fn: (row) => row_getIsSomeSelected(row),\n },\n row_getIsAllSubRowsSelected: {\n fn: (row) => row_getIsAllSubRowsSelected(row),\n },\n row_getCanSelect: {\n fn: (row) => row_getCanSelect(row),\n },\n row_getCanSelectSubRows: {\n fn: (row) => row_getCanSelectSubRows(row),\n },\n row_getCanMultiSelect: {\n fn: (row) => row_getCanMultiSelect(row),\n },\n row_getToggleSelectedHandler: {\n fn: (row) => row_getToggleSelectedHandler(row),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowSelectionFeature', table, {\n table_setRowSelection: {\n fn: (updater) => table_setRowSelection(table, updater),\n },\n table_resetRowSelection: {\n fn: (defaultState) => table_resetRowSelection(table, defaultState),\n },\n table_toggleAllRowsSelected: {\n fn: (value) => table_toggleAllRowsSelected(table, value),\n },\n table_toggleAllPageRowsSelected: {\n fn: (value) => table_toggleAllPageRowsSelected(table, value),\n },\n table_getPreSelectedRowModel: {\n fn: () => table_getPreSelectedRowModel(table),\n },\n table_getSelectedRowModel: {\n fn: () => table_getSelectedRowModel(table),\n memoDeps: () => [\n table.atoms.rowSelection?.get(),\n table.getCoreRowModel(),\n ],\n },\n table_getFilteredSelectedRowModel: {\n fn: () => table_getFilteredSelectedRowModel(table),\n memoDeps: () => [\n table.atoms.rowSelection?.get(),\n table.getFilteredRowModel(),\n ],\n },\n table_getGroupedSelectedRowModel: {\n fn: () => table_getGroupedSelectedRowModel(table),\n memoDeps: () => [\n table.atoms.rowSelection?.get(),\n table.getSortedRowModel(),\n ],\n },\n table_getIsAllRowsSelected: {\n fn: () => table_getIsAllRowsSelected(table),\n },\n table_getIsAllPageRowsSelected: {\n fn: () => table_getIsAllPageRowsSelected(table),\n },\n table_getIsSomeRowsSelected: {\n fn: () => table_getIsSomeRowsSelected(table),\n },\n table_getIsSomePageRowsSelected: {\n fn: () => table_getIsSomePageRowsSelected(table),\n },\n table_getToggleAllRowsSelectedHandler: {\n fn: () => table_getToggleAllRowsSelectedHandler(table),\n },\n table_getToggleAllPageRowsSelectedHandler: {\n fn: () => table_getToggleAllPageRowsSelectedHandler(table),\n },\n })\n },\n }\n}\n\n/**\n * The stock row selection feature.\n *\n * Register this feature to add row selection state, selected row-model helpers,\n * and table/row APIs for checkbox and bulk-selection UI.\n */\nexport const rowSelectionFeature = constructRowSelectionFeature()\n"],"mappings":";;;;;;;;;AAsDA,SAAgB,+BAGqD;CACnE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,cAAcA,8DAA4B;IAC1C,GAAG;GACL;EACF;EAEA,yBAAyB,UAAU;GACjC,OAAO;IACL,sBAAsBC,+BAAiB,gBAAgB,KAAK;IAC5D,oBAAoB;IACpB,yBAAyB;IACzB,uBAAuB;GACzB;EACF;EAEA,qBAAqB,WAAW,UAAU;GACxC,kCAAoB,uBAAuB,WAAW,OAAO;IAC3D,oBAAoB,EAClB,KAAK,KAAK,OAAO,SAASC,qDAAmB,KAAK,OAAO,IAAI,EAC/D;IACA,mBAAmB,EACjB,KAAK,QAAQC,oDAAkB,GAAG,EACpC;IACA,uBAAuB,EACrB,KAAK,QAAQC,wDAAsB,GAAG,EACxC;IACA,6BAA6B,EAC3B,KAAK,QAAQC,8DAA4B,GAAG,EAC9C;IACA,kBAAkB,EAChB,KAAK,QAAQC,mDAAiB,GAAG,EACnC;IACA,yBAAyB,EACvB,KAAK,QAAQC,0DAAwB,GAAG,EAC1C;IACA,uBAAuB,EACrB,KAAK,QAAQC,wDAAsB,GAAG,EACxC;IACA,8BAA8B,EAC5B,KAAK,QAAQC,+DAA6B,GAAG,EAC/C;GACF,CAAC;EACH;EAEA,qBAAqB,UAAU;GAC7B,8BAAgB,uBAAuB,OAAO;IAC5C,uBAAuB,EACrB,KAAK,YAAYC,wDAAsB,OAAO,OAAO,EACvD;IACA,yBAAyB,EACvB,KAAK,iBAAiBC,0DAAwB,OAAO,YAAY,EACnE;IACA,6BAA6B,EAC3B,KAAK,UAAUC,8DAA4B,OAAO,KAAK,EACzD;IACA,iCAAiC,EAC/B,KAAK,UAAUC,kEAAgC,OAAO,KAAK,EAC7D;IACA,8BAA8B,EAC5B,UAAUC,+DAA6B,KAAK,EAC9C;IACA,2BAA2B;KACzB,UAAUC,4DAA0B,KAAK;KACzC,gBAAgB;;uCACd,MAAM,MAAM,4FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;IACF;IACA,mCAAmC;KACjC,UAAUC,oEAAkC,KAAK;KACjD,gBAAgB;;wCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,oBAAoB,CAC5B;;IACF;IACA,kCAAkC;KAChC,UAAUC,mEAAiC,KAAK;KAChD,gBAAgB;;wCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,kBAAkB,CAC1B;;IACF;IACA,4BAA4B,EAC1B,UAAUC,6DAA2B,KAAK,EAC5C;IACA,gCAAgC,EAC9B,UAAUC,iEAA+B,KAAK,EAChD;IACA,6BAA6B,EAC3B,UAAUC,8DAA4B,KAAK,EAC7C;IACA,iCAAiC,EAC/B,UAAUC,kEAAgC,KAAK,EACjD;IACA,uCAAuC,EACrC,UAAUC,wEAAsC,KAAK,EACvD;IACA,2CAA2C,EACzC,UAAUC,4EAA0C,KAAK,EAC3D;GACF,CAAC;EACH;CACF;AACF;;;;;;;AAQA,MAAa,sBAAsB,6BAA6B"}
1
+ {"version":3,"file":"rowSelectionFeature.cjs","names":["getDefaultRowSelectionState","makeStateUpdater","row_toggleSelected","row_getIsSelected","row_getIsSomeSelected","row_getIsAllSubRowsSelected","row_getCanSelect","row_getCanSelectSubRows","row_getCanMultiSelect","row_getToggleSelectedHandler","table_setRowSelection","table_resetRowSelection","table_toggleAllRowsSelected","table_toggleAllPageRowsSelected","table_getPreSelectedRowModel","table_getSelectedRowModel","table_getFilteredSelectedRowModel","table_getGroupedSelectedRowModel","table_getIsAllRowsSelected","table_getIsAllPageRowsSelected","table_getIsSomeRowsSelected","table_getIsSomePageRowsSelected","table_getToggleAllRowsSelectedHandler","table_getToggleAllPageRowsSelectedHandler"],"sources":["../../../src/features/row-selection/rowSelectionFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n getDefaultRowSelectionState,\n row_getCanMultiSelect,\n row_getCanSelect,\n row_getCanSelectSubRows,\n row_getIsAllSubRowsSelected,\n row_getIsSelected,\n row_getIsSomeSelected,\n row_getToggleSelectedHandler,\n row_toggleSelected,\n table_getFilteredSelectedRowModel,\n table_getGroupedSelectedRowModel,\n table_getIsAllPageRowsSelected,\n table_getIsAllRowsSelected,\n table_getIsSomePageRowsSelected,\n table_getIsSomeRowsSelected,\n table_getPreSelectedRowModel,\n table_getSelectedRowModel,\n table_getToggleAllPageRowsSelectedHandler,\n table_getToggleAllRowsSelectedHandler,\n table_resetRowSelection,\n table_setRowSelection,\n table_toggleAllPageRowsSelected,\n table_toggleAllRowsSelected,\n} from './rowSelectionFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds row selection state and APIs for row and page selection.\n */\nexport const rowSelectionFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n rowSelection: getDefaultRowSelectionState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n }\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('rowSelectionFeature', prototype, table, {\n row_toggleSelected: {\n fn: (row, value, opts) => row_toggleSelected(row, value, opts),\n },\n row_getIsSelected: {\n fn: (row) => row_getIsSelected(row),\n },\n row_getIsSomeSelected: {\n fn: (row) => row_getIsSomeSelected(row),\n },\n row_getIsAllSubRowsSelected: {\n fn: (row) => row_getIsAllSubRowsSelected(row),\n },\n row_getCanSelect: {\n fn: (row) => row_getCanSelect(row),\n },\n row_getCanSelectSubRows: {\n fn: (row) => row_getCanSelectSubRows(row),\n },\n row_getCanMultiSelect: {\n fn: (row) => row_getCanMultiSelect(row),\n },\n row_getToggleSelectedHandler: {\n fn: (row) => row_getToggleSelectedHandler(row),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowSelectionFeature', table, {\n table_setRowSelection: {\n fn: (updater) => table_setRowSelection(table, updater),\n },\n table_resetRowSelection: {\n fn: (defaultState) => table_resetRowSelection(table, defaultState),\n },\n table_toggleAllRowsSelected: {\n fn: (value) => table_toggleAllRowsSelected(table, value),\n },\n table_toggleAllPageRowsSelected: {\n fn: (value) => table_toggleAllPageRowsSelected(table, value),\n },\n table_getPreSelectedRowModel: {\n fn: () => table_getPreSelectedRowModel(table),\n },\n table_getSelectedRowModel: {\n fn: () => table_getSelectedRowModel(table),\n memoDeps: () => [\n table.atoms.rowSelection?.get(),\n table.getCoreRowModel(),\n ],\n },\n table_getFilteredSelectedRowModel: {\n fn: () => table_getFilteredSelectedRowModel(table),\n memoDeps: () => [\n table.atoms.rowSelection?.get(),\n table.getFilteredRowModel(),\n ],\n },\n table_getGroupedSelectedRowModel: {\n fn: () => table_getGroupedSelectedRowModel(table),\n memoDeps: () => [\n table.atoms.rowSelection?.get(),\n table.getSortedRowModel(),\n ],\n },\n table_getIsAllRowsSelected: {\n fn: () => table_getIsAllRowsSelected(table),\n },\n table_getIsAllPageRowsSelected: {\n fn: () => table_getIsAllPageRowsSelected(table),\n },\n table_getIsSomeRowsSelected: {\n fn: () => table_getIsSomeRowsSelected(table),\n },\n table_getIsSomePageRowsSelected: {\n fn: () => table_getIsSomePageRowsSelected(table),\n },\n table_getToggleAllRowsSelectedHandler: {\n fn: () => table_getToggleAllRowsSelectedHandler(table),\n },\n table_getToggleAllPageRowsSelectedHandler: {\n fn: () => table_getToggleAllPageRowsSelectedHandler(table),\n },\n })\n },\n}\n"],"mappings":";;;;;;;AAmCA,MAAa,sBAAoC;CAC/C,kBAAkB,iBAAiB;EACjC,OAAO;GACL,cAAcA,8DAA4B;GAC1C,GAAG;EACL;CACF;CAEA,yBAAyB,UAAU;EACjC,OAAO;GACL,sBAAsBC,+BAAiB,gBAAgB,KAAK;GAC5D,oBAAoB;GACpB,yBAAyB;GACzB,uBAAuB;EACzB;CACF;CAEA,qBAAqB,WAAW,UAAU;EACxC,kCAAoB,uBAAuB,WAAW,OAAO;GAC3D,oBAAoB,EAClB,KAAK,KAAK,OAAO,SAASC,qDAAmB,KAAK,OAAO,IAAI,EAC/D;GACA,mBAAmB,EACjB,KAAK,QAAQC,oDAAkB,GAAG,EACpC;GACA,uBAAuB,EACrB,KAAK,QAAQC,wDAAsB,GAAG,EACxC;GACA,6BAA6B,EAC3B,KAAK,QAAQC,8DAA4B,GAAG,EAC9C;GACA,kBAAkB,EAChB,KAAK,QAAQC,mDAAiB,GAAG,EACnC;GACA,yBAAyB,EACvB,KAAK,QAAQC,0DAAwB,GAAG,EAC1C;GACA,uBAAuB,EACrB,KAAK,QAAQC,wDAAsB,GAAG,EACxC;GACA,8BAA8B,EAC5B,KAAK,QAAQC,+DAA6B,GAAG,EAC/C;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,8BAAgB,uBAAuB,OAAO;GAC5C,uBAAuB,EACrB,KAAK,YAAYC,wDAAsB,OAAO,OAAO,EACvD;GACA,yBAAyB,EACvB,KAAK,iBAAiBC,0DAAwB,OAAO,YAAY,EACnE;GACA,6BAA6B,EAC3B,KAAK,UAAUC,8DAA4B,OAAO,KAAK,EACzD;GACA,iCAAiC,EAC/B,KAAK,UAAUC,kEAAgC,OAAO,KAAK,EAC7D;GACA,8BAA8B,EAC5B,UAAUC,+DAA6B,KAAK,EAC9C;GACA,2BAA2B;IACzB,UAAUC,4DAA0B,KAAK;IACzC,gBAAgB;;sCACd,MAAM,MAAM,4FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,mCAAmC;IACjC,UAAUC,oEAAkC,KAAK;IACjD,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,oBAAoB,CAC5B;;GACF;GACA,kCAAkC;IAChC,UAAUC,mEAAiC,KAAK;IAChD,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,kBAAkB,CAC1B;;GACF;GACA,4BAA4B,EAC1B,UAAUC,6DAA2B,KAAK,EAC5C;GACA,gCAAgC,EAC9B,UAAUC,iEAA+B,KAAK,EAChD;GACA,6BAA6B,EAC3B,UAAUC,8DAA4B,KAAK,EAC7C;GACA,iCAAiC,EAC/B,UAAUC,kEAAgC,KAAK,EACjD;GACA,uCAAuC,EACrC,UAAUC,wEAAsC,KAAK,EACvD;GACA,2CAA2C,EACzC,UAAUC,4EAA0C,KAAK,EAC3D;EACF,CAAC;CACH;AACF"}
@@ -1,21 +1,10 @@
1
- import { RowData } from "../../types/type-utils.cjs";
2
- import { TableFeature, TableFeatures } from "../../types/TableFeatures.cjs";
1
+ import { TableFeature } from "../../types/TableFeatures.cjs";
3
2
 
4
3
  //#region src/features/row-selection/rowSelectionFeature.d.ts
5
- interface RowSelectionFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {}
6
4
  /**
7
- * Creates the stock row selection feature.
8
- *
9
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
5
+ * Feature that adds row selection state and APIs for row and page selection.
10
6
  */
11
- declare function constructRowSelectionFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<RowSelectionFeatureConstructors<TFeatures, TData>>;
12
- /**
13
- * The stock row selection feature.
14
- *
15
- * Register this feature to add row selection state, selected row-model helpers,
16
- * and table/row APIs for checkbox and bulk-selection UI.
17
- */
18
- declare const rowSelectionFeature: TableFeature<RowSelectionFeatureConstructors<TableFeatures, RowData>>;
7
+ declare const rowSelectionFeature: TableFeature;
19
8
  //#endregion
20
- export { RowSelectionFeatureConstructors, constructRowSelectionFeature, rowSelectionFeature };
9
+ export { rowSelectionFeature };
21
10
  //# sourceMappingURL=rowSelectionFeature.d.cts.map
@@ -1,21 +1,10 @@
1
- import { RowData } from "../../types/type-utils.js";
2
- import { TableFeature, TableFeatures } from "../../types/TableFeatures.js";
1
+ import { TableFeature } from "../../types/TableFeatures.js";
3
2
 
4
3
  //#region src/features/row-selection/rowSelectionFeature.d.ts
5
- interface RowSelectionFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {}
6
4
  /**
7
- * Creates the stock row selection feature.
8
- *
9
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
5
+ * Feature that adds row selection state and APIs for row and page selection.
10
6
  */
11
- declare function constructRowSelectionFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<RowSelectionFeatureConstructors<TFeatures, TData>>;
12
- /**
13
- * The stock row selection feature.
14
- *
15
- * Register this feature to add row selection state, selected row-model helpers,
16
- * and table/row APIs for checkbox and bulk-selection UI.
17
- */
18
- declare const rowSelectionFeature: TableFeature<RowSelectionFeatureConstructors<TableFeatures, RowData>>;
7
+ declare const rowSelectionFeature: TableFeature;
19
8
  //#endregion
20
- export { RowSelectionFeatureConstructors, constructRowSelectionFeature, rowSelectionFeature };
9
+ export { rowSelectionFeature };
21
10
  //# sourceMappingURL=rowSelectionFeature.d.ts.map
@@ -3,84 +3,73 @@ import { getDefaultRowSelectionState, row_getCanMultiSelect, row_getCanSelect, r
3
3
 
4
4
  //#region src/features/row-selection/rowSelectionFeature.ts
5
5
  /**
6
- * Creates the stock row selection feature.
7
- *
8
- * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.
6
+ * Feature that adds row selection state and APIs for row and page selection.
9
7
  */
10
- function constructRowSelectionFeature() {
11
- return {
12
- getInitialState: (initialState) => {
13
- return {
14
- rowSelection: getDefaultRowSelectionState(),
15
- ...initialState
16
- };
17
- },
18
- getDefaultTableOptions: (table) => {
19
- return {
20
- onRowSelectionChange: makeStateUpdater("rowSelection", table),
21
- enableRowSelection: true,
22
- enableMultiRowSelection: true,
23
- enableSubRowSelection: true
24
- };
25
- },
26
- assignRowPrototype: (prototype, table) => {
27
- assignPrototypeAPIs("rowSelectionFeature", prototype, table, {
28
- row_toggleSelected: { fn: (row, value, opts) => row_toggleSelected(row, value, opts) },
29
- row_getIsSelected: { fn: (row) => row_getIsSelected(row) },
30
- row_getIsSomeSelected: { fn: (row) => row_getIsSomeSelected(row) },
31
- row_getIsAllSubRowsSelected: { fn: (row) => row_getIsAllSubRowsSelected(row) },
32
- row_getCanSelect: { fn: (row) => row_getCanSelect(row) },
33
- row_getCanSelectSubRows: { fn: (row) => row_getCanSelectSubRows(row) },
34
- row_getCanMultiSelect: { fn: (row) => row_getCanMultiSelect(row) },
35
- row_getToggleSelectedHandler: { fn: (row) => row_getToggleSelectedHandler(row) }
36
- });
37
- },
38
- constructTableAPIs: (table) => {
39
- assignTableAPIs("rowSelectionFeature", table, {
40
- table_setRowSelection: { fn: (updater) => table_setRowSelection(table, updater) },
41
- table_resetRowSelection: { fn: (defaultState) => table_resetRowSelection(table, defaultState) },
42
- table_toggleAllRowsSelected: { fn: (value) => table_toggleAllRowsSelected(table, value) },
43
- table_toggleAllPageRowsSelected: { fn: (value) => table_toggleAllPageRowsSelected(table, value) },
44
- table_getPreSelectedRowModel: { fn: () => table_getPreSelectedRowModel(table) },
45
- table_getSelectedRowModel: {
46
- fn: () => table_getSelectedRowModel(table),
47
- memoDeps: () => {
48
- var _table$atoms$rowSelec;
49
- return [(_table$atoms$rowSelec = table.atoms.rowSelection) === null || _table$atoms$rowSelec === void 0 ? void 0 : _table$atoms$rowSelec.get(), table.getCoreRowModel()];
50
- }
51
- },
52
- table_getFilteredSelectedRowModel: {
53
- fn: () => table_getFilteredSelectedRowModel(table),
54
- memoDeps: () => {
55
- var _table$atoms$rowSelec2;
56
- return [(_table$atoms$rowSelec2 = table.atoms.rowSelection) === null || _table$atoms$rowSelec2 === void 0 ? void 0 : _table$atoms$rowSelec2.get(), table.getFilteredRowModel()];
57
- }
58
- },
59
- table_getGroupedSelectedRowModel: {
60
- fn: () => table_getGroupedSelectedRowModel(table),
61
- memoDeps: () => {
62
- var _table$atoms$rowSelec3;
63
- return [(_table$atoms$rowSelec3 = table.atoms.rowSelection) === null || _table$atoms$rowSelec3 === void 0 ? void 0 : _table$atoms$rowSelec3.get(), table.getSortedRowModel()];
64
- }
65
- },
66
- table_getIsAllRowsSelected: { fn: () => table_getIsAllRowsSelected(table) },
67
- table_getIsAllPageRowsSelected: { fn: () => table_getIsAllPageRowsSelected(table) },
68
- table_getIsSomeRowsSelected: { fn: () => table_getIsSomeRowsSelected(table) },
69
- table_getIsSomePageRowsSelected: { fn: () => table_getIsSomePageRowsSelected(table) },
70
- table_getToggleAllRowsSelectedHandler: { fn: () => table_getToggleAllRowsSelectedHandler(table) },
71
- table_getToggleAllPageRowsSelectedHandler: { fn: () => table_getToggleAllPageRowsSelectedHandler(table) }
72
- });
73
- }
74
- };
75
- }
76
- /**
77
- * The stock row selection feature.
78
- *
79
- * Register this feature to add row selection state, selected row-model helpers,
80
- * and table/row APIs for checkbox and bulk-selection UI.
81
- */
82
- const rowSelectionFeature = constructRowSelectionFeature();
8
+ const rowSelectionFeature = {
9
+ getInitialState: (initialState) => {
10
+ return {
11
+ rowSelection: getDefaultRowSelectionState(),
12
+ ...initialState
13
+ };
14
+ },
15
+ getDefaultTableOptions: (table) => {
16
+ return {
17
+ onRowSelectionChange: makeStateUpdater("rowSelection", table),
18
+ enableRowSelection: true,
19
+ enableMultiRowSelection: true,
20
+ enableSubRowSelection: true
21
+ };
22
+ },
23
+ assignRowPrototype: (prototype, table) => {
24
+ assignPrototypeAPIs("rowSelectionFeature", prototype, table, {
25
+ row_toggleSelected: { fn: (row, value, opts) => row_toggleSelected(row, value, opts) },
26
+ row_getIsSelected: { fn: (row) => row_getIsSelected(row) },
27
+ row_getIsSomeSelected: { fn: (row) => row_getIsSomeSelected(row) },
28
+ row_getIsAllSubRowsSelected: { fn: (row) => row_getIsAllSubRowsSelected(row) },
29
+ row_getCanSelect: { fn: (row) => row_getCanSelect(row) },
30
+ row_getCanSelectSubRows: { fn: (row) => row_getCanSelectSubRows(row) },
31
+ row_getCanMultiSelect: { fn: (row) => row_getCanMultiSelect(row) },
32
+ row_getToggleSelectedHandler: { fn: (row) => row_getToggleSelectedHandler(row) }
33
+ });
34
+ },
35
+ constructTableAPIs: (table) => {
36
+ assignTableAPIs("rowSelectionFeature", table, {
37
+ table_setRowSelection: { fn: (updater) => table_setRowSelection(table, updater) },
38
+ table_resetRowSelection: { fn: (defaultState) => table_resetRowSelection(table, defaultState) },
39
+ table_toggleAllRowsSelected: { fn: (value) => table_toggleAllRowsSelected(table, value) },
40
+ table_toggleAllPageRowsSelected: { fn: (value) => table_toggleAllPageRowsSelected(table, value) },
41
+ table_getPreSelectedRowModel: { fn: () => table_getPreSelectedRowModel(table) },
42
+ table_getSelectedRowModel: {
43
+ fn: () => table_getSelectedRowModel(table),
44
+ memoDeps: () => {
45
+ var _table$atoms$rowSelec;
46
+ return [(_table$atoms$rowSelec = table.atoms.rowSelection) === null || _table$atoms$rowSelec === void 0 ? void 0 : _table$atoms$rowSelec.get(), table.getCoreRowModel()];
47
+ }
48
+ },
49
+ table_getFilteredSelectedRowModel: {
50
+ fn: () => table_getFilteredSelectedRowModel(table),
51
+ memoDeps: () => {
52
+ var _table$atoms$rowSelec2;
53
+ return [(_table$atoms$rowSelec2 = table.atoms.rowSelection) === null || _table$atoms$rowSelec2 === void 0 ? void 0 : _table$atoms$rowSelec2.get(), table.getFilteredRowModel()];
54
+ }
55
+ },
56
+ table_getGroupedSelectedRowModel: {
57
+ fn: () => table_getGroupedSelectedRowModel(table),
58
+ memoDeps: () => {
59
+ var _table$atoms$rowSelec3;
60
+ return [(_table$atoms$rowSelec3 = table.atoms.rowSelection) === null || _table$atoms$rowSelec3 === void 0 ? void 0 : _table$atoms$rowSelec3.get(), table.getSortedRowModel()];
61
+ }
62
+ },
63
+ table_getIsAllRowsSelected: { fn: () => table_getIsAllRowsSelected(table) },
64
+ table_getIsAllPageRowsSelected: { fn: () => table_getIsAllPageRowsSelected(table) },
65
+ table_getIsSomeRowsSelected: { fn: () => table_getIsSomeRowsSelected(table) },
66
+ table_getIsSomePageRowsSelected: { fn: () => table_getIsSomePageRowsSelected(table) },
67
+ table_getToggleAllRowsSelectedHandler: { fn: () => table_getToggleAllRowsSelectedHandler(table) },
68
+ table_getToggleAllPageRowsSelectedHandler: { fn: () => table_getToggleAllPageRowsSelectedHandler(table) }
69
+ });
70
+ }
71
+ };
83
72
 
84
73
  //#endregion
85
- export { constructRowSelectionFeature, rowSelectionFeature };
74
+ export { rowSelectionFeature };
86
75
  //# sourceMappingURL=rowSelectionFeature.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"rowSelectionFeature.js","names":[],"sources":["../../../src/features/row-selection/rowSelectionFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n getDefaultRowSelectionState,\n row_getCanMultiSelect,\n row_getCanSelect,\n row_getCanSelectSubRows,\n row_getIsAllSubRowsSelected,\n row_getIsSelected,\n row_getIsSomeSelected,\n row_getToggleSelectedHandler,\n row_toggleSelected,\n table_getFilteredSelectedRowModel,\n table_getGroupedSelectedRowModel,\n table_getIsAllPageRowsSelected,\n table_getIsAllRowsSelected,\n table_getIsSomePageRowsSelected,\n table_getIsSomeRowsSelected,\n table_getPreSelectedRowModel,\n table_getSelectedRowModel,\n table_getToggleAllPageRowsSelectedHandler,\n table_getToggleAllRowsSelectedHandler,\n table_resetRowSelection,\n table_setRowSelection,\n table_toggleAllPageRowsSelected,\n table_toggleAllRowsSelected,\n} from './rowSelectionFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// Row_RowSelection,\n// TableOptions_RowSelection,\n// TableState_RowSelection,\n// Table_RowSelection,\n// } from './rowSelectionFeature.types'\n\nexport interface RowSelectionFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Row: Row_RowSelection\n // Table: Table_RowSelection<TFeatures, TData>\n // TableOptions: TableOptions_RowSelection<TFeatures, TData>\n // TableState: TableState_RowSelection\n}\n\n/**\n * Creates the stock row selection feature.\n *\n * The returned feature registers its state defaults, option defaults, and instance APIs so it can be included in a `tableFeatures({ ... })` call.\n */\nexport function constructRowSelectionFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowSelectionFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n rowSelection: getDefaultRowSelectionState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n }\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('rowSelectionFeature', prototype, table, {\n row_toggleSelected: {\n fn: (row, value, opts) => row_toggleSelected(row, value, opts),\n },\n row_getIsSelected: {\n fn: (row) => row_getIsSelected(row),\n },\n row_getIsSomeSelected: {\n fn: (row) => row_getIsSomeSelected(row),\n },\n row_getIsAllSubRowsSelected: {\n fn: (row) => row_getIsAllSubRowsSelected(row),\n },\n row_getCanSelect: {\n fn: (row) => row_getCanSelect(row),\n },\n row_getCanSelectSubRows: {\n fn: (row) => row_getCanSelectSubRows(row),\n },\n row_getCanMultiSelect: {\n fn: (row) => row_getCanMultiSelect(row),\n },\n row_getToggleSelectedHandler: {\n fn: (row) => row_getToggleSelectedHandler(row),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowSelectionFeature', table, {\n table_setRowSelection: {\n fn: (updater) => table_setRowSelection(table, updater),\n },\n table_resetRowSelection: {\n fn: (defaultState) => table_resetRowSelection(table, defaultState),\n },\n table_toggleAllRowsSelected: {\n fn: (value) => table_toggleAllRowsSelected(table, value),\n },\n table_toggleAllPageRowsSelected: {\n fn: (value) => table_toggleAllPageRowsSelected(table, value),\n },\n table_getPreSelectedRowModel: {\n fn: () => table_getPreSelectedRowModel(table),\n },\n table_getSelectedRowModel: {\n fn: () => table_getSelectedRowModel(table),\n memoDeps: () => [\n table.atoms.rowSelection?.get(),\n table.getCoreRowModel(),\n ],\n },\n table_getFilteredSelectedRowModel: {\n fn: () => table_getFilteredSelectedRowModel(table),\n memoDeps: () => [\n table.atoms.rowSelection?.get(),\n table.getFilteredRowModel(),\n ],\n },\n table_getGroupedSelectedRowModel: {\n fn: () => table_getGroupedSelectedRowModel(table),\n memoDeps: () => [\n table.atoms.rowSelection?.get(),\n table.getSortedRowModel(),\n ],\n },\n table_getIsAllRowsSelected: {\n fn: () => table_getIsAllRowsSelected(table),\n },\n table_getIsAllPageRowsSelected: {\n fn: () => table_getIsAllPageRowsSelected(table),\n },\n table_getIsSomeRowsSelected: {\n fn: () => table_getIsSomeRowsSelected(table),\n },\n table_getIsSomePageRowsSelected: {\n fn: () => table_getIsSomePageRowsSelected(table),\n },\n table_getToggleAllRowsSelectedHandler: {\n fn: () => table_getToggleAllRowsSelectedHandler(table),\n },\n table_getToggleAllPageRowsSelectedHandler: {\n fn: () => table_getToggleAllPageRowsSelectedHandler(table),\n },\n })\n },\n }\n}\n\n/**\n * The stock row selection feature.\n *\n * Register this feature to add row selection state, selected row-model helpers,\n * and table/row APIs for checkbox and bulk-selection UI.\n */\nexport const rowSelectionFeature = constructRowSelectionFeature()\n"],"mappings":";;;;;;;;;AAsDA,SAAgB,+BAGqD;CACnE,OAAO;EACL,kBAAkB,iBAAiB;GACjC,OAAO;IACL,cAAc,4BAA4B;IAC1C,GAAG;GACL;EACF;EAEA,yBAAyB,UAAU;GACjC,OAAO;IACL,sBAAsB,iBAAiB,gBAAgB,KAAK;IAC5D,oBAAoB;IACpB,yBAAyB;IACzB,uBAAuB;GACzB;EACF;EAEA,qBAAqB,WAAW,UAAU;GACxC,oBAAoB,uBAAuB,WAAW,OAAO;IAC3D,oBAAoB,EAClB,KAAK,KAAK,OAAO,SAAS,mBAAmB,KAAK,OAAO,IAAI,EAC/D;IACA,mBAAmB,EACjB,KAAK,QAAQ,kBAAkB,GAAG,EACpC;IACA,uBAAuB,EACrB,KAAK,QAAQ,sBAAsB,GAAG,EACxC;IACA,6BAA6B,EAC3B,KAAK,QAAQ,4BAA4B,GAAG,EAC9C;IACA,kBAAkB,EAChB,KAAK,QAAQ,iBAAiB,GAAG,EACnC;IACA,yBAAyB,EACvB,KAAK,QAAQ,wBAAwB,GAAG,EAC1C;IACA,uBAAuB,EACrB,KAAK,QAAQ,sBAAsB,GAAG,EACxC;IACA,8BAA8B,EAC5B,KAAK,QAAQ,6BAA6B,GAAG,EAC/C;GACF,CAAC;EACH;EAEA,qBAAqB,UAAU;GAC7B,gBAAgB,uBAAuB,OAAO;IAC5C,uBAAuB,EACrB,KAAK,YAAY,sBAAsB,OAAO,OAAO,EACvD;IACA,yBAAyB,EACvB,KAAK,iBAAiB,wBAAwB,OAAO,YAAY,EACnE;IACA,6BAA6B,EAC3B,KAAK,UAAU,4BAA4B,OAAO,KAAK,EACzD;IACA,iCAAiC,EAC/B,KAAK,UAAU,gCAAgC,OAAO,KAAK,EAC7D;IACA,8BAA8B,EAC5B,UAAU,6BAA6B,KAAK,EAC9C;IACA,2BAA2B;KACzB,UAAU,0BAA0B,KAAK;KACzC,gBAAgB;;uCACd,MAAM,MAAM,4FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;IACF;IACA,mCAAmC;KACjC,UAAU,kCAAkC,KAAK;KACjD,gBAAgB;;wCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,oBAAoB,CAC5B;;IACF;IACA,kCAAkC;KAChC,UAAU,iCAAiC,KAAK;KAChD,gBAAgB;;wCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,kBAAkB,CAC1B;;IACF;IACA,4BAA4B,EAC1B,UAAU,2BAA2B,KAAK,EAC5C;IACA,gCAAgC,EAC9B,UAAU,+BAA+B,KAAK,EAChD;IACA,6BAA6B,EAC3B,UAAU,4BAA4B,KAAK,EAC7C;IACA,iCAAiC,EAC/B,UAAU,gCAAgC,KAAK,EACjD;IACA,uCAAuC,EACrC,UAAU,sCAAsC,KAAK,EACvD;IACA,2CAA2C,EACzC,UAAU,0CAA0C,KAAK,EAC3D;GACF,CAAC;EACH;CACF;AACF;;;;;;;AAQA,MAAa,sBAAsB,6BAA6B"}
1
+ {"version":3,"file":"rowSelectionFeature.js","names":[],"sources":["../../../src/features/row-selection/rowSelectionFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n getDefaultRowSelectionState,\n row_getCanMultiSelect,\n row_getCanSelect,\n row_getCanSelectSubRows,\n row_getIsAllSubRowsSelected,\n row_getIsSelected,\n row_getIsSomeSelected,\n row_getToggleSelectedHandler,\n row_toggleSelected,\n table_getFilteredSelectedRowModel,\n table_getGroupedSelectedRowModel,\n table_getIsAllPageRowsSelected,\n table_getIsAllRowsSelected,\n table_getIsSomePageRowsSelected,\n table_getIsSomeRowsSelected,\n table_getPreSelectedRowModel,\n table_getSelectedRowModel,\n table_getToggleAllPageRowsSelectedHandler,\n table_getToggleAllRowsSelectedHandler,\n table_resetRowSelection,\n table_setRowSelection,\n table_toggleAllPageRowsSelected,\n table_toggleAllRowsSelected,\n} from './rowSelectionFeature.utils'\nimport type { TableFeature } from '../../types/TableFeatures'\n\n/**\n * Feature that adds row selection state and APIs for row and page selection.\n */\nexport const rowSelectionFeature: TableFeature = {\n getInitialState: (initialState) => {\n return {\n rowSelection: getDefaultRowSelectionState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onRowSelectionChange: makeStateUpdater('rowSelection', table),\n enableRowSelection: true,\n enableMultiRowSelection: true,\n enableSubRowSelection: true,\n }\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('rowSelectionFeature', prototype, table, {\n row_toggleSelected: {\n fn: (row, value, opts) => row_toggleSelected(row, value, opts),\n },\n row_getIsSelected: {\n fn: (row) => row_getIsSelected(row),\n },\n row_getIsSomeSelected: {\n fn: (row) => row_getIsSomeSelected(row),\n },\n row_getIsAllSubRowsSelected: {\n fn: (row) => row_getIsAllSubRowsSelected(row),\n },\n row_getCanSelect: {\n fn: (row) => row_getCanSelect(row),\n },\n row_getCanSelectSubRows: {\n fn: (row) => row_getCanSelectSubRows(row),\n },\n row_getCanMultiSelect: {\n fn: (row) => row_getCanMultiSelect(row),\n },\n row_getToggleSelectedHandler: {\n fn: (row) => row_getToggleSelectedHandler(row),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowSelectionFeature', table, {\n table_setRowSelection: {\n fn: (updater) => table_setRowSelection(table, updater),\n },\n table_resetRowSelection: {\n fn: (defaultState) => table_resetRowSelection(table, defaultState),\n },\n table_toggleAllRowsSelected: {\n fn: (value) => table_toggleAllRowsSelected(table, value),\n },\n table_toggleAllPageRowsSelected: {\n fn: (value) => table_toggleAllPageRowsSelected(table, value),\n },\n table_getPreSelectedRowModel: {\n fn: () => table_getPreSelectedRowModel(table),\n },\n table_getSelectedRowModel: {\n fn: () => table_getSelectedRowModel(table),\n memoDeps: () => [\n table.atoms.rowSelection?.get(),\n table.getCoreRowModel(),\n ],\n },\n table_getFilteredSelectedRowModel: {\n fn: () => table_getFilteredSelectedRowModel(table),\n memoDeps: () => [\n table.atoms.rowSelection?.get(),\n table.getFilteredRowModel(),\n ],\n },\n table_getGroupedSelectedRowModel: {\n fn: () => table_getGroupedSelectedRowModel(table),\n memoDeps: () => [\n table.atoms.rowSelection?.get(),\n table.getSortedRowModel(),\n ],\n },\n table_getIsAllRowsSelected: {\n fn: () => table_getIsAllRowsSelected(table),\n },\n table_getIsAllPageRowsSelected: {\n fn: () => table_getIsAllPageRowsSelected(table),\n },\n table_getIsSomeRowsSelected: {\n fn: () => table_getIsSomeRowsSelected(table),\n },\n table_getIsSomePageRowsSelected: {\n fn: () => table_getIsSomePageRowsSelected(table),\n },\n table_getToggleAllRowsSelectedHandler: {\n fn: () => table_getToggleAllRowsSelectedHandler(table),\n },\n table_getToggleAllPageRowsSelectedHandler: {\n fn: () => table_getToggleAllPageRowsSelectedHandler(table),\n },\n })\n },\n}\n"],"mappings":";;;;;;;AAmCA,MAAa,sBAAoC;CAC/C,kBAAkB,iBAAiB;EACjC,OAAO;GACL,cAAc,4BAA4B;GAC1C,GAAG;EACL;CACF;CAEA,yBAAyB,UAAU;EACjC,OAAO;GACL,sBAAsB,iBAAiB,gBAAgB,KAAK;GAC5D,oBAAoB;GACpB,yBAAyB;GACzB,uBAAuB;EACzB;CACF;CAEA,qBAAqB,WAAW,UAAU;EACxC,oBAAoB,uBAAuB,WAAW,OAAO;GAC3D,oBAAoB,EAClB,KAAK,KAAK,OAAO,SAAS,mBAAmB,KAAK,OAAO,IAAI,EAC/D;GACA,mBAAmB,EACjB,KAAK,QAAQ,kBAAkB,GAAG,EACpC;GACA,uBAAuB,EACrB,KAAK,QAAQ,sBAAsB,GAAG,EACxC;GACA,6BAA6B,EAC3B,KAAK,QAAQ,4BAA4B,GAAG,EAC9C;GACA,kBAAkB,EAChB,KAAK,QAAQ,iBAAiB,GAAG,EACnC;GACA,yBAAyB,EACvB,KAAK,QAAQ,wBAAwB,GAAG,EAC1C;GACA,uBAAuB,EACrB,KAAK,QAAQ,sBAAsB,GAAG,EACxC;GACA,8BAA8B,EAC5B,KAAK,QAAQ,6BAA6B,GAAG,EAC/C;EACF,CAAC;CACH;CAEA,qBAAqB,UAAU;EAC7B,gBAAgB,uBAAuB,OAAO;GAC5C,uBAAuB,EACrB,KAAK,YAAY,sBAAsB,OAAO,OAAO,EACvD;GACA,yBAAyB,EACvB,KAAK,iBAAiB,wBAAwB,OAAO,YAAY,EACnE;GACA,6BAA6B,EAC3B,KAAK,UAAU,4BAA4B,OAAO,KAAK,EACzD;GACA,iCAAiC,EAC/B,KAAK,UAAU,gCAAgC,OAAO,KAAK,EAC7D;GACA,8BAA8B,EAC5B,UAAU,6BAA6B,KAAK,EAC9C;GACA,2BAA2B;IACzB,UAAU,0BAA0B,KAAK;IACzC,gBAAgB;;sCACd,MAAM,MAAM,4FAAc,IAAI,GAC9B,MAAM,gBAAgB,CACxB;;GACF;GACA,mCAAmC;IACjC,UAAU,kCAAkC,KAAK;IACjD,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,oBAAoB,CAC5B;;GACF;GACA,kCAAkC;IAChC,UAAU,iCAAiC,KAAK;IAChD,gBAAgB;;uCACd,MAAM,MAAM,8FAAc,IAAI,GAC9B,MAAM,kBAAkB,CAC1B;;GACF;GACA,4BAA4B,EAC1B,UAAU,2BAA2B,KAAK,EAC5C;GACA,gCAAgC,EAC9B,UAAU,+BAA+B,KAAK,EAChD;GACA,6BAA6B,EAC3B,UAAU,4BAA4B,KAAK,EAC7C;GACA,iCAAiC,EAC/B,UAAU,gCAAgC,KAAK,EACjD;GACA,uCAAuC,EACrC,UAAU,sCAAsC,KAAK,EACvD;GACA,2CAA2C,EACzC,UAAU,0CAA0C,KAAK,EAC3D;EACF,CAAC;CACH;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSortedRowModel.cjs","names":["tableMemo","table_autoResetPageIndex","column_getCanSort","column_getSortFn"],"sources":["../../../src/features/row-sorting/createSortedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { table_autoResetPageIndex } from '../row-pagination/rowPaginationFeature.utils'\nimport { column_getCanSort, column_getSortFn } from './rowSortingFeature.utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { SortFn, SortFns } from './rowSortingFeature.types'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized sorted row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createSortedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n sortFns: Record<keyof SortFns, SortFn<TFeatures, TData>>,\n): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table: Table_Internal<TFeatures, TData> = _table\n if (!table._rowModelFns.sortFns) table._rowModelFns.sortFns = sortFns\n return tableMemo({\n feature: 'rowSortingFeature',\n table,\n fnName: 'table.getSortedRowModel',\n memoDeps: () => [\n table.atoms.sorting?.get(),\n table.getPreSortedRowModel(),\n ],\n fn: () => _createSortedRowModel(table),\n onAfterUpdate: () => table_autoResetPageIndex(table),\n })\n }\n}\n\nfunction _createSortedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const preSortedRowModel = table.getPreSortedRowModel()\n const sorting = table.atoms.sorting?.get()\n\n if (!preSortedRowModel.rows.length || !sorting?.length) {\n return preSortedRowModel\n }\n\n const sortedFlatRows: Array<Row<TFeatures, TData>> = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sorting.filter((sort) =>\n column_getCanSort(\n table.getColumn(sort.id) as Column_Internal<TFeatures, TData>,\n ),\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1 | 'first' | 'last'\n invertSorting?: boolean\n sortFn: SortFn<TFeatures, TData>\n }\n > = {}\n\n availableSorting.forEach((sortEntry) => {\n const column: Column_Internal<TFeatures, TData> | undefined =\n table.getColumn(sortEntry.id)\n if (!column) return\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortFn: column_getSortFn(column),\n }\n })\n\n const sortData = (rows: Array<Row<TFeatures, TData>>) => {\n const sortedData = rows.slice()\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i++) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const sortUndefined = columnInfo.sortUndefined\n const isDesc = sortEntry.desc\n\n let sortInt = 0\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id)\n const bValue = rowB.getValue(sortEntry.id)\n\n const aUndefined = aValue === undefined\n const bUndefined = bValue === undefined\n\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1\n if (sortUndefined === 'last') return aUndefined ? 1 : -1\n sortInt =\n aUndefined && bUndefined\n ? 0\n : aUndefined\n ? sortUndefined\n : -sortUndefined\n }\n }\n\n if (sortInt === 0) {\n sortInt = columnInfo.sortFn(rowA, rowB, sortEntry.id)\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them. Clone only rows that need mutation\n // (i.e. have subRows) so we don't corrupt the source row model.\n for (let i = 0; i < sortedData.length; i++) {\n const row = sortedData[i]!\n if (row.subRows.length) {\n // Preserve prototype chain so methods like getValue() remain accessible\n const cloned = Object.create(Object.getPrototypeOf(row))\n Object.assign(cloned, row)\n cloned.subRows = sortData(row.subRows)\n sortedData[i] = cloned\n sortedFlatRows.push(cloned)\n } else {\n sortedFlatRows.push(row)\n }\n }\n\n return sortedData\n }\n\n return {\n rows: sortData(preSortedRowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: preSortedRowModel.rowsById,\n }\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,qBAId,SACsE;CACtE,QAAQ,WAAW;EACjB,MAAM,QAA0C;EAChD,IAAI,CAAC,MAAM,aAAa,SAAS,MAAM,aAAa,UAAU;EAC9D,OAAOA,wBAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;oCACd,MAAM,MAAM,qFAAS,IAAI,GACzB,MAAM,qBAAqB,CAC7B;;GACA,UAAU,sBAAsB,KAAK;GACrC,qBAAqBC,4DAAyB,KAAK;EACrD,CAAC;CACH;AACF;AAEA,SAAS,sBAGP,OAAqE;;CACrE,MAAM,oBAAoB,MAAM,qBAAqB;CACrD,MAAM,mCAAU,MAAM,MAAM,uFAAS,IAAI;CAEzC,IAAI,CAAC,kBAAkB,KAAK,UAAU,oDAAC,QAAS,SAC9C,OAAO;CAGT,MAAM,iBAA+C,CAAC;CAGtD,MAAM,mBAAmB,QAAQ,QAAQ,SACvCC,kDACE,MAAM,UAAU,KAAK,EAAE,CACzB,CACF;CAEA,MAAM,iBAOF,CAAC;CAEL,iBAAiB,SAAS,cAAc;EACtC,MAAM,SACJ,MAAM,UAAU,UAAU,EAAE;EAC9B,IAAI,CAAC,QAAQ;EAEb,eAAe,UAAU,MAAM;GAC7B,eAAe,OAAO,UAAU;GAChC,eAAe,OAAO,UAAU;GAChC,QAAQC,iDAAiB,MAAM;EACjC;CACF,CAAC;CAED,MAAM,YAAY,SAAuC;EACvD,MAAM,aAAa,KAAK,MAAM;EAE9B,WAAW,MAAM,MAAM,SAAS;GAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;IAChD,MAAM,YAAY,iBAAiB;IACnC,MAAM,aAAa,eAAe,UAAU;IAC5C,MAAM,gBAAgB,WAAW;IACjC,MAAM,SAAS,UAAU;IAEzB,IAAI,UAAU;IAGd,IAAI,eAAe;KACjB,MAAM,SAAS,KAAK,SAAS,UAAU,EAAE;KACzC,MAAM,SAAS,KAAK,SAAS,UAAU,EAAE;KAEzC,MAAM,aAAa,WAAW;KAC9B,MAAM,aAAa,WAAW;KAE9B,IAAI,cAAc,YAAY;MAC5B,IAAI,kBAAkB,SAAS,OAAO,aAAa,KAAK;MACxD,IAAI,kBAAkB,QAAQ,OAAO,aAAa,IAAI;MACtD,UACE,cAAc,aACV,IACA,aACE,gBACA,CAAC;KACX;IACF;IAEA,IAAI,YAAY,GACd,UAAU,WAAW,OAAO,MAAM,MAAM,UAAU,EAAE;IAItD,IAAI,YAAY,GAAG;KACjB,IAAI,QACF,WAAW;KAGb,IAAI,WAAW,eACb,WAAW;KAGb,OAAO;IACT;GACF;GACA,OAAO,KAAK,QAAQ,KAAK;EAC3B,CAAC;EAID,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC1C,MAAM,MAAM,WAAW;GACvB,IAAI,IAAI,QAAQ,QAAQ;IAEtB,MAAM,SAAS,OAAO,OAAO,OAAO,eAAe,GAAG,CAAC;IACvD,OAAO,OAAO,QAAQ,GAAG;IACzB,OAAO,UAAU,SAAS,IAAI,OAAO;IACrC,WAAW,KAAK;IAChB,eAAe,KAAK,MAAM;GAC5B,OACE,eAAe,KAAK,GAAG;EAE3B;EAEA,OAAO;CACT;CAEA,OAAO;EACL,MAAM,SAAS,kBAAkB,IAAI;EACrC,UAAU;EACV,UAAU,kBAAkB;CAC9B;AACF"}
1
+ {"version":3,"file":"createSortedRowModel.cjs","names":["tableMemo","table_autoResetPageIndex","column_getCanSort","column_getSortFn"],"sources":["../../../src/features/row-sorting/createSortedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { table_autoResetPageIndex } from '../row-pagination/rowPaginationFeature.utils'\nimport { column_getCanSort, column_getSortFn } from './rowSortingFeature.utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { SortFn, SortFns } from './rowSortingFeature.types'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized sorted row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createSortedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n sortFns: Record<keyof SortFns, SortFn<TFeatures, TData>>,\n): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table = _table as unknown as Table_Internal<TFeatures, TData>\n if (!table._rowModelFns.sortFns) table._rowModelFns.sortFns = sortFns\n return tableMemo({\n feature: 'rowSortingFeature',\n table,\n fnName: 'table.getSortedRowModel',\n memoDeps: () => [\n table.atoms.sorting?.get(),\n table.getPreSortedRowModel(),\n ],\n fn: () => _createSortedRowModel(table),\n onAfterUpdate: () => table_autoResetPageIndex(table),\n })\n }\n}\n\nfunction _createSortedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const preSortedRowModel = table.getPreSortedRowModel()\n const sorting = table.atoms.sorting?.get()\n\n if (!preSortedRowModel.rows.length || !sorting?.length) {\n return preSortedRowModel\n }\n\n const sortedFlatRows: Array<Row<TFeatures, TData>> = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sorting.filter((sort) =>\n column_getCanSort(\n table.getColumn(sort.id) as Column_Internal<TFeatures, TData>,\n ),\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1 | 'first' | 'last'\n invertSorting?: boolean\n sortFn: SortFn<TFeatures, TData>\n }\n > = {}\n\n availableSorting.forEach((sortEntry) => {\n const column: Column_Internal<TFeatures, TData> | undefined =\n table.getColumn(sortEntry.id)\n if (!column) return\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortFn: column_getSortFn(column),\n }\n })\n\n const sortData = (rows: Array<Row<TFeatures, TData>>) => {\n const sortedData = rows.slice()\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i++) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const sortUndefined = columnInfo.sortUndefined\n const isDesc = sortEntry.desc\n\n let sortInt = 0\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id)\n const bValue = rowB.getValue(sortEntry.id)\n\n const aUndefined = aValue === undefined\n const bUndefined = bValue === undefined\n\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1\n if (sortUndefined === 'last') return aUndefined ? 1 : -1\n sortInt =\n aUndefined && bUndefined\n ? 0\n : aUndefined\n ? sortUndefined\n : -sortUndefined\n }\n }\n\n if (sortInt === 0) {\n sortInt = columnInfo.sortFn(rowA, rowB, sortEntry.id)\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them. Clone only rows that need mutation\n // (i.e. have subRows) so we don't corrupt the source row model.\n for (let i = 0; i < sortedData.length; i++) {\n const row = sortedData[i]!\n if (row.subRows.length) {\n // Preserve prototype chain so methods like getValue() remain accessible\n const cloned = Object.create(Object.getPrototypeOf(row))\n Object.assign(cloned, row)\n cloned.subRows = sortData(row.subRows)\n sortedData[i] = cloned\n sortedFlatRows.push(cloned)\n } else {\n sortedFlatRows.push(row)\n }\n }\n\n return sortedData\n }\n\n return {\n rows: sortData(preSortedRowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: preSortedRowModel.rowsById,\n }\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,qBAId,SACsE;CACtE,QAAQ,WAAW;EACjB,MAAM,QAAQ;EACd,IAAI,CAAC,MAAM,aAAa,SAAS,MAAM,aAAa,UAAU;EAC9D,OAAOA,wBAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;oCACd,MAAM,MAAM,qFAAS,IAAI,GACzB,MAAM,qBAAqB,CAC7B;;GACA,UAAU,sBAAsB,KAAK;GACrC,qBAAqBC,4DAAyB,KAAK;EACrD,CAAC;CACH;AACF;AAEA,SAAS,sBAGP,OAAqE;;CACrE,MAAM,oBAAoB,MAAM,qBAAqB;CACrD,MAAM,mCAAU,MAAM,MAAM,uFAAS,IAAI;CAEzC,IAAI,CAAC,kBAAkB,KAAK,UAAU,oDAAC,QAAS,SAC9C,OAAO;CAGT,MAAM,iBAA+C,CAAC;CAGtD,MAAM,mBAAmB,QAAQ,QAAQ,SACvCC,kDACE,MAAM,UAAU,KAAK,EAAE,CACzB,CACF;CAEA,MAAM,iBAOF,CAAC;CAEL,iBAAiB,SAAS,cAAc;EACtC,MAAM,SACJ,MAAM,UAAU,UAAU,EAAE;EAC9B,IAAI,CAAC,QAAQ;EAEb,eAAe,UAAU,MAAM;GAC7B,eAAe,OAAO,UAAU;GAChC,eAAe,OAAO,UAAU;GAChC,QAAQC,iDAAiB,MAAM;EACjC;CACF,CAAC;CAED,MAAM,YAAY,SAAuC;EACvD,MAAM,aAAa,KAAK,MAAM;EAE9B,WAAW,MAAM,MAAM,SAAS;GAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;IAChD,MAAM,YAAY,iBAAiB;IACnC,MAAM,aAAa,eAAe,UAAU;IAC5C,MAAM,gBAAgB,WAAW;IACjC,MAAM,SAAS,UAAU;IAEzB,IAAI,UAAU;IAGd,IAAI,eAAe;KACjB,MAAM,SAAS,KAAK,SAAS,UAAU,EAAE;KACzC,MAAM,SAAS,KAAK,SAAS,UAAU,EAAE;KAEzC,MAAM,aAAa,WAAW;KAC9B,MAAM,aAAa,WAAW;KAE9B,IAAI,cAAc,YAAY;MAC5B,IAAI,kBAAkB,SAAS,OAAO,aAAa,KAAK;MACxD,IAAI,kBAAkB,QAAQ,OAAO,aAAa,IAAI;MACtD,UACE,cAAc,aACV,IACA,aACE,gBACA,CAAC;KACX;IACF;IAEA,IAAI,YAAY,GACd,UAAU,WAAW,OAAO,MAAM,MAAM,UAAU,EAAE;IAItD,IAAI,YAAY,GAAG;KACjB,IAAI,QACF,WAAW;KAGb,IAAI,WAAW,eACb,WAAW;KAGb,OAAO;IACT;GACF;GACA,OAAO,KAAK,QAAQ,KAAK;EAC3B,CAAC;EAID,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC1C,MAAM,MAAM,WAAW;GACvB,IAAI,IAAI,QAAQ,QAAQ;IAEtB,MAAM,SAAS,OAAO,OAAO,OAAO,eAAe,GAAG,CAAC;IACvD,OAAO,OAAO,QAAQ,GAAG;IACzB,OAAO,UAAU,SAAS,IAAI,OAAO;IACrC,WAAW,KAAK;IAChB,eAAe,KAAK,MAAM;GAC5B,OACE,eAAe,KAAK,GAAG;EAE3B;EAEA,OAAO;CACT;CAEA,OAAO;EACL,MAAM,SAAS,kBAAkB,IAAI;EACrC,UAAU;EACV,UAAU,kBAAkB;CAC9B;AACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"createSortedRowModel.js","names":[],"sources":["../../../src/features/row-sorting/createSortedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { table_autoResetPageIndex } from '../row-pagination/rowPaginationFeature.utils'\nimport { column_getCanSort, column_getSortFn } from './rowSortingFeature.utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { SortFn, SortFns } from './rowSortingFeature.types'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized sorted row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createSortedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n sortFns: Record<keyof SortFns, SortFn<TFeatures, TData>>,\n): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table: Table_Internal<TFeatures, TData> = _table\n if (!table._rowModelFns.sortFns) table._rowModelFns.sortFns = sortFns\n return tableMemo({\n feature: 'rowSortingFeature',\n table,\n fnName: 'table.getSortedRowModel',\n memoDeps: () => [\n table.atoms.sorting?.get(),\n table.getPreSortedRowModel(),\n ],\n fn: () => _createSortedRowModel(table),\n onAfterUpdate: () => table_autoResetPageIndex(table),\n })\n }\n}\n\nfunction _createSortedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const preSortedRowModel = table.getPreSortedRowModel()\n const sorting = table.atoms.sorting?.get()\n\n if (!preSortedRowModel.rows.length || !sorting?.length) {\n return preSortedRowModel\n }\n\n const sortedFlatRows: Array<Row<TFeatures, TData>> = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sorting.filter((sort) =>\n column_getCanSort(\n table.getColumn(sort.id) as Column_Internal<TFeatures, TData>,\n ),\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1 | 'first' | 'last'\n invertSorting?: boolean\n sortFn: SortFn<TFeatures, TData>\n }\n > = {}\n\n availableSorting.forEach((sortEntry) => {\n const column: Column_Internal<TFeatures, TData> | undefined =\n table.getColumn(sortEntry.id)\n if (!column) return\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortFn: column_getSortFn(column),\n }\n })\n\n const sortData = (rows: Array<Row<TFeatures, TData>>) => {\n const sortedData = rows.slice()\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i++) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const sortUndefined = columnInfo.sortUndefined\n const isDesc = sortEntry.desc\n\n let sortInt = 0\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id)\n const bValue = rowB.getValue(sortEntry.id)\n\n const aUndefined = aValue === undefined\n const bUndefined = bValue === undefined\n\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1\n if (sortUndefined === 'last') return aUndefined ? 1 : -1\n sortInt =\n aUndefined && bUndefined\n ? 0\n : aUndefined\n ? sortUndefined\n : -sortUndefined\n }\n }\n\n if (sortInt === 0) {\n sortInt = columnInfo.sortFn(rowA, rowB, sortEntry.id)\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them. Clone only rows that need mutation\n // (i.e. have subRows) so we don't corrupt the source row model.\n for (let i = 0; i < sortedData.length; i++) {\n const row = sortedData[i]!\n if (row.subRows.length) {\n // Preserve prototype chain so methods like getValue() remain accessible\n const cloned = Object.create(Object.getPrototypeOf(row))\n Object.assign(cloned, row)\n cloned.subRows = sortData(row.subRows)\n sortedData[i] = cloned\n sortedFlatRows.push(cloned)\n } else {\n sortedFlatRows.push(row)\n }\n }\n\n return sortedData\n }\n\n return {\n rows: sortData(preSortedRowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: preSortedRowModel.rowsById,\n }\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,qBAId,SACsE;CACtE,QAAQ,WAAW;EACjB,MAAM,QAA0C;EAChD,IAAI,CAAC,MAAM,aAAa,SAAS,MAAM,aAAa,UAAU;EAC9D,OAAO,UAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;oCACd,MAAM,MAAM,qFAAS,IAAI,GACzB,MAAM,qBAAqB,CAC7B;;GACA,UAAU,sBAAsB,KAAK;GACrC,qBAAqB,yBAAyB,KAAK;EACrD,CAAC;CACH;AACF;AAEA,SAAS,sBAGP,OAAqE;;CACrE,MAAM,oBAAoB,MAAM,qBAAqB;CACrD,MAAM,mCAAU,MAAM,MAAM,uFAAS,IAAI;CAEzC,IAAI,CAAC,kBAAkB,KAAK,UAAU,oDAAC,QAAS,SAC9C,OAAO;CAGT,MAAM,iBAA+C,CAAC;CAGtD,MAAM,mBAAmB,QAAQ,QAAQ,SACvC,kBACE,MAAM,UAAU,KAAK,EAAE,CACzB,CACF;CAEA,MAAM,iBAOF,CAAC;CAEL,iBAAiB,SAAS,cAAc;EACtC,MAAM,SACJ,MAAM,UAAU,UAAU,EAAE;EAC9B,IAAI,CAAC,QAAQ;EAEb,eAAe,UAAU,MAAM;GAC7B,eAAe,OAAO,UAAU;GAChC,eAAe,OAAO,UAAU;GAChC,QAAQ,iBAAiB,MAAM;EACjC;CACF,CAAC;CAED,MAAM,YAAY,SAAuC;EACvD,MAAM,aAAa,KAAK,MAAM;EAE9B,WAAW,MAAM,MAAM,SAAS;GAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;IAChD,MAAM,YAAY,iBAAiB;IACnC,MAAM,aAAa,eAAe,UAAU;IAC5C,MAAM,gBAAgB,WAAW;IACjC,MAAM,SAAS,UAAU;IAEzB,IAAI,UAAU;IAGd,IAAI,eAAe;KACjB,MAAM,SAAS,KAAK,SAAS,UAAU,EAAE;KACzC,MAAM,SAAS,KAAK,SAAS,UAAU,EAAE;KAEzC,MAAM,aAAa,WAAW;KAC9B,MAAM,aAAa,WAAW;KAE9B,IAAI,cAAc,YAAY;MAC5B,IAAI,kBAAkB,SAAS,OAAO,aAAa,KAAK;MACxD,IAAI,kBAAkB,QAAQ,OAAO,aAAa,IAAI;MACtD,UACE,cAAc,aACV,IACA,aACE,gBACA,CAAC;KACX;IACF;IAEA,IAAI,YAAY,GACd,UAAU,WAAW,OAAO,MAAM,MAAM,UAAU,EAAE;IAItD,IAAI,YAAY,GAAG;KACjB,IAAI,QACF,WAAW;KAGb,IAAI,WAAW,eACb,WAAW;KAGb,OAAO;IACT;GACF;GACA,OAAO,KAAK,QAAQ,KAAK;EAC3B,CAAC;EAID,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC1C,MAAM,MAAM,WAAW;GACvB,IAAI,IAAI,QAAQ,QAAQ;IAEtB,MAAM,SAAS,OAAO,OAAO,OAAO,eAAe,GAAG,CAAC;IACvD,OAAO,OAAO,QAAQ,GAAG;IACzB,OAAO,UAAU,SAAS,IAAI,OAAO;IACrC,WAAW,KAAK;IAChB,eAAe,KAAK,MAAM;GAC5B,OACE,eAAe,KAAK,GAAG;EAE3B;EAEA,OAAO;CACT;CAEA,OAAO;EACL,MAAM,SAAS,kBAAkB,IAAI;EACrC,UAAU;EACV,UAAU,kBAAkB;CAC9B;AACF"}
1
+ {"version":3,"file":"createSortedRowModel.js","names":[],"sources":["../../../src/features/row-sorting/createSortedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { table_autoResetPageIndex } from '../row-pagination/rowPaginationFeature.utils'\nimport { column_getCanSort, column_getSortFn } from './rowSortingFeature.utils'\nimport type { Column_Internal } from '../../types/Column'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { SortFn, SortFns } from './rowSortingFeature.types'\nimport type { RowData } from '../../types/type-utils'\n\n/**\n * Creates a memoized sorted row model factory.\n *\n * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.\n */\nexport function createSortedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n sortFns: Record<keyof SortFns, SortFn<TFeatures, TData>>,\n): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table = _table as unknown as Table_Internal<TFeatures, TData>\n if (!table._rowModelFns.sortFns) table._rowModelFns.sortFns = sortFns\n return tableMemo({\n feature: 'rowSortingFeature',\n table,\n fnName: 'table.getSortedRowModel',\n memoDeps: () => [\n table.atoms.sorting?.get(),\n table.getPreSortedRowModel(),\n ],\n fn: () => _createSortedRowModel(table),\n onAfterUpdate: () => table_autoResetPageIndex(table),\n })\n }\n}\n\nfunction _createSortedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const preSortedRowModel = table.getPreSortedRowModel()\n const sorting = table.atoms.sorting?.get()\n\n if (!preSortedRowModel.rows.length || !sorting?.length) {\n return preSortedRowModel\n }\n\n const sortedFlatRows: Array<Row<TFeatures, TData>> = []\n\n // Filter out sortings that correspond to non existing columns\n const availableSorting = sorting.filter((sort) =>\n column_getCanSort(\n table.getColumn(sort.id) as Column_Internal<TFeatures, TData>,\n ),\n )\n\n const columnInfoById: Record<\n string,\n {\n sortUndefined?: false | -1 | 1 | 'first' | 'last'\n invertSorting?: boolean\n sortFn: SortFn<TFeatures, TData>\n }\n > = {}\n\n availableSorting.forEach((sortEntry) => {\n const column: Column_Internal<TFeatures, TData> | undefined =\n table.getColumn(sortEntry.id)\n if (!column) return\n\n columnInfoById[sortEntry.id] = {\n sortUndefined: column.columnDef.sortUndefined,\n invertSorting: column.columnDef.invertSorting,\n sortFn: column_getSortFn(column),\n }\n })\n\n const sortData = (rows: Array<Row<TFeatures, TData>>) => {\n const sortedData = rows.slice()\n\n sortedData.sort((rowA, rowB) => {\n for (let i = 0; i < availableSorting.length; i++) {\n const sortEntry = availableSorting[i]!\n const columnInfo = columnInfoById[sortEntry.id]!\n const sortUndefined = columnInfo.sortUndefined\n const isDesc = sortEntry.desc\n\n let sortInt = 0\n\n // All sorting ints should always return in ascending order\n if (sortUndefined) {\n const aValue = rowA.getValue(sortEntry.id)\n const bValue = rowB.getValue(sortEntry.id)\n\n const aUndefined = aValue === undefined\n const bUndefined = bValue === undefined\n\n if (aUndefined || bUndefined) {\n if (sortUndefined === 'first') return aUndefined ? -1 : 1\n if (sortUndefined === 'last') return aUndefined ? 1 : -1\n sortInt =\n aUndefined && bUndefined\n ? 0\n : aUndefined\n ? sortUndefined\n : -sortUndefined\n }\n }\n\n if (sortInt === 0) {\n sortInt = columnInfo.sortFn(rowA, rowB, sortEntry.id)\n }\n\n // If sorting is non-zero, take care of desc and inversion\n if (sortInt !== 0) {\n if (isDesc) {\n sortInt *= -1\n }\n\n if (columnInfo.invertSorting) {\n sortInt *= -1\n }\n\n return sortInt\n }\n }\n return rowA.index - rowB.index\n })\n\n // If there are sub-rows, sort them. Clone only rows that need mutation\n // (i.e. have subRows) so we don't corrupt the source row model.\n for (let i = 0; i < sortedData.length; i++) {\n const row = sortedData[i]!\n if (row.subRows.length) {\n // Preserve prototype chain so methods like getValue() remain accessible\n const cloned = Object.create(Object.getPrototypeOf(row))\n Object.assign(cloned, row)\n cloned.subRows = sortData(row.subRows)\n sortedData[i] = cloned\n sortedFlatRows.push(cloned)\n } else {\n sortedFlatRows.push(row)\n }\n }\n\n return sortedData\n }\n\n return {\n rows: sortData(preSortedRowModel.rows),\n flatRows: sortedFlatRows,\n rowsById: preSortedRowModel.rowsById,\n }\n}\n"],"mappings":";;;;;;;;;;AAgBA,SAAgB,qBAId,SACsE;CACtE,QAAQ,WAAW;EACjB,MAAM,QAAQ;EACd,IAAI,CAAC,MAAM,aAAa,SAAS,MAAM,aAAa,UAAU;EAC9D,OAAO,UAAU;GACf,SAAS;GACT;GACA,QAAQ;GACR,gBAAgB;;oCACd,MAAM,MAAM,qFAAS,IAAI,GACzB,MAAM,qBAAqB,CAC7B;;GACA,UAAU,sBAAsB,KAAK;GACrC,qBAAqB,yBAAyB,KAAK;EACrD,CAAC;CACH;AACF;AAEA,SAAS,sBAGP,OAAqE;;CACrE,MAAM,oBAAoB,MAAM,qBAAqB;CACrD,MAAM,mCAAU,MAAM,MAAM,uFAAS,IAAI;CAEzC,IAAI,CAAC,kBAAkB,KAAK,UAAU,oDAAC,QAAS,SAC9C,OAAO;CAGT,MAAM,iBAA+C,CAAC;CAGtD,MAAM,mBAAmB,QAAQ,QAAQ,SACvC,kBACE,MAAM,UAAU,KAAK,EAAE,CACzB,CACF;CAEA,MAAM,iBAOF,CAAC;CAEL,iBAAiB,SAAS,cAAc;EACtC,MAAM,SACJ,MAAM,UAAU,UAAU,EAAE;EAC9B,IAAI,CAAC,QAAQ;EAEb,eAAe,UAAU,MAAM;GAC7B,eAAe,OAAO,UAAU;GAChC,eAAe,OAAO,UAAU;GAChC,QAAQ,iBAAiB,MAAM;EACjC;CACF,CAAC;CAED,MAAM,YAAY,SAAuC;EACvD,MAAM,aAAa,KAAK,MAAM;EAE9B,WAAW,MAAM,MAAM,SAAS;GAC9B,KAAK,IAAI,IAAI,GAAG,IAAI,iBAAiB,QAAQ,KAAK;IAChD,MAAM,YAAY,iBAAiB;IACnC,MAAM,aAAa,eAAe,UAAU;IAC5C,MAAM,gBAAgB,WAAW;IACjC,MAAM,SAAS,UAAU;IAEzB,IAAI,UAAU;IAGd,IAAI,eAAe;KACjB,MAAM,SAAS,KAAK,SAAS,UAAU,EAAE;KACzC,MAAM,SAAS,KAAK,SAAS,UAAU,EAAE;KAEzC,MAAM,aAAa,WAAW;KAC9B,MAAM,aAAa,WAAW;KAE9B,IAAI,cAAc,YAAY;MAC5B,IAAI,kBAAkB,SAAS,OAAO,aAAa,KAAK;MACxD,IAAI,kBAAkB,QAAQ,OAAO,aAAa,IAAI;MACtD,UACE,cAAc,aACV,IACA,aACE,gBACA,CAAC;KACX;IACF;IAEA,IAAI,YAAY,GACd,UAAU,WAAW,OAAO,MAAM,MAAM,UAAU,EAAE;IAItD,IAAI,YAAY,GAAG;KACjB,IAAI,QACF,WAAW;KAGb,IAAI,WAAW,eACb,WAAW;KAGb,OAAO;IACT;GACF;GACA,OAAO,KAAK,QAAQ,KAAK;EAC3B,CAAC;EAID,KAAK,IAAI,IAAI,GAAG,IAAI,WAAW,QAAQ,KAAK;GAC1C,MAAM,MAAM,WAAW;GACvB,IAAI,IAAI,QAAQ,QAAQ;IAEtB,MAAM,SAAS,OAAO,OAAO,OAAO,eAAe,GAAG,CAAC;IACvD,OAAO,OAAO,QAAQ,GAAG;IACzB,OAAO,UAAU,SAAS,IAAI,OAAO;IACrC,WAAW,KAAK;IAChB,eAAe,KAAK,MAAM;GAC5B,OACE,eAAe,KAAK,GAAG;EAE3B;EAEA,OAAO;CACT;CAEA,OAAO;EACL,MAAM,SAAS,kBAAkB,IAAI;EACrC,UAAU;EACV,UAAU,kBAAkB;CAC9B;AACF"}