@tanstack/table-core 9.0.0-alpha.10 → 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 -66
  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 -50
  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 -164
  336. package/dist/cjs/aggregationFns.cjs +0 -94
  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 -92
  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 -232
  355. package/dist/cjs/core/table.cjs.map +0 -1
  356. package/dist/cjs/core/table.d.cts +0 -229
  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 -133
  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 -307
  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 -152
  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 -161
  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 -132
  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 -296
  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 -200
  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 -88
  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 -35
  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 -37
  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 -88
  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 -98
  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 -94
  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 -92
  457. package/dist/esm/core/row.js.map +0 -1
  458. package/dist/esm/core/table.d.ts +0 -229
  459. package/dist/esm/core/table.js +0 -232
  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 -133
  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 -307
  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 -152
  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 -161
  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 -132
  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 -296
  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 -200
  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 -35
  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 -37
  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 -88
  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 -563
  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 -277
  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
@@ -1 +0,0 @@
1
- {"version":3,"file":"ColumnVisibility.js","sources":["../../../src/features/ColumnVisibility.ts"],"sourcesContent":["import { ColumnPinningPosition } from '..'\nimport {\n Cell,\n Column,\n OnChangeFn,\n Table,\n Updater,\n Row,\n RowData,\n TableFeature,\n} from '../types'\nimport { getMemoOptions, makeStateUpdater, memo } from '../utils'\n\nexport type VisibilityState = Record<string, boolean>\n\nexport interface VisibilityTableState {\n columnVisibility: VisibilityState\n}\n\nexport interface VisibilityOptions {\n /**\n * Whether to enable column hiding. Defaults to `true`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#enablehiding)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n enableHiding?: boolean\n /**\n * If provided, this function will be called with an `updaterFn` when `state.columnVisibility` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#oncolumnvisibilitychange)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n onColumnVisibilityChange?: OnChangeFn<VisibilityState>\n}\n\nexport type VisibilityDefaultOptions = Pick<\n VisibilityOptions,\n 'onColumnVisibilityChange'\n>\n\nexport interface VisibilityInstance<TData extends RowData> {\n /**\n * If column pinning, returns a flat array of leaf-node columns that are visible in the unpinned/center portion of the table.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#getcentervisibleleafcolumns)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n getCenterVisibleLeafColumns: () => Column<TData, unknown>[]\n /**\n * Returns whether all columns are visible\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#getisallcolumnsvisible)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n getIsAllColumnsVisible: () => boolean\n /**\n * Returns whether any columns are visible\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#getissomecolumnsvisible)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n getIsSomeColumnsVisible: () => boolean\n /**\n * If column pinning, returns a flat array of leaf-node columns that are visible in the left portion of the table.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#getleftvisibleleafcolumns)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n getLeftVisibleLeafColumns: () => Column<TData, unknown>[]\n /**\n * If column pinning, returns a flat array of leaf-node columns that are visible in the right portion of the table.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#getrightvisibleleafcolumns)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n getRightVisibleLeafColumns: () => Column<TData, unknown>[]\n /**\n * Returns a handler for toggling the visibility of all columns, meant to be bound to a `input[type=checkbox]` element.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#gettoggleallcolumnsvisibilityhandler)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n getToggleAllColumnsVisibilityHandler: () => (event: unknown) => void\n /**\n * Returns a flat array of columns that are visible, including parent columns.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#getvisibleflatcolumns)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n getVisibleFlatColumns: () => Column<TData, unknown>[]\n /**\n * Returns a flat array of leaf-node columns that are visible.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#getvisibleleafcolumns)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n getVisibleLeafColumns: () => Column<TData, unknown>[]\n /**\n * Resets the column visibility state to the initial state. If `defaultState` is provided, the state will be reset to `{}`\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#resetcolumnvisibility)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n resetColumnVisibility: (defaultState?: boolean) => void\n /**\n * Sets or updates the `state.columnVisibility` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#setcolumnvisibility)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n setColumnVisibility: (updater: Updater<VisibilityState>) => void\n /**\n * Toggles the visibility of all columns.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#toggleallcolumnsvisible)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n toggleAllColumnsVisible: (value?: boolean) => void\n}\n\nexport interface VisibilityColumnDef {\n enableHiding?: boolean\n}\n\nexport interface VisibilityRow<TData extends RowData> {\n _getAllVisibleCells: () => Cell<TData, unknown>[]\n /**\n * Returns an array of cells that account for column visibility for the row.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#getvisiblecells)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n getVisibleCells: () => Cell<TData, unknown>[]\n}\n\nexport interface VisibilityColumn {\n /**\n * Returns whether the column can be hidden\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#getcanhide)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n getCanHide: () => boolean\n /**\n * Returns whether the column is visible\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#getisvisible)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n getIsVisible: () => boolean\n /**\n * Returns a function that can be used to toggle the column visibility. This function can be used to bind to an event handler to a checkbox.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#gettogglevisibilityhandler)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n getToggleVisibilityHandler: () => (event: unknown) => void\n /**\n * Toggles the visibility of the column.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/column-visibility#togglevisibility)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/column-visibility)\n */\n toggleVisibility: (value?: boolean) => void\n}\n\n//\n\nexport const ColumnVisibility: TableFeature = {\n _getInitialState: (state): VisibilityTableState => {\n return {\n columnVisibility: {},\n ...state,\n }\n },\n\n _getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): VisibilityDefaultOptions => {\n return {\n onColumnVisibilityChange: makeStateUpdater('columnVisibility', table),\n }\n },\n\n _createColumn: <TData extends RowData, TValue>(\n column: Column<TData, TValue>,\n table: Table<TData>\n ): void => {\n column.toggleVisibility = value => {\n if (column.getCanHide()) {\n table.setColumnVisibility(old => ({\n ...old,\n [column.id]: value ?? !column.getIsVisible(),\n }))\n }\n }\n column.getIsVisible = () => {\n const childColumns = column.columns\n return (\n (childColumns.length\n ? childColumns.some(c => c.getIsVisible())\n : table.getState().columnVisibility?.[column.id]) ?? true\n )\n }\n\n column.getCanHide = () => {\n return (\n (column.columnDef.enableHiding ?? true) &&\n (table.options.enableHiding ?? true)\n )\n }\n column.getToggleVisibilityHandler = () => {\n return (e: unknown) => {\n column.toggleVisibility?.(\n ((e as MouseEvent).target as HTMLInputElement).checked\n )\n }\n }\n },\n\n _createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): void => {\n row._getAllVisibleCells = memo(\n () => [row.getAllCells(), table.getState().columnVisibility],\n cells => {\n return cells.filter(cell => cell.column.getIsVisible())\n },\n getMemoOptions(table.options, 'debugRows', '_getAllVisibleCells')\n )\n row.getVisibleCells = memo(\n () => [\n row.getLeftVisibleCells(),\n row.getCenterVisibleCells(),\n row.getRightVisibleCells(),\n ],\n (left, center, right) => [...left, ...center, ...right],\n getMemoOptions(table.options, 'debugRows', 'getVisibleCells')\n )\n },\n\n _createTable: <TData extends RowData>(table: Table<TData>): void => {\n const makeVisibleColumnsMethod = (\n key: string,\n getColumns: () => Column<TData, unknown>[]\n ): (() => Column<TData, unknown>[]) => {\n return memo(\n () => [\n getColumns(),\n getColumns()\n .filter(d => d.getIsVisible())\n .map(d => d.id)\n .join('_'),\n ],\n columns => {\n return columns.filter(d => d.getIsVisible?.())\n },\n getMemoOptions(table.options, 'debugColumns', key)\n )\n }\n\n table.getVisibleFlatColumns = makeVisibleColumnsMethod(\n 'getVisibleFlatColumns',\n () => table.getAllFlatColumns()\n )\n table.getVisibleLeafColumns = makeVisibleColumnsMethod(\n 'getVisibleLeafColumns',\n () => table.getAllLeafColumns()\n )\n table.getLeftVisibleLeafColumns = makeVisibleColumnsMethod(\n 'getLeftVisibleLeafColumns',\n () => table.getLeftLeafColumns()\n )\n table.getRightVisibleLeafColumns = makeVisibleColumnsMethod(\n 'getRightVisibleLeafColumns',\n () => table.getRightLeafColumns()\n )\n table.getCenterVisibleLeafColumns = makeVisibleColumnsMethod(\n 'getCenterVisibleLeafColumns',\n () => table.getCenterLeafColumns()\n )\n\n table.setColumnVisibility = updater =>\n table.options.onColumnVisibilityChange?.(updater)\n\n table.resetColumnVisibility = defaultState => {\n table.setColumnVisibility(\n defaultState ? {} : table.initialState.columnVisibility ?? {}\n )\n }\n\n table.toggleAllColumnsVisible = value => {\n value = value ?? !table.getIsAllColumnsVisible()\n\n table.setColumnVisibility(\n table.getAllLeafColumns().reduce(\n (obj, column) => ({\n ...obj,\n [column.id]: !value ? !column.getCanHide?.() : value,\n }),\n {}\n )\n )\n }\n\n table.getIsAllColumnsVisible = () =>\n !table.getAllLeafColumns().some(column => !column.getIsVisible?.())\n\n table.getIsSomeColumnsVisible = () =>\n table.getAllLeafColumns().some(column => column.getIsVisible?.())\n\n table.getToggleAllColumnsVisibilityHandler = () => {\n return (e: unknown) => {\n table.toggleAllColumnsVisible(\n ((e as MouseEvent).target as HTMLInputElement)?.checked\n )\n }\n }\n },\n}\n\nexport function _getVisibleLeafColumns<TData extends RowData>(\n table: Table<TData>,\n position?: ColumnPinningPosition | 'center'\n) {\n return !position\n ? table.getVisibleLeafColumns()\n : position === 'center'\n ? table.getCenterVisibleLeafColumns()\n : position === 'left'\n ? table.getLeftVisibleLeafColumns()\n : table.getRightVisibleLeafColumns()\n}\n"],"names":[],"mappings":"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"}
@@ -1,27 +0,0 @@
1
- import { RowModel } from '..';
2
- import { RowData, TableFeature } from '../types';
3
-
4
- export interface GlobalFacetingInstance<TData extends RowData> {
5
- _getGlobalFacetedMinMaxValues?: () => undefined | [number, number];
6
- _getGlobalFacetedRowModel?: () => RowModel<TData>;
7
- _getGlobalFacetedUniqueValues?: () => Map<any, number>;
8
- /**
9
- * Currently, this function returns the built-in `includesString` filter function. In future releases, it may return more dynamic filter functions based on the nature of the data provided.
10
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-faceting#getglobalautofilterfn)
11
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-faceting)
12
- */
13
- getGlobalFacetedMinMaxValues: () => undefined | [number, number];
14
- /**
15
- * Returns the row model for the table after **global** filtering has been applied.
16
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-faceting#getglobalfacetedrowmodel)
17
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-faceting)
18
- */
19
- getGlobalFacetedRowModel: () => RowModel<TData>;
20
- /**
21
- * Returns the faceted unique values for the global filter.
22
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-faceting#getglobalfaceteduniquevalues)
23
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-faceting)
24
- */
25
- getGlobalFacetedUniqueValues: () => Map<any, number>;
26
- }
27
- export declare const GlobalFaceting: TableFeature;
@@ -1,29 +0,0 @@
1
- const GlobalFaceting = {
2
- _createTable: (table) => {
3
- table._getGlobalFacetedRowModel = table.options.getFacetedRowModel && table.options.getFacetedRowModel(table, "__global__");
4
- table.getGlobalFacetedRowModel = () => {
5
- if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {
6
- return table.getPreFilteredRowModel();
7
- }
8
- return table._getGlobalFacetedRowModel();
9
- };
10
- table._getGlobalFacetedUniqueValues = table.options.getFacetedUniqueValues && table.options.getFacetedUniqueValues(table, "__global__");
11
- table.getGlobalFacetedUniqueValues = () => {
12
- if (!table._getGlobalFacetedUniqueValues) {
13
- return /* @__PURE__ */ new Map();
14
- }
15
- return table._getGlobalFacetedUniqueValues();
16
- };
17
- table._getGlobalFacetedMinMaxValues = table.options.getFacetedMinMaxValues && table.options.getFacetedMinMaxValues(table, "__global__");
18
- table.getGlobalFacetedMinMaxValues = () => {
19
- if (!table._getGlobalFacetedMinMaxValues) {
20
- return;
21
- }
22
- return table._getGlobalFacetedMinMaxValues();
23
- };
24
- }
25
- };
26
- export {
27
- GlobalFaceting
28
- };
29
- //# sourceMappingURL=GlobalFaceting.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlobalFaceting.js","sources":["../../../src/features/GlobalFaceting.ts"],"sourcesContent":["import { RowModel } from '..'\nimport { Table, RowData, TableFeature } from '../types'\n\nexport interface GlobalFacetingInstance<TData extends RowData> {\n _getGlobalFacetedMinMaxValues?: () => undefined | [number, number]\n _getGlobalFacetedRowModel?: () => RowModel<TData>\n _getGlobalFacetedUniqueValues?: () => Map<any, number>\n /**\n * Currently, this function returns the built-in `includesString` filter function. In future releases, it may return more dynamic filter functions based on the nature of the data provided.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-faceting#getglobalautofilterfn)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-faceting)\n */\n getGlobalFacetedMinMaxValues: () => undefined | [number, number]\n /**\n * Returns the row model for the table after **global** filtering has been applied.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-faceting#getglobalfacetedrowmodel)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-faceting)\n */\n getGlobalFacetedRowModel: () => RowModel<TData>\n /**\n * Returns the faceted unique values for the global filter.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-faceting#getglobalfaceteduniquevalues)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-faceting)\n */\n getGlobalFacetedUniqueValues: () => Map<any, number>\n}\n\n//\n\nexport const GlobalFaceting: TableFeature = {\n _createTable: <TData extends RowData>(table: Table<TData>): void => {\n table._getGlobalFacetedRowModel =\n table.options.getFacetedRowModel &&\n table.options.getFacetedRowModel(table, '__global__')\n\n table.getGlobalFacetedRowModel = () => {\n if (table.options.manualFiltering || !table._getGlobalFacetedRowModel) {\n return table.getPreFilteredRowModel()\n }\n\n return table._getGlobalFacetedRowModel()\n }\n\n table._getGlobalFacetedUniqueValues =\n table.options.getFacetedUniqueValues &&\n table.options.getFacetedUniqueValues(table, '__global__')\n table.getGlobalFacetedUniqueValues = () => {\n if (!table._getGlobalFacetedUniqueValues) {\n return new Map()\n }\n\n return table._getGlobalFacetedUniqueValues()\n }\n\n table._getGlobalFacetedMinMaxValues =\n table.options.getFacetedMinMaxValues &&\n table.options.getFacetedMinMaxValues(table, '__global__')\n table.getGlobalFacetedMinMaxValues = () => {\n if (!table._getGlobalFacetedMinMaxValues) {\n return\n }\n\n return table._getGlobalFacetedMinMaxValues()\n }\n },\n}\n"],"names":[],"mappings":"AA6BO,MAAM,iBAA+B;AAAA,EAC1C,cAAc,CAAwB,UAA8B;AAC5D,UAAA,4BACJ,MAAM,QAAQ,sBACd,MAAM,QAAQ,mBAAmB,OAAO,YAAY;AAEtD,UAAM,2BAA2B,MAAM;AACrC,UAAI,MAAM,QAAQ,mBAAmB,CAAC,MAAM,2BAA2B;AACrE,eAAO,MAAM;MACf;AAEA,aAAO,MAAM;IAA0B;AAGnC,UAAA,gCACJ,MAAM,QAAQ,0BACd,MAAM,QAAQ,uBAAuB,OAAO,YAAY;AAC1D,UAAM,+BAA+B,MAAM;AACrC,UAAA,CAAC,MAAM,+BAA+B;AACxC,mCAAW,IAAI;AAAA,MACjB;AAEA,aAAO,MAAM;IAA8B;AAGvC,UAAA,gCACJ,MAAM,QAAQ,0BACd,MAAM,QAAQ,uBAAuB,OAAO,YAAY;AAC1D,UAAM,+BAA+B,MAAM;AACrC,UAAA,CAAC,MAAM,+BAA+B;AACxC;AAAA,MACF;AAEA,aAAO,MAAM;IAA8B;AAAA,EAE/C;AACF;"}
@@ -1,80 +0,0 @@
1
- import { FilterFn, FilterFnOption } from '..';
2
- import { Column, OnChangeFn, Updater, RowData, TableFeature } from '../types';
3
-
4
- export interface GlobalFilterTableState {
5
- globalFilter: any;
6
- }
7
- export interface GlobalFilterColumnDef {
8
- /**
9
- * Enables/disables the **global** filter for this column.
10
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#enableglobalfilter)
11
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
12
- */
13
- enableGlobalFilter?: boolean;
14
- }
15
- export interface GlobalFilterColumn {
16
- /**
17
- * Returns whether or not the column can be **globally** filtered. Set to `false` to disable a column from being scanned during global filtering.
18
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#getcanglobalfilter)
19
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
20
- */
21
- getCanGlobalFilter: () => boolean;
22
- }
23
- export interface GlobalFilterOptions<TData extends RowData> {
24
- /**
25
- * Enables/disables **global** filtering for all columns.
26
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#enableglobalfilter)
27
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
28
- */
29
- enableGlobalFilter?: boolean;
30
- /**
31
- * If provided, this function will be called with the column and should return `true` or `false` to indicate whether this column should be used for global filtering.
32
- *
33
- * This is useful if the column can contain data that is not `string` or `number` (i.e. `undefined`).
34
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#getcolumncanglobalfilter)
35
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
36
- */
37
- getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean;
38
- /**
39
- * The filter function to use for global filtering.
40
- * - A `string` referencing a built-in filter function
41
- * - A `string` that references a custom filter functions provided via the `tableOptions.filterFns` option
42
- * - A custom filter function
43
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#globalfilterfn)
44
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
45
- */
46
- globalFilterFn?: FilterFnOption<TData>;
47
- /**
48
- * If provided, this function will be called with an `updaterFn` when `state.globalFilter` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.
49
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#onglobalfilterchange)
50
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
51
- */
52
- onGlobalFilterChange?: OnChangeFn<any>;
53
- }
54
- export interface GlobalFilterInstance<TData extends RowData> {
55
- /**
56
- * Currently, this function returns the built-in `includesString` filter function. In future releases, it may return more dynamic filter functions based on the nature of the data provided.
57
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#getglobalautofilterfn)
58
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
59
- */
60
- getGlobalAutoFilterFn: () => FilterFn<TData> | undefined;
61
- /**
62
- * Returns the filter function (either user-defined or automatic, depending on configuration) for the global filter.
63
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#getglobalfilterfn)
64
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
65
- */
66
- getGlobalFilterFn: () => FilterFn<TData> | undefined;
67
- /**
68
- * Resets the **globalFilter** state to `initialState.globalFilter`, or `true` can be passed to force a default blank state reset to `undefined`.
69
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#resetglobalfilter)
70
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
71
- */
72
- resetGlobalFilter: (defaultState?: boolean) => void;
73
- /**
74
- * Sets or updates the `state.globalFilter` state.
75
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#setglobalfilter)
76
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)
77
- */
78
- setGlobalFilter: (updater: Updater<any>) => void;
79
- }
80
- export declare const GlobalFiltering: TableFeature;
@@ -1,50 +0,0 @@
1
- import { filterFns } from "../filterFns.js";
2
- import { makeStateUpdater, isFunction } from "../utils.js";
3
- const GlobalFiltering = {
4
- _getInitialState: (state) => {
5
- return {
6
- globalFilter: void 0,
7
- ...state
8
- };
9
- },
10
- _getDefaultOptions: (table) => {
11
- return {
12
- onGlobalFilterChange: makeStateUpdater("globalFilter", table),
13
- globalFilterFn: "auto",
14
- getColumnCanGlobalFilter: (column) => {
15
- var _a, _b;
16
- const value = (_b = (_a = table.getCoreRowModel().flatRows[0]) == null ? void 0 : _a._getAllCellsByColumnId()[column.id]) == null ? void 0 : _b.getValue();
17
- return typeof value === "string" || typeof value === "number";
18
- }
19
- };
20
- },
21
- _createColumn: (column, table) => {
22
- column.getCanGlobalFilter = () => {
23
- var _a, _b;
24
- return (column.columnDef.enableGlobalFilter ?? true) && (table.options.enableGlobalFilter ?? true) && (table.options.enableFilters ?? true) && (((_b = (_a = table.options).getColumnCanGlobalFilter) == null ? void 0 : _b.call(_a, column)) ?? true) && !!column.accessorFn;
25
- };
26
- },
27
- _createTable: (table) => {
28
- table.getGlobalAutoFilterFn = () => {
29
- return filterFns.includesString;
30
- };
31
- table.getGlobalFilterFn = () => {
32
- var _a;
33
- const { globalFilterFn } = table.options;
34
- return isFunction(globalFilterFn) ? globalFilterFn : globalFilterFn === "auto" ? table.getGlobalAutoFilterFn() : ((_a = table.options.filterFns) == null ? void 0 : _a[globalFilterFn]) ?? filterFns[globalFilterFn];
35
- };
36
- table.setGlobalFilter = (updater) => {
37
- var _a, _b;
38
- (_b = (_a = table.options).onGlobalFilterChange) == null ? void 0 : _b.call(_a, updater);
39
- };
40
- table.resetGlobalFilter = (defaultState) => {
41
- table.setGlobalFilter(
42
- defaultState ? void 0 : table.initialState.globalFilter
43
- );
44
- };
45
- }
46
- };
47
- export {
48
- GlobalFiltering
49
- };
50
- //# sourceMappingURL=GlobalFiltering.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GlobalFiltering.js","sources":["../../../src/features/GlobalFiltering.ts"],"sourcesContent":["import { FilterFn, FilterFnOption } from '..'\nimport { BuiltInFilterFn, filterFns } from '../filterFns'\nimport {\n Column,\n OnChangeFn,\n Table,\n Updater,\n RowData,\n TableFeature,\n} from '../types'\nimport { isFunction, makeStateUpdater } from '../utils'\n\nexport interface GlobalFilterTableState {\n globalFilter: any\n}\n\nexport interface GlobalFilterColumnDef {\n /**\n * Enables/disables the **global** filter for this column.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#enableglobalfilter)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)\n */\n enableGlobalFilter?: boolean\n}\n\nexport interface GlobalFilterColumn {\n /**\n * Returns whether or not the column can be **globally** filtered. Set to `false` to disable a column from being scanned during global filtering.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#getcanglobalfilter)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)\n */\n getCanGlobalFilter: () => boolean\n}\n\nexport interface GlobalFilterOptions<TData extends RowData> {\n /**\n * Enables/disables **global** filtering for all columns.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#enableglobalfilter)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)\n */\n enableGlobalFilter?: boolean\n /**\n * If provided, this function will be called with the column and should return `true` or `false` to indicate whether this column should be used for global filtering.\n *\n * This is useful if the column can contain data that is not `string` or `number` (i.e. `undefined`).\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#getcolumncanglobalfilter)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)\n */\n getColumnCanGlobalFilter?: (column: Column<TData, unknown>) => boolean\n /**\n * The filter function to use for global filtering.\n * - A `string` referencing a built-in filter function\n * - A `string` that references a custom filter functions provided via the `tableOptions.filterFns` option\n * - A custom filter function\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#globalfilterfn)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)\n */\n globalFilterFn?: FilterFnOption<TData>\n /**\n * If provided, this function will be called with an `updaterFn` when `state.globalFilter` changes. This overrides the default internal state management, so you will need to persist the state change either fully or partially outside of the table.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#onglobalfilterchange)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)\n */\n onGlobalFilterChange?: OnChangeFn<any>\n}\n\nexport interface GlobalFilterInstance<TData extends RowData> {\n /**\n * Currently, this function returns the built-in `includesString` filter function. In future releases, it may return more dynamic filter functions based on the nature of the data provided.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#getglobalautofilterfn)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)\n */\n getGlobalAutoFilterFn: () => FilterFn<TData> | undefined\n /**\n * Returns the filter function (either user-defined or automatic, depending on configuration) for the global filter.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#getglobalfilterfn)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)\n */\n getGlobalFilterFn: () => FilterFn<TData> | undefined\n /**\n * Resets the **globalFilter** state to `initialState.globalFilter`, or `true` can be passed to force a default blank state reset to `undefined`.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#resetglobalfilter)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)\n */\n resetGlobalFilter: (defaultState?: boolean) => void\n /**\n * Sets or updates the `state.globalFilter` state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/global-filtering#setglobalfilter)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/global-filtering)\n */\n setGlobalFilter: (updater: Updater<any>) => void\n}\n\n//\n\nexport const GlobalFiltering: TableFeature = {\n _getInitialState: (state): GlobalFilterTableState => {\n return {\n globalFilter: undefined,\n ...state,\n }\n },\n\n _getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): GlobalFilterOptions<TData> => {\n return {\n onGlobalFilterChange: makeStateUpdater('globalFilter', table),\n globalFilterFn: 'auto',\n getColumnCanGlobalFilter: column => {\n const value = table\n .getCoreRowModel()\n .flatRows[0]?._getAllCellsByColumnId()\n [column.id]?.getValue()\n\n return typeof value === 'string' || typeof value === 'number'\n },\n } as GlobalFilterOptions<TData>\n },\n\n _createColumn: <TData extends RowData>(\n column: Column<TData, unknown>,\n table: Table<TData>\n ): void => {\n column.getCanGlobalFilter = () => {\n return (\n (column.columnDef.enableGlobalFilter ?? true) &&\n (table.options.enableGlobalFilter ?? true) &&\n (table.options.enableFilters ?? true) &&\n (table.options.getColumnCanGlobalFilter?.(column) ?? true) &&\n !!column.accessorFn\n )\n }\n },\n\n _createTable: <TData extends RowData>(table: Table<TData>): void => {\n table.getGlobalAutoFilterFn = () => {\n return filterFns.includesString\n }\n\n table.getGlobalFilterFn = () => {\n const { globalFilterFn: globalFilterFn } = table.options\n\n return isFunction(globalFilterFn)\n ? globalFilterFn\n : globalFilterFn === 'auto'\n ? table.getGlobalAutoFilterFn()\n : table.options.filterFns?.[globalFilterFn as string] ??\n filterFns[globalFilterFn as BuiltInFilterFn]\n }\n\n table.setGlobalFilter = updater => {\n table.options.onGlobalFilterChange?.(updater)\n }\n\n table.resetGlobalFilter = defaultState => {\n table.setGlobalFilter(\n defaultState ? undefined : table.initialState.globalFilter\n )\n }\n },\n}\n"],"names":[],"mappings":";;AA+FO,MAAM,kBAAgC;AAAA,EAC3C,kBAAkB,CAAC,UAAkC;AAC5C,WAAA;AAAA,MACL,cAAc;AAAA,MACd,GAAG;AAAA,IAAA;AAAA,EAEP;AAAA,EAEA,oBAAoB,CAClB,UAC+B;AACxB,WAAA;AAAA,MACL,sBAAsB,iBAAiB,gBAAgB,KAAK;AAAA,MAC5D,gBAAgB;AAAA,MAChB,0BAA0B,CAAU,WAAA;;AAClC,cAAM,SAAQ,iBACX,gBAAgB,EAChB,SAAS,CAAC,MAFC,mBAEE,yBACb,OAAO,QAHI,mBAGC;AAEf,eAAO,OAAO,UAAU,YAAY,OAAO,UAAU;AAAA,MACvD;AAAA,IAAA;AAAA,EAEJ;AAAA,EAEA,eAAe,CACb,QACA,UACS;AACT,WAAO,qBAAqB,MAAM;;AAE7B,cAAA,OAAO,UAAU,sBAAsB,UACvC,MAAM,QAAQ,sBAAsB,UACpC,MAAM,QAAQ,iBAAiB,YAC/B,iBAAM,SAAQ,6BAAd,4BAAyC,YAAW,SACrD,CAAC,CAAC,OAAO;AAAA,IAAA;AAAA,EAGf;AAAA,EAEA,cAAc,CAAwB,UAA8B;AAClE,UAAM,wBAAwB,MAAM;AAClC,aAAO,UAAU;AAAA,IAAA;AAGnB,UAAM,oBAAoB,MAAM;;AACxB,YAAA,EAAE,eAA+B,IAAI,MAAM;AAEjD,aAAO,WAAW,cAAc,IAC5B,iBACA,mBAAmB,SACjB,MAAM,sBAAsB,MAC5B,WAAM,QAAQ,cAAd,mBAA0B,oBAC1B,UAAU,cAAiC;AAAA,IAAA;AAGnD,UAAM,kBAAkB,CAAW,YAAA;;AAC3B,wBAAA,SAAQ,yBAAR,4BAA+B;AAAA,IAAO;AAG9C,UAAM,oBAAoB,CAAgB,iBAAA;AAClC,YAAA;AAAA,QACJ,eAAe,SAAY,MAAM,aAAa;AAAA,MAAA;AAAA,IAChD;AAAA,EAEJ;AACF;"}
@@ -1,155 +0,0 @@
1
- import { RowModel } from '..';
2
- import { OnChangeFn, Table, Row, Updater, RowData, TableFeature } from '../types';
3
-
4
- export type ExpandedStateList = Record<string, boolean>;
5
- export type ExpandedState = true | Record<string, boolean>;
6
- export interface ExpandedTableState {
7
- expanded: ExpandedState;
8
- }
9
- export interface ExpandedRow {
10
- /**
11
- * Returns whether the row can be expanded.
12
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getcanexpand)
13
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
14
- */
15
- getCanExpand: () => boolean;
16
- /**
17
- * Returns whether all parent rows of the row are expanded.
18
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getisallparentsexpanded)
19
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
20
- */
21
- getIsAllParentsExpanded: () => boolean;
22
- /**
23
- * Returns whether the row is expanded.
24
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getisexpanded)
25
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
26
- */
27
- getIsExpanded: () => boolean;
28
- /**
29
- * Returns a function that can be used to toggle the expanded state of the row. This function can be used to bind to an event handler to a button.
30
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#gettoggleexpandedhandler)
31
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
32
- */
33
- getToggleExpandedHandler: () => () => void;
34
- /**
35
- * Toggles the expanded state (or sets it if `expanded` is provided) for the row.
36
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#toggleexpanded)
37
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
38
- */
39
- toggleExpanded: (expanded?: boolean) => void;
40
- }
41
- export interface ExpandedOptions<TData extends RowData> {
42
- /**
43
- * Enable this setting to automatically reset the expanded state of the table when expanding state changes.
44
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#autoresetexpanded)
45
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
46
- */
47
- autoResetExpanded?: boolean;
48
- /**
49
- * Enable/disable expanding for all rows.
50
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#enableexpanding)
51
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
52
- */
53
- enableExpanding?: boolean;
54
- /**
55
- * This function is responsible for returning the expanded row model. If this function is not provided, the table will not expand rows. You can use the default exported `getExpandedRowModel` function to get the expanded row model or implement your own.
56
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getexpandedrowmodel)
57
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
58
- */
59
- getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>;
60
- /**
61
- * If provided, allows you to override the default behavior of determining whether a row is currently expanded.
62
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getisrowexpanded)
63
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
64
- */
65
- getIsRowExpanded?: (row: Row<TData>) => boolean;
66
- /**
67
- * If provided, allows you to override the default behavior of determining whether a row can be expanded.
68
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getrowcanexpand)
69
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
70
- */
71
- getRowCanExpand?: (row: Row<TData>) => boolean;
72
- /**
73
- * Enables manual row expansion. If this is set to `true`, `getExpandedRowModel` will not be used to expand rows and you would be expected to perform the expansion in your own data model. This is useful if you are doing server-side expansion.
74
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#manualexpanding)
75
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
76
- */
77
- manualExpanding?: boolean;
78
- /**
79
- * This function is called when the `expanded` table state changes. If a function is provided, you will be responsible for managing this state on your own. To pass the managed state back to the table, use the `tableOptions.state.expanded` option.
80
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#onexpandedchange)
81
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
82
- */
83
- onExpandedChange?: OnChangeFn<ExpandedState>;
84
- /**
85
- * If `true` expanded rows will be paginated along with the rest of the table (which means expanded rows may span multiple pages). If `false` expanded rows will not be considered for pagination (which means expanded rows will always render on their parents page. This also means more rows will be rendered than the set page size)
86
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#paginateexpandedrows)
87
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
88
- */
89
- paginateExpandedRows?: boolean;
90
- }
91
- export interface ExpandedInstance<TData extends RowData> {
92
- _autoResetExpanded: () => void;
93
- _getExpandedRowModel?: () => RowModel<TData>;
94
- /**
95
- * Returns whether there are any rows that can be expanded.
96
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getcansomerowsexpand)
97
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
98
- */
99
- getCanSomeRowsExpand: () => boolean;
100
- /**
101
- * Returns the maximum depth of the expanded rows.
102
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getexpandeddepth)
103
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
104
- */
105
- getExpandedDepth: () => number;
106
- /**
107
- * Returns the row model after expansion has been applied.
108
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getexpandedrowmodel)
109
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
110
- */
111
- getExpandedRowModel: () => RowModel<TData>;
112
- /**
113
- * Returns whether all rows are currently expanded.
114
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getisallrowsexpanded)
115
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
116
- */
117
- getIsAllRowsExpanded: () => boolean;
118
- /**
119
- * Returns whether there are any rows that are currently expanded.
120
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getissomerowsexpanded)
121
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
122
- */
123
- getIsSomeRowsExpanded: () => boolean;
124
- /**
125
- * Returns the row model before expansion has been applied.
126
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getpreexpandedrowmodel)
127
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
128
- */
129
- getPreExpandedRowModel: () => RowModel<TData>;
130
- /**
131
- * Returns a handler that can be used to toggle the expanded state of all rows. This handler is meant to be used with an `input[type=checkbox]` element.
132
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#gettoggleallrowsexpandedhandler)
133
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
134
- */
135
- getToggleAllRowsExpandedHandler: () => (event: unknown) => void;
136
- /**
137
- * Resets the expanded state of the table to the initial state.
138
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#resetexpanded)
139
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
140
- */
141
- resetExpanded: (defaultState?: boolean) => void;
142
- /**
143
- * Updates the expanded state of the table via an update function or value.
144
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#setexpanded)
145
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
146
- */
147
- setExpanded: (updater: Updater<ExpandedState>) => void;
148
- /**
149
- * Toggles the expanded state for all rows.
150
- * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#toggleallrowsexpanded)
151
- * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)
152
- */
153
- toggleAllRowsExpanded: (expanded?: boolean) => void;
154
- }
155
- export declare const RowExpanding: TableFeature;
@@ -1,152 +0,0 @@
1
- import { makeStateUpdater } from "../utils.js";
2
- const RowExpanding = {
3
- _getInitialState: (state) => {
4
- return {
5
- expanded: {},
6
- ...state
7
- };
8
- },
9
- _getDefaultOptions: (table) => {
10
- return {
11
- onExpandedChange: makeStateUpdater("expanded", table),
12
- paginateExpandedRows: true
13
- };
14
- },
15
- _createTable: (table) => {
16
- let registered = false;
17
- let queued = false;
18
- table._autoResetExpanded = () => {
19
- if (!registered) {
20
- table._queue(() => {
21
- registered = true;
22
- });
23
- return;
24
- }
25
- if (table.options.autoResetAll ?? table.options.autoResetExpanded ?? !table.options.manualExpanding) {
26
- if (queued) return;
27
- queued = true;
28
- table._queue(() => {
29
- table.resetExpanded();
30
- queued = false;
31
- });
32
- }
33
- };
34
- table.setExpanded = (updater) => {
35
- var _a, _b;
36
- return (_b = (_a = table.options).onExpandedChange) == null ? void 0 : _b.call(_a, updater);
37
- };
38
- table.toggleAllRowsExpanded = (expanded) => {
39
- if (expanded ?? !table.getIsAllRowsExpanded()) {
40
- table.setExpanded(true);
41
- } else {
42
- table.setExpanded({});
43
- }
44
- };
45
- table.resetExpanded = (defaultState) => {
46
- var _a;
47
- table.setExpanded(defaultState ? {} : ((_a = table.initialState) == null ? void 0 : _a.expanded) ?? {});
48
- };
49
- table.getCanSomeRowsExpand = () => {
50
- return table.getPrePaginationRowModel().flatRows.some((row) => row.getCanExpand());
51
- };
52
- table.getToggleAllRowsExpandedHandler = () => {
53
- return (e) => {
54
- var _a;
55
- (_a = e.persist) == null ? void 0 : _a.call(e);
56
- table.toggleAllRowsExpanded();
57
- };
58
- };
59
- table.getIsSomeRowsExpanded = () => {
60
- const expanded = table.getState().expanded;
61
- return expanded === true || Object.values(expanded).some(Boolean);
62
- };
63
- table.getIsAllRowsExpanded = () => {
64
- const expanded = table.getState().expanded;
65
- if (typeof expanded === "boolean") {
66
- return expanded === true;
67
- }
68
- if (!Object.keys(expanded).length) {
69
- return false;
70
- }
71
- if (table.getRowModel().flatRows.some((row) => !row.getIsExpanded())) {
72
- return false;
73
- }
74
- return true;
75
- };
76
- table.getExpandedDepth = () => {
77
- let maxDepth = 0;
78
- const rowIds = table.getState().expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.getState().expanded);
79
- rowIds.forEach((id) => {
80
- const splitId = id.split(".");
81
- maxDepth = Math.max(maxDepth, splitId.length);
82
- });
83
- return maxDepth;
84
- };
85
- table.getPreExpandedRowModel = () => table.getSortedRowModel();
86
- table.getExpandedRowModel = () => {
87
- if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {
88
- table._getExpandedRowModel = table.options.getExpandedRowModel(table);
89
- }
90
- if (table.options.manualExpanding || !table._getExpandedRowModel) {
91
- return table.getPreExpandedRowModel();
92
- }
93
- return table._getExpandedRowModel();
94
- };
95
- },
96
- _createRow: (row, table) => {
97
- row.toggleExpanded = (expanded) => {
98
- table.setExpanded((old) => {
99
- const exists = old === true ? true : !!(old == null ? void 0 : old[row.id]);
100
- let oldExpanded = {};
101
- if (old === true) {
102
- Object.keys(table.getRowModel().rowsById).forEach((rowId) => {
103
- oldExpanded[rowId] = true;
104
- });
105
- } else {
106
- oldExpanded = old;
107
- }
108
- expanded = expanded ?? !exists;
109
- if (!exists && expanded) {
110
- return {
111
- ...oldExpanded,
112
- [row.id]: true
113
- };
114
- }
115
- if (exists && !expanded) {
116
- const { [row.id]: _, ...rest } = oldExpanded;
117
- return rest;
118
- }
119
- return old;
120
- });
121
- };
122
- row.getIsExpanded = () => {
123
- var _a, _b;
124
- const expanded = table.getState().expanded;
125
- return !!(((_b = (_a = table.options).getIsRowExpanded) == null ? void 0 : _b.call(_a, row)) ?? (expanded === true || (expanded == null ? void 0 : expanded[row.id])));
126
- };
127
- row.getCanExpand = () => {
128
- var _a, _b, _c;
129
- return ((_b = (_a = table.options).getRowCanExpand) == null ? void 0 : _b.call(_a, row)) ?? ((table.options.enableExpanding ?? true) && !!((_c = row.subRows) == null ? void 0 : _c.length));
130
- };
131
- row.getIsAllParentsExpanded = () => {
132
- let isFullyExpanded = true;
133
- let currentRow = row;
134
- while (isFullyExpanded && currentRow.parentId) {
135
- currentRow = table.getRow(currentRow.parentId, true);
136
- isFullyExpanded = currentRow.getIsExpanded();
137
- }
138
- return isFullyExpanded;
139
- };
140
- row.getToggleExpandedHandler = () => {
141
- const canExpand = row.getCanExpand();
142
- return () => {
143
- if (!canExpand) return;
144
- row.toggleExpanded();
145
- };
146
- };
147
- }
148
- };
149
- export {
150
- RowExpanding
151
- };
152
- //# sourceMappingURL=RowExpanding.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"RowExpanding.js","sources":["../../../src/features/RowExpanding.ts"],"sourcesContent":["import { RowModel } from '..'\nimport {\n OnChangeFn,\n Table,\n Row,\n Updater,\n RowData,\n TableFeature,\n} from '../types'\nimport { makeStateUpdater } from '../utils'\n\nexport type ExpandedStateList = Record<string, boolean>\nexport type ExpandedState = true | Record<string, boolean>\nexport interface ExpandedTableState {\n expanded: ExpandedState\n}\n\nexport interface ExpandedRow {\n /**\n * Returns whether the row can be expanded.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getcanexpand)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getCanExpand: () => boolean\n /**\n * Returns whether all parent rows of the row are expanded.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getisallparentsexpanded)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getIsAllParentsExpanded: () => boolean\n /**\n * Returns whether the row is expanded.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getisexpanded)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getIsExpanded: () => boolean\n /**\n * Returns a function that can be used to toggle the expanded state of the row. This function can be used to bind to an event handler to a button.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#gettoggleexpandedhandler)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getToggleExpandedHandler: () => () => void\n /**\n * Toggles the expanded state (or sets it if `expanded` is provided) for the row.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#toggleexpanded)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n toggleExpanded: (expanded?: boolean) => void\n}\n\nexport interface ExpandedOptions<TData extends RowData> {\n /**\n * Enable this setting to automatically reset the expanded state of the table when expanding state changes.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#autoresetexpanded)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n autoResetExpanded?: boolean\n /**\n * Enable/disable expanding for all rows.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#enableexpanding)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n enableExpanding?: boolean\n /**\n * This function is responsible for returning the expanded row model. If this function is not provided, the table will not expand rows. You can use the default exported `getExpandedRowModel` function to get the expanded row model or implement your own.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getexpandedrowmodel)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getExpandedRowModel?: (table: Table<any>) => () => RowModel<any>\n /**\n * If provided, allows you to override the default behavior of determining whether a row is currently expanded.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getisrowexpanded)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getIsRowExpanded?: (row: Row<TData>) => boolean\n /**\n * If provided, allows you to override the default behavior of determining whether a row can be expanded.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getrowcanexpand)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getRowCanExpand?: (row: Row<TData>) => boolean\n /**\n * Enables manual row expansion. If this is set to `true`, `getExpandedRowModel` will not be used to expand rows and you would be expected to perform the expansion in your own data model. This is useful if you are doing server-side expansion.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#manualexpanding)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n manualExpanding?: boolean\n /**\n * This function is called when the `expanded` table state changes. If a function is provided, you will be responsible for managing this state on your own. To pass the managed state back to the table, use the `tableOptions.state.expanded` option.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#onexpandedchange)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n onExpandedChange?: OnChangeFn<ExpandedState>\n /**\n * If `true` expanded rows will be paginated along with the rest of the table (which means expanded rows may span multiple pages). If `false` expanded rows will not be considered for pagination (which means expanded rows will always render on their parents page. This also means more rows will be rendered than the set page size)\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#paginateexpandedrows)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n paginateExpandedRows?: boolean\n}\n\nexport interface ExpandedInstance<TData extends RowData> {\n _autoResetExpanded: () => void\n _getExpandedRowModel?: () => RowModel<TData>\n /**\n * Returns whether there are any rows that can be expanded.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getcansomerowsexpand)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getCanSomeRowsExpand: () => boolean\n /**\n * Returns the maximum depth of the expanded rows.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getexpandeddepth)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getExpandedDepth: () => number\n /**\n * Returns the row model after expansion has been applied.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getexpandedrowmodel)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getExpandedRowModel: () => RowModel<TData>\n /**\n * Returns whether all rows are currently expanded.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getisallrowsexpanded)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getIsAllRowsExpanded: () => boolean\n /**\n * Returns whether there are any rows that are currently expanded.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getissomerowsexpanded)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getIsSomeRowsExpanded: () => boolean\n /**\n * Returns the row model before expansion has been applied.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#getpreexpandedrowmodel)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getPreExpandedRowModel: () => RowModel<TData>\n /**\n * Returns a handler that can be used to toggle the expanded state of all rows. This handler is meant to be used with an `input[type=checkbox]` element.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#gettoggleallrowsexpandedhandler)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n getToggleAllRowsExpandedHandler: () => (event: unknown) => void\n /**\n * Resets the expanded state of the table to the initial state.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#resetexpanded)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n resetExpanded: (defaultState?: boolean) => void\n /**\n * Updates the expanded state of the table via an update function or value.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#setexpanded)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n setExpanded: (updater: Updater<ExpandedState>) => void\n /**\n * Toggles the expanded state for all rows.\n * @link [API Docs](https://tanstack.com/table/v8/docs/api/features/expanding#toggleallrowsexpanded)\n * @link [Guide](https://tanstack.com/table/v8/docs/guide/expanding)\n */\n toggleAllRowsExpanded: (expanded?: boolean) => void\n}\n\n//\n\nexport const RowExpanding: TableFeature = {\n _getInitialState: (state): ExpandedTableState => {\n return {\n expanded: {},\n ...state,\n }\n },\n\n _getDefaultOptions: <TData extends RowData>(\n table: Table<TData>\n ): ExpandedOptions<TData> => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n _createTable: <TData extends RowData>(table: Table<TData>): void => {\n let registered = false\n let queued = false\n\n table._autoResetExpanded = () => {\n if (!registered) {\n table._queue(() => {\n registered = true\n })\n return\n }\n\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n if (queued) return\n queued = true\n table._queue(() => {\n table.resetExpanded()\n queued = false\n })\n }\n }\n table.setExpanded = updater => table.options.onExpandedChange?.(updater)\n table.toggleAllRowsExpanded = expanded => {\n if (expanded ?? !table.getIsAllRowsExpanded()) {\n table.setExpanded(true)\n } else {\n table.setExpanded({})\n }\n }\n table.resetExpanded = defaultState => {\n table.setExpanded(defaultState ? {} : table.initialState?.expanded ?? {})\n }\n table.getCanSomeRowsExpand = () => {\n return table\n .getPrePaginationRowModel()\n .flatRows.some(row => row.getCanExpand())\n }\n table.getToggleAllRowsExpandedHandler = () => {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table.toggleAllRowsExpanded()\n }\n }\n table.getIsSomeRowsExpanded = () => {\n const expanded = table.getState().expanded\n return expanded === true || Object.values(expanded).some(Boolean)\n }\n table.getIsAllRowsExpanded = () => {\n const expanded = table.getState().expanded\n\n // If expanded is true, save some cycles and return true\n if (typeof expanded === 'boolean') {\n return expanded === true\n }\n\n if (!Object.keys(expanded).length) {\n return false\n }\n\n // If any row is not expanded, return false\n if (table.getRowModel().flatRows.some(row => !row.getIsExpanded())) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n }\n table.getExpandedDepth = () => {\n let maxDepth = 0\n\n const rowIds =\n table.getState().expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.getState().expanded)\n\n rowIds.forEach(id => {\n const splitId = id.split('.')\n maxDepth = Math.max(maxDepth, splitId.length)\n })\n\n return maxDepth\n }\n table.getPreExpandedRowModel = () => table.getSortedRowModel()\n table.getExpandedRowModel = () => {\n if (!table._getExpandedRowModel && table.options.getExpandedRowModel) {\n table._getExpandedRowModel = table.options.getExpandedRowModel(table)\n }\n\n if (table.options.manualExpanding || !table._getExpandedRowModel) {\n return table.getPreExpandedRowModel()\n }\n\n return table._getExpandedRowModel()\n }\n },\n\n _createRow: <TData extends RowData>(\n row: Row<TData>,\n table: Table<TData>\n ): void => {\n row.toggleExpanded = expanded => {\n table.setExpanded(old => {\n const exists = old === true ? true : !!old?.[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(table.getRowModel().rowsById).forEach(rowId => {\n oldExpanded[rowId] = true\n })\n } else {\n oldExpanded = old\n }\n\n expanded = expanded ?? !exists\n\n if (!exists && expanded) {\n return {\n ...oldExpanded,\n [row.id]: true,\n }\n }\n\n if (exists && !expanded) {\n const { [row.id]: _, ...rest } = oldExpanded\n return rest\n }\n\n return old\n })\n }\n row.getIsExpanded = () => {\n const expanded = table.getState().expanded\n\n return !!(\n table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded?.[row.id])\n )\n }\n row.getCanExpand = () => {\n return (\n table.options.getRowCanExpand?.(row) ??\n ((table.options.enableExpanding ?? true) && !!row.subRows?.length)\n )\n }\n row.getIsAllParentsExpanded = () => {\n let isFullyExpanded = true\n let currentRow = row\n\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = table.getRow(currentRow.parentId, true)\n isFullyExpanded = currentRow.getIsExpanded()\n }\n\n return isFullyExpanded\n }\n row.getToggleExpandedHandler = () => {\n const canExpand = row.getCanExpand()\n\n return () => {\n if (!canExpand) return\n row.toggleExpanded()\n }\n }\n },\n}\n"],"names":[],"mappings":"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"}