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

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 (667) hide show
  1. package/README.md +5 -1
  2. package/dist/core/cells/constructCell.d.ts +4 -6
  3. package/dist/core/cells/constructCell.js +4 -6
  4. package/dist/core/cells/coreCellsFeature.d.ts +1 -3
  5. package/dist/core/cells/coreCellsFeature.js +1 -2
  6. package/dist/core/cells/coreCellsFeature.types.d.ts +7 -9
  7. package/dist/core/cells/coreCellsFeature.utils.d.ts +5 -5
  8. package/dist/core/cells/coreCellsFeature.utils.js +1 -2
  9. package/dist/core/columns/constructColumn.d.ts +4 -6
  10. package/dist/core/columns/constructColumn.js +8 -9
  11. package/dist/core/columns/coreColumnsFeature.d.ts +1 -3
  12. package/dist/core/columns/coreColumnsFeature.js +13 -20
  13. package/dist/core/columns/coreColumnsFeature.types.d.ts +13 -15
  14. package/dist/core/columns/coreColumnsFeature.utils.d.ts +10 -12
  15. package/dist/core/columns/coreColumnsFeature.utils.js +19 -20
  16. package/dist/core/coreFeatures.d.ts +3 -3
  17. package/dist/core/coreFeatures.js +1 -2
  18. package/dist/core/headers/buildHeaderGroups.d.ts +3 -5
  19. package/dist/core/headers/buildHeaderGroups.js +99 -85
  20. package/dist/core/headers/constructHeader.d.ts +3 -5
  21. package/dist/core/headers/constructHeader.js +4 -6
  22. package/dist/core/headers/coreHeadersFeature.d.ts +1 -3
  23. package/dist/core/headers/coreHeadersFeature.js +9 -13
  24. package/dist/core/headers/coreHeadersFeature.types.d.ts +21 -11
  25. package/dist/core/headers/coreHeadersFeature.utils.d.ts +8 -8
  26. package/dist/core/headers/coreHeadersFeature.utils.js +14 -17
  27. package/dist/core/reactivity/coreReactivityFeature.types.d.ts +8 -3
  28. package/dist/core/reactivity/coreReactivityFeature.utils.d.ts +1 -3
  29. package/dist/core/reactivity/coreReactivityFeature.utils.js +1 -2
  30. package/dist/core/reactivity/renderPhaseReactivity.d.ts +80 -0
  31. package/dist/core/reactivity/renderPhaseReactivity.js +95 -0
  32. package/dist/core/row-models/coreRowModelsFeature.d.ts +1 -3
  33. package/dist/core/row-models/coreRowModelsFeature.js +1 -2
  34. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +7 -17
  35. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +17 -19
  36. package/dist/core/row-models/coreRowModelsFeature.utils.js +9 -28
  37. package/dist/core/row-models/createCoreRowModel.d.ts +3 -5
  38. package/dist/core/row-models/createCoreRowModel.js +25 -24
  39. package/dist/core/rows/constructRow.d.ts +3 -5
  40. package/dist/core/rows/constructRow.js +9 -13
  41. package/dist/core/rows/coreRowsFeature.d.ts +1 -3
  42. package/dist/core/rows/coreRowsFeature.js +20 -5
  43. package/dist/core/rows/coreRowsFeature.types.d.ts +42 -10
  44. package/dist/core/rows/coreRowsFeature.utils.d.ts +26 -9
  45. package/dist/core/rows/coreRowsFeature.utils.js +65 -14
  46. package/dist/core/table/constructTable.d.ts +2 -4
  47. package/dist/core/table/constructTable.js +52 -23
  48. package/dist/core/table/coreTablesFeature.d.ts +1 -3
  49. package/dist/core/table/coreTablesFeature.js +1 -2
  50. package/dist/core/table/coreTablesFeature.types.d.ts +56 -25
  51. package/dist/core/table/coreTablesFeature.utils.d.ts +34 -12
  52. package/dist/core/table/coreTablesFeature.utils.js +69 -24
  53. package/dist/experimental-worker-plugin.d.ts +5 -0
  54. package/dist/experimental-worker-plugin.js +6 -0
  55. package/dist/features/cell-selection/cellSelectionFeature.d.ts +8 -0
  56. package/dist/features/cell-selection/cellSelectionFeature.js +128 -0
  57. package/dist/features/cell-selection/cellSelectionFeature.types.d.ts +296 -0
  58. package/dist/features/cell-selection/cellSelectionFeature.utils.d.ts +306 -0
  59. package/dist/features/cell-selection/cellSelectionFeature.utils.js +873 -0
  60. package/dist/features/cell-selection/cellSelectionGeometry.js +121 -0
  61. package/dist/features/cell-spanning/cellSpanningFeature.d.ts +13 -0
  62. package/dist/features/cell-spanning/cellSpanningFeature.js +47 -0
  63. package/dist/features/cell-spanning/cellSpanningFeature.types.d.ts +150 -0
  64. package/dist/features/cell-spanning/cellSpanningFeature.utils.d.ts +74 -0
  65. package/dist/features/cell-spanning/cellSpanningFeature.utils.js +262 -0
  66. package/dist/features/column-faceting/columnFacetingFeature.d.ts +1 -3
  67. package/dist/features/column-faceting/columnFacetingFeature.js +13 -20
  68. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +15 -35
  69. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +10 -12
  70. package/dist/features/column-faceting/columnFacetingFeature.utils.js +25 -14
  71. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +2 -4
  72. package/dist/features/column-faceting/createFacetedMinMaxValues.js +9 -7
  73. package/dist/features/column-faceting/createFacetedRowModel.d.ts +3 -5
  74. package/dist/features/column-faceting/createFacetedRowModel.js +12 -17
  75. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +2 -4
  76. package/dist/features/column-faceting/createFacetedUniqueValues.js +12 -9
  77. package/dist/features/column-filtering/columnFilteringFeature.d.ts +1 -3
  78. package/dist/features/column-filtering/columnFilteringFeature.js +4 -5
  79. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +85 -33
  80. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +19 -17
  81. package/dist/features/column-filtering/columnFilteringFeature.utils.js +33 -21
  82. package/dist/features/column-filtering/createFilteredRowModel.d.ts +11 -7
  83. package/dist/features/column-filtering/createFilteredRowModel.js +33 -29
  84. package/dist/features/column-filtering/filterFns.d.ts +208 -0
  85. package/dist/features/column-filtering/filterFns.js +374 -0
  86. package/dist/features/column-filtering/filterRowsUtils.js +4 -4
  87. package/dist/features/column-grouping/columnGroupingFeature.d.ts +2 -4
  88. package/dist/features/column-grouping/columnGroupingFeature.js +7 -20
  89. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +14 -52
  90. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +12 -51
  91. package/dist/features/column-grouping/columnGroupingFeature.utils.js +8 -61
  92. package/dist/features/column-grouping/createGroupedRowModel.d.ts +7 -7
  93. package/dist/features/column-grouping/createGroupedRowModel.js +69 -38
  94. package/dist/features/column-ordering/columnOrderingFeature.d.ts +1 -3
  95. package/dist/features/column-ordering/columnOrderingFeature.js +19 -24
  96. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +28 -5
  97. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +26 -16
  98. package/dist/features/column-ordering/columnOrderingFeature.utils.js +36 -18
  99. package/dist/features/column-pinning/columnPinningFeature.d.ts +7 -4
  100. package/dist/features/column-pinning/columnPinningFeature.js +126 -146
  101. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +53 -44
  102. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +100 -93
  103. package/dist/features/column-pinning/columnPinningFeature.utils.js +148 -150
  104. package/dist/features/column-resizing/columnResizingFeature.d.ts +1 -3
  105. package/dist/features/column-resizing/columnResizingFeature.js +1 -2
  106. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +2 -7
  107. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +7 -9
  108. package/dist/features/column-resizing/columnResizingFeature.utils.js +86 -48
  109. package/dist/features/column-sizing/columnSizingFeature.d.ts +1 -3
  110. package/dist/features/column-sizing/columnSizingFeature.js +35 -70
  111. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +52 -11
  112. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +43 -27
  113. package/dist/features/column-sizing/columnSizingFeature.utils.js +95 -54
  114. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +1 -3
  115. package/dist/features/column-visibility/columnVisibilityFeature.js +26 -38
  116. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +4 -6
  117. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +20 -20
  118. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +32 -32
  119. package/dist/features/global-filtering/globalFilteringFeature.d.ts +1 -3
  120. package/dist/features/global-filtering/globalFilteringFeature.js +3 -4
  121. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +4 -6
  122. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -13
  123. package/dist/features/global-filtering/globalFilteringFeature.utils.js +7 -8
  124. package/dist/features/row-aggregation/aggregationFns.d.ts +66 -0
  125. package/dist/features/row-aggregation/aggregationFns.js +279 -0
  126. package/dist/features/row-aggregation/rowAggregationFeature.d.ts +8 -0
  127. package/dist/features/row-aggregation/rowAggregationFeature.js +35 -0
  128. package/dist/features/row-aggregation/rowAggregationFeature.types.d.ts +193 -0
  129. package/dist/features/row-aggregation/rowAggregationFeature.types.js +11 -0
  130. package/dist/features/row-aggregation/rowAggregationFeature.utils.d.ts +46 -0
  131. package/dist/features/row-aggregation/rowAggregationFeature.utils.js +235 -0
  132. package/dist/features/row-expanding/createExpandedRowModel.d.ts +3 -5
  133. package/dist/features/row-expanding/createExpandedRowModel.js +9 -13
  134. package/dist/features/row-expanding/rowExpandingFeature.d.ts +1 -3
  135. package/dist/features/row-expanding/rowExpandingFeature.js +1 -2
  136. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +6 -17
  137. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +11 -16
  138. package/dist/features/row-expanding/rowExpandingFeature.utils.js +30 -33
  139. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +3 -5
  140. package/dist/features/row-pagination/createPaginatedRowModel.js +7 -12
  141. package/dist/features/row-pagination/rowPaginationFeature.d.ts +1 -3
  142. package/dist/features/row-pagination/rowPaginationFeature.js +1 -2
  143. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +5 -16
  144. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +18 -20
  145. package/dist/features/row-pagination/rowPaginationFeature.utils.js +10 -17
  146. package/dist/features/row-pinning/rowPinningFeature.d.ts +1 -3
  147. package/dist/features/row-pinning/rowPinningFeature.js +5 -18
  148. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +3 -5
  149. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +8 -10
  150. package/dist/features/row-pinning/rowPinningFeature.utils.js +10 -16
  151. package/dist/features/row-selection/rowSelectionFeature.d.ts +1 -3
  152. package/dist/features/row-selection/rowSelectionFeature.js +68 -25
  153. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +51 -15
  154. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +60 -35
  155. package/dist/features/row-selection/rowSelectionFeature.utils.js +142 -89
  156. package/dist/features/row-sorting/createSortedRowModel.d.ts +11 -7
  157. package/dist/features/row-sorting/createSortedRowModel.js +71 -53
  158. package/dist/features/row-sorting/rowSortingFeature.d.ts +1 -3
  159. package/dist/features/row-sorting/rowSortingFeature.js +1 -2
  160. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +54 -24
  161. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +19 -22
  162. package/dist/features/row-sorting/rowSortingFeature.utils.js +36 -25
  163. package/dist/features/row-sorting/sortFns.d.ts +96 -0
  164. package/dist/features/row-sorting/sortFns.js +216 -0
  165. package/dist/features/stockFeatures.d.ts +7 -3
  166. package/dist/features/stockFeatures.js +7 -2
  167. package/dist/flex-render.d.ts +2 -4
  168. package/dist/flex-render.js +10 -3
  169. package/dist/helpers/columnHelper.d.ts +3 -5
  170. package/dist/helpers/columnHelper.js +1 -2
  171. package/dist/helpers/metaHelper.d.ts +25 -0
  172. package/dist/helpers/metaHelper.js +28 -0
  173. package/dist/helpers/tableFeatures.d.ts +35 -8
  174. package/dist/helpers/tableFeatures.js +33 -5
  175. package/dist/helpers/tableOptions.d.ts +1 -3
  176. package/dist/helpers/tableOptions.js +1 -2
  177. package/dist/index.d.ts +34 -27
  178. package/dist/index.js +10 -5
  179. package/dist/reactivity.d.ts +2 -1
  180. package/dist/reactivity.js +2 -1
  181. package/dist/static-functions.d.ts +11 -8
  182. package/dist/static-functions.js +11 -8
  183. package/dist/store-reactivity-bindings.d.ts +2 -4
  184. package/dist/store-reactivity-bindings.js +4 -5
  185. package/dist/types/Cell.d.ts +9 -5
  186. package/dist/types/Column.d.ts +13 -15
  187. package/dist/types/ColumnDef.d.ts +39 -21
  188. package/dist/types/Header.d.ts +3 -5
  189. package/dist/types/HeaderGroup.d.ts +3 -5
  190. package/dist/types/Row.d.ts +7 -7
  191. package/dist/types/RowModel.d.ts +11 -25
  192. package/dist/types/RowModelFns.d.ts +5 -7
  193. package/dist/types/Table.d.ts +29 -32
  194. package/dist/types/TableFeatures.d.ts +388 -24
  195. package/dist/types/TableOptions.d.ts +24 -14
  196. package/dist/types/TableState.d.ts +8 -8
  197. package/dist/types/type-utils.d.ts +10 -4
  198. package/dist/utils.d.ts +32 -26
  199. package/dist/utils.js +52 -32
  200. package/dist/worker/createTableWorker.d.ts +100 -0
  201. package/dist/worker/createTableWorker.js +185 -0
  202. package/dist/worker/createWorkerRowModel.d.ts +40 -0
  203. package/dist/worker/createWorkerRowModel.js +77 -0
  204. package/dist/worker/initTableWorker.d.ts +31 -0
  205. package/dist/worker/initTableWorker.js +99 -0
  206. package/dist/worker/rebuildRowModel.d.ts +11 -0
  207. package/dist/worker/rebuildRowModel.js +71 -0
  208. package/dist/worker/serializeRowModel.js +51 -0
  209. package/dist/worker/tableWorkerProtocol.d.ts +88 -0
  210. package/dist/worker/tableWorkerProtocol.js +26 -0
  211. package/package.json +12 -28
  212. package/skills/aggregation/SKILL.md +141 -0
  213. package/skills/api-not-found/SKILL.md +113 -0
  214. package/skills/cell-selection/SKILL.md +204 -0
  215. package/skills/cell-spanning/SKILL.md +162 -0
  216. package/skills/client-vs-server/SKILL.md +164 -0
  217. package/skills/column-faceting/SKILL.md +97 -0
  218. package/skills/column-filtering/SKILL.md +87 -0
  219. package/skills/column-ordering/SKILL.md +75 -0
  220. package/skills/column-pinning/SKILL.md +89 -0
  221. package/skills/column-resizing/SKILL.md +91 -0
  222. package/skills/column-sizing/SKILL.md +72 -0
  223. package/skills/column-visibility/SKILL.md +75 -0
  224. package/skills/core/SKILL.md +175 -0
  225. package/skills/custom-features/SKILL.md +235 -0
  226. package/skills/expanding/SKILL.md +80 -0
  227. package/skills/global-filtering/SKILL.md +84 -0
  228. package/skills/grouping/SKILL.md +51 -401
  229. package/skills/migrate-v8-to-v9/SKILL.md +275 -416
  230. package/skills/pagination/SKILL.md +37 -344
  231. package/skills/row-pinning/SKILL.md +47 -234
  232. package/skills/row-selection/SKILL.md +75 -302
  233. package/skills/sorting/SKILL.md +45 -303
  234. package/skills/table-features/SKILL.md +159 -0
  235. package/skills/typescript/SKILL.md +126 -0
  236. package/dist/core/cells/constructCell.cjs +0 -34
  237. package/dist/core/cells/constructCell.cjs.map +0 -1
  238. package/dist/core/cells/constructCell.d.cts +0 -17
  239. package/dist/core/cells/constructCell.js.map +0 -1
  240. package/dist/core/cells/coreCellsFeature.cjs +0 -21
  241. package/dist/core/cells/coreCellsFeature.cjs.map +0 -1
  242. package/dist/core/cells/coreCellsFeature.d.cts +0 -10
  243. package/dist/core/cells/coreCellsFeature.js.map +0 -1
  244. package/dist/core/cells/coreCellsFeature.types.d.cts +0 -57
  245. package/dist/core/cells/coreCellsFeature.utils.cjs +0 -57
  246. package/dist/core/cells/coreCellsFeature.utils.cjs.map +0 -1
  247. package/dist/core/cells/coreCellsFeature.utils.d.cts +0 -53
  248. package/dist/core/cells/coreCellsFeature.utils.js.map +0 -1
  249. package/dist/core/columns/constructColumn.cjs +0 -61
  250. package/dist/core/columns/constructColumn.cjs.map +0 -1
  251. package/dist/core/columns/constructColumn.d.cts +0 -16
  252. package/dist/core/columns/constructColumn.js.map +0 -1
  253. package/dist/core/columns/coreColumnsFeature.cjs +0 -70
  254. package/dist/core/columns/coreColumnsFeature.cjs.map +0 -1
  255. package/dist/core/columns/coreColumnsFeature.d.cts +0 -10
  256. package/dist/core/columns/coreColumnsFeature.js.map +0 -1
  257. package/dist/core/columns/coreColumnsFeature.types.d.cts +0 -94
  258. package/dist/core/columns/coreColumnsFeature.utils.cjs +0 -187
  259. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +0 -1
  260. package/dist/core/columns/coreColumnsFeature.utils.d.cts +0 -119
  261. package/dist/core/columns/coreColumnsFeature.utils.js.map +0 -1
  262. package/dist/core/coreFeatures.cjs +0 -25
  263. package/dist/core/coreFeatures.cjs.map +0 -1
  264. package/dist/core/coreFeatures.d.cts +0 -26
  265. package/dist/core/coreFeatures.js.map +0 -1
  266. package/dist/core/headers/buildHeaderGroups.cjs +0 -103
  267. package/dist/core/headers/buildHeaderGroups.cjs.map +0 -1
  268. package/dist/core/headers/buildHeaderGroups.d.cts +0 -16
  269. package/dist/core/headers/buildHeaderGroups.js.map +0 -1
  270. package/dist/core/headers/constructHeader.cjs +0 -41
  271. package/dist/core/headers/constructHeader.cjs.map +0 -1
  272. package/dist/core/headers/constructHeader.d.cts +0 -22
  273. package/dist/core/headers/constructHeader.js.map +0 -1
  274. package/dist/core/headers/coreHeadersFeature.cjs +0 -55
  275. package/dist/core/headers/coreHeadersFeature.cjs.map +0 -1
  276. package/dist/core/headers/coreHeadersFeature.d.cts +0 -10
  277. package/dist/core/headers/coreHeadersFeature.js.map +0 -1
  278. package/dist/core/headers/coreHeadersFeature.types.d.cts +0 -106
  279. package/dist/core/headers/coreHeadersFeature.utils.cjs +0 -142
  280. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +0 -1
  281. package/dist/core/headers/coreHeadersFeature.utils.d.cts +0 -85
  282. package/dist/core/headers/coreHeadersFeature.utils.js.map +0 -1
  283. package/dist/core/reactivity/coreReactivityFeature.types.d.cts +0 -48
  284. package/dist/core/reactivity/coreReactivityFeature.utils.cjs +0 -24
  285. package/dist/core/reactivity/coreReactivityFeature.utils.cjs.map +0 -1
  286. package/dist/core/reactivity/coreReactivityFeature.utils.d.cts +0 -24
  287. package/dist/core/reactivity/coreReactivityFeature.utils.js.map +0 -1
  288. package/dist/core/row-models/coreRowModelsFeature.cjs +0 -27
  289. package/dist/core/row-models/coreRowModelsFeature.cjs.map +0 -1
  290. package/dist/core/row-models/coreRowModelsFeature.d.cts +0 -10
  291. package/dist/core/row-models/coreRowModelsFeature.js.map +0 -1
  292. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +0 -41
  293. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +0 -215
  294. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +0 -1
  295. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +0 -153
  296. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +0 -1
  297. package/dist/core/row-models/createCoreRowModel.cjs +0 -52
  298. package/dist/core/row-models/createCoreRowModel.cjs.map +0 -1
  299. package/dist/core/row-models/createCoreRowModel.d.cts +0 -15
  300. package/dist/core/row-models/createCoreRowModel.js.map +0 -1
  301. package/dist/core/rows/constructRow.cjs +0 -44
  302. package/dist/core/rows/constructRow.cjs.map +0 -1
  303. package/dist/core/rows/constructRow.d.cts +0 -15
  304. package/dist/core/rows/constructRow.js.map +0 -1
  305. package/dist/core/rows/coreRowsFeature.cjs +0 -37
  306. package/dist/core/rows/coreRowsFeature.cjs.map +0 -1
  307. package/dist/core/rows/coreRowsFeature.d.cts +0 -10
  308. package/dist/core/rows/coreRowsFeature.js.map +0 -1
  309. package/dist/core/rows/coreRowsFeature.types.d.cts +0 -99
  310. package/dist/core/rows/coreRowsFeature.utils.cjs +0 -192
  311. package/dist/core/rows/coreRowsFeature.utils.cjs.map +0 -1
  312. package/dist/core/rows/coreRowsFeature.utils.d.cts +0 -127
  313. package/dist/core/rows/coreRowsFeature.utils.js.map +0 -1
  314. package/dist/core/table/constructTable.cjs +0 -118
  315. package/dist/core/table/constructTable.cjs.map +0 -1
  316. package/dist/core/table/constructTable.d.cts +0 -22
  317. package/dist/core/table/constructTable.js.map +0 -1
  318. package/dist/core/table/coreTablesFeature.cjs +0 -17
  319. package/dist/core/table/coreTablesFeature.cjs.map +0 -1
  320. package/dist/core/table/coreTablesFeature.d.cts +0 -10
  321. package/dist/core/table/coreTablesFeature.js.map +0 -1
  322. package/dist/core/table/coreTablesFeature.types.d.cts +0 -186
  323. package/dist/core/table/coreTablesFeature.utils.cjs +0 -96
  324. package/dist/core/table/coreTablesFeature.utils.cjs.map +0 -1
  325. package/dist/core/table/coreTablesFeature.utils.d.cts +0 -57
  326. package/dist/core/table/coreTablesFeature.utils.js.map +0 -1
  327. package/dist/features/column-faceting/columnFacetingFeature.cjs +0 -61
  328. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +0 -1
  329. package/dist/features/column-faceting/columnFacetingFeature.d.cts +0 -10
  330. package/dist/features/column-faceting/columnFacetingFeature.js.map +0 -1
  331. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +0 -85
  332. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +0 -103
  333. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +0 -1
  334. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +0 -84
  335. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +0 -1
  336. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +0 -44
  337. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +0 -1
  338. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +0 -14
  339. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +0 -1
  340. package/dist/features/column-faceting/createFacetedRowModel.cjs +0 -50
  341. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +0 -1
  342. package/dist/features/column-faceting/createFacetedRowModel.d.cts +0 -15
  343. package/dist/features/column-faceting/createFacetedRowModel.js.map +0 -1
  344. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +0 -41
  345. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +0 -1
  346. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +0 -14
  347. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +0 -1
  348. package/dist/features/column-filtering/columnFilteringFeature.cjs +0 -50
  349. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +0 -1
  350. package/dist/features/column-filtering/columnFilteringFeature.d.cts +0 -10
  351. package/dist/features/column-filtering/columnFilteringFeature.js.map +0 -1
  352. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +0 -160
  353. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +0 -212
  354. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +0 -1
  355. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +0 -143
  356. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +0 -1
  357. package/dist/features/column-filtering/createFilteredRowModel.cjs +0 -110
  358. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +0 -1
  359. package/dist/features/column-filtering/createFilteredRowModel.d.cts +0 -16
  360. package/dist/features/column-filtering/createFilteredRowModel.js.map +0 -1
  361. package/dist/features/column-filtering/filterRowsUtils.cjs +0 -81
  362. package/dist/features/column-filtering/filterRowsUtils.cjs.map +0 -1
  363. package/dist/features/column-filtering/filterRowsUtils.js.map +0 -1
  364. package/dist/features/column-grouping/columnGroupingFeature.cjs +0 -67
  365. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +0 -1
  366. package/dist/features/column-grouping/columnGroupingFeature.d.cts +0 -10
  367. package/dist/features/column-grouping/columnGroupingFeature.js.map +0 -1
  368. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +0 -165
  369. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +0 -250
  370. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +0 -1
  371. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +0 -190
  372. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +0 -1
  373. package/dist/features/column-grouping/createGroupedRowModel.cjs +0 -119
  374. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +0 -1
  375. package/dist/features/column-grouping/createGroupedRowModel.d.cts +0 -16
  376. package/dist/features/column-grouping/createGroupedRowModel.js.map +0 -1
  377. package/dist/features/column-ordering/columnOrderingFeature.cjs +0 -58
  378. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +0 -1
  379. package/dist/features/column-ordering/columnOrderingFeature.d.cts +0 -10
  380. package/dist/features/column-ordering/columnOrderingFeature.js.map +0 -1
  381. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +0 -56
  382. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +0 -172
  383. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +0 -1
  384. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +0 -107
  385. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +0 -1
  386. package/dist/features/column-pinning/columnPinningFeature.cjs +0 -221
  387. package/dist/features/column-pinning/columnPinningFeature.cjs.map +0 -1
  388. package/dist/features/column-pinning/columnPinningFeature.d.cts +0 -10
  389. package/dist/features/column-pinning/columnPinningFeature.js.map +0 -1
  390. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +0 -178
  391. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +0 -585
  392. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +0 -1
  393. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +0 -375
  394. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +0 -1
  395. package/dist/features/column-resizing/columnResizingFeature.cjs +0 -41
  396. package/dist/features/column-resizing/columnResizingFeature.cjs.map +0 -1
  397. package/dist/features/column-resizing/columnResizingFeature.d.cts +0 -10
  398. package/dist/features/column-resizing/columnResizingFeature.js.map +0 -1
  399. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +0 -81
  400. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +0 -246
  401. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +0 -1
  402. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +0 -109
  403. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +0 -1
  404. package/dist/features/column-sizing/columnSizingFeature.cjs +0 -124
  405. package/dist/features/column-sizing/columnSizingFeature.cjs.map +0 -1
  406. package/dist/features/column-sizing/columnSizingFeature.d.cts +0 -10
  407. package/dist/features/column-sizing/columnSizingFeature.js.map +0 -1
  408. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +0 -96
  409. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +0 -256
  410. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +0 -1
  411. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +0 -182
  412. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +0 -1
  413. package/dist/features/column-visibility/columnVisibilityFeature.cjs +0 -94
  414. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +0 -1
  415. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +0 -10
  416. package/dist/features/column-visibility/columnVisibilityFeature.js.map +0 -1
  417. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +0 -97
  418. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +0 -283
  419. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +0 -1
  420. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +0 -189
  421. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +0 -1
  422. package/dist/features/global-filtering/globalFilteringFeature.cjs +0 -41
  423. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +0 -1
  424. package/dist/features/global-filtering/globalFilteringFeature.d.cts +0 -10
  425. package/dist/features/global-filtering/globalFilteringFeature.js.map +0 -1
  426. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +0 -71
  427. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +0 -88
  428. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +0 -1
  429. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +0 -74
  430. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +0 -1
  431. package/dist/features/row-expanding/createExpandedRowModel.cjs +0 -59
  432. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +0 -1
  433. package/dist/features/row-expanding/createExpandedRowModel.d.cts +0 -21
  434. package/dist/features/row-expanding/createExpandedRowModel.js.map +0 -1
  435. package/dist/features/row-expanding/rowExpandingFeature.cjs +0 -47
  436. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +0 -1
  437. package/dist/features/row-expanding/rowExpandingFeature.d.cts +0 -10
  438. package/dist/features/row-expanding/rowExpandingFeature.js.map +0 -1
  439. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +0 -127
  440. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +0 -281
  441. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +0 -1
  442. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +0 -191
  443. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +0 -1
  444. package/dist/features/row-pagination/createPaginatedRowModel.cjs +0 -62
  445. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +0 -1
  446. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +0 -15
  447. package/dist/features/row-pagination/createPaginatedRowModel.js.map +0 -1
  448. package/dist/features/row-pagination/rowPaginationFeature.cjs +0 -45
  449. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +0 -1
  450. package/dist/features/row-pagination/rowPaginationFeature.d.cts +0 -10
  451. package/dist/features/row-pagination/rowPaginationFeature.js.map +0 -1
  452. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +0 -135
  453. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +0 -312
  454. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +0 -1
  455. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +0 -218
  456. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +0 -1
  457. package/dist/features/row-pinning/rowPinningFeature.cjs +0 -67
  458. package/dist/features/row-pinning/rowPinningFeature.cjs.map +0 -1
  459. package/dist/features/row-pinning/rowPinningFeature.d.cts +0 -10
  460. package/dist/features/row-pinning/rowPinningFeature.js.map +0 -1
  461. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +0 -83
  462. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +0 -229
  463. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +0 -1
  464. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +0 -143
  465. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +0 -1
  466. package/dist/features/row-selection/rowSelectionFeature.cjs +0 -75
  467. package/dist/features/row-selection/rowSelectionFeature.cjs.map +0 -1
  468. package/dist/features/row-selection/rowSelectionFeature.d.cts +0 -10
  469. package/dist/features/row-selection/rowSelectionFeature.js.map +0 -1
  470. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +0 -136
  471. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +0 -514
  472. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +0 -1
  473. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +0 -318
  474. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +0 -1
  475. package/dist/features/row-sorting/createSortedRowModel.cjs +0 -95
  476. package/dist/features/row-sorting/createSortedRowModel.cjs.map +0 -1
  477. package/dist/features/row-sorting/createSortedRowModel.d.cts +0 -16
  478. package/dist/features/row-sorting/createSortedRowModel.js.map +0 -1
  479. package/dist/features/row-sorting/rowSortingFeature.cjs +0 -55
  480. package/dist/features/row-sorting/rowSortingFeature.cjs.map +0 -1
  481. package/dist/features/row-sorting/rowSortingFeature.d.cts +0 -10
  482. package/dist/features/row-sorting/rowSortingFeature.js.map +0 -1
  483. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +0 -188
  484. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +0 -305
  485. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +0 -1
  486. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +0 -193
  487. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +0 -1
  488. package/dist/features/stockFeatures.cjs +0 -41
  489. package/dist/features/stockFeatures.cjs.map +0 -1
  490. package/dist/features/stockFeatures.d.cts +0 -41
  491. package/dist/features/stockFeatures.js.map +0 -1
  492. package/dist/flex-render.cjs +0 -29
  493. package/dist/flex-render.cjs.map +0 -1
  494. package/dist/flex-render.d.cts +0 -34
  495. package/dist/flex-render.js.map +0 -1
  496. package/dist/fns/aggregationFns.cjs +0 -161
  497. package/dist/fns/aggregationFns.cjs.map +0 -1
  498. package/dist/fns/aggregationFns.d.cts +0 -85
  499. package/dist/fns/aggregationFns.d.ts +0 -85
  500. package/dist/fns/aggregationFns.js +0 -151
  501. package/dist/fns/aggregationFns.js.map +0 -1
  502. package/dist/fns/filterFns.cjs +0 -201
  503. package/dist/fns/filterFns.cjs.map +0 -1
  504. package/dist/fns/filterFns.d.cts +0 -167
  505. package/dist/fns/filterFns.d.ts +0 -167
  506. package/dist/fns/filterFns.js +0 -185
  507. package/dist/fns/filterFns.js.map +0 -1
  508. package/dist/fns/sortFns.cjs +0 -130
  509. package/dist/fns/sortFns.cjs.map +0 -1
  510. package/dist/fns/sortFns.d.cts +0 -65
  511. package/dist/fns/sortFns.d.ts +0 -65
  512. package/dist/fns/sortFns.js +0 -122
  513. package/dist/fns/sortFns.js.map +0 -1
  514. package/dist/helpers/columnHelper.cjs +0 -41
  515. package/dist/helpers/columnHelper.cjs.map +0 -1
  516. package/dist/helpers/columnHelper.d.cts +0 -71
  517. package/dist/helpers/columnHelper.js.map +0 -1
  518. package/dist/helpers/tableFeatures.cjs +0 -20
  519. package/dist/helpers/tableFeatures.cjs.map +0 -1
  520. package/dist/helpers/tableFeatures.d.cts +0 -18
  521. package/dist/helpers/tableFeatures.js.map +0 -1
  522. package/dist/helpers/tableOptions.cjs +0 -15
  523. package/dist/helpers/tableOptions.cjs.map +0 -1
  524. package/dist/helpers/tableOptions.d.cts +0 -57
  525. package/dist/helpers/tableOptions.js.map +0 -1
  526. package/dist/index.cjs +0 -133
  527. package/dist/index.d.cts +0 -78
  528. package/dist/reactivity.cjs +0 -4
  529. package/dist/reactivity.d.cts +0 -3
  530. package/dist/static-functions.cjs +0 -263
  531. package/dist/static-functions.d.cts +0 -21
  532. package/dist/store-reactivity-bindings.cjs +0 -44
  533. package/dist/store-reactivity-bindings.cjs.map +0 -1
  534. package/dist/store-reactivity-bindings.d.cts +0 -22
  535. package/dist/store-reactivity-bindings.js.map +0 -1
  536. package/dist/types/Cell.d.cts +0 -14
  537. package/dist/types/Column.d.cts +0 -36
  538. package/dist/types/ColumnDef.d.cts +0 -109
  539. package/dist/types/Header.d.cts +0 -16
  540. package/dist/types/HeaderGroup.d.cts +0 -10
  541. package/dist/types/Row.d.cts +0 -26
  542. package/dist/types/RowModel.d.cts +0 -36
  543. package/dist/types/RowModelFns.d.cts +0 -18
  544. package/dist/types/Table.d.cts +0 -70
  545. package/dist/types/TableFeatures.d.cts +0 -53
  546. package/dist/types/TableOptions.d.cts +0 -69
  547. package/dist/types/TableState.d.cts +0 -48
  548. package/dist/types/type-utils.d.cts +0 -23
  549. package/dist/utils.cjs +0 -243
  550. package/dist/utils.cjs.map +0 -1
  551. package/dist/utils.d.cts +0 -114
  552. package/dist/utils.js.map +0 -1
  553. package/skills/column-definitions/SKILL.md +0 -333
  554. package/skills/column-layout/SKILL.md +0 -328
  555. package/skills/column-layout/references/subsystems.md +0 -220
  556. package/skills/customizing-feature-behavior/SKILL.md +0 -416
  557. package/skills/filtering/SKILL.md +0 -357
  558. package/skills/filtering/references/faceting-and-fuzzy.md +0 -191
  559. package/skills/row-expanding/SKILL.md +0 -348
  560. package/skills/setup/SKILL.md +0 -400
  561. package/skills/state-management/SKILL.md +0 -388
  562. package/src/core/cells/constructCell.ts +0 -55
  563. package/src/core/cells/coreCellsFeature.ts +0 -27
  564. package/src/core/cells/coreCellsFeature.types.ts +0 -68
  565. package/src/core/cells/coreCellsFeature.utils.ts +0 -68
  566. package/src/core/columns/constructColumn.ts +0 -119
  567. package/src/core/columns/coreColumnsFeature.ts +0 -73
  568. package/src/core/columns/coreColumnsFeature.types.ts +0 -108
  569. package/src/core/columns/coreColumnsFeature.utils.ts +0 -275
  570. package/src/core/coreFeatures.ts +0 -31
  571. package/src/core/headers/buildHeaderGroups.ts +0 -182
  572. package/src/core/headers/constructHeader.ts +0 -67
  573. package/src/core/headers/coreHeadersFeature.ts +0 -56
  574. package/src/core/headers/coreHeadersFeature.types.ts +0 -125
  575. package/src/core/headers/coreHeadersFeature.utils.ts +0 -200
  576. package/src/core/reactivity/coreReactivityFeature.types.ts +0 -56
  577. package/src/core/reactivity/coreReactivityFeature.utils.ts +0 -44
  578. package/src/core/row-models/coreRowModelsFeature.ts +0 -62
  579. package/src/core/row-models/coreRowModelsFeature.types.ts +0 -64
  580. package/src/core/row-models/coreRowModelsFeature.utils.ts +0 -272
  581. package/src/core/row-models/createCoreRowModel.ts +0 -93
  582. package/src/core/rows/constructRow.ts +0 -66
  583. package/src/core/rows/coreRowsFeature.ts +0 -62
  584. package/src/core/rows/coreRowsFeature.types.ts +0 -117
  585. package/src/core/rows/coreRowsFeature.utils.ts +0 -264
  586. package/src/core/table/constructTable.ts +0 -172
  587. package/src/core/table/coreTablesFeature.ts +0 -19
  588. package/src/core/table/coreTablesFeature.types.ts +0 -216
  589. package/src/core/table/coreTablesFeature.utils.ts +0 -131
  590. package/src/features/column-faceting/columnFacetingFeature.ts +0 -89
  591. package/src/features/column-faceting/columnFacetingFeature.types.ts +0 -109
  592. package/src/features/column-faceting/columnFacetingFeature.utils.ts +0 -145
  593. package/src/features/column-faceting/createFacetedMinMaxValues.ts +0 -66
  594. package/src/features/column-faceting/createFacetedRowModel.ts +0 -85
  595. package/src/features/column-faceting/createFacetedUniqueValues.ts +0 -66
  596. package/src/features/column-filtering/columnFilteringFeature.ts +0 -86
  597. package/src/features/column-filtering/columnFilteringFeature.types.ts +0 -232
  598. package/src/features/column-filtering/columnFilteringFeature.utils.ts +0 -331
  599. package/src/features/column-filtering/createFilteredRowModel.ts +0 -183
  600. package/src/features/column-filtering/filterRowsUtils.ts +0 -157
  601. package/src/features/column-grouping/columnGroupingFeature.ts +0 -115
  602. package/src/features/column-grouping/columnGroupingFeature.types.ts +0 -226
  603. package/src/features/column-grouping/columnGroupingFeature.utils.ts +0 -354
  604. package/src/features/column-grouping/createGroupedRowModel.ts +0 -220
  605. package/src/features/column-ordering/columnOrderingFeature.ts +0 -73
  606. package/src/features/column-ordering/columnOrderingFeature.types.ts +0 -60
  607. package/src/features/column-ordering/columnOrderingFeature.utils.ts +0 -241
  608. package/src/features/column-pinning/columnPinningFeature.ts +0 -316
  609. package/src/features/column-pinning/columnPinningFeature.types.ts +0 -192
  610. package/src/features/column-pinning/columnPinningFeature.utils.ts +0 -908
  611. package/src/features/column-resizing/columnResizingFeature.ts +0 -65
  612. package/src/features/column-resizing/columnResizingFeature.types.ts +0 -89
  613. package/src/features/column-resizing/columnResizingFeature.utils.ts +0 -364
  614. package/src/features/column-sizing/columnSizingFeature.ts +0 -145
  615. package/src/features/column-sizing/columnSizingFeature.types.ts +0 -102
  616. package/src/features/column-sizing/columnSizingFeature.utils.ts +0 -381
  617. package/src/features/column-visibility/columnVisibilityFeature.ts +0 -122
  618. package/src/features/column-visibility/columnVisibilityFeature.types.ts +0 -112
  619. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +0 -384
  620. package/src/features/global-filtering/globalFilteringFeature.ts +0 -65
  621. package/src/features/global-filtering/globalFilteringFeature.types.ts +0 -91
  622. package/src/features/global-filtering/globalFilteringFeature.utils.ts +0 -118
  623. package/src/features/row-expanding/createExpandedRowModel.ts +0 -82
  624. package/src/features/row-expanding/rowExpandingFeature.ts +0 -94
  625. package/src/features/row-expanding/rowExpandingFeature.types.ts +0 -147
  626. package/src/features/row-expanding/rowExpandingFeature.utils.ts +0 -374
  627. package/src/features/row-pagination/createPaginatedRowModel.ts +0 -83
  628. package/src/features/row-pagination/rowPaginationFeature.ts +0 -95
  629. package/src/features/row-pagination/rowPaginationFeature.types.ts +0 -152
  630. package/src/features/row-pagination/rowPaginationFeature.utils.ts +0 -400
  631. package/src/features/row-pinning/rowPinningFeature.ts +0 -97
  632. package/src/features/row-pinning/rowPinningFeature.types.ts +0 -95
  633. package/src/features/row-pinning/rowPinningFeature.utils.ts +0 -323
  634. package/src/features/row-selection/rowSelectionFeature.ts +0 -140
  635. package/src/features/row-selection/rowSelectionFeature.types.ts +0 -151
  636. package/src/features/row-selection/rowSelectionFeature.utils.ts +0 -745
  637. package/src/features/row-sorting/createSortedRowModel.ts +0 -157
  638. package/src/features/row-sorting/rowSortingFeature.ts +0 -103
  639. package/src/features/row-sorting/rowSortingFeature.types.ts +0 -235
  640. package/src/features/row-sorting/rowSortingFeature.utils.ts +0 -489
  641. package/src/features/stockFeatures.ts +0 -53
  642. package/src/flex-render.ts +0 -70
  643. package/src/fns/aggregationFns.ts +0 -245
  644. package/src/fns/filterFns.ts +0 -382
  645. package/src/fns/sortFns.ts +0 -240
  646. package/src/helpers/columnHelper.ts +0 -122
  647. package/src/helpers/tableFeatures.ts +0 -24
  648. package/src/helpers/tableOptions.ts +0 -117
  649. package/src/index.ts +0 -138
  650. package/src/process-env.d.ts +0 -6
  651. package/src/reactivity.ts +0 -2
  652. package/src/static-functions.ts +0 -31
  653. package/src/store-reactivity-bindings.ts +0 -47
  654. package/src/types/Cell.ts +0 -21
  655. package/src/types/Column.ts +0 -51
  656. package/src/types/ColumnDef.ts +0 -228
  657. package/src/types/Header.ts +0 -23
  658. package/src/types/HeaderGroup.ts +0 -13
  659. package/src/types/Row.ts +0 -34
  660. package/src/types/RowModel.ts +0 -98
  661. package/src/types/RowModelFns.ts +0 -32
  662. package/src/types/Table.ts +0 -91
  663. package/src/types/TableFeatures.ts +0 -101
  664. package/src/types/TableOptions.ts +0 -101
  665. package/src/types/TableState.ts +0 -47
  666. package/src/types/type-utils.ts +0 -84
  667. package/src/utils.ts +0 -441
@@ -1,4 +1,4 @@
1
- import { cloneState } from "../../utils.js";
1
+ import { callMemoOrStaticFn, cloneState, copyInstancePropertiesWithoutMemos, hasOwn, makeObjectMap } from "../../utils.js";
2
2
 
3
3
  //#region src/features/row-selection/rowSelectionFeature.utils.ts
4
4
  /**
@@ -13,7 +13,7 @@ import { cloneState } from "../../utils.js";
13
13
  * ```
14
14
  */
15
15
  function getDefaultRowSelectionState() {
16
- return {};
16
+ return makeObjectMap();
17
17
  }
18
18
  /**
19
19
  * Routes a row selection updater through the table's selection change handler.
@@ -27,8 +27,7 @@ function getDefaultRowSelectionState() {
27
27
  * ```
28
28
  */
29
29
  function table_setRowSelection(table, updater) {
30
- var _table$options$onRowS, _table$options;
31
- (_table$options$onRowS = (_table$options = table.options).onRowSelectionChange) === null || _table$options$onRowS === void 0 || _table$options$onRowS.call(_table$options, updater);
30
+ table.options.onRowSelectionChange?.(updater);
32
31
  }
33
32
  /**
34
33
  * Resets `rowSelection` to the configured initial state or feature default.
@@ -43,7 +42,8 @@ function table_setRowSelection(table, updater) {
43
42
  * ```
44
43
  */
45
44
  function table_resetRowSelection(table, defaultState) {
46
- table_setRowSelection(table, defaultState ? {} : cloneState(table.initialState.rowSelection ?? {}));
45
+ table._lastSelectedRowId = null;
46
+ table_setRowSelection(table, defaultState ? makeObjectMap() : Object.assign(makeObjectMap(), cloneState(table.initialState.rowSelection ?? {})));
47
47
  }
48
48
  /**
49
49
  * Selects or deselects every selectable row before grouping.
@@ -56,14 +56,15 @@ function table_resetRowSelection(table, defaultState) {
56
56
  * table_toggleAllRowsSelected(table)
57
57
  * ```
58
58
  */
59
- function table_toggleAllRowsSelected(table, value) {
59
+ function table_toggleAllRowsSelected(table, value, opts) {
60
+ table._lastSelectedRowId = null;
60
61
  table_setRowSelection(table, (old) => {
61
- value = typeof value !== "undefined" ? value : !table_getIsAllRowsSelected(table);
62
- const rowSelection = { ...old };
62
+ value = typeof value !== "undefined" ? value : !callMemoOrStaticFn(table, "getIsAllRowsSelected", table_getIsAllRowsSelected);
63
+ if (opts?.deselectAll && !value) return makeObjectMap();
64
+ const rowSelection = Object.assign(makeObjectMap(), old);
63
65
  const preGroupedFlatRows = table.getPreGroupedRowModel().flatRows;
64
66
  if (value) preGroupedFlatRows.forEach((row) => {
65
- if (!row_getCanSelect(row)) return;
66
- rowSelection[row.id] = true;
67
+ if (row_getCanSelect(row)) rowSelection[row.id] = true;
67
68
  });
68
69
  else preGroupedFlatRows.forEach((row) => {
69
70
  delete rowSelection[row.id];
@@ -82,10 +83,12 @@ function table_toggleAllRowsSelected(table, value) {
82
83
  * table_toggleAllPageRowsSelected(table)
83
84
  * ```
84
85
  */
85
- function table_toggleAllPageRowsSelected(table, value) {
86
+ function table_toggleAllPageRowsSelected(table, value, opts) {
87
+ table._lastSelectedRowId = null;
86
88
  table_setRowSelection(table, (old) => {
87
- const resolvedValue = typeof value !== "undefined" ? value : !table_getIsAllPageRowsSelected(table);
88
- const rowSelection = { ...old };
89
+ const resolvedValue = typeof value !== "undefined" ? value : !callMemoOrStaticFn(table, "getIsAllPageRowsSelected", table_getIsAllPageRowsSelected);
90
+ if (opts?.deselectAll && !resolvedValue) return makeObjectMap();
91
+ const rowSelection = Object.assign(makeObjectMap(), old);
89
92
  table.getRowModel().rows.forEach((row) => {
90
93
  mutateRowIsSelected(rowSelection, row.id, resolvedValue, true, table);
91
94
  });
@@ -118,14 +121,13 @@ function table_getPreSelectedRowModel(table) {
118
121
  * ```
119
122
  */
120
123
  function table_getSelectedRowModel(table) {
121
- var _table$atoms$rowSelec;
122
124
  const rowModel = table.getCoreRowModel();
123
- if (!Object.keys(((_table$atoms$rowSelec = table.atoms.rowSelection) === null || _table$atoms$rowSelec === void 0 ? void 0 : _table$atoms$rowSelec.get()) ?? {}).length) return {
125
+ if (!callMemoOrStaticFn(table, "getIsSomeRowsSelected", table_getIsSomeRowsSelected)) return {
124
126
  rows: [],
125
127
  flatRows: [],
126
- rowsById: {}
128
+ rowsById: makeObjectMap()
127
129
  };
128
- return selectRowsFn(rowModel);
130
+ return selectRowsFn(rowModel, table);
129
131
  }
130
132
  /**
131
133
  * Builds a row model containing selected rows from the filtered row model.
@@ -139,14 +141,13 @@ function table_getSelectedRowModel(table) {
139
141
  * ```
140
142
  */
141
143
  function table_getFilteredSelectedRowModel(table) {
142
- var _table$atoms$rowSelec2;
143
- const rowModel = table.getCoreRowModel();
144
- if (!Object.keys(((_table$atoms$rowSelec2 = table.atoms.rowSelection) === null || _table$atoms$rowSelec2 === void 0 ? void 0 : _table$atoms$rowSelec2.get()) ?? {}).length) return {
144
+ const rowModel = table.getFilteredRowModel();
145
+ if (!callMemoOrStaticFn(table, "getIsSomeRowsSelected", table_getIsSomeRowsSelected)) return {
145
146
  rows: [],
146
147
  flatRows: [],
147
- rowsById: {}
148
+ rowsById: makeObjectMap()
148
149
  };
149
- return selectRowsFn(rowModel);
150
+ return selectRowsFn(rowModel, table);
150
151
  }
151
152
  /**
152
153
  * Builds a row model containing selected rows from the grouped row model.
@@ -160,14 +161,24 @@ function table_getFilteredSelectedRowModel(table) {
160
161
  * ```
161
162
  */
162
163
  function table_getGroupedSelectedRowModel(table) {
163
- var _table$atoms$rowSelec3;
164
- const rowModel = table.getCoreRowModel();
165
- if (!Object.keys(((_table$atoms$rowSelec3 = table.atoms.rowSelection) === null || _table$atoms$rowSelec3 === void 0 ? void 0 : _table$atoms$rowSelec3.get()) ?? {}).length) return {
164
+ const rowModel = table.getSortedRowModel();
165
+ if (!callMemoOrStaticFn(table, "getIsSomeRowsSelected", table_getIsSomeRowsSelected)) return {
166
166
  rows: [],
167
167
  flatRows: [],
168
- rowsById: {}
168
+ rowsById: makeObjectMap()
169
169
  };
170
- return selectRowsFn(rowModel);
170
+ return selectRowsFn(rowModel, table);
171
+ }
172
+ /**
173
+ * Returns the ids of all selected rows.
174
+ *
175
+ * @example
176
+ * ```ts
177
+ * const selectedRowIds = table_getSelectedRowIds(table)
178
+ * ```
179
+ */
180
+ function table_getSelectedRowIds(table) {
181
+ return Object.keys(table.atoms.rowSelection?.get() ?? {});
171
182
  }
172
183
  /**
173
184
  * Checks whether every selectable filtered row is selected.
@@ -181,12 +192,11 @@ function table_getGroupedSelectedRowModel(table) {
181
192
  * ```
182
193
  */
183
194
  function table_getIsAllRowsSelected(table) {
184
- var _table$atoms$rowSelec4;
185
195
  const preGroupedFlatRows = table.getFilteredRowModel().flatRows;
186
- const rowSelection = ((_table$atoms$rowSelec4 = table.atoms.rowSelection) === null || _table$atoms$rowSelec4 === void 0 ? void 0 : _table$atoms$rowSelec4.get()) ?? {};
196
+ const rowSelection = table.atoms.rowSelection?.get() ?? {};
187
197
  let isAllRowsSelected = Boolean(preGroupedFlatRows.length && Object.keys(rowSelection).length);
188
198
  if (isAllRowsSelected) {
189
- if (preGroupedFlatRows.some((row) => row_getCanSelect(row) && !rowSelection[row.id])) isAllRowsSelected = false;
199
+ if (preGroupedFlatRows.some((row) => row_getCanSelect(row) && !isRowSelected(row, rowSelection))) isAllRowsSelected = false;
190
200
  }
191
201
  return isAllRowsSelected;
192
202
  }
@@ -201,18 +211,16 @@ function table_getIsAllRowsSelected(table) {
201
211
  * ```
202
212
  */
203
213
  function table_getIsAllPageRowsSelected(table) {
204
- var _table$atoms$rowSelec5;
205
214
  const paginationFlatRows = table.getPaginatedRowModel().flatRows.filter((row) => row_getCanSelect(row));
206
- const rowSelection = ((_table$atoms$rowSelec5 = table.atoms.rowSelection) === null || _table$atoms$rowSelec5 === void 0 ? void 0 : _table$atoms$rowSelec5.get()) ?? {};
215
+ const rowSelection = table.atoms.rowSelection?.get() ?? {};
207
216
  let isAllPageRowsSelected = !!paginationFlatRows.length;
208
- if (isAllPageRowsSelected && paginationFlatRows.some((row) => !rowSelection[row.id])) isAllPageRowsSelected = false;
217
+ if (isAllPageRowsSelected && paginationFlatRows.some((row) => !isRowSelected(row, rowSelection))) isAllPageRowsSelected = false;
209
218
  return isAllPageRowsSelected;
210
219
  }
211
220
  /**
212
- * Checks whether selection is partially applied across filtered rows.
221
+ * Checks whether at least one row id is selected.
213
222
  *
214
- * The result is true when at least one row id is selected but fewer ids are
215
- * selected than the current filtered flat row count.
223
+ * The result stays true when every row is selected.
216
224
  *
217
225
  * @example
218
226
  * ```ts
@@ -220,15 +228,10 @@ function table_getIsAllPageRowsSelected(table) {
220
228
  * ```
221
229
  */
222
230
  function table_getIsSomeRowsSelected(table) {
223
- var _table$atoms$rowSelec6;
224
- const totalSelected = Object.keys(((_table$atoms$rowSelec6 = table.atoms.rowSelection) === null || _table$atoms$rowSelec6 === void 0 ? void 0 : _table$atoms$rowSelec6.get()) ?? {}).length;
225
- return totalSelected > 0 && totalSelected < table.getFilteredRowModel().flatRows.length;
231
+ return callMemoOrStaticFn(table, "getSelectedRowIds", table_getSelectedRowIds).length > 0;
226
232
  }
227
233
  /**
228
- * Checks whether the current page has a partial selection.
229
- *
230
- * This is false when all selectable page rows are selected. Otherwise it is true
231
- * if any selectable page row or descendant is selected.
234
+ * Checks whether at least one selectable row on the current page is selected.
232
235
  *
233
236
  * @example
234
237
  * ```ts
@@ -236,8 +239,7 @@ function table_getIsSomeRowsSelected(table) {
236
239
  * ```
237
240
  */
238
241
  function table_getIsSomePageRowsSelected(table) {
239
- const paginationFlatRows = table.getPaginatedRowModel().flatRows;
240
- return table_getIsAllPageRowsSelected(table) ? false : paginationFlatRows.filter((row) => row_getCanSelect(row)).some((row) => row_getIsSelected(row) || row_getIsSomeSelected(row));
242
+ return table.getPaginatedRowModel().flatRows.filter((row) => row_getCanSelect(row)).some((row) => row_getIsSelected(row) || callMemoOrStaticFn(row, "getIsSomeSelected", row_getIsSomeSelected));
241
243
  }
242
244
  /**
243
245
  * Creates a checkbox-style handler that selects or deselects all rows.
@@ -275,21 +277,25 @@ function table_getToggleAllPageRowsSelectedHandler(table) {
275
277
  * Selects or deselects this row.
276
278
  *
277
279
  * Omitting `value` toggles the row. Child rows are selected recursively unless
278
- * `opts.selectChildren` is `false` or sub-row selection is disabled.
280
+ * `opts.selectChildren` is `false`, sub-row selection is disabled, or the row
281
+ * only supports single selection.
279
282
  *
280
283
  * @example
281
284
  * ```ts
282
285
  * row_toggleSelected(row)
286
+ * row_toggleSelected(row, true)
287
+ * row_toggleSelected(row, false)
288
+ * row_toggleSelected(row, true, { selectChildren: false })
289
+ * row_toggleSelected(row, false, { selectChildren: false })
283
290
  * ```
284
291
  */
285
292
  function row_toggleSelected(row, value, opts) {
286
293
  const isSelected = row_getIsSelected(row);
287
294
  table_setRowSelection(row.table, (old) => {
288
295
  value = typeof value !== "undefined" ? value : !isSelected;
289
- if (row_getCanSelect(row) && isSelected === value) return old;
290
- const selectedRowIds = { ...old };
291
- mutateRowIsSelected(selectedRowIds, row.id, value, (opts === null || opts === void 0 ? void 0 : opts.selectChildren) ?? true, row.table);
292
- return selectedRowIds;
296
+ const rowSelection = Object.assign(makeObjectMap(), old);
297
+ mutateRowIsSelected(rowSelection, row.id, value, (opts?.selectChildren ?? true) && row_getCanMultiSelect(row), row.table);
298
+ return rowSelection;
293
299
  });
294
300
  }
295
301
  /**
@@ -303,7 +309,7 @@ function row_toggleSelected(row, value, opts) {
303
309
  * ```
304
310
  */
305
311
  function row_getIsSelected(row) {
306
- return isRowSelected(row);
312
+ return isRowSelected(row, row.table.atoms.rowSelection?.get() ?? {});
307
313
  }
308
314
  /**
309
315
  * Checks whether some, but not all, selectable descendants are selected.
@@ -383,28 +389,91 @@ function row_getCanMultiSelect(row) {
383
389
  * Creates a checkbox-style handler that selects or deselects this row.
384
390
  *
385
391
  * The handler is a no-op when the row cannot be selected and reads
386
- * `event.target.checked`.
392
+ * `event.target.checked`. Shift events select or deselect the inclusive range
393
+ * from the most recent selectable row handled by this table. Pass
394
+ * `selectChildren: false` to limit changes to rows explicitly present in the
395
+ * display-order interval.
387
396
  *
388
397
  * @example
389
398
  * ```ts
390
399
  * const onChange = row_getToggleSelectedHandler(row)
391
400
  * ```
392
401
  */
393
- function row_getToggleSelectedHandler(row) {
402
+ function row_getToggleSelectedHandler(row, opts) {
394
403
  const canSelect = row_getCanSelect(row);
395
404
  return (e) => {
396
405
  if (!canSelect) return;
397
- row_toggleSelected(row, e.target.checked);
406
+ const event = e;
407
+ const table = row.table;
408
+ const checked = event.target.checked;
409
+ const anchorId = table._lastSelectedRowId;
410
+ if (!(table.options.enableRowRangeSelection !== false && anchorId !== null && row_getCanMultiSelect(row) && (table.options.isRowRangeSelectionEvent?.(e) ?? false)) || !selectRowRange(row, anchorId, checked, opts?.selectChildren ?? true)) row_toggleSelected(row, checked, opts);
411
+ table._lastSelectedRowId = row.id;
398
412
  };
399
413
  }
400
- const mutateRowIsSelected = (selectedRowIds, rowId, value, includeChildren, table) => {
414
+ /**
415
+ * Resolves and mutates an inclusive interval in the table's latest logical
416
+ * display order.
417
+ *
418
+ * The anchor is resolved without throwing from the pre-pagination row model,
419
+ * then the core row model. Both endpoint display indexes must still identify
420
+ * those rows in the current order and both endpoints must support
421
+ * multi-selection. Eligible interval rows are applied through one row
422
+ * selection updater; non-selectable and non-multi-selectable rows are skipped.
423
+ * Returns `false` when the interaction should fall back to an ordinary toggle.
424
+ */
425
+ function selectRowRange(row, anchorId, value, includeChildren) {
426
+ const table = row.table;
427
+ const rows = table.getRowsInDisplayOrder();
428
+ const anchorRow = table.getPrePaginatedRowModel().rowsById[anchorId] ?? table.getCoreRowModel().rowsById[anchorId];
429
+ if (!anchorRow) return false;
430
+ const anchorIndex = anchorRow.getDisplayIndex();
431
+ const rowIndex = row.getDisplayIndex();
432
+ const anchorAtIndex = rows[anchorIndex];
433
+ const rowAtIndex = rows[rowIndex];
434
+ if (anchorIndex < 0 || rowIndex < 0 || anchorIndex >= rows.length || rowIndex >= rows.length || anchorAtIndex?.id !== anchorRow.id || rowAtIndex?.id !== row.id || !row_getCanMultiSelect(anchorRow) || !row_getCanMultiSelect(row)) return false;
435
+ const start = Math.min(anchorIndex, rowIndex);
436
+ const end = Math.max(anchorIndex, rowIndex);
437
+ table_setRowSelection(table, (old) => {
438
+ const rowSelection = Object.assign(makeObjectMap(), old);
439
+ for (let index = start; index <= end; index++) {
440
+ const rangeRow = rows[index];
441
+ if (!row_getCanSelect(rangeRow) || !row_getCanMultiSelect(rangeRow)) continue;
442
+ mutateRowIsSelected(rowSelection, rangeRow.id, value, includeChildren, table);
443
+ }
444
+ return rowSelection;
445
+ });
446
+ return true;
447
+ }
448
+ const mutateRowIsSelected = (rowSelection, rowId, value, includeChildren, table) => {
401
449
  const row = table.getRow(rowId, true);
402
450
  if (value) {
403
- if (!row_getCanMultiSelect(row)) Object.keys(selectedRowIds).forEach((key) => delete selectedRowIds[key]);
404
- if (row_getCanSelect(row)) selectedRowIds[rowId] = true;
405
- } else delete selectedRowIds[rowId];
406
- if (includeChildren && row.subRows.length && row_getCanSelectSubRows(row)) row.subRows.forEach((r) => mutateRowIsSelected(selectedRowIds, r.id, value, includeChildren, table));
451
+ if (!row_getCanMultiSelect(row)) Object.keys(rowSelection).forEach((key) => delete rowSelection[key]);
452
+ if (row_getCanSelect(row)) rowSelection[rowId] = true;
453
+ } else delete rowSelection[rowId];
454
+ if (includeChildren && row.subRows.length && row_getCanSelectSubRows(row)) row.subRows.forEach((r) => mutateRowIsSelected(rowSelection, r.id, value, includeChildren, table));
407
455
  };
456
+ function selectRowsRecursively(rows, rowSelection, selectedFlatRows, selectedRowsById) {
457
+ const result = [];
458
+ for (let i = 0; i < rows.length; i++) {
459
+ const row = rows[i];
460
+ const isSelected = isRowSelected(row, rowSelection);
461
+ if (isSelected) {
462
+ selectedFlatRows.push(row);
463
+ selectedRowsById[row.id] = row;
464
+ }
465
+ if (row.subRows.length) {
466
+ const newSubRows = selectRowsRecursively(row.subRows, rowSelection, selectedFlatRows, selectedRowsById);
467
+ if (isSelected) {
468
+ const cloned = Object.create(Object.getPrototypeOf(row));
469
+ copyInstancePropertiesWithoutMemos(cloned, row);
470
+ cloned.subRows = newSubRows;
471
+ result.push(cloned);
472
+ }
473
+ } else if (isSelected) result.push(row);
474
+ }
475
+ return result;
476
+ }
408
477
  /**
409
478
  * Builds a row model containing rows selected by the current row selection state.
410
479
  *
@@ -416,28 +485,12 @@ const mutateRowIsSelected = (selectedRowIds, rowId, value, includeChildren, tabl
416
485
  * const selectedRows = selectRowsFn(rowModel)
417
486
  * ```
418
487
  */
419
- function selectRowsFn(rowModel) {
488
+ function selectRowsFn(rowModel, table) {
420
489
  const newSelectedFlatRows = [];
421
- const newSelectedRowsById = {};
422
- const recurseRows = (rows, depth = 0) => {
423
- const result = [];
424
- for (let i = 0; i < rows.length; i++) {
425
- let row = rows[i];
426
- const isSelected = isRowSelected(row);
427
- if (isSelected) {
428
- newSelectedFlatRows.push(row);
429
- newSelectedRowsById[row.id] = row;
430
- }
431
- if (row.subRows.length) row = {
432
- ...row,
433
- subRows: recurseRows(row.subRows, depth + 1)
434
- };
435
- if (isSelected) result.push(row);
436
- }
437
- return result;
438
- };
490
+ const newSelectedRowsById = makeObjectMap();
491
+ const rowSelection = table.atoms.rowSelection?.get() ?? {};
439
492
  return {
440
- rows: recurseRows(rowModel.rows),
493
+ rows: selectRowsRecursively(rowModel.rows, rowSelection, newSelectedFlatRows, newSelectedRowsById),
441
494
  flatRows: newSelectedFlatRows,
442
495
  rowsById: newSelectedRowsById
443
496
  };
@@ -450,9 +503,8 @@ function selectRowsFn(rowModel) {
450
503
  * const selected = isRowSelected(row)
451
504
  * ```
452
505
  */
453
- function isRowSelected(row) {
454
- var _row$table$atoms$rowS;
455
- return (((_row$table$atoms$rowS = row.table.atoms.rowSelection) === null || _row$table$atoms$rowS === void 0 ? void 0 : _row$table$atoms$rowS.get()) ?? {})[row.id] ?? false;
506
+ function isRowSelected(row, rowSelection) {
507
+ return !!(hasOwn(rowSelection, row.id) && rowSelection[row.id]);
456
508
  }
457
509
  /**
458
510
  * Returns whether all, some, or none of a row's selectable descendants are selected.
@@ -466,11 +518,13 @@ function isRowSelected(row) {
466
518
  */
467
519
  function isSubRowSelected(row) {
468
520
  if (!row.subRows.length) return false;
469
- let allChildrenSelected = true;
521
+ const rowSelection = row.table.atoms.rowSelection?.get() ?? {};
470
522
  let someSelected = false;
471
- row.subRows.forEach((subRow) => {
472
- if (someSelected && !allChildrenSelected) return;
473
- if (row_getCanSelect(subRow)) if (isRowSelected(subRow)) someSelected = true;
523
+ let allChildrenSelected = true;
524
+ for (let i = 0; i < row.subRows.length; i++) {
525
+ const subRow = row.subRows[i];
526
+ if (someSelected && !allChildrenSelected) break;
527
+ if (row_getCanSelect(subRow)) if (isRowSelected(subRow, rowSelection)) someSelected = true;
474
528
  else allChildrenSelected = false;
475
529
  if (subRow.subRows.length) {
476
530
  const subRowChildrenSelected = isSubRowSelected(subRow);
@@ -480,10 +534,9 @@ function isSubRowSelected(row) {
480
534
  allChildrenSelected = false;
481
535
  } else allChildrenSelected = false;
482
536
  }
483
- });
537
+ }
484
538
  return allChildrenSelected ? "all" : someSelected ? "some" : false;
485
539
  }
486
540
 
487
541
  //#endregion
488
- export { getDefaultRowSelectionState, isRowSelected, isSubRowSelected, row_getCanMultiSelect, row_getCanSelect, row_getCanSelectSubRows, row_getIsAllSubRowsSelected, row_getIsSelected, row_getIsSomeSelected, row_getToggleSelectedHandler, row_toggleSelected, selectRowsFn, table_getFilteredSelectedRowModel, table_getGroupedSelectedRowModel, table_getIsAllPageRowsSelected, table_getIsAllRowsSelected, table_getIsSomePageRowsSelected, table_getIsSomeRowsSelected, table_getPreSelectedRowModel, table_getSelectedRowModel, table_getToggleAllPageRowsSelectedHandler, table_getToggleAllRowsSelectedHandler, table_resetRowSelection, table_setRowSelection, table_toggleAllPageRowsSelected, table_toggleAllRowsSelected };
489
- //# sourceMappingURL=rowSelectionFeature.utils.js.map
542
+ export { getDefaultRowSelectionState, isRowSelected, isSubRowSelected, row_getCanMultiSelect, row_getCanSelect, row_getCanSelectSubRows, row_getIsAllSubRowsSelected, row_getIsSelected, row_getIsSomeSelected, row_getToggleSelectedHandler, row_toggleSelected, selectRowsFn, table_getFilteredSelectedRowModel, table_getGroupedSelectedRowModel, table_getIsAllPageRowsSelected, table_getIsAllRowsSelected, table_getIsSomePageRowsSelected, table_getIsSomeRowsSelected, table_getPreSelectedRowModel, table_getSelectedRowIds, table_getSelectedRowModel, table_getToggleAllPageRowsSelectedHandler, table_getToggleAllRowsSelectedHandler, table_resetRowSelection, table_setRowSelection, table_toggleAllPageRowsSelected, table_toggleAllRowsSelected };
@@ -1,16 +1,20 @@
1
1
  import { RowData } from "../../types/type-utils.js";
2
- import { SortFn, SortFns } from "./rowSortingFeature.types.js";
3
- import { TableFeatures } from "../../types/TableFeatures.js";
4
- import { Table } from "../../types/Table.js";
5
2
  import { RowModel } from "../../core/row-models/coreRowModelsFeature.types.js";
6
-
3
+ import { Table } from "../../types/Table.js";
4
+ import { TableFeatures } from "../../types/TableFeatures.js";
7
5
  //#region src/features/row-sorting/createSortedRowModel.d.ts
8
6
  /**
9
7
  * Creates a memoized sorted row model factory.
10
8
  *
11
9
  * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.
10
+ *
11
+ * Register the sorting functions you use with the `sortFns` slot on the
12
+ * `features` option:
13
+ * `tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), sortFns: { alphanumeric: sortFn_alphanumeric } })`.
14
+ * Importing individual `sortFn_*` functions keeps unused built-ins out of
15
+ * your bundle; sorting functions passed directly to the `sortFn` column
16
+ * option need no registration at all.
12
17
  */
13
- declare function createSortedRowModel<TFeatures extends TableFeatures, TData extends RowData>(sortFns: Record<keyof SortFns, SortFn<TFeatures, TData>>): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData>;
18
+ declare function createSortedRowModel<TFeatures extends TableFeatures, TData extends RowData>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData>;
14
19
  //#endregion
15
- export { createSortedRowModel };
16
- //# sourceMappingURL=createSortedRowModel.d.ts.map
20
+ export { createSortedRowModel };
@@ -1,4 +1,4 @@
1
- import { tableMemo } from "../../utils.js";
1
+ import { copyInstancePropertiesWithoutMemos, tableMemo } from "../../utils.js";
2
2
  import { table_autoResetPageIndex } from "../row-pagination/rowPaginationFeature.utils.js";
3
3
  import { column_getCanSort, column_getSortFn } from "./rowSortingFeature.utils.js";
4
4
 
@@ -7,89 +7,107 @@ import { column_getCanSort, column_getSortFn } from "./rowSortingFeature.utils.j
7
7
  * Creates a memoized sorted row model factory.
8
8
  *
9
9
  * The factory reads the relevant table state atoms and options, then returns a row model function used by the table row-model pipeline.
10
+ *
11
+ * Register the sorting functions you use with the `sortFns` slot on the
12
+ * `features` option:
13
+ * `tableFeatures({ rowSortingFeature, sortedRowModel: createSortedRowModel(), sortFns: { alphanumeric: sortFn_alphanumeric } })`.
14
+ * Importing individual `sortFn_*` functions keeps unused built-ins out of
15
+ * your bundle; sorting functions passed directly to the `sortFn` column
16
+ * option need no registration at all.
10
17
  */
11
- function createSortedRowModel(sortFns) {
18
+ function createSortedRowModel() {
12
19
  return (_table) => {
13
20
  const table = _table;
14
- if (!table._rowModelFns.sortFns) table._rowModelFns.sortFns = sortFns;
15
21
  return tableMemo({
16
22
  feature: "rowSortingFeature",
17
23
  table,
18
24
  fnName: "table.getSortedRowModel",
19
- memoDeps: () => {
20
- var _table$atoms$sorting;
21
- return [(_table$atoms$sorting = table.atoms.sorting) === null || _table$atoms$sorting === void 0 ? void 0 : _table$atoms$sorting.get(), table.getPreSortedRowModel()];
22
- },
25
+ memoDeps: () => [table.atoms.sorting?.get(), table.getPreSortedRowModel()],
23
26
  fn: () => _createSortedRowModel(table),
24
27
  onAfterUpdate: () => table_autoResetPageIndex(table)
25
28
  });
26
29
  };
27
30
  }
28
31
  function _createSortedRowModel(table) {
29
- var _table$atoms$sorting2;
30
32
  const preSortedRowModel = table.getPreSortedRowModel();
31
- const sorting = (_table$atoms$sorting2 = table.atoms.sorting) === null || _table$atoms$sorting2 === void 0 ? void 0 : _table$atoms$sorting2.get();
32
- if (!preSortedRowModel.rows.length || !(sorting === null || sorting === void 0 ? void 0 : sorting.length)) return preSortedRowModel;
33
+ const sorting = table.atoms.sorting?.get();
34
+ if (!preSortedRowModel.rows.length || !sorting?.length) return preSortedRowModel;
33
35
  const sortedFlatRows = [];
34
- const availableSorting = sorting.filter((sort) => column_getCanSort(table.getColumn(sort.id)));
35
- const columnInfoById = {};
36
- availableSorting.forEach((sortEntry) => {
36
+ const availableSorting = sorting.filter((sort) => {
37
+ const column = table.getColumn(sort.id);
38
+ return column ? column_getCanSort(column) : false;
39
+ });
40
+ if (!availableSorting.length) return preSortedRowModel;
41
+ const resolvedSorting = [];
42
+ for (let i = 0; i < availableSorting.length; i++) {
43
+ const sortEntry = availableSorting[i];
37
44
  const column = table.getColumn(sortEntry.id);
38
- if (!column) return;
39
- columnInfoById[sortEntry.id] = {
45
+ if (!column) continue;
46
+ resolvedSorting.push({
47
+ id: sortEntry.id,
48
+ desc: sortEntry.desc,
40
49
  sortUndefined: column.columnDef.sortUndefined,
41
50
  invertSorting: column.columnDef.invertSorting,
42
51
  sortFn: column_getSortFn(column)
43
- };
44
- });
45
- const sortData = (rows) => {
46
- const sortedData = rows.slice();
47
- sortedData.sort((rowA, rowB) => {
48
- for (let i = 0; i < availableSorting.length; i++) {
49
- const sortEntry = availableSorting[i];
50
- const columnInfo = columnInfoById[sortEntry.id];
51
- const sortUndefined = columnInfo.sortUndefined;
52
- const isDesc = sortEntry.desc;
53
- let sortInt = 0;
54
- if (sortUndefined) {
55
- const aValue = rowA.getValue(sortEntry.id);
56
- const bValue = rowB.getValue(sortEntry.id);
57
- const aUndefined = aValue === void 0;
58
- const bUndefined = bValue === void 0;
59
- if (aUndefined || bUndefined) {
60
- if (sortUndefined === "first") return aUndefined ? -1 : 1;
61
- if (sortUndefined === "last") return aUndefined ? 1 : -1;
62
- sortInt = aUndefined && bUndefined ? 0 : aUndefined ? sortUndefined : -sortUndefined;
63
- }
64
- }
65
- if (sortInt === 0) sortInt = columnInfo.sortFn(rowA, rowB, sortEntry.id);
66
- if (sortInt !== 0) {
67
- if (isDesc) sortInt *= -1;
68
- if (columnInfo.invertSorting) sortInt *= -1;
69
- return sortInt;
52
+ });
53
+ }
54
+ const compareRows = (rowA, rowB) => {
55
+ for (let i = 0; i < resolvedSorting.length; i++) {
56
+ const sortEntry = resolvedSorting[i];
57
+ const sortUndefined = sortEntry.sortUndefined;
58
+ const isDesc = sortEntry.desc;
59
+ let sortInt = 0;
60
+ if (sortUndefined) {
61
+ const aValue = rowA.getValue(sortEntry.id);
62
+ const bValue = rowB.getValue(sortEntry.id);
63
+ const aUndefined = aValue === void 0;
64
+ const bUndefined = bValue === void 0;
65
+ if (aUndefined && bUndefined) continue;
66
+ if (aUndefined || bUndefined) {
67
+ if (sortUndefined === "first") return aUndefined ? -1 : 1;
68
+ if (sortUndefined === "last") return aUndefined ? 1 : -1;
69
+ sortInt = aUndefined ? sortUndefined : -sortUndefined;
70
70
  }
71
71
  }
72
- return rowA.index - rowB.index;
73
- });
72
+ if (sortInt === 0) sortInt = sortEntry.sortFn(rowA, rowB, sortEntry.id);
73
+ if (sortInt !== 0) {
74
+ if (isDesc) sortInt *= -1;
75
+ if (sortEntry.invertSorting) sortInt *= -1;
76
+ return sortInt;
77
+ }
78
+ }
79
+ return rowA.index - rowB.index;
80
+ };
81
+ const sortData = (rows) => {
82
+ const sortedData = rows.slice();
83
+ sortedData.sort(compareRows);
84
+ let changed = false;
74
85
  for (let i = 0; i < sortedData.length; i++) {
75
86
  const row = sortedData[i];
87
+ if (row !== rows[i]) changed = true;
76
88
  if (row.subRows.length) {
77
- const cloned = Object.create(Object.getPrototypeOf(row));
78
- Object.assign(cloned, row);
79
- cloned.subRows = sortData(row.subRows);
80
- sortedData[i] = cloned;
81
- sortedFlatRows.push(cloned);
89
+ const sortedSubRows = sortData(row.subRows);
90
+ if (sortedSubRows.changed) {
91
+ const cloned = Object.create(Object.getPrototypeOf(row));
92
+ copyInstancePropertiesWithoutMemos(cloned, row);
93
+ cloned.subRows = sortedSubRows.rows;
94
+ sortedData[i] = cloned;
95
+ sortedFlatRows.push(cloned);
96
+ changed = true;
97
+ } else sortedFlatRows.push(row);
82
98
  } else sortedFlatRows.push(row);
83
99
  }
84
- return sortedData;
100
+ return {
101
+ rows: sortedData,
102
+ changed
103
+ };
85
104
  };
86
105
  return {
87
- rows: sortData(preSortedRowModel.rows),
106
+ rows: sortData(preSortedRowModel.rows).rows,
88
107
  flatRows: sortedFlatRows,
89
108
  rowsById: preSortedRowModel.rowsById
90
109
  };
91
110
  }
92
111
 
93
112
  //#endregion
94
- export { createSortedRowModel };
95
- //# sourceMappingURL=createSortedRowModel.js.map
113
+ export { createSortedRowModel };
@@ -1,10 +1,8 @@
1
1
  import { TableFeature } from "../../types/TableFeatures.js";
2
-
3
2
  //#region src/features/row-sorting/rowSortingFeature.d.ts
4
3
  /**
5
4
  * Feature that adds row sorting state, defaults, and column/table sorting APIs.
6
5
  */
7
6
  declare const rowSortingFeature: TableFeature;
8
7
  //#endregion
9
- export { rowSortingFeature };
10
- //# sourceMappingURL=rowSortingFeature.d.ts.map
8
+ export { rowSortingFeature };
@@ -51,5 +51,4 @@ const rowSortingFeature = {
51
51
  };
52
52
 
53
53
  //#endregion
54
- export { rowSortingFeature };
55
- //# sourceMappingURL=rowSortingFeature.js.map
54
+ export { rowSortingFeature };