@tanstack/table-core 9.0.0-alpha.8 → 9.0.0-beta.10

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 (862) hide show
  1. package/README.md +127 -0
  2. package/dist/core/cells/constructCell.cjs +34 -0
  3. package/dist/core/cells/constructCell.cjs.map +1 -0
  4. package/dist/core/cells/constructCell.d.cts +17 -0
  5. package/dist/core/cells/constructCell.d.ts +17 -0
  6. package/dist/core/cells/constructCell.js +33 -0
  7. package/dist/core/cells/constructCell.js.map +1 -0
  8. package/dist/core/cells/coreCellsFeature.cjs +21 -0
  9. package/dist/core/cells/coreCellsFeature.cjs.map +1 -0
  10. package/dist/core/cells/coreCellsFeature.d.cts +10 -0
  11. package/dist/core/cells/coreCellsFeature.d.ts +10 -0
  12. package/dist/core/cells/coreCellsFeature.js +21 -0
  13. package/dist/core/cells/coreCellsFeature.js.map +1 -0
  14. package/dist/core/cells/coreCellsFeature.types.d.cts +57 -0
  15. package/dist/core/cells/coreCellsFeature.types.d.ts +57 -0
  16. package/dist/core/cells/coreCellsFeature.utils.cjs +57 -0
  17. package/dist/core/cells/coreCellsFeature.utils.cjs.map +1 -0
  18. package/dist/core/cells/coreCellsFeature.utils.d.cts +53 -0
  19. package/dist/core/cells/coreCellsFeature.utils.d.ts +53 -0
  20. package/dist/core/cells/coreCellsFeature.utils.js +54 -0
  21. package/dist/core/cells/coreCellsFeature.utils.js.map +1 -0
  22. package/dist/core/columns/constructColumn.cjs +61 -0
  23. package/dist/core/columns/constructColumn.cjs.map +1 -0
  24. package/dist/core/columns/constructColumn.d.cts +16 -0
  25. package/dist/core/columns/constructColumn.d.ts +16 -0
  26. package/dist/core/columns/constructColumn.js +60 -0
  27. package/dist/core/columns/constructColumn.js.map +1 -0
  28. package/dist/core/columns/coreColumnsFeature.cjs +70 -0
  29. package/dist/core/columns/coreColumnsFeature.cjs.map +1 -0
  30. package/dist/core/columns/coreColumnsFeature.d.cts +10 -0
  31. package/dist/core/columns/coreColumnsFeature.d.ts +10 -0
  32. package/dist/core/columns/coreColumnsFeature.js +70 -0
  33. package/dist/core/columns/coreColumnsFeature.js.map +1 -0
  34. package/dist/core/columns/coreColumnsFeature.types.d.cts +94 -0
  35. package/dist/core/columns/coreColumnsFeature.types.d.ts +94 -0
  36. package/dist/core/columns/coreColumnsFeature.utils.cjs +187 -0
  37. package/dist/core/columns/coreColumnsFeature.utils.cjs.map +1 -0
  38. package/dist/core/columns/coreColumnsFeature.utils.d.cts +119 -0
  39. package/dist/core/columns/coreColumnsFeature.utils.d.ts +119 -0
  40. package/dist/core/columns/coreColumnsFeature.utils.js +179 -0
  41. package/dist/core/columns/coreColumnsFeature.utils.js.map +1 -0
  42. package/dist/core/coreFeatures.cjs +25 -0
  43. package/dist/core/coreFeatures.cjs.map +1 -0
  44. package/dist/core/coreFeatures.d.cts +26 -0
  45. package/dist/core/coreFeatures.d.ts +26 -0
  46. package/dist/core/coreFeatures.js +25 -0
  47. package/dist/core/coreFeatures.js.map +1 -0
  48. package/dist/core/headers/buildHeaderGroups.cjs +103 -0
  49. package/dist/core/headers/buildHeaderGroups.cjs.map +1 -0
  50. package/dist/core/headers/buildHeaderGroups.d.cts +16 -0
  51. package/dist/core/headers/buildHeaderGroups.d.ts +16 -0
  52. package/dist/core/headers/buildHeaderGroups.js +103 -0
  53. package/dist/core/headers/buildHeaderGroups.js.map +1 -0
  54. package/dist/core/headers/constructHeader.cjs +41 -0
  55. package/dist/core/headers/constructHeader.cjs.map +1 -0
  56. package/dist/core/headers/constructHeader.d.cts +22 -0
  57. package/dist/core/headers/constructHeader.d.ts +22 -0
  58. package/dist/core/headers/constructHeader.js +40 -0
  59. package/dist/core/headers/constructHeader.js.map +1 -0
  60. package/dist/core/headers/coreHeadersFeature.cjs +55 -0
  61. package/dist/core/headers/coreHeadersFeature.cjs.map +1 -0
  62. package/dist/core/headers/coreHeadersFeature.d.cts +10 -0
  63. package/dist/core/headers/coreHeadersFeature.d.ts +10 -0
  64. package/dist/core/headers/coreHeadersFeature.js +55 -0
  65. package/dist/core/headers/coreHeadersFeature.js.map +1 -0
  66. package/dist/core/headers/coreHeadersFeature.types.d.cts +106 -0
  67. package/dist/core/headers/coreHeadersFeature.types.d.ts +106 -0
  68. package/dist/core/headers/coreHeadersFeature.utils.cjs +142 -0
  69. package/dist/core/headers/coreHeadersFeature.utils.cjs.map +1 -0
  70. package/dist/core/headers/coreHeadersFeature.utils.d.cts +85 -0
  71. package/dist/core/headers/coreHeadersFeature.utils.d.ts +85 -0
  72. package/dist/core/headers/coreHeadersFeature.utils.js +137 -0
  73. package/dist/core/headers/coreHeadersFeature.utils.js.map +1 -0
  74. package/dist/core/reactivity/coreReactivityFeature.types.d.cts +48 -0
  75. package/dist/core/reactivity/coreReactivityFeature.types.d.ts +48 -0
  76. package/dist/core/reactivity/coreReactivityFeature.utils.cjs +24 -0
  77. package/dist/core/reactivity/coreReactivityFeature.utils.cjs.map +1 -0
  78. package/dist/core/reactivity/coreReactivityFeature.utils.d.cts +24 -0
  79. package/dist/core/reactivity/coreReactivityFeature.utils.d.ts +24 -0
  80. package/dist/core/reactivity/coreReactivityFeature.utils.js +23 -0
  81. package/dist/core/reactivity/coreReactivityFeature.utils.js.map +1 -0
  82. package/dist/core/row-models/coreRowModelsFeature.cjs +27 -0
  83. package/dist/core/row-models/coreRowModelsFeature.cjs.map +1 -0
  84. package/dist/core/row-models/coreRowModelsFeature.d.cts +10 -0
  85. package/dist/core/row-models/coreRowModelsFeature.d.ts +10 -0
  86. package/dist/core/row-models/coreRowModelsFeature.js +27 -0
  87. package/dist/core/row-models/coreRowModelsFeature.js.map +1 -0
  88. package/dist/core/row-models/coreRowModelsFeature.types.d.cts +33 -0
  89. package/dist/core/row-models/coreRowModelsFeature.types.d.ts +33 -0
  90. package/dist/core/row-models/coreRowModelsFeature.utils.cjs +215 -0
  91. package/dist/core/row-models/coreRowModelsFeature.utils.cjs.map +1 -0
  92. package/dist/core/row-models/coreRowModelsFeature.utils.d.cts +153 -0
  93. package/dist/core/row-models/coreRowModelsFeature.utils.d.ts +153 -0
  94. package/dist/core/row-models/coreRowModelsFeature.utils.js +204 -0
  95. package/dist/core/row-models/coreRowModelsFeature.utils.js.map +1 -0
  96. package/dist/core/row-models/createCoreRowModel.cjs +52 -0
  97. package/dist/core/row-models/createCoreRowModel.cjs.map +1 -0
  98. package/dist/core/row-models/createCoreRowModel.d.cts +15 -0
  99. package/dist/core/row-models/createCoreRowModel.d.ts +15 -0
  100. package/dist/core/row-models/createCoreRowModel.js +52 -0
  101. package/dist/core/row-models/createCoreRowModel.js.map +1 -0
  102. package/dist/core/rows/constructRow.cjs +44 -0
  103. package/dist/core/rows/constructRow.cjs.map +1 -0
  104. package/dist/core/rows/constructRow.d.cts +15 -0
  105. package/dist/core/rows/constructRow.d.ts +15 -0
  106. package/dist/core/rows/constructRow.js +43 -0
  107. package/dist/core/rows/constructRow.js.map +1 -0
  108. package/dist/core/rows/coreRowsFeature.cjs +37 -0
  109. package/dist/core/rows/coreRowsFeature.cjs.map +1 -0
  110. package/dist/core/rows/coreRowsFeature.d.cts +10 -0
  111. package/dist/core/rows/coreRowsFeature.d.ts +10 -0
  112. package/dist/core/rows/coreRowsFeature.js +37 -0
  113. package/dist/core/rows/coreRowsFeature.js.map +1 -0
  114. package/dist/core/rows/coreRowsFeature.types.d.cts +99 -0
  115. package/dist/core/rows/coreRowsFeature.types.d.ts +99 -0
  116. package/dist/core/rows/coreRowsFeature.utils.cjs +192 -0
  117. package/dist/core/rows/coreRowsFeature.utils.cjs.map +1 -0
  118. package/dist/core/rows/coreRowsFeature.utils.d.cts +127 -0
  119. package/dist/core/rows/coreRowsFeature.utils.d.ts +127 -0
  120. package/dist/core/rows/coreRowsFeature.utils.js +183 -0
  121. package/dist/core/rows/coreRowsFeature.utils.js.map +1 -0
  122. package/dist/core/table/constructTable.cjs +133 -0
  123. package/dist/core/table/constructTable.cjs.map +1 -0
  124. package/dist/core/table/constructTable.d.cts +22 -0
  125. package/dist/core/table/constructTable.d.ts +22 -0
  126. package/dist/core/table/constructTable.js +132 -0
  127. package/dist/core/table/constructTable.js.map +1 -0
  128. package/dist/core/table/coreTablesFeature.cjs +17 -0
  129. package/dist/core/table/coreTablesFeature.cjs.map +1 -0
  130. package/dist/core/table/coreTablesFeature.d.cts +10 -0
  131. package/dist/core/table/coreTablesFeature.d.ts +10 -0
  132. package/dist/core/table/coreTablesFeature.js +17 -0
  133. package/dist/core/table/coreTablesFeature.js.map +1 -0
  134. package/dist/core/table/coreTablesFeature.types.d.cts +198 -0
  135. package/dist/core/table/coreTablesFeature.types.d.ts +198 -0
  136. package/dist/core/table/coreTablesFeature.utils.cjs +95 -0
  137. package/dist/core/table/coreTablesFeature.utils.cjs.map +1 -0
  138. package/dist/core/table/coreTablesFeature.utils.d.cts +57 -0
  139. package/dist/core/table/coreTablesFeature.utils.d.ts +57 -0
  140. package/dist/core/table/coreTablesFeature.utils.js +92 -0
  141. package/dist/core/table/coreTablesFeature.utils.js.map +1 -0
  142. package/dist/features/column-faceting/columnFacetingFeature.cjs +61 -0
  143. package/dist/features/column-faceting/columnFacetingFeature.cjs.map +1 -0
  144. package/dist/features/column-faceting/columnFacetingFeature.d.cts +10 -0
  145. package/dist/features/column-faceting/columnFacetingFeature.d.ts +10 -0
  146. package/dist/features/column-faceting/columnFacetingFeature.js +61 -0
  147. package/dist/features/column-faceting/columnFacetingFeature.js.map +1 -0
  148. package/dist/features/column-faceting/columnFacetingFeature.types.d.cts +64 -0
  149. package/dist/features/column-faceting/columnFacetingFeature.types.d.ts +64 -0
  150. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs +103 -0
  151. package/dist/features/column-faceting/columnFacetingFeature.utils.cjs.map +1 -0
  152. package/dist/features/column-faceting/columnFacetingFeature.utils.d.cts +84 -0
  153. package/dist/features/column-faceting/columnFacetingFeature.utils.d.ts +84 -0
  154. package/dist/features/column-faceting/columnFacetingFeature.utils.js +97 -0
  155. package/dist/features/column-faceting/columnFacetingFeature.utils.js.map +1 -0
  156. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs +44 -0
  157. package/dist/features/column-faceting/createFacetedMinMaxValues.cjs.map +1 -0
  158. package/dist/features/column-faceting/createFacetedMinMaxValues.d.cts +14 -0
  159. package/dist/features/column-faceting/createFacetedMinMaxValues.d.ts +14 -0
  160. package/dist/features/column-faceting/createFacetedMinMaxValues.js +44 -0
  161. package/dist/features/column-faceting/createFacetedMinMaxValues.js.map +1 -0
  162. package/dist/features/column-faceting/createFacetedRowModel.cjs +50 -0
  163. package/dist/features/column-faceting/createFacetedRowModel.cjs.map +1 -0
  164. package/dist/features/column-faceting/createFacetedRowModel.d.cts +15 -0
  165. package/dist/features/column-faceting/createFacetedRowModel.d.ts +15 -0
  166. package/dist/features/column-faceting/createFacetedRowModel.js +50 -0
  167. package/dist/features/column-faceting/createFacetedRowModel.js.map +1 -0
  168. package/dist/features/column-faceting/createFacetedUniqueValues.cjs +41 -0
  169. package/dist/features/column-faceting/createFacetedUniqueValues.cjs.map +1 -0
  170. package/dist/features/column-faceting/createFacetedUniqueValues.d.cts +14 -0
  171. package/dist/features/column-faceting/createFacetedUniqueValues.d.ts +14 -0
  172. package/dist/features/column-faceting/createFacetedUniqueValues.js +41 -0
  173. package/dist/features/column-faceting/createFacetedUniqueValues.js.map +1 -0
  174. package/dist/features/column-filtering/columnFilteringFeature.cjs +50 -0
  175. package/dist/features/column-filtering/columnFilteringFeature.cjs.map +1 -0
  176. package/dist/features/column-filtering/columnFilteringFeature.d.cts +10 -0
  177. package/dist/features/column-filtering/columnFilteringFeature.d.ts +10 -0
  178. package/dist/features/column-filtering/columnFilteringFeature.js +50 -0
  179. package/dist/features/column-filtering/columnFilteringFeature.js.map +1 -0
  180. package/dist/features/column-filtering/columnFilteringFeature.types.d.cts +174 -0
  181. package/dist/features/column-filtering/columnFilteringFeature.types.d.ts +174 -0
  182. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs +212 -0
  183. package/dist/features/column-filtering/columnFilteringFeature.utils.cjs.map +1 -0
  184. package/dist/features/column-filtering/columnFilteringFeature.utils.d.cts +143 -0
  185. package/dist/features/column-filtering/columnFilteringFeature.utils.d.ts +143 -0
  186. package/dist/features/column-filtering/columnFilteringFeature.utils.js +202 -0
  187. package/dist/features/column-filtering/columnFilteringFeature.utils.js.map +1 -0
  188. package/dist/features/column-filtering/createFilteredRowModel.cjs +112 -0
  189. package/dist/features/column-filtering/createFilteredRowModel.cjs.map +1 -0
  190. package/dist/features/column-filtering/createFilteredRowModel.d.cts +18 -0
  191. package/dist/features/column-filtering/createFilteredRowModel.d.ts +18 -0
  192. package/dist/features/column-filtering/createFilteredRowModel.js +112 -0
  193. package/dist/features/column-filtering/createFilteredRowModel.js.map +1 -0
  194. package/dist/features/column-filtering/filterRowsUtils.cjs +81 -0
  195. package/dist/features/column-filtering/filterRowsUtils.cjs.map +1 -0
  196. package/dist/features/column-filtering/filterRowsUtils.js +81 -0
  197. package/dist/features/column-filtering/filterRowsUtils.js.map +1 -0
  198. package/dist/features/column-grouping/columnGroupingFeature.cjs +67 -0
  199. package/dist/features/column-grouping/columnGroupingFeature.cjs.map +1 -0
  200. package/dist/features/column-grouping/columnGroupingFeature.d.cts +10 -0
  201. package/dist/features/column-grouping/columnGroupingFeature.d.ts +10 -0
  202. package/dist/features/column-grouping/columnGroupingFeature.js +67 -0
  203. package/dist/features/column-grouping/columnGroupingFeature.js.map +1 -0
  204. package/dist/features/column-grouping/columnGroupingFeature.types.d.cts +169 -0
  205. package/dist/features/column-grouping/columnGroupingFeature.types.d.ts +169 -0
  206. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs +250 -0
  207. package/dist/features/column-grouping/columnGroupingFeature.utils.cjs.map +1 -0
  208. package/dist/features/column-grouping/columnGroupingFeature.utils.d.cts +190 -0
  209. package/dist/features/column-grouping/columnGroupingFeature.utils.d.ts +190 -0
  210. package/dist/features/column-grouping/columnGroupingFeature.utils.js +236 -0
  211. package/dist/features/column-grouping/columnGroupingFeature.utils.js.map +1 -0
  212. package/dist/features/column-grouping/createGroupedRowModel.cjs +122 -0
  213. package/dist/features/column-grouping/createGroupedRowModel.cjs.map +1 -0
  214. package/dist/features/column-grouping/createGroupedRowModel.d.cts +19 -0
  215. package/dist/features/column-grouping/createGroupedRowModel.d.ts +19 -0
  216. package/dist/features/column-grouping/createGroupedRowModel.js +122 -0
  217. package/dist/features/column-grouping/createGroupedRowModel.js.map +1 -0
  218. package/dist/features/column-ordering/columnOrderingFeature.cjs +58 -0
  219. package/dist/features/column-ordering/columnOrderingFeature.cjs.map +1 -0
  220. package/dist/features/column-ordering/columnOrderingFeature.d.cts +10 -0
  221. package/dist/features/column-ordering/columnOrderingFeature.d.ts +10 -0
  222. package/dist/features/column-ordering/columnOrderingFeature.js +58 -0
  223. package/dist/features/column-ordering/columnOrderingFeature.js.map +1 -0
  224. package/dist/features/column-ordering/columnOrderingFeature.types.d.cts +56 -0
  225. package/dist/features/column-ordering/columnOrderingFeature.types.d.ts +56 -0
  226. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs +172 -0
  227. package/dist/features/column-ordering/columnOrderingFeature.utils.cjs.map +1 -0
  228. package/dist/features/column-ordering/columnOrderingFeature.utils.d.cts +107 -0
  229. package/dist/features/column-ordering/columnOrderingFeature.utils.d.ts +107 -0
  230. package/dist/features/column-ordering/columnOrderingFeature.utils.js +165 -0
  231. package/dist/features/column-ordering/columnOrderingFeature.utils.js.map +1 -0
  232. package/dist/features/column-pinning/columnPinningFeature.cjs +221 -0
  233. package/dist/features/column-pinning/columnPinningFeature.cjs.map +1 -0
  234. package/dist/features/column-pinning/columnPinningFeature.d.cts +10 -0
  235. package/dist/features/column-pinning/columnPinningFeature.d.ts +10 -0
  236. package/dist/features/column-pinning/columnPinningFeature.js +221 -0
  237. package/dist/features/column-pinning/columnPinningFeature.js.map +1 -0
  238. package/dist/features/column-pinning/columnPinningFeature.types.d.cts +178 -0
  239. package/dist/features/column-pinning/columnPinningFeature.types.d.ts +178 -0
  240. package/dist/features/column-pinning/columnPinningFeature.utils.cjs +585 -0
  241. package/dist/features/column-pinning/columnPinningFeature.utils.cjs.map +1 -0
  242. package/dist/features/column-pinning/columnPinningFeature.utils.d.cts +375 -0
  243. package/dist/features/column-pinning/columnPinningFeature.utils.d.ts +375 -0
  244. package/dist/features/column-pinning/columnPinningFeature.utils.js +555 -0
  245. package/dist/features/column-pinning/columnPinningFeature.utils.js.map +1 -0
  246. package/dist/features/column-resizing/columnResizingFeature.cjs +41 -0
  247. package/dist/features/column-resizing/columnResizingFeature.cjs.map +1 -0
  248. package/dist/features/column-resizing/columnResizingFeature.d.cts +10 -0
  249. package/dist/features/column-resizing/columnResizingFeature.d.ts +10 -0
  250. package/dist/features/column-resizing/columnResizingFeature.js +41 -0
  251. package/dist/features/column-resizing/columnResizingFeature.js.map +1 -0
  252. package/dist/features/column-resizing/columnResizingFeature.types.d.cts +81 -0
  253. package/dist/features/column-resizing/columnResizingFeature.types.d.ts +81 -0
  254. package/dist/features/column-resizing/columnResizingFeature.utils.cjs +246 -0
  255. package/dist/features/column-resizing/columnResizingFeature.utils.cjs.map +1 -0
  256. package/dist/features/column-resizing/columnResizingFeature.utils.d.cts +109 -0
  257. package/dist/features/column-resizing/columnResizingFeature.utils.d.ts +109 -0
  258. package/dist/features/column-resizing/columnResizingFeature.utils.js +239 -0
  259. package/dist/features/column-resizing/columnResizingFeature.utils.js.map +1 -0
  260. package/dist/features/column-sizing/columnSizingFeature.cjs +124 -0
  261. package/dist/features/column-sizing/columnSizingFeature.cjs.map +1 -0
  262. package/dist/features/column-sizing/columnSizingFeature.d.cts +10 -0
  263. package/dist/features/column-sizing/columnSizingFeature.d.ts +10 -0
  264. package/dist/features/column-sizing/columnSizingFeature.js +124 -0
  265. package/dist/features/column-sizing/columnSizingFeature.js.map +1 -0
  266. package/dist/features/column-sizing/columnSizingFeature.types.d.cts +96 -0
  267. package/dist/features/column-sizing/columnSizingFeature.types.d.ts +96 -0
  268. package/dist/features/column-sizing/columnSizingFeature.utils.cjs +256 -0
  269. package/dist/features/column-sizing/columnSizingFeature.utils.cjs.map +1 -0
  270. package/dist/features/column-sizing/columnSizingFeature.utils.d.cts +182 -0
  271. package/dist/features/column-sizing/columnSizingFeature.utils.d.ts +182 -0
  272. package/dist/features/column-sizing/columnSizingFeature.utils.js +243 -0
  273. package/dist/features/column-sizing/columnSizingFeature.utils.js.map +1 -0
  274. package/dist/features/column-visibility/columnVisibilityFeature.cjs +94 -0
  275. package/dist/features/column-visibility/columnVisibilityFeature.cjs.map +1 -0
  276. package/dist/features/column-visibility/columnVisibilityFeature.d.cts +10 -0
  277. package/dist/features/column-visibility/columnVisibilityFeature.d.ts +10 -0
  278. package/dist/features/column-visibility/columnVisibilityFeature.js +94 -0
  279. package/dist/features/column-visibility/columnVisibilityFeature.js.map +1 -0
  280. package/dist/features/column-visibility/columnVisibilityFeature.types.d.cts +97 -0
  281. package/dist/features/column-visibility/columnVisibilityFeature.types.d.ts +97 -0
  282. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs +283 -0
  283. package/dist/features/column-visibility/columnVisibilityFeature.utils.cjs.map +1 -0
  284. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.cts +189 -0
  285. package/dist/features/column-visibility/columnVisibilityFeature.utils.d.ts +189 -0
  286. package/dist/features/column-visibility/columnVisibilityFeature.utils.js +269 -0
  287. package/dist/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -0
  288. package/dist/features/global-filtering/globalFilteringFeature.cjs +41 -0
  289. package/dist/features/global-filtering/globalFilteringFeature.cjs.map +1 -0
  290. package/dist/features/global-filtering/globalFilteringFeature.d.cts +10 -0
  291. package/dist/features/global-filtering/globalFilteringFeature.d.ts +10 -0
  292. package/dist/features/global-filtering/globalFilteringFeature.js +41 -0
  293. package/dist/features/global-filtering/globalFilteringFeature.js.map +1 -0
  294. package/dist/features/global-filtering/globalFilteringFeature.types.d.cts +71 -0
  295. package/dist/features/global-filtering/globalFilteringFeature.types.d.ts +71 -0
  296. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs +88 -0
  297. package/dist/features/global-filtering/globalFilteringFeature.utils.cjs.map +1 -0
  298. package/dist/features/global-filtering/globalFilteringFeature.utils.d.cts +74 -0
  299. package/dist/features/global-filtering/globalFilteringFeature.utils.d.ts +74 -0
  300. package/dist/features/global-filtering/globalFilteringFeature.utils.js +84 -0
  301. package/dist/features/global-filtering/globalFilteringFeature.utils.js.map +1 -0
  302. package/dist/features/row-expanding/createExpandedRowModel.cjs +59 -0
  303. package/dist/features/row-expanding/createExpandedRowModel.cjs.map +1 -0
  304. package/dist/features/row-expanding/createExpandedRowModel.d.cts +21 -0
  305. package/dist/features/row-expanding/createExpandedRowModel.d.ts +21 -0
  306. package/dist/features/row-expanding/createExpandedRowModel.js +58 -0
  307. package/dist/features/row-expanding/createExpandedRowModel.js.map +1 -0
  308. package/dist/features/row-expanding/rowExpandingFeature.cjs +47 -0
  309. package/dist/features/row-expanding/rowExpandingFeature.cjs.map +1 -0
  310. package/dist/features/row-expanding/rowExpandingFeature.d.cts +10 -0
  311. package/dist/features/row-expanding/rowExpandingFeature.d.ts +10 -0
  312. package/dist/features/row-expanding/rowExpandingFeature.js +47 -0
  313. package/dist/features/row-expanding/rowExpandingFeature.js.map +1 -0
  314. package/dist/features/row-expanding/rowExpandingFeature.types.d.cts +118 -0
  315. package/dist/features/row-expanding/rowExpandingFeature.types.d.ts +118 -0
  316. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs +281 -0
  317. package/dist/features/row-expanding/rowExpandingFeature.utils.cjs.map +1 -0
  318. package/dist/features/row-expanding/rowExpandingFeature.utils.d.cts +191 -0
  319. package/dist/features/row-expanding/rowExpandingFeature.utils.d.ts +191 -0
  320. package/dist/features/row-expanding/rowExpandingFeature.utils.js +267 -0
  321. package/dist/features/row-expanding/rowExpandingFeature.utils.js.map +1 -0
  322. package/dist/features/row-pagination/createPaginatedRowModel.cjs +62 -0
  323. package/dist/features/row-pagination/createPaginatedRowModel.cjs.map +1 -0
  324. package/dist/features/row-pagination/createPaginatedRowModel.d.cts +15 -0
  325. package/dist/features/row-pagination/createPaginatedRowModel.d.ts +15 -0
  326. package/dist/features/row-pagination/createPaginatedRowModel.js +62 -0
  327. package/dist/features/row-pagination/createPaginatedRowModel.js.map +1 -0
  328. package/dist/features/row-pagination/rowPaginationFeature.cjs +45 -0
  329. package/dist/features/row-pagination/rowPaginationFeature.cjs.map +1 -0
  330. package/dist/features/row-pagination/rowPaginationFeature.d.cts +10 -0
  331. package/dist/features/row-pagination/rowPaginationFeature.d.ts +10 -0
  332. package/dist/features/row-pagination/rowPaginationFeature.js +45 -0
  333. package/dist/features/row-pagination/rowPaginationFeature.js.map +1 -0
  334. package/dist/features/row-pagination/rowPaginationFeature.types.d.cts +126 -0
  335. package/dist/features/row-pagination/rowPaginationFeature.types.d.ts +126 -0
  336. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs +312 -0
  337. package/dist/features/row-pagination/rowPaginationFeature.utils.cjs.map +1 -0
  338. package/dist/features/row-pagination/rowPaginationFeature.utils.d.cts +218 -0
  339. package/dist/features/row-pagination/rowPaginationFeature.utils.d.ts +218 -0
  340. package/dist/features/row-pagination/rowPaginationFeature.utils.js +296 -0
  341. package/dist/features/row-pagination/rowPaginationFeature.utils.js.map +1 -0
  342. package/dist/features/row-pinning/rowPinningFeature.cjs +67 -0
  343. package/dist/features/row-pinning/rowPinningFeature.cjs.map +1 -0
  344. package/dist/features/row-pinning/rowPinningFeature.d.cts +10 -0
  345. package/dist/features/row-pinning/rowPinningFeature.d.ts +10 -0
  346. package/dist/features/row-pinning/rowPinningFeature.js +67 -0
  347. package/dist/features/row-pinning/rowPinningFeature.js.map +1 -0
  348. package/dist/features/row-pinning/rowPinningFeature.types.d.cts +83 -0
  349. package/dist/features/row-pinning/rowPinningFeature.types.d.ts +83 -0
  350. package/dist/features/row-pinning/rowPinningFeature.utils.cjs +229 -0
  351. package/dist/features/row-pinning/rowPinningFeature.utils.cjs.map +1 -0
  352. package/dist/features/row-pinning/rowPinningFeature.utils.d.cts +143 -0
  353. package/dist/features/row-pinning/rowPinningFeature.utils.d.ts +143 -0
  354. package/dist/features/row-pinning/rowPinningFeature.utils.js +219 -0
  355. package/dist/features/row-pinning/rowPinningFeature.utils.js.map +1 -0
  356. package/dist/features/row-selection/rowSelectionFeature.cjs +75 -0
  357. package/dist/features/row-selection/rowSelectionFeature.cjs.map +1 -0
  358. package/dist/features/row-selection/rowSelectionFeature.d.cts +10 -0
  359. package/dist/features/row-selection/rowSelectionFeature.d.ts +10 -0
  360. package/dist/features/row-selection/rowSelectionFeature.js +75 -0
  361. package/dist/features/row-selection/rowSelectionFeature.js.map +1 -0
  362. package/dist/features/row-selection/rowSelectionFeature.types.d.cts +136 -0
  363. package/dist/features/row-selection/rowSelectionFeature.types.d.ts +136 -0
  364. package/dist/features/row-selection/rowSelectionFeature.utils.cjs +518 -0
  365. package/dist/features/row-selection/rowSelectionFeature.utils.cjs.map +1 -0
  366. package/dist/features/row-selection/rowSelectionFeature.utils.d.cts +318 -0
  367. package/dist/features/row-selection/rowSelectionFeature.utils.d.ts +318 -0
  368. package/dist/features/row-selection/rowSelectionFeature.utils.js +493 -0
  369. package/dist/features/row-selection/rowSelectionFeature.utils.js.map +1 -0
  370. package/dist/features/row-sorting/createSortedRowModel.cjs +97 -0
  371. package/dist/features/row-sorting/createSortedRowModel.cjs.map +1 -0
  372. package/dist/features/row-sorting/createSortedRowModel.d.cts +18 -0
  373. package/dist/features/row-sorting/createSortedRowModel.d.ts +18 -0
  374. package/dist/features/row-sorting/createSortedRowModel.js +97 -0
  375. package/dist/features/row-sorting/createSortedRowModel.js.map +1 -0
  376. package/dist/features/row-sorting/rowSortingFeature.cjs +55 -0
  377. package/dist/features/row-sorting/rowSortingFeature.cjs.map +1 -0
  378. package/dist/features/row-sorting/rowSortingFeature.d.cts +10 -0
  379. package/dist/features/row-sorting/rowSortingFeature.d.ts +10 -0
  380. package/dist/features/row-sorting/rowSortingFeature.js +55 -0
  381. package/dist/features/row-sorting/rowSortingFeature.js.map +1 -0
  382. package/dist/features/row-sorting/rowSortingFeature.types.d.cts +191 -0
  383. package/dist/features/row-sorting/rowSortingFeature.types.d.ts +191 -0
  384. package/dist/features/row-sorting/rowSortingFeature.utils.cjs +305 -0
  385. package/dist/features/row-sorting/rowSortingFeature.utils.cjs.map +1 -0
  386. package/dist/features/row-sorting/rowSortingFeature.utils.d.cts +193 -0
  387. package/dist/features/row-sorting/rowSortingFeature.utils.d.ts +193 -0
  388. package/dist/features/row-sorting/rowSortingFeature.utils.js +291 -0
  389. package/dist/features/row-sorting/rowSortingFeature.utils.js.map +1 -0
  390. package/dist/features/stockFeatures.cjs +41 -0
  391. package/dist/features/stockFeatures.cjs.map +1 -0
  392. package/dist/features/stockFeatures.d.cts +41 -0
  393. package/dist/features/stockFeatures.d.ts +41 -0
  394. package/dist/features/stockFeatures.js +41 -0
  395. package/dist/features/stockFeatures.js.map +1 -0
  396. package/dist/flex-render.cjs +29 -0
  397. package/dist/flex-render.cjs.map +1 -0
  398. package/dist/flex-render.d.cts +34 -0
  399. package/dist/flex-render.d.ts +34 -0
  400. package/dist/flex-render.js +26 -0
  401. package/dist/flex-render.js.map +1 -0
  402. package/dist/fns/aggregationFns.cjs +161 -0
  403. package/dist/fns/aggregationFns.cjs.map +1 -0
  404. package/dist/fns/aggregationFns.d.cts +85 -0
  405. package/dist/fns/aggregationFns.d.ts +85 -0
  406. package/dist/fns/aggregationFns.js +151 -0
  407. package/dist/fns/aggregationFns.js.map +1 -0
  408. package/dist/fns/filterFns.cjs +201 -0
  409. package/dist/fns/filterFns.cjs.map +1 -0
  410. package/dist/fns/filterFns.d.cts +167 -0
  411. package/dist/fns/filterFns.d.ts +167 -0
  412. package/dist/fns/filterFns.js +185 -0
  413. package/dist/fns/filterFns.js.map +1 -0
  414. package/dist/fns/sortFns.cjs +130 -0
  415. package/dist/fns/sortFns.cjs.map +1 -0
  416. package/dist/fns/sortFns.d.cts +65 -0
  417. package/dist/fns/sortFns.d.ts +65 -0
  418. package/dist/fns/sortFns.js +122 -0
  419. package/dist/fns/sortFns.js.map +1 -0
  420. package/dist/helpers/columnHelper.cjs +41 -0
  421. package/dist/helpers/columnHelper.cjs.map +1 -0
  422. package/dist/helpers/columnHelper.d.cts +71 -0
  423. package/dist/helpers/columnHelper.d.ts +71 -0
  424. package/dist/helpers/columnHelper.js +40 -0
  425. package/dist/helpers/columnHelper.js.map +1 -0
  426. package/dist/helpers/metaHelper.cjs +30 -0
  427. package/dist/helpers/metaHelper.cjs.map +1 -0
  428. package/dist/helpers/metaHelper.d.cts +26 -0
  429. package/dist/helpers/metaHelper.d.ts +26 -0
  430. package/dist/helpers/metaHelper.js +29 -0
  431. package/dist/helpers/metaHelper.js.map +1 -0
  432. package/dist/helpers/tableFeatures.cjs +48 -0
  433. package/dist/helpers/tableFeatures.cjs.map +1 -0
  434. package/dist/helpers/tableFeatures.d.cts +46 -0
  435. package/dist/helpers/tableFeatures.d.ts +46 -0
  436. package/dist/helpers/tableFeatures.js +47 -0
  437. package/dist/helpers/tableFeatures.js.map +1 -0
  438. package/dist/helpers/tableOptions.cjs +15 -0
  439. package/dist/helpers/tableOptions.cjs.map +1 -0
  440. package/dist/helpers/tableOptions.d.cts +57 -0
  441. package/dist/helpers/tableOptions.d.ts +57 -0
  442. package/dist/helpers/tableOptions.js +14 -0
  443. package/dist/helpers/tableOptions.js.map +1 -0
  444. package/dist/index.cjs +135 -0
  445. package/dist/index.d.cts +79 -0
  446. package/dist/index.d.ts +79 -0
  447. package/dist/index.js +47 -0
  448. package/dist/reactivity.cjs +4 -0
  449. package/dist/reactivity.d.cts +3 -0
  450. package/dist/reactivity.d.ts +3 -0
  451. package/dist/reactivity.js +3 -0
  452. package/dist/static-functions.cjs +263 -0
  453. package/dist/static-functions.d.cts +21 -0
  454. package/dist/static-functions.d.ts +21 -0
  455. package/dist/static-functions.js +22 -0
  456. package/dist/store-reactivity-bindings.cjs +44 -0
  457. package/dist/store-reactivity-bindings.cjs.map +1 -0
  458. package/dist/store-reactivity-bindings.d.cts +22 -0
  459. package/dist/store-reactivity-bindings.d.ts +22 -0
  460. package/dist/store-reactivity-bindings.js +43 -0
  461. package/dist/store-reactivity-bindings.js.map +1 -0
  462. package/dist/types/Cell.d.cts +14 -0
  463. package/dist/types/Cell.d.ts +14 -0
  464. package/dist/types/Column.d.cts +36 -0
  465. package/dist/types/Column.d.ts +36 -0
  466. package/dist/types/ColumnDef.d.cts +123 -0
  467. package/dist/types/ColumnDef.d.ts +123 -0
  468. package/dist/types/Header.d.cts +16 -0
  469. package/dist/types/Header.d.ts +16 -0
  470. package/dist/types/HeaderGroup.d.cts +10 -0
  471. package/dist/types/HeaderGroup.d.ts +10 -0
  472. package/dist/types/Row.d.cts +26 -0
  473. package/dist/types/Row.d.ts +26 -0
  474. package/dist/types/RowModel.d.cts +26 -0
  475. package/dist/types/RowModel.d.ts +26 -0
  476. package/dist/types/RowModelFns.d.cts +18 -0
  477. package/dist/types/RowModelFns.d.ts +18 -0
  478. package/dist/types/Table.d.cts +69 -0
  479. package/dist/types/Table.d.ts +69 -0
  480. package/dist/types/TableFeatures.d.cts +214 -0
  481. package/dist/types/TableFeatures.d.ts +214 -0
  482. package/dist/types/TableOptions.d.cts +69 -0
  483. package/dist/types/TableOptions.d.ts +69 -0
  484. package/dist/types/TableState.d.cts +48 -0
  485. package/dist/types/TableState.d.ts +48 -0
  486. package/dist/types/type-utils.d.cts +23 -0
  487. package/dist/types/type-utils.d.ts +23 -0
  488. package/dist/utils.cjs +243 -0
  489. package/dist/utils.cjs.map +1 -0
  490. package/dist/utils.d.cts +114 -0
  491. package/dist/utils.d.ts +114 -0
  492. package/dist/utils.js +232 -0
  493. package/dist/utils.js.map +1 -0
  494. package/package.json +43 -16
  495. package/skills/column-definitions/SKILL.md +330 -0
  496. package/skills/column-layout/SKILL.md +326 -0
  497. package/skills/column-layout/references/subsystems.md +220 -0
  498. package/skills/customizing-feature-behavior/SKILL.md +423 -0
  499. package/skills/filtering/SKILL.md +375 -0
  500. package/skills/filtering/references/faceting-and-fuzzy.md +218 -0
  501. package/skills/grouping/SKILL.md +443 -0
  502. package/skills/migrate-v8-to-v9/SKILL.md +492 -0
  503. package/skills/pagination/SKILL.md +387 -0
  504. package/skills/row-expanding/SKILL.md +356 -0
  505. package/skills/row-pinning/SKILL.md +273 -0
  506. package/skills/row-selection/SKILL.md +388 -0
  507. package/skills/setup/SKILL.md +390 -0
  508. package/skills/sorting/SKILL.md +344 -0
  509. package/skills/state-management/SKILL.md +403 -0
  510. package/src/core/cells/constructCell.ts +55 -0
  511. package/src/core/cells/coreCellsFeature.ts +27 -0
  512. package/src/core/cells/coreCellsFeature.types.ts +68 -0
  513. package/src/core/cells/coreCellsFeature.utils.ts +68 -0
  514. package/src/core/columns/constructColumn.ts +119 -0
  515. package/src/core/columns/coreColumnsFeature.ts +73 -0
  516. package/src/core/columns/coreColumnsFeature.types.ts +108 -0
  517. package/src/core/columns/coreColumnsFeature.utils.ts +275 -0
  518. package/src/core/coreFeatures.ts +31 -0
  519. package/src/core/headers/buildHeaderGroups.ts +182 -0
  520. package/src/core/headers/constructHeader.ts +67 -0
  521. package/src/core/headers/coreHeadersFeature.ts +56 -0
  522. package/src/core/headers/coreHeadersFeature.types.ts +125 -0
  523. package/src/core/headers/coreHeadersFeature.utils.ts +200 -0
  524. package/src/core/reactivity/coreReactivityFeature.types.ts +56 -0
  525. package/src/core/reactivity/coreReactivityFeature.utils.ts +44 -0
  526. package/src/core/row-models/coreRowModelsFeature.ts +62 -0
  527. package/src/core/row-models/coreRowModelsFeature.types.ts +51 -0
  528. package/src/core/row-models/coreRowModelsFeature.utils.ts +272 -0
  529. package/src/core/row-models/createCoreRowModel.ts +93 -0
  530. package/src/core/rows/constructRow.ts +66 -0
  531. package/src/core/rows/coreRowsFeature.ts +62 -0
  532. package/src/core/rows/coreRowsFeature.types.ts +117 -0
  533. package/src/core/rows/coreRowsFeature.utils.ts +264 -0
  534. package/src/core/table/constructTable.ts +206 -0
  535. package/src/core/table/coreTablesFeature.ts +19 -0
  536. package/src/core/table/coreTablesFeature.types.ts +239 -0
  537. package/src/core/table/coreTablesFeature.utils.ts +130 -0
  538. package/src/features/column-faceting/columnFacetingFeature.ts +89 -0
  539. package/src/features/column-faceting/columnFacetingFeature.types.ts +76 -0
  540. package/src/features/column-faceting/columnFacetingFeature.utils.ts +145 -0
  541. package/src/features/column-faceting/createFacetedMinMaxValues.ts +66 -0
  542. package/src/features/column-faceting/createFacetedRowModel.ts +85 -0
  543. package/src/features/column-faceting/createFacetedUniqueValues.ts +66 -0
  544. package/src/features/column-filtering/columnFilteringFeature.ts +86 -0
  545. package/src/features/column-filtering/columnFilteringFeature.types.ts +248 -0
  546. package/src/features/column-filtering/columnFilteringFeature.utils.ts +331 -0
  547. package/src/features/column-filtering/createFilteredRowModel.ts +181 -0
  548. package/src/features/column-filtering/filterRowsUtils.ts +157 -0
  549. package/src/features/column-grouping/columnGroupingFeature.ts +115 -0
  550. package/src/features/column-grouping/columnGroupingFeature.types.ts +227 -0
  551. package/src/features/column-grouping/columnGroupingFeature.utils.ts +354 -0
  552. package/src/features/column-grouping/createGroupedRowModel.ts +216 -0
  553. package/src/features/column-ordering/columnOrderingFeature.ts +73 -0
  554. package/src/features/column-ordering/columnOrderingFeature.types.ts +60 -0
  555. package/src/features/column-ordering/columnOrderingFeature.utils.ts +241 -0
  556. package/src/features/column-pinning/columnPinningFeature.ts +316 -0
  557. package/src/features/column-pinning/columnPinningFeature.types.ts +192 -0
  558. package/src/features/column-pinning/columnPinningFeature.utils.ts +908 -0
  559. package/src/features/column-resizing/columnResizingFeature.ts +65 -0
  560. package/src/features/column-resizing/columnResizingFeature.types.ts +89 -0
  561. package/src/features/column-resizing/columnResizingFeature.utils.ts +364 -0
  562. package/src/features/column-sizing/columnSizingFeature.ts +145 -0
  563. package/src/features/column-sizing/columnSizingFeature.types.ts +102 -0
  564. package/src/features/column-sizing/columnSizingFeature.utils.ts +381 -0
  565. package/src/features/column-visibility/columnVisibilityFeature.ts +122 -0
  566. package/src/features/column-visibility/columnVisibilityFeature.types.ts +112 -0
  567. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +384 -0
  568. package/src/features/global-filtering/globalFilteringFeature.ts +65 -0
  569. package/src/features/global-filtering/globalFilteringFeature.types.ts +91 -0
  570. package/src/features/global-filtering/globalFilteringFeature.utils.ts +118 -0
  571. package/src/features/row-expanding/createExpandedRowModel.ts +82 -0
  572. package/src/features/row-expanding/rowExpandingFeature.ts +94 -0
  573. package/src/features/row-expanding/rowExpandingFeature.types.ts +133 -0
  574. package/src/features/row-expanding/rowExpandingFeature.utils.ts +374 -0
  575. package/src/features/row-pagination/createPaginatedRowModel.ts +83 -0
  576. package/src/features/row-pagination/rowPaginationFeature.ts +95 -0
  577. package/src/features/row-pagination/rowPaginationFeature.types.ts +138 -0
  578. package/src/features/row-pagination/rowPaginationFeature.utils.ts +400 -0
  579. package/src/features/row-pinning/rowPinningFeature.ts +97 -0
  580. package/src/features/row-pinning/rowPinningFeature.types.ts +95 -0
  581. package/src/features/row-pinning/rowPinningFeature.utils.ts +323 -0
  582. package/src/features/row-selection/rowSelectionFeature.ts +140 -0
  583. package/src/features/row-selection/rowSelectionFeature.types.ts +151 -0
  584. package/src/features/row-selection/rowSelectionFeature.utils.ts +750 -0
  585. package/src/features/row-sorting/createSortedRowModel.ts +157 -0
  586. package/src/features/row-sorting/rowSortingFeature.ts +103 -0
  587. package/src/features/row-sorting/rowSortingFeature.types.ts +236 -0
  588. package/src/features/row-sorting/rowSortingFeature.utils.ts +489 -0
  589. package/src/features/stockFeatures.ts +53 -0
  590. package/src/flex-render.ts +70 -0
  591. package/src/fns/aggregationFns.ts +245 -0
  592. package/src/fns/filterFns.ts +382 -0
  593. package/src/fns/sortFns.ts +240 -0
  594. package/src/helpers/columnHelper.ts +122 -0
  595. package/src/helpers/metaHelper.ts +24 -0
  596. package/src/helpers/tableFeatures.ts +55 -0
  597. package/src/helpers/tableOptions.ts +117 -0
  598. package/src/index.ts +138 -42
  599. package/src/process-env.d.ts +6 -0
  600. package/src/reactivity.ts +2 -0
  601. package/src/static-functions.ts +31 -0
  602. package/src/store-reactivity-bindings.ts +47 -0
  603. package/src/types/Cell.ts +21 -0
  604. package/src/types/Column.ts +51 -0
  605. package/src/types/ColumnDef.ts +254 -0
  606. package/src/types/Header.ts +23 -0
  607. package/src/types/HeaderGroup.ts +13 -0
  608. package/src/types/Row.ts +34 -0
  609. package/src/types/RowModel.ts +47 -0
  610. package/src/types/RowModelFns.ts +32 -0
  611. package/src/types/Table.ts +90 -0
  612. package/src/types/TableFeatures.ts +295 -0
  613. package/src/types/TableOptions.ts +108 -0
  614. package/src/types/TableState.ts +47 -0
  615. package/src/types/type-utils.ts +84 -0
  616. package/src/utils.ts +389 -167
  617. package/dist/cjs/aggregationFns.cjs +0 -94
  618. package/dist/cjs/aggregationFns.cjs.map +0 -1
  619. package/dist/cjs/aggregationFns.d.cts +0 -14
  620. package/dist/cjs/columnHelper.cjs +0 -19
  621. package/dist/cjs/columnHelper.cjs.map +0 -1
  622. package/dist/cjs/columnHelper.d.cts +0 -9
  623. package/dist/cjs/core/cell.cjs +0 -38
  624. package/dist/cjs/core/cell.cjs.map +0 -1
  625. package/dist/cjs/core/cell.d.cts +0 -50
  626. package/dist/cjs/core/column.cjs +0 -81
  627. package/dist/cjs/core/column.cjs.map +0 -1
  628. package/dist/cjs/core/column.d.cts +0 -56
  629. package/dist/cjs/core/headers.cjs +0 -310
  630. package/dist/cjs/core/headers.cjs.map +0 -1
  631. package/dist/cjs/core/headers.d.cts +0 -195
  632. package/dist/cjs/core/row.cjs +0 -92
  633. package/dist/cjs/core/row.cjs.map +0 -1
  634. package/dist/cjs/core/row.d.cts +0 -92
  635. package/dist/cjs/core/table.cjs +0 -232
  636. package/dist/cjs/core/table.cjs.map +0 -1
  637. package/dist/cjs/core/table.d.cts +0 -229
  638. package/dist/cjs/features/ColumnFaceting.cjs +0 -29
  639. package/dist/cjs/features/ColumnFaceting.cjs.map +0 -1
  640. package/dist/cjs/features/ColumnFaceting.d.cts +0 -35
  641. package/dist/cjs/features/ColumnFiltering.cjs +0 -137
  642. package/dist/cjs/features/ColumnFiltering.cjs.map +0 -1
  643. package/dist/cjs/features/ColumnFiltering.d.cts +0 -195
  644. package/dist/cjs/features/ColumnGrouping.cjs +0 -133
  645. package/dist/cjs/features/ColumnGrouping.cjs.map +0 -1
  646. package/dist/cjs/features/ColumnGrouping.d.cts +0 -202
  647. package/dist/cjs/features/ColumnOrdering.cjs +0 -76
  648. package/dist/cjs/features/ColumnOrdering.cjs.map +0 -1
  649. package/dist/cjs/features/ColumnOrdering.d.cts +0 -54
  650. package/dist/cjs/features/ColumnPinning.cjs +0 -145
  651. package/dist/cjs/features/ColumnPinning.cjs.map +0 -1
  652. package/dist/cjs/features/ColumnPinning.d.cts +0 -127
  653. package/dist/cjs/features/ColumnSizing.cjs +0 -307
  654. package/dist/cjs/features/ColumnSizing.cjs.map +0 -1
  655. package/dist/cjs/features/ColumnSizing.d.cts +0 -194
  656. package/dist/cjs/features/ColumnVisibility.cjs +0 -144
  657. package/dist/cjs/features/ColumnVisibility.cjs.map +0 -1
  658. package/dist/cjs/features/ColumnVisibility.d.cts +0 -130
  659. package/dist/cjs/features/GlobalFaceting.cjs +0 -29
  660. package/dist/cjs/features/GlobalFaceting.cjs.map +0 -1
  661. package/dist/cjs/features/GlobalFaceting.d.cts +0 -27
  662. package/dist/cjs/features/GlobalFiltering.cjs +0 -50
  663. package/dist/cjs/features/GlobalFiltering.cjs.map +0 -1
  664. package/dist/cjs/features/GlobalFiltering.d.cts +0 -80
  665. package/dist/cjs/features/RowExpanding.cjs +0 -152
  666. package/dist/cjs/features/RowExpanding.cjs.map +0 -1
  667. package/dist/cjs/features/RowExpanding.d.cts +0 -155
  668. package/dist/cjs/features/RowPagination.cjs +0 -161
  669. package/dist/cjs/features/RowPagination.cjs.map +0 -1
  670. package/dist/cjs/features/RowPagination.d.cts +0 -166
  671. package/dist/cjs/features/RowPinning.cjs +0 -132
  672. package/dist/cjs/features/RowPinning.cjs.map +0 -1
  673. package/dist/cjs/features/RowPinning.d.cts +0 -99
  674. package/dist/cjs/features/RowSelection.cjs +0 -296
  675. package/dist/cjs/features/RowSelection.cjs.map +0 -1
  676. package/dist/cjs/features/RowSelection.d.cts +0 -177
  677. package/dist/cjs/features/RowSorting.cjs +0 -200
  678. package/dist/cjs/features/RowSorting.cjs.map +0 -1
  679. package/dist/cjs/features/RowSorting.d.cts +0 -238
  680. package/dist/cjs/filterFns.cjs +0 -88
  681. package/dist/cjs/filterFns.cjs.map +0 -1
  682. package/dist/cjs/filterFns.d.cts +0 -14
  683. package/dist/cjs/index.cjs +0 -88
  684. package/dist/cjs/index.cjs.map +0 -1
  685. package/dist/cjs/index.d.cts +0 -34
  686. package/dist/cjs/sortingFns.cjs +0 -91
  687. package/dist/cjs/sortingFns.cjs.map +0 -1
  688. package/dist/cjs/sortingFns.d.cts +0 -12
  689. package/dist/cjs/types.d.cts +0 -120
  690. package/dist/cjs/utils/filterRowsUtils.cjs +0 -99
  691. package/dist/cjs/utils/filterRowsUtils.cjs.map +0 -1
  692. package/dist/cjs/utils/filterRowsUtils.d.cts +0 -3
  693. package/dist/cjs/utils/getCoreRowModel.cjs +0 -54
  694. package/dist/cjs/utils/getCoreRowModel.cjs.map +0 -1
  695. package/dist/cjs/utils/getCoreRowModel.d.cts +0 -3
  696. package/dist/cjs/utils/getExpandedRowModel.cjs +0 -41
  697. package/dist/cjs/utils/getExpandedRowModel.cjs.map +0 -1
  698. package/dist/cjs/utils/getExpandedRowModel.d.cts +0 -8
  699. package/dist/cjs/utils/getFacetedMinMaxValues.cjs +0 -35
  700. package/dist/cjs/utils/getFacetedMinMaxValues.cjs.map +0 -1
  701. package/dist/cjs/utils/getFacetedMinMaxValues.d.cts +0 -3
  702. package/dist/cjs/utils/getFacetedRowModel.cjs +0 -35
  703. package/dist/cjs/utils/getFacetedRowModel.cjs.map +0 -1
  704. package/dist/cjs/utils/getFacetedRowModel.d.cts +0 -3
  705. package/dist/cjs/utils/getFacetedUniqueValues.cjs +0 -37
  706. package/dist/cjs/utils/getFacetedUniqueValues.cjs.map +0 -1
  707. package/dist/cjs/utils/getFacetedUniqueValues.d.cts +0 -3
  708. package/dist/cjs/utils/getFilteredRowModel.cjs +0 -116
  709. package/dist/cjs/utils/getFilteredRowModel.cjs.map +0 -1
  710. package/dist/cjs/utils/getFilteredRowModel.d.cts +0 -3
  711. package/dist/cjs/utils/getGroupedRowModel.cjs +0 -118
  712. package/dist/cjs/utils/getGroupedRowModel.cjs.map +0 -1
  713. package/dist/cjs/utils/getGroupedRowModel.d.cts +0 -3
  714. package/dist/cjs/utils/getPaginationRowModel.cjs +0 -49
  715. package/dist/cjs/utils/getPaginationRowModel.cjs.map +0 -1
  716. package/dist/cjs/utils/getPaginationRowModel.d.cts +0 -5
  717. package/dist/cjs/utils/getSortedRowModel.cjs +0 -88
  718. package/dist/cjs/utils/getSortedRowModel.cjs.map +0 -1
  719. package/dist/cjs/utils/getSortedRowModel.d.cts +0 -3
  720. package/dist/cjs/utils.cjs +0 -98
  721. package/dist/cjs/utils.cjs.map +0 -1
  722. package/dist/cjs/utils.d.cts +0 -39
  723. package/dist/esm/aggregationFns.d.ts +0 -14
  724. package/dist/esm/aggregationFns.js +0 -94
  725. package/dist/esm/aggregationFns.js.map +0 -1
  726. package/dist/esm/columnHelper.d.ts +0 -9
  727. package/dist/esm/columnHelper.js +0 -19
  728. package/dist/esm/columnHelper.js.map +0 -1
  729. package/dist/esm/core/cell.d.ts +0 -50
  730. package/dist/esm/core/cell.js +0 -38
  731. package/dist/esm/core/cell.js.map +0 -1
  732. package/dist/esm/core/column.d.ts +0 -56
  733. package/dist/esm/core/column.js +0 -81
  734. package/dist/esm/core/column.js.map +0 -1
  735. package/dist/esm/core/headers.d.ts +0 -195
  736. package/dist/esm/core/headers.js +0 -310
  737. package/dist/esm/core/headers.js.map +0 -1
  738. package/dist/esm/core/row.d.ts +0 -92
  739. package/dist/esm/core/row.js +0 -92
  740. package/dist/esm/core/row.js.map +0 -1
  741. package/dist/esm/core/table.d.ts +0 -229
  742. package/dist/esm/core/table.js +0 -232
  743. package/dist/esm/core/table.js.map +0 -1
  744. package/dist/esm/features/ColumnFaceting.d.ts +0 -35
  745. package/dist/esm/features/ColumnFaceting.js +0 -29
  746. package/dist/esm/features/ColumnFaceting.js.map +0 -1
  747. package/dist/esm/features/ColumnFiltering.d.ts +0 -195
  748. package/dist/esm/features/ColumnFiltering.js +0 -137
  749. package/dist/esm/features/ColumnFiltering.js.map +0 -1
  750. package/dist/esm/features/ColumnGrouping.d.ts +0 -202
  751. package/dist/esm/features/ColumnGrouping.js +0 -133
  752. package/dist/esm/features/ColumnGrouping.js.map +0 -1
  753. package/dist/esm/features/ColumnOrdering.d.ts +0 -54
  754. package/dist/esm/features/ColumnOrdering.js +0 -76
  755. package/dist/esm/features/ColumnOrdering.js.map +0 -1
  756. package/dist/esm/features/ColumnPinning.d.ts +0 -127
  757. package/dist/esm/features/ColumnPinning.js +0 -145
  758. package/dist/esm/features/ColumnPinning.js.map +0 -1
  759. package/dist/esm/features/ColumnSizing.d.ts +0 -194
  760. package/dist/esm/features/ColumnSizing.js +0 -307
  761. package/dist/esm/features/ColumnSizing.js.map +0 -1
  762. package/dist/esm/features/ColumnVisibility.d.ts +0 -130
  763. package/dist/esm/features/ColumnVisibility.js +0 -144
  764. package/dist/esm/features/ColumnVisibility.js.map +0 -1
  765. package/dist/esm/features/GlobalFaceting.d.ts +0 -27
  766. package/dist/esm/features/GlobalFaceting.js +0 -29
  767. package/dist/esm/features/GlobalFaceting.js.map +0 -1
  768. package/dist/esm/features/GlobalFiltering.d.ts +0 -80
  769. package/dist/esm/features/GlobalFiltering.js +0 -50
  770. package/dist/esm/features/GlobalFiltering.js.map +0 -1
  771. package/dist/esm/features/RowExpanding.d.ts +0 -155
  772. package/dist/esm/features/RowExpanding.js +0 -152
  773. package/dist/esm/features/RowExpanding.js.map +0 -1
  774. package/dist/esm/features/RowPagination.d.ts +0 -166
  775. package/dist/esm/features/RowPagination.js +0 -161
  776. package/dist/esm/features/RowPagination.js.map +0 -1
  777. package/dist/esm/features/RowPinning.d.ts +0 -99
  778. package/dist/esm/features/RowPinning.js +0 -132
  779. package/dist/esm/features/RowPinning.js.map +0 -1
  780. package/dist/esm/features/RowSelection.d.ts +0 -177
  781. package/dist/esm/features/RowSelection.js +0 -296
  782. package/dist/esm/features/RowSelection.js.map +0 -1
  783. package/dist/esm/features/RowSorting.d.ts +0 -238
  784. package/dist/esm/features/RowSorting.js +0 -200
  785. package/dist/esm/features/RowSorting.js.map +0 -1
  786. package/dist/esm/filterFns.d.ts +0 -14
  787. package/dist/esm/filterFns.js +0 -88
  788. package/dist/esm/filterFns.js.map +0 -1
  789. package/dist/esm/index.d.ts +0 -34
  790. package/dist/esm/index.js +0 -88
  791. package/dist/esm/index.js.map +0 -1
  792. package/dist/esm/sortingFns.d.ts +0 -12
  793. package/dist/esm/sortingFns.js +0 -91
  794. package/dist/esm/sortingFns.js.map +0 -1
  795. package/dist/esm/types.d.ts +0 -120
  796. package/dist/esm/utils/filterRowsUtils.d.ts +0 -3
  797. package/dist/esm/utils/filterRowsUtils.js +0 -99
  798. package/dist/esm/utils/filterRowsUtils.js.map +0 -1
  799. package/dist/esm/utils/getCoreRowModel.d.ts +0 -3
  800. package/dist/esm/utils/getCoreRowModel.js +0 -54
  801. package/dist/esm/utils/getCoreRowModel.js.map +0 -1
  802. package/dist/esm/utils/getExpandedRowModel.d.ts +0 -8
  803. package/dist/esm/utils/getExpandedRowModel.js +0 -41
  804. package/dist/esm/utils/getExpandedRowModel.js.map +0 -1
  805. package/dist/esm/utils/getFacetedMinMaxValues.d.ts +0 -3
  806. package/dist/esm/utils/getFacetedMinMaxValues.js +0 -35
  807. package/dist/esm/utils/getFacetedMinMaxValues.js.map +0 -1
  808. package/dist/esm/utils/getFacetedRowModel.d.ts +0 -3
  809. package/dist/esm/utils/getFacetedRowModel.js +0 -35
  810. package/dist/esm/utils/getFacetedRowModel.js.map +0 -1
  811. package/dist/esm/utils/getFacetedUniqueValues.d.ts +0 -3
  812. package/dist/esm/utils/getFacetedUniqueValues.js +0 -37
  813. package/dist/esm/utils/getFacetedUniqueValues.js.map +0 -1
  814. package/dist/esm/utils/getFilteredRowModel.d.ts +0 -3
  815. package/dist/esm/utils/getFilteredRowModel.js +0 -116
  816. package/dist/esm/utils/getFilteredRowModel.js.map +0 -1
  817. package/dist/esm/utils/getGroupedRowModel.d.ts +0 -3
  818. package/dist/esm/utils/getGroupedRowModel.js +0 -118
  819. package/dist/esm/utils/getGroupedRowModel.js.map +0 -1
  820. package/dist/esm/utils/getPaginationRowModel.d.ts +0 -5
  821. package/dist/esm/utils/getPaginationRowModel.js +0 -49
  822. package/dist/esm/utils/getPaginationRowModel.js.map +0 -1
  823. package/dist/esm/utils/getSortedRowModel.d.ts +0 -3
  824. package/dist/esm/utils/getSortedRowModel.js +0 -88
  825. package/dist/esm/utils/getSortedRowModel.js.map +0 -1
  826. package/dist/esm/utils.d.ts +0 -39
  827. package/dist/esm/utils.js +0 -98
  828. package/dist/esm/utils.js.map +0 -1
  829. package/src/aggregationFns.ts +0 -123
  830. package/src/columnHelper.ts +0 -91
  831. package/src/core/cell.ts +0 -91
  832. package/src/core/column.ts +0 -165
  833. package/src/core/headers.ts +0 -639
  834. package/src/core/row.ts +0 -201
  835. package/src/core/table.ts +0 -563
  836. package/src/features/ColumnFaceting.ts +0 -84
  837. package/src/features/ColumnFiltering.ts +0 -429
  838. package/src/features/ColumnGrouping.ts +0 -422
  839. package/src/features/ColumnOrdering.ts +0 -161
  840. package/src/features/ColumnPinning.ts +0 -336
  841. package/src/features/ColumnSizing.ts +0 -579
  842. package/src/features/ColumnVisibility.ts +0 -317
  843. package/src/features/GlobalFaceting.ts +0 -66
  844. package/src/features/GlobalFiltering.ts +0 -162
  845. package/src/features/RowExpanding.ts +0 -355
  846. package/src/features/RowPagination.ts +0 -396
  847. package/src/features/RowPinning.ts +0 -273
  848. package/src/features/RowSelection.ts +0 -668
  849. package/src/features/RowSorting.ts +0 -542
  850. package/src/filterFns.ts +0 -150
  851. package/src/sortingFns.ts +0 -128
  852. package/src/types.ts +0 -361
  853. package/src/utils/filterRowsUtils.ts +0 -130
  854. package/src/utils/getCoreRowModel.ts +0 -82
  855. package/src/utils/getExpandedRowModel.ts +0 -51
  856. package/src/utils/getFacetedMinMaxValues.ts +0 -42
  857. package/src/utils/getFacetedRowModel.ts +0 -44
  858. package/src/utils/getFacetedUniqueValues.ts +0 -42
  859. package/src/utils/getFilteredRowModel.ts +0 -151
  860. package/src/utils/getGroupedRowModel.ts +0 -181
  861. package/src/utils/getPaginationRowModel.ts +0 -60
  862. package/src/utils/getSortedRowModel.ts +0 -121
@@ -0,0 +1,245 @@
1
+ import type { RowData } from '../types/type-utils'
2
+ import type { TableFeatures } from '../types/TableFeatures'
3
+ import type { Row } from '../types/Row'
4
+
5
+ /**
6
+ * Sums numeric child-row values for a grouped column.
7
+ *
8
+ * Non-number values contribute `0`. Child rows are used so nested group totals
9
+ * can reuse already aggregated values.
10
+ */
11
+ export function aggregationFn_sum<
12
+ TFeatures extends TableFeatures,
13
+ TData extends RowData,
14
+ >(
15
+ columnId: string,
16
+ _leafRows: Array<Row<TFeatures, TData>>,
17
+ childRows: Array<Row<TFeatures, TData>>,
18
+ ) {
19
+ // It's faster to just add the aggregations together instead of
20
+ // process leaf nodes individually
21
+ return childRows.reduce((sumValue, next) => {
22
+ const nextValue = next.getValue(columnId)
23
+ return sumValue + (typeof nextValue === 'number' ? nextValue : 0)
24
+ }, 0)
25
+ }
26
+
27
+ /**
28
+ * Finds the minimum numeric child-row value for a grouped column.
29
+ *
30
+ * Nullish and non-number values are ignored. Returns `undefined` when no
31
+ * numeric value is found.
32
+ */
33
+ export function aggregationFn_min<
34
+ TFeatures extends TableFeatures,
35
+ TData extends RowData,
36
+ >(
37
+ columnId: string,
38
+ _leafRows: Array<Row<TFeatures, TData>>,
39
+ childRows: Array<Row<TFeatures, TData>>,
40
+ ) {
41
+ let minValue: number | undefined
42
+
43
+ childRows.forEach((row) => {
44
+ const value = row.getValue(columnId)
45
+
46
+ if (
47
+ value != null &&
48
+ typeof value === 'number' &&
49
+ (minValue === undefined || value < minValue)
50
+ ) {
51
+ minValue = value
52
+ }
53
+ })
54
+
55
+ return minValue
56
+ }
57
+
58
+ /**
59
+ * Finds the maximum numeric child-row value for a grouped column.
60
+ *
61
+ * Nullish and non-number values are ignored. Returns `undefined` when no
62
+ * numeric value is found.
63
+ */
64
+ export function aggregationFn_max<
65
+ TFeatures extends TableFeatures,
66
+ TData extends RowData,
67
+ >(
68
+ columnId: string,
69
+ _leafRows: Array<Row<TFeatures, TData>>,
70
+ childRows: Array<Row<TFeatures, TData>>,
71
+ ) {
72
+ let maxValue: number | undefined
73
+
74
+ childRows.forEach((row) => {
75
+ const value = row.getValue(columnId)
76
+ if (
77
+ value != null &&
78
+ typeof value === 'number' &&
79
+ (maxValue === undefined || value > maxValue)
80
+ ) {
81
+ maxValue = value
82
+ }
83
+ })
84
+
85
+ return maxValue
86
+ }
87
+
88
+ /**
89
+ * Finds the numeric extent for a grouped column.
90
+ *
91
+ * Returns `[min, max]`, where each entry is `undefined` when no numeric value is
92
+ * present.
93
+ */
94
+ export function aggregationFn_extent<
95
+ TFeatures extends TableFeatures,
96
+ TData extends RowData,
97
+ >(
98
+ columnId: string,
99
+ _leafRows: Array<Row<TFeatures, TData>>,
100
+ childRows: Array<Row<TFeatures, TData>>,
101
+ ) {
102
+ let minValue: number | undefined
103
+ let maxValue: number | undefined
104
+
105
+ childRows.forEach((row) => {
106
+ const value = row.getValue(columnId)
107
+ if (value != null && typeof value === 'number') {
108
+ if (minValue === undefined) {
109
+ minValue = maxValue = value
110
+ } else {
111
+ if (minValue > value) minValue = value
112
+ if (maxValue! < value) maxValue = value
113
+ }
114
+ }
115
+ })
116
+
117
+ return [minValue, maxValue]
118
+ }
119
+
120
+ /**
121
+ * Averages numeric leaf-row values for a grouped column.
122
+ *
123
+ * Number-like values are coerced with unary `+`; nullish and non-numeric values
124
+ * are ignored.
125
+ */
126
+ export function aggregationFn_mean<
127
+ TFeatures extends TableFeatures,
128
+ TData extends RowData,
129
+ >(columnId: string, leafRows: Array<Row<TFeatures, TData>>) {
130
+ let count = 0
131
+ let sumValue = 0
132
+
133
+ leafRows.forEach((row) => {
134
+ const value = row.getValue(columnId)
135
+ if (value != null && typeof value === 'number') {
136
+ ++count
137
+ sumValue += value
138
+ } else if (value != null) {
139
+ const numValue = +value
140
+ if (!Number.isNaN(numValue)) {
141
+ ++count
142
+ sumValue += numValue
143
+ }
144
+ }
145
+ })
146
+
147
+ if (count) return sumValue / count
148
+
149
+ return
150
+ }
151
+
152
+ /**
153
+ * Computes the median of numeric leaf-row values for a grouped column.
154
+ *
155
+ * All values must be numbers. If any value is non-numeric, or no leaf rows are
156
+ * present, the result is `undefined`.
157
+ */
158
+ export function aggregationFn_median<
159
+ TFeatures extends TableFeatures,
160
+ TData extends RowData,
161
+ >(columnId: string, leafRows: Array<Row<TFeatures, TData>>) {
162
+ if (!leafRows.length) {
163
+ return
164
+ }
165
+
166
+ const values: Array<number> = new Array(leafRows.length)
167
+ for (let i = 0; i < leafRows.length; i++) {
168
+ const v = leafRows[i]!.getValue(columnId)
169
+ if (typeof v !== 'number') return
170
+ values[i] = v
171
+ }
172
+
173
+ if (values.length === 1) {
174
+ return values[0]
175
+ }
176
+
177
+ const mid = Math.floor(values.length / 2)
178
+ values.sort((a, b) => a - b)
179
+ return values.length % 2 !== 0
180
+ ? values[mid]
181
+ : (values[mid - 1]! + values[mid]!) / 2
182
+ }
183
+
184
+ /**
185
+ * Collects unique leaf-row values for a grouped column.
186
+ *
187
+ * Values are compared with JavaScript `Set` semantics.
188
+ */
189
+ export function aggregationFn_unique<
190
+ TFeatures extends TableFeatures,
191
+ TData extends RowData,
192
+ >(columnId: string, leafRows: Array<Row<TFeatures, TData>>) {
193
+ const set = new Set<unknown>()
194
+ for (let i = 0; i < leafRows.length; i++) {
195
+ set.add(leafRows[i]!.getValue(columnId))
196
+ }
197
+ return Array.from(set.values())
198
+ }
199
+
200
+ /**
201
+ * Counts unique leaf-row values for a grouped column.
202
+ *
203
+ * Values are compared with JavaScript `Set` semantics.
204
+ */
205
+ export function aggregationFn_uniqueCount<
206
+ TFeatures extends TableFeatures,
207
+ TData extends RowData,
208
+ >(columnId: string, leafRows: Array<Row<TFeatures, TData>>) {
209
+ const set = new Set<unknown>()
210
+ for (let i = 0; i < leafRows.length; i++) {
211
+ set.add(leafRows[i]!.getValue(columnId))
212
+ }
213
+ return set.size
214
+ }
215
+
216
+ /**
217
+ * Counts the number of leaf rows in the group.
218
+ *
219
+ * The column id is ignored because the result is based only on group size.
220
+ */
221
+ export function aggregationFn_count<
222
+ TFeatures extends TableFeatures,
223
+ TData extends RowData,
224
+ >(_columnId: string, leafRows: Array<Row<TFeatures, TData>>) {
225
+ return leafRows.length
226
+ }
227
+
228
+ /**
229
+ * The built-in aggregation function registry.
230
+ *
231
+ * Pass this object to grouped row model creation or extend it with custom aggregation functions for grouped columns.
232
+ */
233
+ export const aggregationFns = {
234
+ sum: aggregationFn_sum,
235
+ min: aggregationFn_min,
236
+ max: aggregationFn_max,
237
+ extent: aggregationFn_extent,
238
+ mean: aggregationFn_mean,
239
+ median: aggregationFn_median,
240
+ unique: aggregationFn_unique,
241
+ uniqueCount: aggregationFn_uniqueCount,
242
+ count: aggregationFn_count,
243
+ }
244
+
245
+ export type BuiltInAggregationFn = keyof typeof aggregationFns
@@ -0,0 +1,382 @@
1
+ import type { RowData } from '../types/type-utils'
2
+ import type { TableFeatures } from '../types/TableFeatures'
3
+ import type { Row } from '../types/Row'
4
+
5
+ // Basic filters
6
+
7
+ /**
8
+ * Keeps rows whose column value is strictly equal to the filter value.
9
+ *
10
+ * Uses JavaScript `===` comparison and auto-removes empty filter values.
11
+ */
12
+ export const filterFn_equals = Object.assign(
13
+ <TFeatures extends TableFeatures, TData extends RowData>(
14
+ row: Row<TFeatures, TData>,
15
+ columnId: string,
16
+ filterValue: unknown,
17
+ ) => {
18
+ return row.getValue(columnId) === filterValue
19
+ },
20
+ { autoRemove: (val: any) => testFalsy(val) },
21
+ )
22
+
23
+ /**
24
+ * Keeps rows whose column value is loosely equal to the filter value.
25
+ *
26
+ * Uses JavaScript `==` comparison and auto-removes empty filter values. This is
27
+ * useful for matching string input against numeric row values.
28
+ */
29
+ export const filterFn_weakEquals = Object.assign(
30
+ <TFeatures extends TableFeatures, TData extends RowData>(
31
+ row: Row<TFeatures, TData>,
32
+ columnId: string,
33
+ filterValue: unknown,
34
+ ) => {
35
+ return row.getValue(columnId) == filterValue
36
+ },
37
+ { autoRemove: (val: any) => testFalsy(val) },
38
+ )
39
+
40
+ // String filters
41
+
42
+ /**
43
+ * Keeps rows whose stringified column value includes the filter text.
44
+ *
45
+ * Matching is case-sensitive and empty filter values are auto-removed.
46
+ */
47
+ export const filterFn_includesStringSensitive = Object.assign(
48
+ <TFeatures extends TableFeatures, TData extends RowData>(
49
+ row: Row<TFeatures, TData>,
50
+ columnId: string,
51
+ filterValue: unknown,
52
+ ) => {
53
+ return Boolean(
54
+ row.getValue(columnId)?.toString().includes(String(filterValue)),
55
+ )
56
+ },
57
+ { autoRemove: (val: any) => testFalsy(val) },
58
+ )
59
+
60
+ /**
61
+ * Keeps rows whose stringified column value includes the filter text.
62
+ *
63
+ * Both values are lowercased before comparison, and empty filter values are
64
+ * auto-removed.
65
+ */
66
+ export const filterFn_includesString = Object.assign(
67
+ <TFeatures extends TableFeatures, TData extends RowData>(
68
+ row: Row<TFeatures, TData>,
69
+ columnId: string,
70
+ filterValue: unknown,
71
+ ) => {
72
+ return Boolean(
73
+ row
74
+ .getValue(columnId)
75
+ ?.toString()
76
+ .toLowerCase()
77
+ .includes(String(filterValue).toLowerCase()),
78
+ )
79
+ },
80
+ { autoRemove: (val: any) => testFalsy(val) },
81
+ )
82
+
83
+ /**
84
+ * Keeps rows whose stringified column value equals the filter text.
85
+ *
86
+ * Both values are lowercased before comparison, and empty filter values are
87
+ * auto-removed.
88
+ */
89
+ export const filterFn_equalsString = Object.assign(
90
+ <TFeatures extends TableFeatures, TData extends RowData>(
91
+ row: Row<TFeatures, TData>,
92
+ columnId: string,
93
+ filterValue: unknown,
94
+ ) => {
95
+ return (
96
+ row.getValue(columnId)?.toString().toLowerCase() ===
97
+ String(filterValue).toLowerCase()
98
+ )
99
+ },
100
+ { autoRemove: (val: any) => testFalsy(val) },
101
+ )
102
+
103
+ /**
104
+ * Keeps rows whose stringified column value exactly equals the filter text.
105
+ *
106
+ * Matching is case-sensitive and empty filter values are auto-removed.
107
+ */
108
+ export const filterFn_equalsStringSensitive = Object.assign(
109
+ <TFeatures extends TableFeatures, TData extends RowData>(
110
+ row: Row<TFeatures, TData>,
111
+ columnId: string,
112
+ filterValue: unknown,
113
+ ) => {
114
+ return row.getValue(columnId)?.toString() === String(filterValue)
115
+ },
116
+ { autoRemove: (val: any) => testFalsy(val) },
117
+ )
118
+
119
+ // Number filters
120
+
121
+ /**
122
+ * Keeps rows whose value is greater than the filter value.
123
+ *
124
+ * Numeric values are compared numerically when both sides can be coerced to
125
+ * numbers; otherwise normalized strings are compared.
126
+ */
127
+ export const filterFn_greaterThan = Object.assign(
128
+ <TFeatures extends TableFeatures, TData extends RowData>(
129
+ row: Row<TFeatures, TData>,
130
+ columnId: string,
131
+ filterValue: unknown,
132
+ ) => {
133
+ const rowValue = row.getValue(columnId)
134
+ const numericRowValue =
135
+ rowValue === null || rowValue === undefined ? 0 : +rowValue
136
+ const numericFilterValue = Number(filterValue)
137
+
138
+ if (!isNaN(numericFilterValue) && !isNaN(numericRowValue)) {
139
+ return numericRowValue > numericFilterValue
140
+ }
141
+
142
+ const stringValue = (rowValue ?? '').toString().toLowerCase().trim()
143
+ const stringFilterValue = String(filterValue).toLowerCase().trim()
144
+ return stringValue > stringFilterValue
145
+ },
146
+ { resolveFilterValue: (val: any) => testFalsy(val) },
147
+ )
148
+
149
+ /**
150
+ * Keeps rows whose value is greater than or equal to the filter value.
151
+ *
152
+ * Delegates to the built-in greater-than and equality comparisons.
153
+ */
154
+ export const filterFn_greaterThanOrEqualTo = Object.assign(
155
+ <TFeatures extends TableFeatures, TData extends RowData>(
156
+ row: Row<TFeatures, TData>,
157
+ columnId: string,
158
+ filterValue: unknown,
159
+ ) => {
160
+ return (
161
+ filterFn_greaterThan(row, columnId, filterValue) ||
162
+ filterFn_equals(row, columnId, filterValue)
163
+ )
164
+ },
165
+ { resolveFilterValue: (val: any) => testFalsy(val) },
166
+ )
167
+
168
+ /**
169
+ * Keeps rows whose value is less than the filter value.
170
+ *
171
+ * This is implemented as the inverse of greater-than-or-equal comparison.
172
+ */
173
+ export const filterFn_lessThan = Object.assign(
174
+ <TFeatures extends TableFeatures, TData extends RowData>(
175
+ row: Row<TFeatures, TData>,
176
+ columnId: string,
177
+ filterValue: unknown,
178
+ ) => {
179
+ return !filterFn_greaterThanOrEqualTo(row, columnId, filterValue)
180
+ },
181
+ { resolveFilterValue: (val: any) => testFalsy(val) },
182
+ )
183
+
184
+ /**
185
+ * Keeps rows whose value is less than or equal to the filter value.
186
+ *
187
+ * This is implemented as the inverse of greater-than comparison.
188
+ */
189
+ export const filterFn_lessThanOrEqualTo = Object.assign(
190
+ <TFeatures extends TableFeatures, TData extends RowData>(
191
+ row: Row<TFeatures, TData>,
192
+ columnId: string,
193
+ filterValue: unknown,
194
+ ) => {
195
+ return !filterFn_greaterThan(row, columnId, filterValue)
196
+ },
197
+ { resolveFilterValue: (val: any) => testFalsy(val) },
198
+ )
199
+
200
+ // Range filters
201
+
202
+ /**
203
+ * Keeps rows whose value falls between an exclusive min/max pair.
204
+ *
205
+ * Blank range endpoints are treated as open-ended.
206
+ */
207
+ const filterFn_between = Object.assign(
208
+ <TFeatures extends TableFeatures, TData extends RowData>(
209
+ row: Row<TFeatures, TData>,
210
+ columnId: string,
211
+ filterValues: [unknown, unknown],
212
+ ): boolean =>
213
+ ((['', undefined] as Array<any>).includes(filterValues[0]) ||
214
+ filterFn_greaterThan(row, columnId, filterValues[0])) &&
215
+ ((!isNaN(Number(filterValues[0])) &&
216
+ !isNaN(Number(filterValues[1])) &&
217
+ Number(filterValues[0]) > Number(filterValues[1])) ||
218
+ (['', undefined] as Array<any>).includes(filterValues[1]) ||
219
+ filterFn_lessThan(row, columnId, filterValues[1])),
220
+ { autoRemove: (val: any) => !val },
221
+ )
222
+
223
+ /**
224
+ * Keeps rows whose value falls between an inclusive min/max pair.
225
+ *
226
+ * Blank range endpoints are treated as open-ended.
227
+ */
228
+ const filterFn_betweenInclusive = Object.assign(
229
+ <TFeatures extends TableFeatures, TData extends RowData>(
230
+ row: Row<TFeatures, TData>,
231
+ columnId: string,
232
+ filterValues: [unknown, unknown],
233
+ ): boolean =>
234
+ ((['', undefined] as Array<any>).includes(filterValues[0]) ||
235
+ filterFn_greaterThanOrEqualTo(row, columnId, filterValues[0])) &&
236
+ ((!isNaN(Number(filterValues[0])) &&
237
+ !isNaN(Number(filterValues[1])) &&
238
+ Number(filterValues[0]) > Number(filterValues[1])) ||
239
+ (['', undefined] as Array<any>).includes(filterValues[1]) ||
240
+ filterFn_lessThanOrEqualTo(row, columnId, filterValues[1])),
241
+ { autoRemove: (val: any) => !val },
242
+ )
243
+
244
+ /**
245
+ * Keeps rows whose numeric value is inside an inclusive `[min, max]` range.
246
+ *
247
+ * Filter values are normalized so blank endpoints become open-ended and
248
+ * reversed endpoints are swapped.
249
+ */
250
+ export const filterFn_inNumberRange = Object.assign(
251
+ <TFeatures extends TableFeatures, TData extends RowData>(
252
+ row: Row<TFeatures, TData>,
253
+ columnId: string,
254
+ filterValue: [number, number],
255
+ ) => {
256
+ const [min, max] = filterValue
257
+
258
+ const rowValue: number = row.getValue(columnId)
259
+ return rowValue >= min && rowValue <= max
260
+ },
261
+ {
262
+ resolveFilterValue: (val: [any, any]) => {
263
+ const [unsafeMin, unsafeMax] = val
264
+
265
+ const parsedMin =
266
+ typeof unsafeMin !== 'number' ? parseFloat(unsafeMin) : unsafeMin
267
+ const parsedMax =
268
+ typeof unsafeMax !== 'number' ? parseFloat(unsafeMax) : unsafeMax
269
+
270
+ let min =
271
+ unsafeMin === null || Number.isNaN(parsedMin) ? -Infinity : parsedMin
272
+ let max =
273
+ unsafeMax === null || Number.isNaN(parsedMax) ? Infinity : parsedMax
274
+
275
+ if (min > max) {
276
+ const temp = min
277
+ min = max
278
+ max = temp
279
+ }
280
+
281
+ return [min, max] as const
282
+ },
283
+ autoRemove: (val: any) =>
284
+ testFalsy(val) || (testFalsy(val[0]) && testFalsy(val[1])),
285
+ },
286
+ )
287
+
288
+ // Array filters
289
+
290
+ /**
291
+ * Keeps rows whose scalar column value equals at least one filter value.
292
+ */
293
+ export const filterFn_arrHas = <
294
+ TFeatures extends TableFeatures,
295
+ TData extends RowData,
296
+ >(
297
+ row: Row<TFeatures, TData>,
298
+ columnId: string,
299
+ filterValue: Array<unknown>,
300
+ ) => {
301
+ return filterValue.some((val) => row.getValue<unknown>(columnId) === val)
302
+ }
303
+
304
+ /**
305
+ * Keeps rows whose array or string column value includes at least one filter value.
306
+ */
307
+ export const filterFn_arrIncludes = Object.assign(
308
+ <TFeatures extends TableFeatures, TData extends RowData>(
309
+ row: Row<TFeatures, TData>,
310
+ columnId: string,
311
+ filterValue: Array<unknown>,
312
+ ) => {
313
+ return filterValue.some((val) =>
314
+ (row.getValue<unknown>(columnId) as Array<unknown> | string).includes(
315
+ val as any,
316
+ ),
317
+ )
318
+ },
319
+ { autoRemove: (val: any) => testFalsy(val) || !val?.length },
320
+ )
321
+
322
+ /**
323
+ * Keeps rows whose array column value includes every filter value.
324
+ */
325
+ export const filterFn_arrIncludesAll = Object.assign(
326
+ <TFeatures extends TableFeatures, TData extends RowData>(
327
+ row: Row<TFeatures, TData>,
328
+ columnId: string,
329
+ filterValue: Array<unknown>,
330
+ ) => {
331
+ const value = row.getValue<Array<unknown>>(columnId)
332
+ if (!Array.isArray(value)) return false
333
+ return !filterValue.some((val) => !value.includes(val))
334
+ },
335
+ { autoRemove: (val: any) => testFalsy(val) || !val?.length },
336
+ )
337
+
338
+ /**
339
+ * Keeps rows whose array column value includes at least one filter value.
340
+ */
341
+ export const filterFn_arrIncludesSome = Object.assign(
342
+ <TFeatures extends TableFeatures, TData extends RowData>(
343
+ row: Row<TFeatures, TData>,
344
+ columnId: string,
345
+ filterValue: Array<unknown>,
346
+ ) => {
347
+ const value = row.getValue<Array<unknown>>(columnId)
348
+ if (!Array.isArray(value)) return false
349
+ return filterValue.some((val) => value.includes(val))
350
+ },
351
+ { autoRemove: (val: any) => testFalsy(val) || !val?.length },
352
+ )
353
+
354
+ // Export
355
+
356
+ /**
357
+ * The built-in filter function registry.
358
+ *
359
+ * Pass this object to filtered row model creation or extend it with custom filter functions.
360
+ */
361
+ export const filterFns = {
362
+ arrIncludes: filterFn_arrIncludes,
363
+ arrIncludesAll: filterFn_arrIncludesAll,
364
+ arrHas: filterFn_arrHas,
365
+ arrIncludesSome: filterFn_arrIncludesSome,
366
+ between: filterFn_between,
367
+ betweenInclusive: filterFn_betweenInclusive,
368
+ equals: filterFn_equals,
369
+ equalsString: filterFn_equalsString,
370
+ inNumberRange: filterFn_inNumberRange,
371
+ includesString: filterFn_includesString,
372
+ includesStringSensitive: filterFn_includesStringSensitive,
373
+ weakEquals: filterFn_weakEquals,
374
+ }
375
+
376
+ export type BuiltInFilterFn = keyof typeof filterFns
377
+
378
+ // Utils
379
+
380
+ function testFalsy(val: any) {
381
+ return val === undefined || val === null || val === ''
382
+ }