@tanstack/table-core 9.0.0-alpha.0 → 9.0.0-alpha.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/dist/esm/core/cells/constructCell.d.ts +7 -0
  2. package/dist/esm/core/cells/constructCell.js +21 -0
  3. package/dist/esm/core/cells/constructCell.js.map +1 -0
  4. package/dist/esm/core/cells/coreCellsFeature.d.ts +10 -0
  5. package/dist/esm/core/cells/coreCellsFeature.js +26 -0
  6. package/dist/esm/core/cells/coreCellsFeature.js.map +1 -0
  7. package/dist/esm/core/cells/coreCellsFeature.types.d.ts +52 -0
  8. package/dist/esm/core/cells/coreCellsFeature.utils.d.ts +13 -0
  9. package/dist/esm/core/cells/coreCellsFeature.utils.js +23 -0
  10. package/dist/esm/core/cells/coreCellsFeature.utils.js.map +1 -0
  11. package/dist/esm/core/columns/constructColumn.d.ts +6 -0
  12. package/dist/esm/core/columns/constructColumn.js +60 -0
  13. package/dist/esm/core/columns/constructColumn.js.map +1 -0
  14. package/dist/esm/core/columns/coreColumnsFeature.d.ts +10 -0
  15. package/dist/esm/core/columns/coreColumnsFeature.js +61 -0
  16. package/dist/esm/core/columns/coreColumnsFeature.js.map +1 -0
  17. package/dist/esm/core/columns/coreColumnsFeature.types.d.ts +84 -0
  18. package/dist/esm/core/columns/coreColumnsFeature.utils.d.ts +13 -0
  19. package/dist/esm/core/columns/coreColumnsFeature.utils.js +91 -0
  20. package/dist/esm/core/columns/coreColumnsFeature.utils.js.map +1 -0
  21. package/dist/esm/core/coreFeatures.d.ts +15 -0
  22. package/dist/esm/core/coreFeatures.js +18 -0
  23. package/dist/esm/core/coreFeatures.js.map +1 -0
  24. package/dist/esm/core/headers/buildHeaderGroups.d.ts +6 -0
  25. package/dist/esm/core/headers/buildHeaderGroups.js +99 -0
  26. package/dist/esm/core/headers/buildHeaderGroups.js.map +1 -0
  27. package/dist/esm/core/headers/constructHeader.d.ts +12 -0
  28. package/dist/esm/core/headers/constructHeader.js +28 -0
  29. package/dist/esm/core/headers/constructHeader.js.map +1 -0
  30. package/dist/esm/core/headers/coreHeadersFeature.d.ts +10 -0
  31. package/dist/esm/core/headers/coreHeadersFeature.js +68 -0
  32. package/dist/esm/core/headers/coreHeadersFeature.js.map +1 -0
  33. package/dist/esm/core/headers/coreHeadersFeature.types.d.ts +99 -0
  34. package/dist/esm/core/headers/coreHeadersFeature.utils.d.ts +15 -0
  35. package/dist/esm/core/headers/coreHeadersFeature.utils.js +85 -0
  36. package/dist/esm/core/headers/coreHeadersFeature.utils.js.map +1 -0
  37. package/dist/esm/core/row-models/coreRowModelsFeature.d.ts +10 -0
  38. package/dist/esm/core/row-models/coreRowModelsFeature.js +52 -0
  39. package/dist/esm/core/row-models/coreRowModelsFeature.js.map +1 -0
  40. package/dist/esm/core/row-models/coreRowModelsFeature.types.d.ts +39 -0
  41. package/dist/esm/core/row-models/coreRowModelsFeature.utils.d.ts +16 -0
  42. package/dist/esm/core/row-models/coreRowModelsFeature.utils.js +85 -0
  43. package/dist/esm/core/row-models/coreRowModelsFeature.utils.js.map +1 -0
  44. package/dist/esm/core/row-models/createCoreRowModel.d.ts +5 -0
  45. package/dist/esm/core/row-models/createCoreRowModel.js +54 -0
  46. package/dist/esm/core/row-models/createCoreRowModel.js.map +1 -0
  47. package/dist/esm/core/rows/constructRow.d.ts +5 -0
  48. package/dist/esm/core/rows/constructRow.js +29 -0
  49. package/dist/esm/core/rows/constructRow.js.map +1 -0
  50. package/dist/esm/core/rows/coreRowsFeature.d.ts +10 -0
  51. package/dist/esm/core/rows/coreRowsFeature.js +52 -0
  52. package/dist/esm/core/rows/coreRowsFeature.js.map +1 -0
  53. package/dist/esm/core/rows/coreRowsFeature.types.d.ts +91 -0
  54. package/dist/esm/core/rows/coreRowsFeature.utils.d.ts +15 -0
  55. package/dist/esm/core/rows/coreRowsFeature.utils.js +94 -0
  56. package/dist/esm/core/rows/coreRowsFeature.utils.js.map +1 -0
  57. package/dist/esm/core/table/constructTable.d.ts +9 -0
  58. package/dist/esm/core/table/constructTable.js +65 -0
  59. package/dist/esm/core/table/constructTable.js.map +1 -0
  60. package/dist/esm/core/table/coreTablesFeature.d.ts +10 -0
  61. package/dist/esm/core/table/coreTablesFeature.js +22 -0
  62. package/dist/esm/core/table/coreTablesFeature.js.map +1 -0
  63. package/dist/esm/core/table/coreTablesFeature.types.d.ts +105 -0
  64. package/dist/esm/core/table/coreTablesFeature.utils.d.ts +7 -0
  65. package/dist/esm/core/table/coreTablesFeature.utils.js +23 -0
  66. package/dist/esm/core/table/coreTablesFeature.utils.js.map +1 -0
  67. package/dist/esm/features/column-faceting/columnFacetingFeature.d.ts +10 -0
  68. package/dist/esm/features/column-faceting/columnFacetingFeature.js +80 -0
  69. package/dist/esm/features/column-faceting/columnFacetingFeature.js.map +1 -0
  70. package/dist/esm/features/column-faceting/columnFacetingFeature.types.d.ts +68 -0
  71. package/dist/esm/features/column-faceting/columnFacetingFeature.utils.d.ts +11 -0
  72. package/dist/esm/features/column-faceting/columnFacetingFeature.utils.js +33 -0
  73. package/dist/esm/features/column-faceting/columnFacetingFeature.utils.js.map +1 -0
  74. package/dist/esm/features/column-faceting/createFacetedMinMaxValues.d.ts +4 -0
  75. package/dist/esm/features/column-faceting/createFacetedMinMaxValues.js +41 -0
  76. package/dist/esm/features/column-faceting/createFacetedMinMaxValues.js.map +1 -0
  77. package/dist/esm/features/column-faceting/createFacetedRowModel.d.ts +5 -0
  78. package/dist/esm/features/column-faceting/createFacetedRowModel.js +47 -0
  79. package/dist/esm/features/column-faceting/createFacetedRowModel.js.map +1 -0
  80. package/dist/esm/features/column-faceting/createFacetedUniqueValues.d.ts +4 -0
  81. package/dist/esm/features/column-faceting/createFacetedUniqueValues.js +46 -0
  82. package/dist/esm/features/column-faceting/createFacetedUniqueValues.js.map +1 -0
  83. package/dist/esm/features/column-filtering/columnFilteringFeature.d.ts +11 -0
  84. package/dist/esm/features/column-filtering/columnFilteringFeature.js +69 -0
  85. package/dist/esm/features/column-filtering/columnFilteringFeature.js.map +1 -0
  86. package/dist/esm/features/column-filtering/columnFilteringFeature.types.d.ts +145 -0
  87. package/dist/esm/features/column-filtering/columnFilteringFeature.utils.d.ts +16 -0
  88. package/dist/esm/features/column-filtering/columnFilteringFeature.utils.js +118 -0
  89. package/dist/esm/features/column-filtering/columnFilteringFeature.utils.js.map +1 -0
  90. package/dist/esm/features/column-filtering/createFilteredRowModel.d.ts +6 -0
  91. package/dist/esm/features/column-filtering/createFilteredRowModel.js +110 -0
  92. package/dist/esm/features/column-filtering/createFilteredRowModel.js.map +1 -0
  93. package/dist/esm/features/column-filtering/filterRowsUtils.d.ts +6 -0
  94. package/dist/esm/{utils → features/column-filtering}/filterRowsUtils.js +15 -19
  95. package/dist/esm/features/column-filtering/filterRowsUtils.js.map +1 -0
  96. package/dist/esm/features/column-grouping/columnGroupingFeature.d.ts +10 -0
  97. package/dist/esm/features/column-grouping/columnGroupingFeature.js +91 -0
  98. package/dist/esm/features/column-grouping/columnGroupingFeature.js.map +1 -0
  99. package/dist/esm/features/column-grouping/columnGroupingFeature.types.d.ts +153 -0
  100. package/dist/esm/features/column-grouping/columnGroupingFeature.utils.d.ts +22 -0
  101. package/dist/esm/features/column-grouping/columnGroupingFeature.utils.js +99 -0
  102. package/dist/esm/features/column-grouping/columnGroupingFeature.utils.js.map +1 -0
  103. package/dist/esm/features/column-grouping/createGroupedRowModel.d.ts +6 -0
  104. package/dist/esm/features/column-grouping/createGroupedRowModel.js +144 -0
  105. package/dist/esm/features/column-grouping/createGroupedRowModel.js.map +1 -0
  106. package/dist/esm/features/column-ordering/columnOrderingFeature.d.ts +10 -0
  107. package/dist/esm/features/column-ordering/columnOrderingFeature.js +60 -0
  108. package/dist/esm/features/column-ordering/columnOrderingFeature.js.map +1 -0
  109. package/dist/{cjs/features/ColumnOrdering.d.cts → esm/features/column-ordering/columnOrderingFeature.types.d.ts} +8 -22
  110. package/dist/esm/features/column-ordering/columnOrderingFeature.utils.d.ts +14 -0
  111. package/dist/esm/features/column-ordering/columnOrderingFeature.utils.js +72 -0
  112. package/dist/esm/features/column-ordering/columnOrderingFeature.utils.js.map +1 -0
  113. package/dist/esm/features/column-pinning/columnPinningFeature.d.ts +10 -0
  114. package/dist/esm/features/column-pinning/columnPinningFeature.js +260 -0
  115. package/dist/esm/features/column-pinning/columnPinningFeature.js.map +1 -0
  116. package/dist/esm/features/column-pinning/columnPinningFeature.types.d.ts +157 -0
  117. package/dist/esm/features/column-pinning/columnPinningFeature.utils.d.ts +39 -0
  118. package/dist/esm/features/column-pinning/columnPinningFeature.utils.js +325 -0
  119. package/dist/esm/features/column-pinning/columnPinningFeature.utils.js.map +1 -0
  120. package/dist/esm/features/column-resizing/columnResizingFeature.d.ts +11 -0
  121. package/dist/esm/features/column-resizing/columnResizingFeature.js +52 -0
  122. package/dist/esm/features/column-resizing/columnResizingFeature.js.map +1 -0
  123. package/dist/esm/features/column-resizing/columnResizingFeature.types.d.ts +68 -0
  124. package/dist/esm/features/column-resizing/columnResizingFeature.utils.d.ts +14 -0
  125. package/dist/esm/features/column-resizing/columnResizingFeature.utils.js +193 -0
  126. package/dist/esm/features/column-resizing/columnResizingFeature.utils.js.map +1 -0
  127. package/dist/esm/features/column-sizing/columnSizingFeature.d.ts +11 -0
  128. package/dist/esm/features/column-sizing/columnSizingFeature.js +95 -0
  129. package/dist/esm/features/column-sizing/columnSizingFeature.js.map +1 -0
  130. package/dist/esm/features/column-sizing/columnSizingFeature.types.d.ts +81 -0
  131. package/dist/esm/features/column-sizing/columnSizingFeature.utils.d.ts +25 -0
  132. package/dist/esm/features/column-sizing/columnSizingFeature.utils.js +128 -0
  133. package/dist/esm/features/column-sizing/columnSizingFeature.utils.js.map +1 -0
  134. package/dist/esm/features/column-visibility/columnVisibilityFeature.d.ts +10 -0
  135. package/dist/esm/features/column-visibility/columnVisibilityFeature.js +100 -0
  136. package/dist/esm/features/column-visibility/columnVisibilityFeature.js.map +1 -0
  137. package/dist/esm/features/column-visibility/columnVisibilityFeature.types.d.ts +84 -0
  138. package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.d.ts +22 -0
  139. package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.js +105 -0
  140. package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -0
  141. package/dist/esm/features/global-filtering/globalFilteringFeature.d.ts +11 -0
  142. package/dist/esm/features/global-filtering/globalFilteringFeature.js +51 -0
  143. package/dist/esm/features/global-filtering/globalFilteringFeature.js.map +1 -0
  144. package/dist/esm/features/global-filtering/globalFilteringFeature.types.d.ts +59 -0
  145. package/dist/esm/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -0
  146. package/dist/esm/features/global-filtering/globalFilteringFeature.utils.js +30 -0
  147. package/dist/esm/features/global-filtering/globalFilteringFeature.utils.js.map +1 -0
  148. package/dist/esm/features/row-expanding/createExpandedRowModel.d.ts +6 -0
  149. package/dist/esm/features/row-expanding/createExpandedRowModel.js +49 -0
  150. package/dist/esm/features/row-expanding/createExpandedRowModel.js.map +1 -0
  151. package/dist/esm/features/row-expanding/rowExpandingFeature.d.ts +10 -0
  152. package/dist/esm/features/row-expanding/rowExpandingFeature.js +74 -0
  153. package/dist/esm/features/row-expanding/rowExpandingFeature.js.map +1 -0
  154. package/dist/esm/features/row-expanding/rowExpandingFeature.types.d.ts +116 -0
  155. package/dist/esm/features/row-expanding/rowExpandingFeature.utils.d.ts +20 -0
  156. package/dist/esm/features/row-expanding/rowExpandingFeature.utils.js +125 -0
  157. package/dist/esm/features/row-expanding/rowExpandingFeature.utils.js.map +1 -0
  158. package/dist/esm/features/row-pagination/createPaginatedRowModel.d.ts +5 -0
  159. package/dist/esm/features/row-pagination/createPaginatedRowModel.js +58 -0
  160. package/dist/esm/features/row-pagination/createPaginatedRowModel.js.map +1 -0
  161. package/dist/esm/features/row-pagination/rowPaginationFeature.d.ts +10 -0
  162. package/dist/esm/features/row-pagination/rowPaginationFeature.js +78 -0
  163. package/dist/esm/features/row-pagination/rowPaginationFeature.js.map +1 -0
  164. package/dist/esm/features/row-pagination/rowPaginationFeature.types.d.ts +119 -0
  165. package/dist/esm/features/row-pagination/rowPaginationFeature.utils.d.ts +21 -0
  166. package/dist/esm/features/row-pagination/rowPaginationFeature.utils.js +126 -0
  167. package/dist/esm/features/row-pagination/rowPaginationFeature.utils.js.map +1 -0
  168. package/dist/esm/features/row-pinning/rowPinningFeature.d.ts +10 -0
  169. package/dist/esm/features/row-pinning/rowPinningFeature.js +80 -0
  170. package/dist/esm/features/row-pinning/rowPinningFeature.js.map +1 -0
  171. package/dist/esm/features/row-pinning/rowPinningFeature.types.d.ts +72 -0
  172. package/dist/esm/features/row-pinning/rowPinningFeature.utils.d.ts +16 -0
  173. package/dist/esm/features/row-pinning/rowPinningFeature.utils.js +115 -0
  174. package/dist/esm/features/row-pinning/rowPinningFeature.utils.js.map +1 -0
  175. package/dist/esm/features/row-selection/rowSelectionFeature.d.ts +10 -0
  176. package/dist/esm/features/row-selection/rowSelectionFeature.js +112 -0
  177. package/dist/esm/features/row-selection/rowSelectionFeature.js.map +1 -0
  178. package/dist/esm/features/row-selection/rowSelectionFeature.types.d.ts +123 -0
  179. package/dist/esm/features/row-selection/rowSelectionFeature.utils.d.ts +34 -0
  180. package/dist/esm/features/row-selection/rowSelectionFeature.utils.js +290 -0
  181. package/dist/esm/features/row-selection/rowSelectionFeature.utils.js.map +1 -0
  182. package/dist/esm/features/row-sorting/createSortedRowModel.d.ts +6 -0
  183. package/dist/esm/features/row-sorting/createSortedRowModel.js +94 -0
  184. package/dist/esm/features/row-sorting/createSortedRowModel.js.map +1 -0
  185. package/dist/esm/features/row-sorting/rowSortingFeature.d.ts +10 -0
  186. package/dist/esm/features/row-sorting/rowSortingFeature.js +82 -0
  187. package/dist/esm/features/row-sorting/rowSortingFeature.js.map +1 -0
  188. package/dist/esm/features/row-sorting/rowSortingFeature.types.d.ts +178 -0
  189. package/dist/esm/features/row-sorting/rowSortingFeature.utils.d.ts +20 -0
  190. package/dist/esm/features/row-sorting/rowSortingFeature.utils.js +181 -0
  191. package/dist/esm/features/row-sorting/rowSortingFeature.utils.js.map +1 -0
  192. package/dist/esm/features/stockFeatures.d.ts +31 -0
  193. package/dist/esm/features/stockFeatures.js +34 -0
  194. package/dist/esm/features/stockFeatures.js.map +1 -0
  195. package/dist/esm/fns/aggregationFns.d.ts +49 -0
  196. package/dist/esm/fns/aggregationFns.js +110 -0
  197. package/dist/esm/fns/aggregationFns.js.map +1 -0
  198. package/dist/esm/fns/filterFns.d.ts +76 -0
  199. package/dist/esm/fns/filterFns.js +134 -0
  200. package/dist/esm/fns/filterFns.js.map +1 -0
  201. package/dist/esm/fns/sortFns.d.ts +17 -0
  202. package/dist/esm/{sortingFns.js → fns/sortFns.js} +21 -15
  203. package/dist/esm/fns/sortFns.js.map +1 -0
  204. package/dist/esm/helpers/columnHelper.d.ts +61 -0
  205. package/dist/esm/{columnHelper.js → helpers/columnHelper.js} +1 -0
  206. package/dist/esm/helpers/columnHelper.js.map +1 -0
  207. package/dist/esm/helpers/tableFeatures.d.ts +13 -0
  208. package/dist/esm/helpers/tableFeatures.js +7 -0
  209. package/dist/esm/helpers/tableFeatures.js.map +1 -0
  210. package/dist/esm/helpers/tableHelper.d.ts +25 -0
  211. package/dist/esm/helpers/tableHelper.js +13 -0
  212. package/dist/esm/helpers/tableHelper.js.map +1 -0
  213. package/dist/esm/helpers/tableOptions.d.ts +23 -0
  214. package/dist/esm/helpers/tableOptions.js +7 -0
  215. package/dist/esm/helpers/tableOptions.js.map +1 -0
  216. package/dist/esm/index.d.ts +109 -33
  217. package/dist/esm/index.js +397 -65
  218. package/dist/esm/index.js.map +1 -1
  219. package/dist/esm/types/Cell.d.ts +13 -0
  220. package/dist/esm/types/Column.d.ts +26 -0
  221. package/dist/esm/types/ColumnDef.d.ts +64 -0
  222. package/dist/esm/types/Header.d.ts +14 -0
  223. package/dist/esm/types/HeaderGroup.d.ts +12 -0
  224. package/dist/esm/types/Row.d.ts +19 -0
  225. package/dist/esm/types/RowModel.d.ts +23 -0
  226. package/dist/esm/types/RowModelFns.d.ts +15 -0
  227. package/dist/esm/types/Table.d.ts +53 -0
  228. package/dist/esm/types/TableFeatures.d.ts +77 -0
  229. package/dist/esm/types/TableOptions.d.ts +39 -0
  230. package/dist/esm/types/TableState.d.ts +23 -0
  231. package/dist/esm/types/type-utils.d.ts +22 -0
  232. package/dist/esm/utils.d.ts +66 -33
  233. package/dist/esm/utils.js +183 -52
  234. package/dist/esm/utils.js.map +1 -1
  235. package/package.json +21 -12
  236. package/src/core/cells/constructCell.ts +49 -0
  237. package/src/core/cells/coreCellsFeature.ts +44 -0
  238. package/src/core/cells/coreCellsFeature.types.ts +68 -0
  239. package/src/core/cells/coreCellsFeature.utils.ts +35 -0
  240. package/src/core/columns/constructColumn.ts +111 -0
  241. package/src/core/columns/coreColumnsFeature.ts +90 -0
  242. package/src/core/columns/coreColumnsFeature.types.ts +103 -0
  243. package/src/core/columns/coreColumnsFeature.utils.ts +160 -0
  244. package/src/core/coreFeatures.ts +24 -0
  245. package/src/core/headers/buildHeaderGroups.ts +177 -0
  246. package/src/core/headers/constructHeader.ts +61 -0
  247. package/src/core/headers/coreHeadersFeature.ts +98 -0
  248. package/src/core/headers/coreHeadersFeature.types.ts +123 -0
  249. package/src/core/headers/coreHeadersFeature.utils.ts +131 -0
  250. package/src/core/row-models/coreRowModelsFeature.ts +78 -0
  251. package/src/core/row-models/coreRowModelsFeature.types.ts +67 -0
  252. package/src/core/row-models/coreRowModelsFeature.utils.ts +140 -0
  253. package/src/core/row-models/createCoreRowModel.ts +88 -0
  254. package/src/core/rows/constructRow.ts +59 -0
  255. package/src/core/rows/coreRowsFeature.ts +84 -0
  256. package/src/core/rows/coreRowsFeature.types.ts +111 -0
  257. package/src/core/rows/coreRowsFeature.utils.ts +152 -0
  258. package/src/core/table/constructTable.ts +95 -0
  259. package/src/core/table/coreTablesFeature.ts +36 -0
  260. package/src/core/table/coreTablesFeature.types.ts +123 -0
  261. package/src/core/table/coreTablesFeature.utils.ts +40 -0
  262. package/src/features/column-faceting/columnFacetingFeature.ts +112 -0
  263. package/src/features/column-faceting/columnFacetingFeature.types.ts +97 -0
  264. package/src/features/column-faceting/columnFacetingFeature.utils.ts +77 -0
  265. package/src/features/column-faceting/createFacetedMinMaxValues.ts +63 -0
  266. package/src/features/column-faceting/createFacetedRowModel.ts +76 -0
  267. package/src/features/column-faceting/createFacetedUniqueValues.ts +60 -0
  268. package/src/features/column-filtering/columnFilteringFeature.ts +121 -0
  269. package/src/features/column-filtering/columnFilteringFeature.types.ts +219 -0
  270. package/src/features/column-filtering/columnFilteringFeature.utils.ts +213 -0
  271. package/src/features/column-filtering/createFilteredRowModel.ts +171 -0
  272. package/src/features/column-filtering/filterRowsUtils.ts +152 -0
  273. package/src/features/column-grouping/columnGroupingFeature.ts +151 -0
  274. package/src/features/column-grouping/columnGroupingFeature.types.ts +218 -0
  275. package/src/features/column-grouping/columnGroupingFeature.utils.ts +192 -0
  276. package/src/features/column-grouping/createGroupedRowModel.ts +215 -0
  277. package/src/features/column-ordering/columnOrderingFeature.ts +96 -0
  278. package/src/features/column-ordering/columnOrderingFeature.types.ts +49 -0
  279. package/src/features/column-ordering/columnOrderingFeature.utils.ts +133 -0
  280. package/src/features/column-pinning/columnPinningFeature.ts +324 -0
  281. package/src/features/column-pinning/columnPinningFeature.types.ts +176 -0
  282. package/src/features/column-pinning/columnPinningFeature.utils.ts +537 -0
  283. package/src/features/column-resizing/columnResizingFeature.ts +92 -0
  284. package/src/features/column-resizing/columnResizingFeature.types.ts +81 -0
  285. package/src/features/column-resizing/columnResizingFeature.utils.ts +265 -0
  286. package/src/features/column-sizing/columnSizingFeature.ts +146 -0
  287. package/src/features/column-sizing/columnSizingFeature.types.ts +92 -0
  288. package/src/features/column-sizing/columnSizingFeature.utils.ts +211 -0
  289. package/src/features/column-visibility/columnVisibilityFeature.ts +155 -0
  290. package/src/features/column-visibility/columnVisibilityFeature.types.ts +101 -0
  291. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +183 -0
  292. package/src/features/global-filtering/globalFilteringFeature.ts +92 -0
  293. package/src/features/global-filtering/globalFilteringFeature.types.ts +84 -0
  294. package/src/features/global-filtering/globalFilteringFeature.utils.ts +60 -0
  295. package/src/features/row-expanding/createExpandedRowModel.ts +72 -0
  296. package/src/features/row-expanding/rowExpandingFeature.ts +122 -0
  297. package/src/features/row-expanding/rowExpandingFeature.types.ts +141 -0
  298. package/src/features/row-expanding/rowExpandingFeature.utils.ts +207 -0
  299. package/src/features/row-pagination/createPaginatedRowModel.ts +78 -0
  300. package/src/features/row-pagination/rowPaginationFeature.ts +121 -0
  301. package/src/features/row-pagination/rowPaginationFeature.types.ts +141 -0
  302. package/src/features/row-pagination/rowPaginationFeature.utils.ts +204 -0
  303. package/src/features/row-pinning/rowPinningFeature.ts +121 -0
  304. package/src/features/row-pinning/rowPinningFeature.types.ts +89 -0
  305. package/src/features/row-pinning/rowPinningFeature.utils.ts +197 -0
  306. package/src/features/row-selection/rowSelectionFeature.ts +164 -0
  307. package/src/features/row-selection/rowSelectionFeature.types.ts +143 -0
  308. package/src/features/row-selection/rowSelectionFeature.utils.ts +464 -0
  309. package/src/features/row-sorting/createSortedRowModel.ts +147 -0
  310. package/src/features/row-sorting/rowSortingFeature.ts +136 -0
  311. package/src/features/row-sorting/rowSortingFeature.types.ts +229 -0
  312. package/src/features/row-sorting/rowSortingFeature.utils.ts +320 -0
  313. package/src/features/stockFeatures.ts +48 -0
  314. package/src/fns/aggregationFns.ts +220 -0
  315. package/src/fns/filterFns.ts +379 -0
  316. package/src/{sortingFns.ts → fns/sortFns.ts} +66 -21
  317. package/src/helpers/columnHelper.ts +117 -0
  318. package/src/helpers/tableFeatures.ts +24 -0
  319. package/src/helpers/tableHelper.ts +61 -0
  320. package/src/helpers/tableOptions.ts +82 -0
  321. package/src/index.ts +156 -42
  322. package/src/types/Cell.ts +41 -0
  323. package/src/types/Column.ts +86 -0
  324. package/src/types/ColumnDef.ts +217 -0
  325. package/src/types/Header.ts +45 -0
  326. package/src/types/HeaderGroup.ts +24 -0
  327. package/src/types/Row.ts +55 -0
  328. package/src/types/RowModel.ts +137 -0
  329. package/src/types/RowModelFns.ts +51 -0
  330. package/src/types/Table.ts +125 -0
  331. package/src/types/TableFeatures.ts +150 -0
  332. package/src/types/TableOptions.ts +125 -0
  333. package/src/types/TableState.ts +88 -0
  334. package/src/types/type-utils.ts +84 -0
  335. package/src/utils.ts +344 -163
  336. package/dist/cjs/aggregationFns.cjs +0 -98
  337. package/dist/cjs/aggregationFns.cjs.map +0 -1
  338. package/dist/cjs/aggregationFns.d.cts +0 -14
  339. package/dist/cjs/columnHelper.cjs +0 -19
  340. package/dist/cjs/columnHelper.cjs.map +0 -1
  341. package/dist/cjs/columnHelper.d.cts +0 -9
  342. package/dist/cjs/core/cell.cjs +0 -38
  343. package/dist/cjs/core/cell.cjs.map +0 -1
  344. package/dist/cjs/core/cell.d.cts +0 -50
  345. package/dist/cjs/core/column.cjs +0 -81
  346. package/dist/cjs/core/column.cjs.map +0 -1
  347. package/dist/cjs/core/column.d.cts +0 -56
  348. package/dist/cjs/core/headers.cjs +0 -310
  349. package/dist/cjs/core/headers.cjs.map +0 -1
  350. package/dist/cjs/core/headers.d.cts +0 -195
  351. package/dist/cjs/core/row.cjs +0 -93
  352. package/dist/cjs/core/row.cjs.map +0 -1
  353. package/dist/cjs/core/row.d.cts +0 -92
  354. package/dist/cjs/core/table.cjs +0 -228
  355. package/dist/cjs/core/table.cjs.map +0 -1
  356. package/dist/cjs/core/table.d.cts +0 -221
  357. package/dist/cjs/features/ColumnFaceting.cjs +0 -29
  358. package/dist/cjs/features/ColumnFaceting.cjs.map +0 -1
  359. package/dist/cjs/features/ColumnFaceting.d.cts +0 -35
  360. package/dist/cjs/features/ColumnFiltering.cjs +0 -137
  361. package/dist/cjs/features/ColumnFiltering.cjs.map +0 -1
  362. package/dist/cjs/features/ColumnFiltering.d.cts +0 -195
  363. package/dist/cjs/features/ColumnGrouping.cjs +0 -134
  364. package/dist/cjs/features/ColumnGrouping.cjs.map +0 -1
  365. package/dist/cjs/features/ColumnGrouping.d.cts +0 -202
  366. package/dist/cjs/features/ColumnOrdering.cjs +0 -76
  367. package/dist/cjs/features/ColumnOrdering.cjs.map +0 -1
  368. package/dist/cjs/features/ColumnPinning.cjs +0 -145
  369. package/dist/cjs/features/ColumnPinning.cjs.map +0 -1
  370. package/dist/cjs/features/ColumnPinning.d.cts +0 -127
  371. package/dist/cjs/features/ColumnSizing.cjs +0 -308
  372. package/dist/cjs/features/ColumnSizing.cjs.map +0 -1
  373. package/dist/cjs/features/ColumnSizing.d.cts +0 -194
  374. package/dist/cjs/features/ColumnVisibility.cjs +0 -144
  375. package/dist/cjs/features/ColumnVisibility.cjs.map +0 -1
  376. package/dist/cjs/features/ColumnVisibility.d.cts +0 -130
  377. package/dist/cjs/features/GlobalFaceting.cjs +0 -29
  378. package/dist/cjs/features/GlobalFaceting.cjs.map +0 -1
  379. package/dist/cjs/features/GlobalFaceting.d.cts +0 -27
  380. package/dist/cjs/features/GlobalFiltering.cjs +0 -50
  381. package/dist/cjs/features/GlobalFiltering.cjs.map +0 -1
  382. package/dist/cjs/features/GlobalFiltering.d.cts +0 -80
  383. package/dist/cjs/features/RowExpanding.cjs +0 -154
  384. package/dist/cjs/features/RowExpanding.cjs.map +0 -1
  385. package/dist/cjs/features/RowExpanding.d.cts +0 -155
  386. package/dist/cjs/features/RowPagination.cjs +0 -162
  387. package/dist/cjs/features/RowPagination.cjs.map +0 -1
  388. package/dist/cjs/features/RowPagination.d.cts +0 -166
  389. package/dist/cjs/features/RowPinning.cjs +0 -133
  390. package/dist/cjs/features/RowPinning.cjs.map +0 -1
  391. package/dist/cjs/features/RowPinning.d.cts +0 -99
  392. package/dist/cjs/features/RowSelection.cjs +0 -298
  393. package/dist/cjs/features/RowSelection.cjs.map +0 -1
  394. package/dist/cjs/features/RowSelection.d.cts +0 -177
  395. package/dist/cjs/features/RowSorting.cjs +0 -201
  396. package/dist/cjs/features/RowSorting.cjs.map +0 -1
  397. package/dist/cjs/features/RowSorting.d.cts +0 -238
  398. package/dist/cjs/filterFns.cjs +0 -88
  399. package/dist/cjs/filterFns.cjs.map +0 -1
  400. package/dist/cjs/filterFns.d.cts +0 -14
  401. package/dist/cjs/index.cjs +0 -87
  402. package/dist/cjs/index.cjs.map +0 -1
  403. package/dist/cjs/index.d.cts +0 -34
  404. package/dist/cjs/sortingFns.cjs +0 -91
  405. package/dist/cjs/sortingFns.cjs.map +0 -1
  406. package/dist/cjs/sortingFns.d.cts +0 -12
  407. package/dist/cjs/types.d.cts +0 -120
  408. package/dist/cjs/utils/filterRowsUtils.cjs +0 -99
  409. package/dist/cjs/utils/filterRowsUtils.cjs.map +0 -1
  410. package/dist/cjs/utils/filterRowsUtils.d.cts +0 -3
  411. package/dist/cjs/utils/getCoreRowModel.cjs +0 -54
  412. package/dist/cjs/utils/getCoreRowModel.cjs.map +0 -1
  413. package/dist/cjs/utils/getCoreRowModel.d.cts +0 -3
  414. package/dist/cjs/utils/getExpandedRowModel.cjs +0 -41
  415. package/dist/cjs/utils/getExpandedRowModel.cjs.map +0 -1
  416. package/dist/cjs/utils/getExpandedRowModel.d.cts +0 -8
  417. package/dist/cjs/utils/getFacetedMinMaxValues.cjs +0 -36
  418. package/dist/cjs/utils/getFacetedMinMaxValues.cjs.map +0 -1
  419. package/dist/cjs/utils/getFacetedMinMaxValues.d.cts +0 -3
  420. package/dist/cjs/utils/getFacetedRowModel.cjs +0 -35
  421. package/dist/cjs/utils/getFacetedRowModel.cjs.map +0 -1
  422. package/dist/cjs/utils/getFacetedRowModel.d.cts +0 -3
  423. package/dist/cjs/utils/getFacetedUniqueValues.cjs +0 -38
  424. package/dist/cjs/utils/getFacetedUniqueValues.cjs.map +0 -1
  425. package/dist/cjs/utils/getFacetedUniqueValues.d.cts +0 -3
  426. package/dist/cjs/utils/getFilteredRowModel.cjs +0 -116
  427. package/dist/cjs/utils/getFilteredRowModel.cjs.map +0 -1
  428. package/dist/cjs/utils/getFilteredRowModel.d.cts +0 -3
  429. package/dist/cjs/utils/getGroupedRowModel.cjs +0 -118
  430. package/dist/cjs/utils/getGroupedRowModel.cjs.map +0 -1
  431. package/dist/cjs/utils/getGroupedRowModel.d.cts +0 -3
  432. package/dist/cjs/utils/getPaginationRowModel.cjs +0 -49
  433. package/dist/cjs/utils/getPaginationRowModel.cjs.map +0 -1
  434. package/dist/cjs/utils/getPaginationRowModel.d.cts +0 -5
  435. package/dist/cjs/utils/getSortedRowModel.cjs +0 -91
  436. package/dist/cjs/utils/getSortedRowModel.cjs.map +0 -1
  437. package/dist/cjs/utils/getSortedRowModel.d.cts +0 -3
  438. package/dist/cjs/utils.cjs +0 -100
  439. package/dist/cjs/utils.cjs.map +0 -1
  440. package/dist/cjs/utils.d.cts +0 -39
  441. package/dist/esm/aggregationFns.d.ts +0 -14
  442. package/dist/esm/aggregationFns.js +0 -98
  443. package/dist/esm/aggregationFns.js.map +0 -1
  444. package/dist/esm/columnHelper.d.ts +0 -9
  445. package/dist/esm/columnHelper.js.map +0 -1
  446. package/dist/esm/core/cell.d.ts +0 -50
  447. package/dist/esm/core/cell.js +0 -38
  448. package/dist/esm/core/cell.js.map +0 -1
  449. package/dist/esm/core/column.d.ts +0 -56
  450. package/dist/esm/core/column.js +0 -81
  451. package/dist/esm/core/column.js.map +0 -1
  452. package/dist/esm/core/headers.d.ts +0 -195
  453. package/dist/esm/core/headers.js +0 -310
  454. package/dist/esm/core/headers.js.map +0 -1
  455. package/dist/esm/core/row.d.ts +0 -92
  456. package/dist/esm/core/row.js +0 -93
  457. package/dist/esm/core/row.js.map +0 -1
  458. package/dist/esm/core/table.d.ts +0 -221
  459. package/dist/esm/core/table.js +0 -228
  460. package/dist/esm/core/table.js.map +0 -1
  461. package/dist/esm/features/ColumnFaceting.d.ts +0 -35
  462. package/dist/esm/features/ColumnFaceting.js +0 -29
  463. package/dist/esm/features/ColumnFaceting.js.map +0 -1
  464. package/dist/esm/features/ColumnFiltering.d.ts +0 -195
  465. package/dist/esm/features/ColumnFiltering.js +0 -137
  466. package/dist/esm/features/ColumnFiltering.js.map +0 -1
  467. package/dist/esm/features/ColumnGrouping.d.ts +0 -202
  468. package/dist/esm/features/ColumnGrouping.js +0 -134
  469. package/dist/esm/features/ColumnGrouping.js.map +0 -1
  470. package/dist/esm/features/ColumnOrdering.d.ts +0 -54
  471. package/dist/esm/features/ColumnOrdering.js +0 -76
  472. package/dist/esm/features/ColumnOrdering.js.map +0 -1
  473. package/dist/esm/features/ColumnPinning.d.ts +0 -127
  474. package/dist/esm/features/ColumnPinning.js +0 -145
  475. package/dist/esm/features/ColumnPinning.js.map +0 -1
  476. package/dist/esm/features/ColumnSizing.d.ts +0 -194
  477. package/dist/esm/features/ColumnSizing.js +0 -308
  478. package/dist/esm/features/ColumnSizing.js.map +0 -1
  479. package/dist/esm/features/ColumnVisibility.d.ts +0 -130
  480. package/dist/esm/features/ColumnVisibility.js +0 -144
  481. package/dist/esm/features/ColumnVisibility.js.map +0 -1
  482. package/dist/esm/features/GlobalFaceting.d.ts +0 -27
  483. package/dist/esm/features/GlobalFaceting.js +0 -29
  484. package/dist/esm/features/GlobalFaceting.js.map +0 -1
  485. package/dist/esm/features/GlobalFiltering.d.ts +0 -80
  486. package/dist/esm/features/GlobalFiltering.js +0 -50
  487. package/dist/esm/features/GlobalFiltering.js.map +0 -1
  488. package/dist/esm/features/RowExpanding.d.ts +0 -155
  489. package/dist/esm/features/RowExpanding.js +0 -154
  490. package/dist/esm/features/RowExpanding.js.map +0 -1
  491. package/dist/esm/features/RowPagination.d.ts +0 -166
  492. package/dist/esm/features/RowPagination.js +0 -162
  493. package/dist/esm/features/RowPagination.js.map +0 -1
  494. package/dist/esm/features/RowPinning.d.ts +0 -99
  495. package/dist/esm/features/RowPinning.js +0 -133
  496. package/dist/esm/features/RowPinning.js.map +0 -1
  497. package/dist/esm/features/RowSelection.d.ts +0 -177
  498. package/dist/esm/features/RowSelection.js +0 -298
  499. package/dist/esm/features/RowSelection.js.map +0 -1
  500. package/dist/esm/features/RowSorting.d.ts +0 -238
  501. package/dist/esm/features/RowSorting.js +0 -201
  502. package/dist/esm/features/RowSorting.js.map +0 -1
  503. package/dist/esm/filterFns.d.ts +0 -14
  504. package/dist/esm/filterFns.js +0 -88
  505. package/dist/esm/filterFns.js.map +0 -1
  506. package/dist/esm/sortingFns.d.ts +0 -12
  507. package/dist/esm/sortingFns.js.map +0 -1
  508. package/dist/esm/types.d.ts +0 -120
  509. package/dist/esm/utils/filterRowsUtils.d.ts +0 -3
  510. package/dist/esm/utils/filterRowsUtils.js.map +0 -1
  511. package/dist/esm/utils/getCoreRowModel.d.ts +0 -3
  512. package/dist/esm/utils/getCoreRowModel.js +0 -54
  513. package/dist/esm/utils/getCoreRowModel.js.map +0 -1
  514. package/dist/esm/utils/getExpandedRowModel.d.ts +0 -8
  515. package/dist/esm/utils/getExpandedRowModel.js +0 -41
  516. package/dist/esm/utils/getExpandedRowModel.js.map +0 -1
  517. package/dist/esm/utils/getFacetedMinMaxValues.d.ts +0 -3
  518. package/dist/esm/utils/getFacetedMinMaxValues.js +0 -36
  519. package/dist/esm/utils/getFacetedMinMaxValues.js.map +0 -1
  520. package/dist/esm/utils/getFacetedRowModel.d.ts +0 -3
  521. package/dist/esm/utils/getFacetedRowModel.js +0 -35
  522. package/dist/esm/utils/getFacetedRowModel.js.map +0 -1
  523. package/dist/esm/utils/getFacetedUniqueValues.d.ts +0 -3
  524. package/dist/esm/utils/getFacetedUniqueValues.js +0 -38
  525. package/dist/esm/utils/getFacetedUniqueValues.js.map +0 -1
  526. package/dist/esm/utils/getFilteredRowModel.d.ts +0 -3
  527. package/dist/esm/utils/getFilteredRowModel.js +0 -116
  528. package/dist/esm/utils/getFilteredRowModel.js.map +0 -1
  529. package/dist/esm/utils/getGroupedRowModel.d.ts +0 -3
  530. package/dist/esm/utils/getGroupedRowModel.js +0 -118
  531. package/dist/esm/utils/getGroupedRowModel.js.map +0 -1
  532. package/dist/esm/utils/getPaginationRowModel.d.ts +0 -5
  533. package/dist/esm/utils/getPaginationRowModel.js +0 -49
  534. package/dist/esm/utils/getPaginationRowModel.js.map +0 -1
  535. package/dist/esm/utils/getSortedRowModel.d.ts +0 -3
  536. package/dist/esm/utils/getSortedRowModel.js +0 -91
  537. package/dist/esm/utils/getSortedRowModel.js.map +0 -1
  538. package/src/aggregationFns.ts +0 -123
  539. package/src/columnHelper.ts +0 -91
  540. package/src/core/cell.ts +0 -91
  541. package/src/core/column.ts +0 -165
  542. package/src/core/headers.ts +0 -639
  543. package/src/core/row.ts +0 -201
  544. package/src/core/table.ts +0 -527
  545. package/src/features/ColumnFaceting.ts +0 -84
  546. package/src/features/ColumnFiltering.ts +0 -429
  547. package/src/features/ColumnGrouping.ts +0 -422
  548. package/src/features/ColumnOrdering.ts +0 -161
  549. package/src/features/ColumnPinning.ts +0 -336
  550. package/src/features/ColumnSizing.ts +0 -579
  551. package/src/features/ColumnVisibility.ts +0 -317
  552. package/src/features/GlobalFaceting.ts +0 -66
  553. package/src/features/GlobalFiltering.ts +0 -162
  554. package/src/features/RowExpanding.ts +0 -355
  555. package/src/features/RowPagination.ts +0 -396
  556. package/src/features/RowPinning.ts +0 -273
  557. package/src/features/RowSelection.ts +0 -668
  558. package/src/features/RowSorting.ts +0 -542
  559. package/src/filterFns.ts +0 -150
  560. package/src/types.ts +0 -361
  561. package/src/utils/filterRowsUtils.ts +0 -130
  562. package/src/utils/getCoreRowModel.ts +0 -82
  563. package/src/utils/getExpandedRowModel.ts +0 -51
  564. package/src/utils/getFacetedMinMaxValues.ts +0 -42
  565. package/src/utils/getFacetedRowModel.ts +0 -44
  566. package/src/utils/getFacetedUniqueValues.ts +0 -42
  567. package/src/utils/getFilteredRowModel.ts +0 -151
  568. package/src/utils/getGroupedRowModel.ts +0 -181
  569. package/src/utils/getPaginationRowModel.ts +0 -60
  570. package/src/utils/getSortedRowModel.ts +0 -121
@@ -0,0 +1,85 @@
1
+ import { createCoreRowModel } from "./createCoreRowModel.js";
2
+ function table_getCoreRowModel(table) {
3
+ if (!table._rowModels.coreRowModel) {
4
+ table._rowModels.coreRowModel = table.options._rowModels?.coreRowModel?.(table) ?? createCoreRowModel()(table);
5
+ }
6
+ return table._rowModels.coreRowModel();
7
+ }
8
+ function table_getPreFilteredRowModel(table) {
9
+ return table.getCoreRowModel();
10
+ }
11
+ function table_getFilteredRowModel(table) {
12
+ if (!table._rowModels.filteredRowModel) {
13
+ table._rowModels.filteredRowModel = table.options._rowModels?.filteredRowModel?.(table);
14
+ }
15
+ if (table.options.manualFiltering || !table._rowModels.filteredRowModel) {
16
+ return table.getPreFilteredRowModel();
17
+ }
18
+ return table._rowModels.filteredRowModel();
19
+ }
20
+ function table_getPreGroupedRowModel(table) {
21
+ return table.getFilteredRowModel();
22
+ }
23
+ function table_getGroupedRowModel(table) {
24
+ if (!table._rowModels.groupedRowModel) {
25
+ table._rowModels.groupedRowModel = table.options._rowModels?.groupedRowModel?.(table);
26
+ }
27
+ if (table.options.manualGrouping || !table._rowModels.groupedRowModel) {
28
+ return table.getPreGroupedRowModel();
29
+ }
30
+ return table._rowModels.groupedRowModel();
31
+ }
32
+ function table_getPreSortedRowModel(table) {
33
+ return table.getGroupedRowModel();
34
+ }
35
+ function table_getSortedRowModel(table) {
36
+ if (!table._rowModels.sortedRowModel) {
37
+ table._rowModels.sortedRowModel = table.options._rowModels?.sortedRowModel?.(table);
38
+ }
39
+ if (table.options.manualSorting || !table._rowModels.sortedRowModel) {
40
+ return table.getPreSortedRowModel();
41
+ }
42
+ return table._rowModels.sortedRowModel();
43
+ }
44
+ function table_getPreExpandedRowModel(table) {
45
+ return table.getSortedRowModel();
46
+ }
47
+ function table_getExpandedRowModel(table) {
48
+ if (!table._rowModels.expandedRowModel) {
49
+ table._rowModels.expandedRowModel = table.options._rowModels?.expandedRowModel?.(table);
50
+ }
51
+ if (table.options.manualExpanding || !table._rowModels.expandedRowModel) {
52
+ return table.getPreExpandedRowModel();
53
+ }
54
+ return table._rowModels.expandedRowModel();
55
+ }
56
+ function table_getPrePaginatedRowModel(table) {
57
+ return table.getExpandedRowModel();
58
+ }
59
+ function table_getPaginatedRowModel(table) {
60
+ if (!table._rowModels.paginatedRowModel) {
61
+ table._rowModels.paginatedRowModel = table.options._rowModels?.paginatedRowModel?.(table);
62
+ }
63
+ if (table.options.manualPagination || !table._rowModels.paginatedRowModel) {
64
+ return table.getPrePaginatedRowModel();
65
+ }
66
+ return table._rowModels.paginatedRowModel();
67
+ }
68
+ function table_getRowModel(table) {
69
+ return table.getPaginatedRowModel();
70
+ }
71
+ export {
72
+ table_getCoreRowModel,
73
+ table_getExpandedRowModel,
74
+ table_getFilteredRowModel,
75
+ table_getGroupedRowModel,
76
+ table_getPaginatedRowModel,
77
+ table_getPreExpandedRowModel,
78
+ table_getPreFilteredRowModel,
79
+ table_getPreGroupedRowModel,
80
+ table_getPrePaginatedRowModel,
81
+ table_getPreSortedRowModel,
82
+ table_getRowModel,
83
+ table_getSortedRowModel
84
+ };
85
+ //# sourceMappingURL=coreRowModelsFeature.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreRowModelsFeature.utils.js","sources":["../../../../src/core/row-models/coreRowModelsFeature.utils.ts"],"sourcesContent":["import { createCoreRowModel } from './createCoreRowModel'\nimport type { Table_Internal } from '../../types/Table'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowData } from '../../types/type-utils'\nimport type { RowModel } from './coreRowModelsFeature.types'\n\nexport function table_getCoreRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n if (!table._rowModels.coreRowModel) {\n table._rowModels.coreRowModel =\n table.options._rowModels?.coreRowModel?.(table) ??\n createCoreRowModel<TFeatures, TData>()(table)\n }\n\n return table._rowModels.coreRowModel()\n}\n\nexport function table_getPreFilteredRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n return table.getCoreRowModel()\n}\n\nexport function table_getFilteredRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n if (!table._rowModels.filteredRowModel) {\n table._rowModels.filteredRowModel =\n table.options._rowModels?.filteredRowModel?.(table)\n }\n\n if (table.options.manualFiltering || !table._rowModels.filteredRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._rowModels.filteredRowModel()\n}\n\nexport function table_getPreGroupedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n return table.getFilteredRowModel()\n}\n\nexport function table_getGroupedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n if (!table._rowModels.groupedRowModel) {\n table._rowModels.groupedRowModel =\n table.options._rowModels?.groupedRowModel?.(table)\n }\n\n if (table.options.manualGrouping || !table._rowModels.groupedRowModel) {\n return table.getPreGroupedRowModel()\n }\n\n return table._rowModels.groupedRowModel()\n}\n\nexport function table_getPreSortedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n return table.getGroupedRowModel()\n}\n\nexport function table_getSortedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n if (!table._rowModels.sortedRowModel) {\n table._rowModels.sortedRowModel =\n table.options._rowModels?.sortedRowModel?.(table)\n }\n\n if (table.options.manualSorting || !table._rowModels.sortedRowModel) {\n return table.getPreSortedRowModel()\n }\n\n return table._rowModels.sortedRowModel()\n}\n\nexport function table_getPreExpandedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n return table.getSortedRowModel()\n}\n\nexport function table_getExpandedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n if (!table._rowModels.expandedRowModel) {\n table._rowModels.expandedRowModel =\n table.options._rowModels?.expandedRowModel?.(table)\n }\n\n if (table.options.manualExpanding || !table._rowModels.expandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._rowModels.expandedRowModel()\n}\n\nexport function table_getPrePaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n return table.getExpandedRowModel()\n}\n\nexport function table_getPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n if (!table._rowModels.paginatedRowModel) {\n table._rowModels.paginatedRowModel =\n table.options._rowModels?.paginatedRowModel?.(table)\n }\n\n if (table.options.manualPagination || !table._rowModels.paginatedRowModel) {\n return table.getPrePaginatedRowModel()\n }\n\n return table._rowModels.paginatedRowModel()\n}\n\nexport function table_getRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n return table.getPaginatedRowModel()\n}\n"],"names":[],"mappings":";AAMO,SAAS,sBAGd,OAAqE;AACrE,MAAI,CAAC,MAAM,WAAW,cAAc;AAClC,UAAM,WAAW,eACf,MAAM,QAAQ,YAAY,eAAe,KAAK,KAC9C,mBAAA,EAAuC,KAAK;AAAA,EAChD;AAEA,SAAO,MAAM,WAAW,aAAA;AAC1B;AAEO,SAAS,6BAGd,OAAqE;AACrE,SAAO,MAAM,gBAAA;AACf;AAEO,SAAS,0BAGd,OAAqE;AACrE,MAAI,CAAC,MAAM,WAAW,kBAAkB;AACtC,UAAM,WAAW,mBACf,MAAM,QAAQ,YAAY,mBAAmB,KAAK;AAAA,EACtD;AAEA,MAAI,MAAM,QAAQ,mBAAmB,CAAC,MAAM,WAAW,kBAAkB;AACvE,WAAO,MAAM,uBAAA;AAAA,EACf;AAEA,SAAO,MAAM,WAAW,iBAAA;AAC1B;AAEO,SAAS,4BAGd,OAAqE;AACrE,SAAO,MAAM,oBAAA;AACf;AAEO,SAAS,yBAGd,OAAqE;AACrE,MAAI,CAAC,MAAM,WAAW,iBAAiB;AACrC,UAAM,WAAW,kBACf,MAAM,QAAQ,YAAY,kBAAkB,KAAK;AAAA,EACrD;AAEA,MAAI,MAAM,QAAQ,kBAAkB,CAAC,MAAM,WAAW,iBAAiB;AACrE,WAAO,MAAM,sBAAA;AAAA,EACf;AAEA,SAAO,MAAM,WAAW,gBAAA;AAC1B;AAEO,SAAS,2BAGd,OAAqE;AACrE,SAAO,MAAM,mBAAA;AACf;AAEO,SAAS,wBAGd,OAAqE;AACrE,MAAI,CAAC,MAAM,WAAW,gBAAgB;AACpC,UAAM,WAAW,iBACf,MAAM,QAAQ,YAAY,iBAAiB,KAAK;AAAA,EACpD;AAEA,MAAI,MAAM,QAAQ,iBAAiB,CAAC,MAAM,WAAW,gBAAgB;AACnE,WAAO,MAAM,qBAAA;AAAA,EACf;AAEA,SAAO,MAAM,WAAW,eAAA;AAC1B;AAEO,SAAS,6BAGd,OAAqE;AACrE,SAAO,MAAM,kBAAA;AACf;AAEO,SAAS,0BAGd,OAAqE;AACrE,MAAI,CAAC,MAAM,WAAW,kBAAkB;AACtC,UAAM,WAAW,mBACf,MAAM,QAAQ,YAAY,mBAAmB,KAAK;AAAA,EACtD;AAEA,MAAI,MAAM,QAAQ,mBAAmB,CAAC,MAAM,WAAW,kBAAkB;AACvE,WAAO,MAAM,uBAAA;AAAA,EACf;AAEA,SAAO,MAAM,WAAW,iBAAA;AAC1B;AAEO,SAAS,8BAGd,OAAqE;AACrE,SAAO,MAAM,oBAAA;AACf;AAEO,SAAS,2BAGd,OAAqE;AACrE,MAAI,CAAC,MAAM,WAAW,mBAAmB;AACvC,UAAM,WAAW,oBACf,MAAM,QAAQ,YAAY,oBAAoB,KAAK;AAAA,EACvD;AAEA,MAAI,MAAM,QAAQ,oBAAoB,CAAC,MAAM,WAAW,mBAAmB;AACzE,WAAO,MAAM,wBAAA;AAAA,EACf;AAEA,SAAO,MAAM,WAAW,kBAAA;AAC1B;AAEO,SAAS,kBAGd,OAAqE;AACrE,SAAO,MAAM,qBAAA;AACf;"}
@@ -0,0 +1,5 @@
1
+ import { Table } from '../../types/Table.js';
2
+ import { RowModel } from './coreRowModelsFeature.types';
3
+ import { TableFeatures } from '../../types/TableFeatures.js';
4
+ import { RowData } from '../../types/type-utils.js';
5
+ export declare function createCoreRowModel<TFeatures extends TableFeatures, TData extends RowData>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData>;
@@ -0,0 +1,54 @@
1
+ import { constructRow } from "../rows/constructRow.js";
2
+ import { tableMemo } from "../../utils.js";
3
+ import { table_autoResetPageIndex } from "../../features/row-pagination/rowPaginationFeature.utils.js";
4
+ function createCoreRowModel() {
5
+ return (_table) => {
6
+ const table = _table;
7
+ return tableMemo({
8
+ feature: "coreRowModelsFeature",
9
+ table,
10
+ fnName: "table.getCoreRowModel",
11
+ memoDeps: () => [table.options.data],
12
+ fn: () => _createCoreRowModel(table, table.options.data),
13
+ onAfterUpdate: () => table_autoResetPageIndex(table)
14
+ });
15
+ };
16
+ }
17
+ function _createCoreRowModel(table, data) {
18
+ const rowModel = {
19
+ rows: [],
20
+ flatRows: [],
21
+ rowsById: {}
22
+ };
23
+ const accessRows = (originalRows, depth = 0, parentRow) => {
24
+ const rows = [];
25
+ for (let i = 0; i < originalRows.length; i++) {
26
+ const originalRow = originalRows[i];
27
+ const row = constructRow(
28
+ table,
29
+ table.getRowId(originalRow, i, parentRow),
30
+ originalRow,
31
+ i,
32
+ depth,
33
+ void 0,
34
+ parentRow?.id
35
+ );
36
+ rowModel.flatRows.push(row);
37
+ rowModel.rowsById[row.id] = row;
38
+ rows.push(row);
39
+ if (table.options.getSubRows) {
40
+ row.originalSubRows = table.options.getSubRows(originalRow, i);
41
+ if (row.originalSubRows?.length) {
42
+ row.subRows = accessRows(row.originalSubRows, depth + 1, row);
43
+ }
44
+ }
45
+ }
46
+ return rows;
47
+ };
48
+ rowModel.rows = accessRows(data);
49
+ return rowModel;
50
+ }
51
+ export {
52
+ createCoreRowModel
53
+ };
54
+ //# sourceMappingURL=createCoreRowModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createCoreRowModel.js","sources":["../../../../src/core/row-models/createCoreRowModel.ts"],"sourcesContent":["import { constructRow } from '../rows/constructRow'\nimport { tableMemo } from '../../utils'\nimport { table_autoResetPageIndex } from '../../features/row-pagination/rowPaginationFeature.utils'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { RowModel } from './coreRowModelsFeature.types'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\nexport function createCoreRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table = _table as Table_Internal<TFeatures, TData>\n return tableMemo({\n feature: 'coreRowModelsFeature',\n table,\n fnName: 'table.getCoreRowModel',\n memoDeps: () => [table.options.data],\n fn: () => _createCoreRowModel(table, table.options.data),\n onAfterUpdate: () => table_autoResetPageIndex(table),\n })\n }\n}\n\nfunction _createCoreRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n data: Array<TData>,\n): {\n rows: Array<Row<TFeatures, TData>>\n flatRows: Array<Row<TFeatures, TData>>\n rowsById: Record<string, Row<TFeatures, TData>>\n} {\n const rowModel: RowModel<TFeatures, TData> = {\n rows: [],\n flatRows: [],\n rowsById: {},\n }\n\n const accessRows = (\n originalRows: Array<TData>,\n depth = 0,\n parentRow?: Row<TFeatures, TData>,\n ): Array<Row<TFeatures, TData>> => {\n const rows = [] as Array<Row<TFeatures, TData>>\n\n for (let i = 0; i < originalRows.length; i++) {\n const originalRow = originalRows[i]!\n // Make the row\n const row = constructRow(\n table,\n table.getRowId(originalRow, i, parentRow),\n originalRow,\n i,\n depth,\n undefined,\n parentRow?.id,\n )\n\n // Keep track of every row in a flat array\n rowModel.flatRows.push(row)\n // Also keep track of every row by its ID\n rowModel.rowsById[row.id] = row\n // Push table row into parent\n rows.push(row)\n\n // Get the original subrows\n if (table.options.getSubRows) {\n row.originalSubRows = table.options.getSubRows(originalRow, i)\n\n // Then recursively access them\n if (row.originalSubRows?.length) {\n row.subRows = accessRows(row.originalSubRows, depth + 1, row)\n }\n }\n }\n\n return rows\n }\n\n rowModel.rows = accessRows(data)\n\n return rowModel\n}\n"],"names":[],"mappings":";;;AASO,SAAS,qBAG0D;AACxE,SAAO,CAAC,WAAW;AACjB,UAAM,QAAQ;AACd,WAAO,UAAU;AAAA,MACf,SAAS;AAAA,MACT;AAAA,MACA,QAAQ;AAAA,MACR,UAAU,MAAM,CAAC,MAAM,QAAQ,IAAI;AAAA,MACnC,IAAI,MAAM,oBAAoB,OAAO,MAAM,QAAQ,IAAI;AAAA,MACvD,eAAe,MAAM,yBAAyB,KAAK;AAAA,IAAA,CACpD;AAAA,EACH;AACF;AAEA,SAAS,oBAIP,OACA,MAKA;AACA,QAAM,WAAuC;AAAA,IAC3C,MAAM,CAAA;AAAA,IACN,UAAU,CAAA;AAAA,IACV,UAAU,CAAA;AAAA,EAAC;AAGb,QAAM,aAAa,CACjB,cACA,QAAQ,GACR,cACiC;AACjC,UAAM,OAAO,CAAA;AAEb,aAAS,IAAI,GAAG,IAAI,aAAa,QAAQ,KAAK;AAC5C,YAAM,cAAc,aAAa,CAAC;AAElC,YAAM,MAAM;AAAA,QACV;AAAA,QACA,MAAM,SAAS,aAAa,GAAG,SAAS;AAAA,QACxC;AAAA,QACA;AAAA,QACA;AAAA,QACA;AAAA,QACA,WAAW;AAAA,MAAA;AAIb,eAAS,SAAS,KAAK,GAAG;AAE1B,eAAS,SAAS,IAAI,EAAE,IAAI;AAE5B,WAAK,KAAK,GAAG;AAGb,UAAI,MAAM,QAAQ,YAAY;AAC5B,YAAI,kBAAkB,MAAM,QAAQ,WAAW,aAAa,CAAC;AAG7D,YAAI,IAAI,iBAAiB,QAAQ;AAC/B,cAAI,UAAU,WAAW,IAAI,iBAAiB,QAAQ,GAAG,GAAG;AAAA,QAC9D;AAAA,MACF;AAAA,IACF;AAEA,WAAO;AAAA,EACT;AAEA,WAAS,OAAO,WAAW,IAAI;AAE/B,SAAO;AACT;"}
@@ -0,0 +1,5 @@
1
+ import { Table_Internal } from '../../types/Table.js';
2
+ import { RowData } from '../../types/type-utils.js';
3
+ import { TableFeatures } from '../../types/TableFeatures.js';
4
+ import { Row } from '../../types/Row.js';
5
+ export declare const constructRow: <TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, id: string, original: TData, rowIndex: number, depth: number, subRows?: Array<Row<TFeatures, TData>>, parentId?: string) => Row<TFeatures, TData>;
@@ -0,0 +1,29 @@
1
+ function getRowPrototype(table) {
2
+ if (!table._rowPrototype) {
3
+ table._rowPrototype = { table };
4
+ for (const feature of Object.values(table._features)) {
5
+ feature.assignRowPrototype?.(table._rowPrototype, table);
6
+ }
7
+ }
8
+ return table._rowPrototype;
9
+ }
10
+ const constructRow = (table, id, original, rowIndex, depth, subRows, parentId) => {
11
+ const rowPrototype = getRowPrototype(table);
12
+ const row = Object.create(rowPrototype);
13
+ row._uniqueValuesCache = {};
14
+ row._valuesCache = {};
15
+ row.depth = depth;
16
+ row.id = id;
17
+ row.index = rowIndex;
18
+ row.original = original;
19
+ row.parentId = parentId;
20
+ row.subRows = subRows ?? [];
21
+ for (const feature of Object.values(table._features)) {
22
+ feature.initRowInstanceData?.(row);
23
+ }
24
+ return row;
25
+ };
26
+ export {
27
+ constructRow
28
+ };
29
+ //# sourceMappingURL=constructRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constructRow.js","sources":["../../../../src/core/rows/constructRow.ts"],"sourcesContent":["import type { Table_Internal } from '../../types/Table'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Row } from '../../types/Row'\nimport type { Row_CoreProperties } from './coreRowsFeature.types'\n\n/**\n * Creates or retrieves the row prototype for a table.\n * The prototype is cached on the table and shared by all row instances.\n */\nfunction getRowPrototype<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>): object {\n if (!table._rowPrototype) {\n table._rowPrototype = { table }\n for (const feature of Object.values(table._features)) {\n feature.assignRowPrototype?.(table._rowPrototype, table)\n }\n }\n return table._rowPrototype\n}\n\nexport const constructRow = <\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n id: string,\n original: TData,\n rowIndex: number,\n depth: number,\n subRows?: Array<Row<TFeatures, TData>>,\n parentId?: string,\n): Row<TFeatures, TData> => {\n // Create row with shared prototype for memory efficiency\n const rowPrototype = getRowPrototype(table)\n const row = Object.create(rowPrototype) as Row_CoreProperties<\n TFeatures,\n TData\n >\n\n // Only assign instance-specific properties\n row._uniqueValuesCache = {}\n row._valuesCache = {}\n row.depth = depth\n row.id = id\n row.index = rowIndex\n row.original = original\n row.parentId = parentId\n row.subRows = subRows ?? []\n\n // Initialize instance-specific data (e.g., caches) for features that need it\n for (const feature of Object.values(table._features)) {\n feature.initRowInstanceData?.(row as Row<TFeatures, TData>)\n }\n\n return row as Row<TFeatures, TData>\n}\n"],"names":[],"mappings":"AAUA,SAAS,gBAGP,OAAiD;AACjD,MAAI,CAAC,MAAM,eAAe;AACxB,UAAM,gBAAgB,EAAE,MAAA;AACxB,eAAW,WAAW,OAAO,OAAO,MAAM,SAAS,GAAG;AACpD,cAAQ,qBAAqB,MAAM,eAAe,KAAK;AAAA,IACzD;AAAA,EACF;AACA,SAAO,MAAM;AACf;AAEO,MAAM,eAAe,CAI1B,OACA,IACA,UACA,UACA,OACA,SACA,aAC0B;AAE1B,QAAM,eAAe,gBAAgB,KAAK;AAC1C,QAAM,MAAM,OAAO,OAAO,YAAY;AAMtC,MAAI,qBAAqB,CAAA;AACzB,MAAI,eAAe,CAAA;AACnB,MAAI,QAAQ;AACZ,MAAI,KAAK;AACT,MAAI,QAAQ;AACZ,MAAI,WAAW;AACf,MAAI,WAAW;AACf,MAAI,UAAU,WAAW,CAAA;AAGzB,aAAW,WAAW,OAAO,OAAO,MAAM,SAAS,GAAG;AACpD,YAAQ,sBAAsB,GAA4B;AAAA,EAC5D;AAEA,SAAO;AACT;"}
@@ -0,0 +1,10 @@
1
+ import { RowData } from '../../types/type-utils.js';
2
+ import { TableFeature, TableFeatures } from '../../types/TableFeatures.js';
3
+ interface CoreRowsFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {
4
+ }
5
+ export declare function constructCoreRowsFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<CoreRowsFeatureConstructors<TFeatures, TData>>;
6
+ /**
7
+ * The Core Rows feature provides the core row functionality.
8
+ */
9
+ export declare const coreRowsFeature: TableFeature<CoreRowsFeatureConstructors<TableFeatures, RowData>>;
10
+ export {};
@@ -0,0 +1,52 @@
1
+ import { assignTableAPIs, assignPrototypeAPIs } from "../../utils.js";
2
+ import { table_getRow, table_getRowId, row_renderValue, row_getValue, row_getUniqueValues, row_getParentRows, row_getParentRow, row_getLeafRows, row_getAllCells, row_getAllCellsByColumnId } from "./coreRowsFeature.utils.js";
3
+ function constructCoreRowsFeature() {
4
+ return {
5
+ assignRowPrototype: (prototype, table) => {
6
+ assignPrototypeAPIs("coreRowsFeature", prototype, table, {
7
+ row_getAllCellsByColumnId: {
8
+ fn: (row) => row_getAllCellsByColumnId(row),
9
+ memoDeps: (row) => [row.getAllCells()]
10
+ },
11
+ row_getAllCells: {
12
+ fn: (row) => row_getAllCells(row),
13
+ memoDeps: (row) => [row.table.getAllLeafColumns()]
14
+ },
15
+ row_getLeafRows: {
16
+ fn: (row) => row_getLeafRows(row)
17
+ },
18
+ row_getParentRow: {
19
+ fn: (row) => row_getParentRow(row)
20
+ },
21
+ row_getParentRows: {
22
+ fn: (row) => row_getParentRows(row)
23
+ },
24
+ row_getUniqueValues: {
25
+ fn: (row, columnId) => row_getUniqueValues(row, columnId)
26
+ },
27
+ row_getValue: {
28
+ fn: (row, columnId) => row_getValue(row, columnId)
29
+ },
30
+ row_renderValue: {
31
+ fn: (row, columnId) => row_renderValue(row, columnId)
32
+ }
33
+ });
34
+ },
35
+ constructTableAPIs: (table) => {
36
+ assignTableAPIs("coreRowsFeature", table, {
37
+ table_getRowId: {
38
+ fn: (originalRow, index, parent) => table_getRowId(originalRow, table, index, parent)
39
+ },
40
+ table_getRow: {
41
+ fn: (id, searchAll) => table_getRow(table, id, searchAll)
42
+ }
43
+ });
44
+ }
45
+ };
46
+ }
47
+ const coreRowsFeature = constructCoreRowsFeature();
48
+ export {
49
+ constructCoreRowsFeature,
50
+ coreRowsFeature
51
+ };
52
+ //# sourceMappingURL=coreRowsFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreRowsFeature.js","sources":["../../../../src/core/rows/coreRowsFeature.ts"],"sourcesContent":["import { assignPrototypeAPIs, assignTableAPIs } from '../../utils'\nimport {\n row_getAllCells,\n row_getAllCellsByColumnId,\n row_getLeafRows,\n row_getParentRow,\n row_getParentRows,\n row_getUniqueValues,\n row_getValue,\n row_renderValue,\n table_getRow,\n table_getRowId,\n} from './coreRowsFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// Row_Row,\n// TableOptions_Rows,\n// Table_Rows,\n// } from './coreRowsFeature.types'\n\ninterface CoreRowsFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Row: Row_Row<TFeatures, TData>\n // TableOptions: TableOptions_Rows<TFeatures, TData>\n // Table: Table_Rows<TFeatures, TData>\n}\n\nexport function constructCoreRowsFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<CoreRowsFeatureConstructors<TFeatures, TData>> {\n return {\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('coreRowsFeature', prototype, table, {\n row_getAllCellsByColumnId: {\n fn: (row) => row_getAllCellsByColumnId(row),\n memoDeps: (row) => [row.getAllCells()],\n },\n row_getAllCells: {\n fn: (row) => row_getAllCells(row),\n memoDeps: (row) => [row.table.getAllLeafColumns()],\n },\n row_getLeafRows: {\n fn: (row) => row_getLeafRows(row),\n },\n row_getParentRow: {\n fn: (row) => row_getParentRow(row),\n },\n row_getParentRows: {\n fn: (row) => row_getParentRows(row),\n },\n row_getUniqueValues: {\n fn: (row, columnId) => row_getUniqueValues(row, columnId),\n },\n row_getValue: {\n fn: (row, columnId) => row_getValue(row, columnId),\n },\n row_renderValue: {\n fn: (row, columnId) => row_renderValue(row, columnId),\n },\n })\n },\n constructTableAPIs: (table) => {\n assignTableAPIs('coreRowsFeature', table, {\n table_getRowId: {\n fn: (originalRow, index, parent) =>\n table_getRowId(originalRow, table, index, parent),\n },\n table_getRow: {\n fn: (id: string, searchAll?: boolean) =>\n table_getRow(table, id, searchAll),\n },\n })\n },\n }\n}\n\n/**\n * The Core Rows feature provides the core row functionality.\n */\nexport const coreRowsFeature = constructCoreRowsFeature()\n"],"names":[],"mappings":";;AA8BO,SAAS,2BAGiD;AAC/D,SAAO;AAAA,IACL,oBAAoB,CAAC,WAAW,UAAU;AACxC,0BAAoB,mBAAmB,WAAW,OAAO;AAAA,QACvD,2BAA2B;AAAA,UACzB,IAAI,CAAC,QAAQ,0BAA0B,GAAG;AAAA,UAC1C,UAAU,CAAC,QAAQ,CAAC,IAAI,aAAa;AAAA,QAAA;AAAA,QAEvC,iBAAiB;AAAA,UACf,IAAI,CAAC,QAAQ,gBAAgB,GAAG;AAAA,UAChC,UAAU,CAAC,QAAQ,CAAC,IAAI,MAAM,mBAAmB;AAAA,QAAA;AAAA,QAEnD,iBAAiB;AAAA,UACf,IAAI,CAAC,QAAQ,gBAAgB,GAAG;AAAA,QAAA;AAAA,QAElC,kBAAkB;AAAA,UAChB,IAAI,CAAC,QAAQ,iBAAiB,GAAG;AAAA,QAAA;AAAA,QAEnC,mBAAmB;AAAA,UACjB,IAAI,CAAC,QAAQ,kBAAkB,GAAG;AAAA,QAAA;AAAA,QAEpC,qBAAqB;AAAA,UACnB,IAAI,CAAC,KAAK,aAAa,oBAAoB,KAAK,QAAQ;AAAA,QAAA;AAAA,QAE1D,cAAc;AAAA,UACZ,IAAI,CAAC,KAAK,aAAa,aAAa,KAAK,QAAQ;AAAA,QAAA;AAAA,QAEnD,iBAAiB;AAAA,UACf,IAAI,CAAC,KAAK,aAAa,gBAAgB,KAAK,QAAQ;AAAA,QAAA;AAAA,MACtD,CACD;AAAA,IACH;AAAA,IACA,oBAAoB,CAAC,UAAU;AAC7B,sBAAgB,mBAAmB,OAAO;AAAA,QACxC,gBAAgB;AAAA,UACd,IAAI,CAAC,aAAa,OAAO,WACvB,eAAe,aAAa,OAAO,OAAO,MAAM;AAAA,QAAA;AAAA,QAEpD,cAAc;AAAA,UACZ,IAAI,CAAC,IAAY,cACf,aAAa,OAAO,IAAI,SAAS;AAAA,QAAA;AAAA,MACrC,CACD;AAAA,IACH;AAAA,EAAA;AAEJ;AAKO,MAAM,kBAAkB,yBAAA;"}
@@ -0,0 +1,91 @@
1
+ import { Table_Internal } from '../../types/Table.js';
2
+ import { RowData } from '../../types/type-utils.js';
3
+ import { TableFeatures } from '../../types/TableFeatures.js';
4
+ import { Row } from '../../types/Row.js';
5
+ import { Cell } from '../../types/Cell.js';
6
+ export interface Row_CoreProperties<TFeatures extends TableFeatures, TData extends RowData> {
7
+ _uniqueValuesCache: Record<string, unknown>;
8
+ _valuesCache: Record<string, unknown>;
9
+ /**
10
+ * The depth of the row (if nested or grouped) relative to the root row array.
11
+ */
12
+ depth: number;
13
+ /**
14
+ * The resolved unique identifier for the row resolved via the `options.getRowId` option. Defaults to the row's index (or relative index if it is a subRow).
15
+ */
16
+ id: string;
17
+ /**
18
+ * The index of the row within its parent array (or the root data array).
19
+ */
20
+ index: number;
21
+ /**
22
+ * The original row object provided to the table. If the row is a grouped row, the original row object will be the first original in the group.
23
+ */
24
+ original: TData;
25
+ /**
26
+ * An array of the original subRows as returned by the `options.getSubRows` option.
27
+ */
28
+ originalSubRows?: Array<TData>;
29
+ /**
30
+ * If nested, this row's parent row id.
31
+ */
32
+ parentId?: string;
33
+ /**
34
+ * An array of subRows for the row as returned and created by the `options.getSubRows` option.
35
+ */
36
+ subRows: Array<Row<TFeatures, TData>>;
37
+ /**
38
+ * Reference to the parent table instance.
39
+ */
40
+ table: Table_Internal<TFeatures, TData>;
41
+ }
42
+ export interface Row_Row<TFeatures extends TableFeatures, TData extends RowData> extends Row_CoreProperties<TFeatures, TData> {
43
+ getAllCellsByColumnId: () => Record<string, Cell<TFeatures, TData, unknown>>;
44
+ /**
45
+ * Returns all of the cells for the row.
46
+ */
47
+ getAllCells: () => Array<Cell<TFeatures, TData, unknown>>;
48
+ /**
49
+ * Returns the leaf rows for the row, not including any parent rows.
50
+ */
51
+ getLeafRows: () => Array<Row<TFeatures, TData>>;
52
+ /**
53
+ * Returns the parent row for the row, if it exists.
54
+ */
55
+ getParentRow: () => Row<TFeatures, TData> | undefined;
56
+ /**
57
+ * Returns the parent rows for the row, all the way up to a root row.
58
+ */
59
+ getParentRows: () => Array<Row<TFeatures, TData>>;
60
+ /**
61
+ * Returns a unique array of values from the row for a given columnId.
62
+ */
63
+ getUniqueValues: <TValue>(columnId: string) => Array<TValue>;
64
+ /**
65
+ * Returns the value from the row for a given columnId.
66
+ */
67
+ getValue: <TValue>(columnId: string) => TValue;
68
+ /**
69
+ * Renders the value for the row in a given columnId the same as `getValue`, but will return the `renderFallbackValue` if no value is found.
70
+ */
71
+ renderValue: <TValue>(columnId: string) => TValue;
72
+ }
73
+ export interface TableOptions_Rows<TFeatures extends TableFeatures, TData extends RowData> {
74
+ /**
75
+ * This optional function is used to derive a unique ID for any given row. If not provided the rows index is used (nested rows join together with `.` using their grandparents' index eg. `index.index.index`). If you need to identify individual rows that are originating from any server-side operations, it's suggested you use this function to return an ID that makes sense regardless of network IO/ambiguity eg. a userId, taskId, database ID field, etc.
76
+ * @example getRowId: row => row.userId
77
+ */
78
+ getRowId?: (originalRow: TData, index: number, parent?: Row<TFeatures, TData>) => string;
79
+ /**
80
+ * This optional function is used to access the sub rows for any given row. If you are using nested rows, you will need to use this function to return the sub rows object (or undefined) from the row.
81
+ * @example getSubRows: row => row.subRows
82
+ */
83
+ getSubRows?: (originalRow: TData, index: number) => undefined | Array<TData>;
84
+ }
85
+ export interface Table_Rows<TFeatures extends TableFeatures, TData extends RowData> {
86
+ getRowId: (_: TData, index: number, parent?: Row<TFeatures, TData>) => string;
87
+ /**
88
+ * Returns the row with the given ID.
89
+ */
90
+ getRow: (id: string, searchAll?: boolean) => Row<TFeatures, TData>;
91
+ }
@@ -0,0 +1,15 @@
1
+ import { Table_Internal } from '../../types/Table.js';
2
+ import { RowData } from '../../types/type-utils.js';
3
+ import { TableFeatures } from '../../types/TableFeatures.js';
4
+ import { Row } from '../../types/Row.js';
5
+ import { Cell } from '../../types/Cell.js';
6
+ export declare function row_getValue<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string): unknown;
7
+ export declare function row_getUniqueValues<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string): unknown;
8
+ export declare function row_renderValue<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, columnId: string): any;
9
+ export declare function row_getLeafRows<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): Array<Row<TFeatures, TData>>;
10
+ export declare function row_getParentRow<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): Row<TFeatures, TData> | undefined;
11
+ export declare function row_getParentRows<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): Row<TFeatures, TData>[];
12
+ export declare function row_getAllCells<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>>;
13
+ export declare function row_getAllCellsByColumnId<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): Record<string, Cell<TFeatures, TData, unknown>>;
14
+ export declare function table_getRowId<TFeatures extends TableFeatures, TData extends RowData>(originalRow: TData, table: Table_Internal<TFeatures, TData>, index: number, parent?: Row<TFeatures, TData>): string;
15
+ export declare function table_getRow<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, rowId: string, searchAll?: boolean): Row<TFeatures, TData>;
@@ -0,0 +1,94 @@
1
+ import { flattenBy } from "../../utils.js";
2
+ import { constructCell } from "../cells/constructCell.js";
3
+ function row_getValue(row, columnId) {
4
+ if (row._valuesCache.hasOwnProperty(columnId)) {
5
+ return row._valuesCache[columnId];
6
+ }
7
+ const column = row.table.getColumn(columnId);
8
+ if (!column?.accessorFn) {
9
+ return void 0;
10
+ }
11
+ row._valuesCache[columnId] = column.accessorFn(row.original, row.index);
12
+ return row._valuesCache[columnId];
13
+ }
14
+ function row_getUniqueValues(row, columnId) {
15
+ if (row._uniqueValuesCache.hasOwnProperty(columnId)) {
16
+ return row._uniqueValuesCache[columnId];
17
+ }
18
+ const column = row.table.getColumn(columnId);
19
+ if (!column?.accessorFn) {
20
+ return void 0;
21
+ }
22
+ if (!column.columnDef.getUniqueValues) {
23
+ row._uniqueValuesCache[columnId] = [row.getValue(columnId)];
24
+ return row._uniqueValuesCache[columnId];
25
+ }
26
+ row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(
27
+ row.original,
28
+ row.index
29
+ );
30
+ return row._uniqueValuesCache[columnId];
31
+ }
32
+ function row_renderValue(row, columnId) {
33
+ return row.getValue(columnId) ?? row.table.options.renderFallbackValue;
34
+ }
35
+ function row_getLeafRows(row) {
36
+ return flattenBy(row.subRows, (d) => d.subRows);
37
+ }
38
+ function row_getParentRow(row) {
39
+ return row.parentId ? row.table.getRow(row.parentId, true) : void 0;
40
+ }
41
+ function row_getParentRows(row) {
42
+ const parentRows = [];
43
+ let currentRow = row;
44
+ while (true) {
45
+ const parentRow = currentRow.getParentRow();
46
+ if (!parentRow) break;
47
+ parentRows.push(parentRow);
48
+ currentRow = parentRow;
49
+ }
50
+ return parentRows.reverse();
51
+ }
52
+ function row_getAllCells(row) {
53
+ return row.table.getAllLeafColumns().map((column) => {
54
+ return constructCell(column, row, row.table);
55
+ });
56
+ }
57
+ function row_getAllCellsByColumnId(row) {
58
+ return row.getAllCells().reduce(
59
+ (acc, cell) => {
60
+ acc[cell.column.id] = cell;
61
+ return acc;
62
+ },
63
+ {}
64
+ );
65
+ }
66
+ function table_getRowId(originalRow, table, index, parent) {
67
+ return table.options.getRowId?.(originalRow, index, parent) ?? `${parent ? [parent.id, index].join(".") : index}`;
68
+ }
69
+ function table_getRow(table, rowId, searchAll) {
70
+ let row = (searchAll ? table.getPrePaginatedRowModel() : table.getRowModel()).rowsById[rowId];
71
+ if (!row) {
72
+ row = table.getCoreRowModel().rowsById[rowId];
73
+ if (!row) {
74
+ if (process.env.NODE_ENV === "development") {
75
+ throw new Error(`getRow could not find row with ID: ${rowId}`);
76
+ }
77
+ throw new Error();
78
+ }
79
+ }
80
+ return row;
81
+ }
82
+ export {
83
+ row_getAllCells,
84
+ row_getAllCellsByColumnId,
85
+ row_getLeafRows,
86
+ row_getParentRow,
87
+ row_getParentRows,
88
+ row_getUniqueValues,
89
+ row_getValue,
90
+ row_renderValue,
91
+ table_getRow,
92
+ table_getRowId
93
+ };
94
+ //# sourceMappingURL=coreRowsFeature.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreRowsFeature.utils.js","sources":["../../../../src/core/rows/coreRowsFeature.utils.ts"],"sourcesContent":["import { flattenBy } from '../../utils'\nimport { constructCell } from '../cells/constructCell'\nimport type { Table_Internal } from '../../types/Table'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Row } from '../../types/Row'\nimport type { Cell } from '../../types/Cell'\n\nexport function row_getValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n if (row._valuesCache.hasOwnProperty(columnId)) {\n return row._valuesCache[columnId]\n }\n\n const column = row.table.getColumn(columnId)\n\n if (!column?.accessorFn) {\n return undefined\n }\n\n row._valuesCache[columnId] = column.accessorFn(row.original, row.index)\n\n return row._valuesCache[columnId]\n}\n\nexport function row_getUniqueValues<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n if (row._uniqueValuesCache.hasOwnProperty(columnId)) {\n return row._uniqueValuesCache[columnId]\n }\n\n const column = row.table.getColumn(columnId)\n\n if (!column?.accessorFn) {\n return undefined\n }\n\n if (!column.columnDef.getUniqueValues) {\n row._uniqueValuesCache[columnId] = [row.getValue(columnId)]\n return row._uniqueValuesCache[columnId]\n }\n\n row._uniqueValuesCache[columnId] = column.columnDef.getUniqueValues(\n row.original,\n row.index,\n )\n\n return row._uniqueValuesCache[columnId]\n}\n\nexport function row_renderValue<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, columnId: string) {\n return row.getValue(columnId) ?? row.table.options.renderFallbackValue\n}\n\nexport function row_getLeafRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Row<TFeatures, TData>> {\n return flattenBy(row.subRows, (d) => d.subRows)\n}\n\nexport function row_getParentRow<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return row.parentId ? row.table.getRow(row.parentId, true) : undefined\n}\n\nexport function row_getParentRows<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const parentRows: Array<Row<TFeatures, TData>> = []\n let currentRow = row\n // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition\n while (true) {\n const parentRow = currentRow.getParentRow()\n if (!parentRow) break\n parentRows.push(parentRow)\n currentRow = parentRow\n }\n return parentRows.reverse()\n}\n\nexport function row_getAllCells<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>): Array<Cell<TFeatures, TData, unknown>> {\n return row.table.getAllLeafColumns().map((column) => {\n return constructCell(column, row, row.table)\n })\n}\n\nexport function row_getAllCellsByColumnId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return row.getAllCells().reduce(\n (acc, cell) => {\n acc[cell.column.id] = cell\n return acc\n },\n {} as Record<string, Cell<TFeatures, TData, unknown>>,\n )\n}\n\nexport function table_getRowId<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n originalRow: TData,\n table: Table_Internal<TFeatures, TData>,\n index: number,\n parent?: Row<TFeatures, TData>,\n) {\n return (\n table.options.getRowId?.(originalRow, index, parent) ??\n `${parent ? [parent.id, index].join('.') : index}`\n )\n}\n\nexport function table_getRow<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(\n table: Table_Internal<TFeatures, TData>,\n rowId: string,\n searchAll?: boolean,\n): Row<TFeatures, TData> {\n // TODO - simplify this across different row models\n let row = (searchAll ? table.getPrePaginatedRowModel() : table.getRowModel())\n .rowsById[rowId]\n\n if (!row) {\n row = table.getCoreRowModel().rowsById[rowId]\n if (!row) {\n if (process.env.NODE_ENV === 'development') {\n throw new Error(`getRow could not find row with ID: ${rowId}`)\n }\n throw new Error()\n }\n }\n\n return row\n}\n"],"names":[],"mappings":";;AAQO,SAAS,aAGd,KAA4B,UAAkB;AAC9C,MAAI,IAAI,aAAa,eAAe,QAAQ,GAAG;AAC7C,WAAO,IAAI,aAAa,QAAQ;AAAA,EAClC;AAEA,QAAM,SAAS,IAAI,MAAM,UAAU,QAAQ;AAE3C,MAAI,CAAC,QAAQ,YAAY;AACvB,WAAO;AAAA,EACT;AAEA,MAAI,aAAa,QAAQ,IAAI,OAAO,WAAW,IAAI,UAAU,IAAI,KAAK;AAEtE,SAAO,IAAI,aAAa,QAAQ;AAClC;AAEO,SAAS,oBAGd,KAA4B,UAAkB;AAC9C,MAAI,IAAI,mBAAmB,eAAe,QAAQ,GAAG;AACnD,WAAO,IAAI,mBAAmB,QAAQ;AAAA,EACxC;AAEA,QAAM,SAAS,IAAI,MAAM,UAAU,QAAQ;AAE3C,MAAI,CAAC,QAAQ,YAAY;AACvB,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,OAAO,UAAU,iBAAiB;AACrC,QAAI,mBAAmB,QAAQ,IAAI,CAAC,IAAI,SAAS,QAAQ,CAAC;AAC1D,WAAO,IAAI,mBAAmB,QAAQ;AAAA,EACxC;AAEA,MAAI,mBAAmB,QAAQ,IAAI,OAAO,UAAU;AAAA,IAClD,IAAI;AAAA,IACJ,IAAI;AAAA,EAAA;AAGN,SAAO,IAAI,mBAAmB,QAAQ;AACxC;AAEO,SAAS,gBAGd,KAA4B,UAAkB;AAC9C,SAAO,IAAI,SAAS,QAAQ,KAAK,IAAI,MAAM,QAAQ;AACrD;AAEO,SAAS,gBAGd,KAA0D;AAC1D,SAAO,UAAU,IAAI,SAAS,CAAC,MAAM,EAAE,OAAO;AAChD;AAEO,SAAS,iBAGd,KAA4B;AAC5B,SAAO,IAAI,WAAW,IAAI,MAAM,OAAO,IAAI,UAAU,IAAI,IAAI;AAC/D;AAEO,SAAS,kBAGd,KAA4B;AAC5B,QAAM,aAA2C,CAAA;AACjD,MAAI,aAAa;AAEjB,SAAO,MAAM;AACX,UAAM,YAAY,WAAW,aAAA;AAC7B,QAAI,CAAC,UAAW;AAChB,eAAW,KAAK,SAAS;AACzB,iBAAa;AAAA,EACf;AACA,SAAO,WAAW,QAAA;AACpB;AAEO,SAAS,gBAGd,KAAoE;AACpE,SAAO,IAAI,MAAM,kBAAA,EAAoB,IAAI,CAAC,WAAW;AACnD,WAAO,cAAc,QAAQ,KAAK,IAAI,KAAK;AAAA,EAC7C,CAAC;AACH;AAEO,SAAS,0BAGd,KAA4B;AAC5B,SAAO,IAAI,cAAc;AAAA,IACvB,CAAC,KAAK,SAAS;AACb,UAAI,KAAK,OAAO,EAAE,IAAI;AACtB,aAAO;AAAA,IACT;AAAA,IACA,CAAA;AAAA,EAAC;AAEL;AAEO,SAAS,eAId,aACA,OACA,OACA,QACA;AACA,SACE,MAAM,QAAQ,WAAW,aAAa,OAAO,MAAM,KACnD,GAAG,SAAS,CAAC,OAAO,IAAI,KAAK,EAAE,KAAK,GAAG,IAAI,KAAK;AAEpD;AAEO,SAAS,aAId,OACA,OACA,WACuB;AAEvB,MAAI,OAAO,YAAY,MAAM,4BAA4B,MAAM,YAAA,GAC5D,SAAS,KAAK;AAEjB,MAAI,CAAC,KAAK;AACR,UAAM,MAAM,kBAAkB,SAAS,KAAK;AAC5C,QAAI,CAAC,KAAK;AACR,UAAI,QAAQ,IAAI,aAAa,eAAe;AAC1C,cAAM,IAAI,MAAM,sCAAsC,KAAK,EAAE;AAAA,MAC/D;AACA,YAAM,IAAI,MAAA;AAAA,IACZ;AAAA,EACF;AAEA,SAAO;AACT;"}
@@ -0,0 +1,9 @@
1
+ import { Store } from '@tanstack/store';
2
+ import { RowData } from '../../types/type-utils.js';
3
+ import { TableFeatures } from '../../types/TableFeatures.js';
4
+ import { Table } from '../../types/Table.js';
5
+ import { TableOptions } from '../../types/TableOptions.js';
6
+ import { TableState } from '../../types/TableState.js';
7
+ export declare function getInitialTableState<TFeatures extends TableFeatures>(features: TFeatures, initialState?: Partial<TableState<TFeatures>> | undefined): TableState<TFeatures>;
8
+ export declare function createTableStore<TFeatures extends TableFeatures>(features: TFeatures, initialState?: Partial<TableState<TFeatures>> | undefined): Store<TableState<TFeatures>>;
9
+ export declare function constructTable<TFeatures extends TableFeatures, TData extends RowData>(tableOptions: TableOptions<TFeatures, TData>): Table<TFeatures, TData>;
@@ -0,0 +1,65 @@
1
+ import { Store, Derived } from "@tanstack/store";
2
+ import { coreFeatures } from "../coreFeatures.js";
3
+ function getInitialTableState(features, initialState = {}) {
4
+ Object.values(features).forEach((feature) => {
5
+ initialState = feature.getInitialState?.(initialState) ?? initialState;
6
+ });
7
+ return structuredClone(initialState);
8
+ }
9
+ function createTableStore(features, initialState = {}) {
10
+ return new Store(getInitialTableState(features, initialState));
11
+ }
12
+ function constructTable(tableOptions) {
13
+ const table = {
14
+ _features: { ...coreFeatures, ...tableOptions._features },
15
+ _rowModels: {},
16
+ _rowModelFns: {}
17
+ };
18
+ const featuresList = Object.values(table._features);
19
+ const defaultOptions = featuresList.reduce((obj, feature) => {
20
+ return Object.assign(obj, feature.getDefaultTableOptions?.(table));
21
+ }, {});
22
+ table.options = {
23
+ ...defaultOptions,
24
+ ...tableOptions
25
+ };
26
+ table.initialState = getInitialTableState(
27
+ table._features,
28
+ table.options.initialState
29
+ );
30
+ table.baseStore = table.options.store ?? new Store(table.initialState);
31
+ table.store = new Derived({
32
+ deps: [table.baseStore],
33
+ fn: ({ currDepVals }) => {
34
+ const baseState = currDepVals[0];
35
+ return {
36
+ ...baseState,
37
+ ...table.options.state ?? {}
38
+ };
39
+ }
40
+ });
41
+ if (process.env.NODE_ENV === "development" && (tableOptions.debugAll || tableOptions.debugTable)) {
42
+ const features = Object.keys(table._features);
43
+ const rowModels = Object.keys(table.options._rowModels || {});
44
+ const states = Object.keys(table.initialState);
45
+ console.log(
46
+ `Constructing Table Instance
47
+
48
+ Features: ${features.join("\n ")}
49
+
50
+ Row Models: ${rowModels.length ? rowModels.join("\n ") : "(none)"}
51
+
52
+ States: ${states.join("\n ")}`
53
+ );
54
+ }
55
+ for (const feature of featuresList) {
56
+ feature.constructTableAPIs?.(table);
57
+ }
58
+ return table;
59
+ }
60
+ export {
61
+ constructTable,
62
+ createTableStore,
63
+ getInitialTableState
64
+ };
65
+ //# sourceMappingURL=constructTable.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"constructTable.js","sources":["../../../../src/core/table/constructTable.ts"],"sourcesContent":["import { Derived, Store } from '@tanstack/store'\nimport {} from '../../utils'\nimport { coreFeatures } from '../coreFeatures'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { TableOptions } from '../../types/TableOptions'\nimport type { TableState } from '../../types/TableState'\n\nexport function getInitialTableState<TFeatures extends TableFeatures>(\n features: TFeatures,\n initialState: Partial<TableState<TFeatures>> | undefined = {},\n): TableState<TFeatures> {\n Object.values(features).forEach((feature) => {\n initialState =\n feature.getInitialState?.(initialState as TableState<TFeatures>) ??\n initialState\n })\n return structuredClone(initialState) as TableState<TFeatures>\n}\n\nexport function createTableStore<TFeatures extends TableFeatures>(\n features: TFeatures,\n initialState: Partial<TableState<TFeatures>> | undefined = {},\n): Store<TableState<TFeatures>> {\n return new Store(getInitialTableState(features, initialState))\n}\n\nexport function constructTable<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(tableOptions: TableOptions<TFeatures, TData>): Table<TFeatures, TData> {\n const table = {\n _features: { ...coreFeatures, ...tableOptions._features },\n _rowModels: {},\n _rowModelFns: {},\n } as Table_Internal<TFeatures, TData>\n\n const featuresList: Array<TableFeature<{}>> = Object.values(table._features)\n\n const defaultOptions = featuresList.reduce((obj, feature) => {\n return Object.assign(obj, feature.getDefaultTableOptions?.(table))\n }, {}) as TableOptions<TFeatures, TData>\n\n table.options = {\n ...defaultOptions,\n ...tableOptions,\n }\n\n table.initialState = getInitialTableState(\n table._features,\n table.options.initialState,\n )\n\n table.baseStore =\n table.options.store ?? (new Store(table.initialState) as any)\n\n // @ts-ignore - complex TFeatures type inference does not work with Derived\n table.store = new Derived({\n deps: [table.baseStore],\n fn: ({ currDepVals }) => {\n const baseState = currDepVals[0]\n // Merge base state with user-provided external state (table.options.state takes precedence)\n return {\n ...baseState,\n ...(table.options.state ?? {}),\n } as TableState<TFeatures>\n },\n })\n\n if (\n process.env.NODE_ENV === 'development' &&\n (tableOptions.debugAll || tableOptions.debugTable)\n ) {\n const features = Object.keys(table._features)\n const rowModels = Object.keys(table.options._rowModels || {})\n const states = Object.keys(table.initialState)\n\n console.log(\n `Constructing Table Instance\n \n Features: ${features.join('\\n ')}\n \n Row Models: ${rowModels.length ? rowModels.join('\\n ') : '(none)'}\n \n States: ${states.join('\\n ')}`,\n )\n }\n\n for (const feature of featuresList) {\n feature.constructTableAPIs?.(table)\n }\n\n return table\n}\n"],"names":[],"mappings":";;AASO,SAAS,qBACd,UACA,eAA2D,IACpC;AACvB,SAAO,OAAO,QAAQ,EAAE,QAAQ,CAAC,YAAY;AAC3C,mBACE,QAAQ,kBAAkB,YAAqC,KAC/D;AAAA,EACJ,CAAC;AACD,SAAO,gBAAgB,YAAY;AACrC;AAEO,SAAS,iBACd,UACA,eAA2D,IAC7B;AAC9B,SAAO,IAAI,MAAM,qBAAqB,UAAU,YAAY,CAAC;AAC/D;AAEO,SAAS,eAGd,cAAuE;AACvE,QAAM,QAAQ;AAAA,IACZ,WAAW,EAAE,GAAG,cAAc,GAAG,aAAa,UAAA;AAAA,IAC9C,YAAY,CAAA;AAAA,IACZ,cAAc,CAAA;AAAA,EAAC;AAGjB,QAAM,eAAwC,OAAO,OAAO,MAAM,SAAS;AAE3E,QAAM,iBAAiB,aAAa,OAAO,CAAC,KAAK,YAAY;AAC3D,WAAO,OAAO,OAAO,KAAK,QAAQ,yBAAyB,KAAK,CAAC;AAAA,EACnE,GAAG,CAAA,CAAE;AAEL,QAAM,UAAU;AAAA,IACd,GAAG;AAAA,IACH,GAAG;AAAA,EAAA;AAGL,QAAM,eAAe;AAAA,IACnB,MAAM;AAAA,IACN,MAAM,QAAQ;AAAA,EAAA;AAGhB,QAAM,YACJ,MAAM,QAAQ,SAAU,IAAI,MAAM,MAAM,YAAY;AAGtD,QAAM,QAAQ,IAAI,QAAQ;AAAA,IACxB,MAAM,CAAC,MAAM,SAAS;AAAA,IACtB,IAAI,CAAC,EAAE,kBAAkB;AACvB,YAAM,YAAY,YAAY,CAAC;AAE/B,aAAO;AAAA,QACL,GAAG;AAAA,QACH,GAAI,MAAM,QAAQ,SAAS,CAAA;AAAA,MAAC;AAAA,IAEhC;AAAA,EAAA,CACD;AAED,MACE,QAAQ,IAAI,aAAa,kBACxB,aAAa,YAAY,aAAa,aACvC;AACA,UAAM,WAAW,OAAO,KAAK,MAAM,SAAS;AAC5C,UAAM,YAAY,OAAO,KAAK,MAAM,QAAQ,cAAc,EAAE;AAC5D,UAAM,SAAS,OAAO,KAAK,MAAM,YAAY;AAE7C,YAAQ;AAAA,MACN;AAAA;AAAA,gBAEU,SAAS,KAAK,kBAAkB,CAAC;AAAA;AAAA,gBAEjC,UAAU,SAAS,UAAU,KAAK,kBAAkB,IAAI,QAAQ;AAAA;AAAA,gBAEhE,OAAO,KAAK,kBAAkB,CAAC;AAAA,IAAA;AAAA,EAE7C;AAEA,aAAW,WAAW,cAAc;AAClC,YAAQ,qBAAqB,KAAK;AAAA,EACpC;AAEA,SAAO;AACT;"}
@@ -0,0 +1,10 @@
1
+ import { RowData } from '../../types/type-utils.js';
2
+ import { TableFeature, TableFeatures } from '../../types/TableFeatures.js';
3
+ interface CoreTablesFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {
4
+ }
5
+ export declare function constructCoreTablesFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<CoreTablesFeatureConstructors<TFeatures, TData>>;
6
+ /**
7
+ * The Core Tables feature provides the core table functionality for handling state and options.
8
+ */
9
+ export declare const coreTablesFeature: TableFeature<CoreTablesFeatureConstructors<TableFeatures, RowData>>;
10
+ export {};
@@ -0,0 +1,22 @@
1
+ import { assignTableAPIs } from "../../utils.js";
2
+ import { table_setOptions, table_reset } from "./coreTablesFeature.utils.js";
3
+ function constructCoreTablesFeature() {
4
+ return {
5
+ constructTableAPIs: (table) => {
6
+ assignTableAPIs("coreTablesFeature", table, {
7
+ table_reset: {
8
+ fn: () => table_reset(table)
9
+ },
10
+ table_setOptions: {
11
+ fn: (updater) => table_setOptions(table, updater)
12
+ }
13
+ });
14
+ }
15
+ };
16
+ }
17
+ const coreTablesFeature = constructCoreTablesFeature();
18
+ export {
19
+ constructCoreTablesFeature,
20
+ coreTablesFeature
21
+ };
22
+ //# sourceMappingURL=coreTablesFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"coreTablesFeature.js","sources":["../../../../src/core/table/coreTablesFeature.ts"],"sourcesContent":["import { assignTableAPIs } from '../../utils'\nimport { table_reset, table_setOptions } from './coreTablesFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type { TableOptions_Table, Table_Table } from './coreTablesFeature.types'\n\ninterface CoreTablesFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // Table: Table_Table<TFeatures, TData>\n // TableOptions: TableOptions_Table<TFeatures, TData>\n}\n\nexport function constructCoreTablesFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<CoreTablesFeatureConstructors<TFeatures, TData>> {\n return {\n constructTableAPIs: (table) => {\n assignTableAPIs('coreTablesFeature', table, {\n table_reset: {\n fn: () => table_reset(table),\n },\n table_setOptions: {\n fn: (updater) => table_setOptions(table, updater),\n },\n })\n },\n }\n}\n\n/**\n * The Core Tables feature provides the core table functionality for handling state and options.\n */\nexport const coreTablesFeature = constructCoreTablesFeature()\n"],"names":[],"mappings":";;AAcO,SAAS,6BAGmD;AACjE,SAAO;AAAA,IACL,oBAAoB,CAAC,UAAU;AAC7B,sBAAgB,qBAAqB,OAAO;AAAA,QAC1C,aAAa;AAAA,UACX,IAAI,MAAM,YAAY,KAAK;AAAA,QAAA;AAAA,QAE7B,kBAAkB;AAAA,UAChB,IAAI,CAAC,YAAY,iBAAiB,OAAO,OAAO;AAAA,QAAA;AAAA,MAClD,CACD;AAAA,IACH;AAAA,EAAA;AAEJ;AAKO,MAAM,oBAAoB,2BAAA;"}