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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (570) hide show
  1. package/dist/esm/core/cells/constructCell.d.ts +7 -0
  2. package/dist/esm/core/cells/constructCell.js +21 -0
  3. package/dist/esm/core/cells/constructCell.js.map +1 -0
  4. package/dist/esm/core/cells/coreCellsFeature.d.ts +10 -0
  5. package/dist/esm/core/cells/coreCellsFeature.js +26 -0
  6. package/dist/esm/core/cells/coreCellsFeature.js.map +1 -0
  7. package/dist/esm/core/cells/coreCellsFeature.types.d.ts +52 -0
  8. package/dist/esm/core/cells/coreCellsFeature.utils.d.ts +13 -0
  9. package/dist/esm/core/cells/coreCellsFeature.utils.js +23 -0
  10. package/dist/esm/core/cells/coreCellsFeature.utils.js.map +1 -0
  11. package/dist/esm/core/columns/constructColumn.d.ts +6 -0
  12. package/dist/esm/core/columns/constructColumn.js +60 -0
  13. package/dist/esm/core/columns/constructColumn.js.map +1 -0
  14. package/dist/esm/core/columns/coreColumnsFeature.d.ts +10 -0
  15. package/dist/esm/core/columns/coreColumnsFeature.js +61 -0
  16. package/dist/esm/core/columns/coreColumnsFeature.js.map +1 -0
  17. package/dist/esm/core/columns/coreColumnsFeature.types.d.ts +84 -0
  18. package/dist/esm/core/columns/coreColumnsFeature.utils.d.ts +13 -0
  19. package/dist/esm/core/columns/coreColumnsFeature.utils.js +91 -0
  20. package/dist/esm/core/columns/coreColumnsFeature.utils.js.map +1 -0
  21. package/dist/esm/core/coreFeatures.d.ts +15 -0
  22. package/dist/esm/core/coreFeatures.js +18 -0
  23. package/dist/esm/core/coreFeatures.js.map +1 -0
  24. package/dist/esm/core/headers/buildHeaderGroups.d.ts +6 -0
  25. package/dist/esm/core/headers/buildHeaderGroups.js +99 -0
  26. package/dist/esm/core/headers/buildHeaderGroups.js.map +1 -0
  27. package/dist/esm/core/headers/constructHeader.d.ts +12 -0
  28. package/dist/esm/core/headers/constructHeader.js +28 -0
  29. package/dist/esm/core/headers/constructHeader.js.map +1 -0
  30. package/dist/esm/core/headers/coreHeadersFeature.d.ts +10 -0
  31. package/dist/esm/core/headers/coreHeadersFeature.js +68 -0
  32. package/dist/esm/core/headers/coreHeadersFeature.js.map +1 -0
  33. package/dist/esm/core/headers/coreHeadersFeature.types.d.ts +99 -0
  34. package/dist/esm/core/headers/coreHeadersFeature.utils.d.ts +15 -0
  35. package/dist/esm/core/headers/coreHeadersFeature.utils.js +85 -0
  36. package/dist/esm/core/headers/coreHeadersFeature.utils.js.map +1 -0
  37. package/dist/esm/core/row-models/coreRowModelsFeature.d.ts +10 -0
  38. package/dist/esm/core/row-models/coreRowModelsFeature.js +52 -0
  39. package/dist/esm/core/row-models/coreRowModelsFeature.js.map +1 -0
  40. package/dist/esm/core/row-models/coreRowModelsFeature.types.d.ts +39 -0
  41. package/dist/esm/core/row-models/coreRowModelsFeature.utils.d.ts +16 -0
  42. package/dist/esm/core/row-models/coreRowModelsFeature.utils.js +85 -0
  43. package/dist/esm/core/row-models/coreRowModelsFeature.utils.js.map +1 -0
  44. package/dist/esm/core/row-models/createCoreRowModel.d.ts +5 -0
  45. package/dist/esm/core/row-models/createCoreRowModel.js +54 -0
  46. package/dist/esm/core/row-models/createCoreRowModel.js.map +1 -0
  47. package/dist/esm/core/rows/constructRow.d.ts +5 -0
  48. package/dist/esm/core/rows/constructRow.js +29 -0
  49. package/dist/esm/core/rows/constructRow.js.map +1 -0
  50. package/dist/esm/core/rows/coreRowsFeature.d.ts +10 -0
  51. package/dist/esm/core/rows/coreRowsFeature.js +52 -0
  52. package/dist/esm/core/rows/coreRowsFeature.js.map +1 -0
  53. package/dist/esm/core/rows/coreRowsFeature.types.d.ts +91 -0
  54. package/dist/esm/core/rows/coreRowsFeature.utils.d.ts +15 -0
  55. package/dist/esm/core/rows/coreRowsFeature.utils.js +94 -0
  56. package/dist/esm/core/rows/coreRowsFeature.utils.js.map +1 -0
  57. package/dist/esm/core/table/constructTable.d.ts +9 -0
  58. package/dist/esm/core/table/constructTable.js +65 -0
  59. package/dist/esm/core/table/constructTable.js.map +1 -0
  60. package/dist/esm/core/table/coreTablesFeature.d.ts +10 -0
  61. package/dist/esm/core/table/coreTablesFeature.js +22 -0
  62. package/dist/esm/core/table/coreTablesFeature.js.map +1 -0
  63. package/dist/esm/core/table/coreTablesFeature.types.d.ts +105 -0
  64. package/dist/esm/core/table/coreTablesFeature.utils.d.ts +7 -0
  65. package/dist/esm/core/table/coreTablesFeature.utils.js +23 -0
  66. package/dist/esm/core/table/coreTablesFeature.utils.js.map +1 -0
  67. package/dist/esm/features/column-faceting/columnFacetingFeature.d.ts +10 -0
  68. package/dist/esm/features/column-faceting/columnFacetingFeature.js +80 -0
  69. package/dist/esm/features/column-faceting/columnFacetingFeature.js.map +1 -0
  70. package/dist/esm/features/column-faceting/columnFacetingFeature.types.d.ts +68 -0
  71. package/dist/esm/features/column-faceting/columnFacetingFeature.utils.d.ts +11 -0
  72. package/dist/esm/features/column-faceting/columnFacetingFeature.utils.js +33 -0
  73. package/dist/esm/features/column-faceting/columnFacetingFeature.utils.js.map +1 -0
  74. package/dist/esm/features/column-faceting/createFacetedMinMaxValues.d.ts +4 -0
  75. package/dist/esm/features/column-faceting/createFacetedMinMaxValues.js +41 -0
  76. package/dist/esm/features/column-faceting/createFacetedMinMaxValues.js.map +1 -0
  77. package/dist/esm/features/column-faceting/createFacetedRowModel.d.ts +5 -0
  78. package/dist/esm/features/column-faceting/createFacetedRowModel.js +47 -0
  79. package/dist/esm/features/column-faceting/createFacetedRowModel.js.map +1 -0
  80. package/dist/esm/features/column-faceting/createFacetedUniqueValues.d.ts +4 -0
  81. package/dist/esm/features/column-faceting/createFacetedUniqueValues.js +46 -0
  82. package/dist/esm/features/column-faceting/createFacetedUniqueValues.js.map +1 -0
  83. package/dist/esm/features/column-filtering/columnFilteringFeature.d.ts +11 -0
  84. package/dist/esm/features/column-filtering/columnFilteringFeature.js +69 -0
  85. package/dist/esm/features/column-filtering/columnFilteringFeature.js.map +1 -0
  86. package/dist/esm/features/column-filtering/columnFilteringFeature.types.d.ts +145 -0
  87. package/dist/esm/features/column-filtering/columnFilteringFeature.utils.d.ts +16 -0
  88. package/dist/esm/features/column-filtering/columnFilteringFeature.utils.js +118 -0
  89. package/dist/esm/features/column-filtering/columnFilteringFeature.utils.js.map +1 -0
  90. package/dist/esm/features/column-filtering/createFilteredRowModel.d.ts +6 -0
  91. package/dist/esm/features/column-filtering/createFilteredRowModel.js +110 -0
  92. package/dist/esm/features/column-filtering/createFilteredRowModel.js.map +1 -0
  93. package/dist/esm/features/column-filtering/filterRowsUtils.d.ts +6 -0
  94. package/dist/esm/{utils → features/column-filtering}/filterRowsUtils.js +15 -19
  95. package/dist/esm/features/column-filtering/filterRowsUtils.js.map +1 -0
  96. package/dist/esm/features/column-grouping/columnGroupingFeature.d.ts +10 -0
  97. package/dist/esm/features/column-grouping/columnGroupingFeature.js +91 -0
  98. package/dist/esm/features/column-grouping/columnGroupingFeature.js.map +1 -0
  99. package/dist/esm/features/column-grouping/columnGroupingFeature.types.d.ts +153 -0
  100. package/dist/esm/features/column-grouping/columnGroupingFeature.utils.d.ts +22 -0
  101. package/dist/esm/features/column-grouping/columnGroupingFeature.utils.js +99 -0
  102. package/dist/esm/features/column-grouping/columnGroupingFeature.utils.js.map +1 -0
  103. package/dist/esm/features/column-grouping/createGroupedRowModel.d.ts +6 -0
  104. package/dist/esm/features/column-grouping/createGroupedRowModel.js +144 -0
  105. package/dist/esm/features/column-grouping/createGroupedRowModel.js.map +1 -0
  106. package/dist/esm/features/column-ordering/columnOrderingFeature.d.ts +10 -0
  107. package/dist/esm/features/column-ordering/columnOrderingFeature.js +60 -0
  108. package/dist/esm/features/column-ordering/columnOrderingFeature.js.map +1 -0
  109. package/dist/{cjs/features/ColumnOrdering.d.cts → esm/features/column-ordering/columnOrderingFeature.types.d.ts} +8 -22
  110. package/dist/esm/features/column-ordering/columnOrderingFeature.utils.d.ts +14 -0
  111. package/dist/esm/features/column-ordering/columnOrderingFeature.utils.js +72 -0
  112. package/dist/esm/features/column-ordering/columnOrderingFeature.utils.js.map +1 -0
  113. package/dist/esm/features/column-pinning/columnPinningFeature.d.ts +10 -0
  114. package/dist/esm/features/column-pinning/columnPinningFeature.js +260 -0
  115. package/dist/esm/features/column-pinning/columnPinningFeature.js.map +1 -0
  116. package/dist/esm/features/column-pinning/columnPinningFeature.types.d.ts +157 -0
  117. package/dist/esm/features/column-pinning/columnPinningFeature.utils.d.ts +39 -0
  118. package/dist/esm/features/column-pinning/columnPinningFeature.utils.js +325 -0
  119. package/dist/esm/features/column-pinning/columnPinningFeature.utils.js.map +1 -0
  120. package/dist/esm/features/column-resizing/columnResizingFeature.d.ts +11 -0
  121. package/dist/esm/features/column-resizing/columnResizingFeature.js +52 -0
  122. package/dist/esm/features/column-resizing/columnResizingFeature.js.map +1 -0
  123. package/dist/esm/features/column-resizing/columnResizingFeature.types.d.ts +68 -0
  124. package/dist/esm/features/column-resizing/columnResizingFeature.utils.d.ts +14 -0
  125. package/dist/esm/features/column-resizing/columnResizingFeature.utils.js +193 -0
  126. package/dist/esm/features/column-resizing/columnResizingFeature.utils.js.map +1 -0
  127. package/dist/esm/features/column-sizing/columnSizingFeature.d.ts +11 -0
  128. package/dist/esm/features/column-sizing/columnSizingFeature.js +95 -0
  129. package/dist/esm/features/column-sizing/columnSizingFeature.js.map +1 -0
  130. package/dist/esm/features/column-sizing/columnSizingFeature.types.d.ts +81 -0
  131. package/dist/esm/features/column-sizing/columnSizingFeature.utils.d.ts +25 -0
  132. package/dist/esm/features/column-sizing/columnSizingFeature.utils.js +128 -0
  133. package/dist/esm/features/column-sizing/columnSizingFeature.utils.js.map +1 -0
  134. package/dist/esm/features/column-visibility/columnVisibilityFeature.d.ts +10 -0
  135. package/dist/esm/features/column-visibility/columnVisibilityFeature.js +100 -0
  136. package/dist/esm/features/column-visibility/columnVisibilityFeature.js.map +1 -0
  137. package/dist/esm/features/column-visibility/columnVisibilityFeature.types.d.ts +84 -0
  138. package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.d.ts +22 -0
  139. package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.js +105 -0
  140. package/dist/esm/features/column-visibility/columnVisibilityFeature.utils.js.map +1 -0
  141. package/dist/esm/features/global-filtering/globalFilteringFeature.d.ts +11 -0
  142. package/dist/esm/features/global-filtering/globalFilteringFeature.js +51 -0
  143. package/dist/esm/features/global-filtering/globalFilteringFeature.js.map +1 -0
  144. package/dist/esm/features/global-filtering/globalFilteringFeature.types.d.ts +59 -0
  145. package/dist/esm/features/global-filtering/globalFilteringFeature.utils.d.ts +10 -0
  146. package/dist/esm/features/global-filtering/globalFilteringFeature.utils.js +30 -0
  147. package/dist/esm/features/global-filtering/globalFilteringFeature.utils.js.map +1 -0
  148. package/dist/esm/features/row-expanding/createExpandedRowModel.d.ts +6 -0
  149. package/dist/esm/features/row-expanding/createExpandedRowModel.js +49 -0
  150. package/dist/esm/features/row-expanding/createExpandedRowModel.js.map +1 -0
  151. package/dist/esm/features/row-expanding/rowExpandingFeature.d.ts +10 -0
  152. package/dist/esm/features/row-expanding/rowExpandingFeature.js +74 -0
  153. package/dist/esm/features/row-expanding/rowExpandingFeature.js.map +1 -0
  154. package/dist/esm/features/row-expanding/rowExpandingFeature.types.d.ts +116 -0
  155. package/dist/esm/features/row-expanding/rowExpandingFeature.utils.d.ts +20 -0
  156. package/dist/esm/features/row-expanding/rowExpandingFeature.utils.js +125 -0
  157. package/dist/esm/features/row-expanding/rowExpandingFeature.utils.js.map +1 -0
  158. package/dist/esm/features/row-pagination/createPaginatedRowModel.d.ts +5 -0
  159. package/dist/esm/features/row-pagination/createPaginatedRowModel.js +58 -0
  160. package/dist/esm/features/row-pagination/createPaginatedRowModel.js.map +1 -0
  161. package/dist/esm/features/row-pagination/rowPaginationFeature.d.ts +10 -0
  162. package/dist/esm/features/row-pagination/rowPaginationFeature.js +78 -0
  163. package/dist/esm/features/row-pagination/rowPaginationFeature.js.map +1 -0
  164. package/dist/esm/features/row-pagination/rowPaginationFeature.types.d.ts +119 -0
  165. package/dist/esm/features/row-pagination/rowPaginationFeature.utils.d.ts +21 -0
  166. package/dist/esm/features/row-pagination/rowPaginationFeature.utils.js +126 -0
  167. package/dist/esm/features/row-pagination/rowPaginationFeature.utils.js.map +1 -0
  168. package/dist/esm/features/row-pinning/rowPinningFeature.d.ts +10 -0
  169. package/dist/esm/features/row-pinning/rowPinningFeature.js +80 -0
  170. package/dist/esm/features/row-pinning/rowPinningFeature.js.map +1 -0
  171. package/dist/esm/features/row-pinning/rowPinningFeature.types.d.ts +72 -0
  172. package/dist/esm/features/row-pinning/rowPinningFeature.utils.d.ts +16 -0
  173. package/dist/esm/features/row-pinning/rowPinningFeature.utils.js +115 -0
  174. package/dist/esm/features/row-pinning/rowPinningFeature.utils.js.map +1 -0
  175. package/dist/esm/features/row-selection/rowSelectionFeature.d.ts +10 -0
  176. package/dist/esm/features/row-selection/rowSelectionFeature.js +112 -0
  177. package/dist/esm/features/row-selection/rowSelectionFeature.js.map +1 -0
  178. package/dist/esm/features/row-selection/rowSelectionFeature.types.d.ts +123 -0
  179. package/dist/esm/features/row-selection/rowSelectionFeature.utils.d.ts +34 -0
  180. package/dist/esm/features/row-selection/rowSelectionFeature.utils.js +290 -0
  181. package/dist/esm/features/row-selection/rowSelectionFeature.utils.js.map +1 -0
  182. package/dist/esm/features/row-sorting/createSortedRowModel.d.ts +6 -0
  183. package/dist/esm/features/row-sorting/createSortedRowModel.js +94 -0
  184. package/dist/esm/features/row-sorting/createSortedRowModel.js.map +1 -0
  185. package/dist/esm/features/row-sorting/rowSortingFeature.d.ts +10 -0
  186. package/dist/esm/features/row-sorting/rowSortingFeature.js +82 -0
  187. package/dist/esm/features/row-sorting/rowSortingFeature.js.map +1 -0
  188. package/dist/esm/features/row-sorting/rowSortingFeature.types.d.ts +178 -0
  189. package/dist/esm/features/row-sorting/rowSortingFeature.utils.d.ts +20 -0
  190. package/dist/esm/features/row-sorting/rowSortingFeature.utils.js +181 -0
  191. package/dist/esm/features/row-sorting/rowSortingFeature.utils.js.map +1 -0
  192. package/dist/esm/features/stockFeatures.d.ts +31 -0
  193. package/dist/esm/features/stockFeatures.js +34 -0
  194. package/dist/esm/features/stockFeatures.js.map +1 -0
  195. package/dist/esm/fns/aggregationFns.d.ts +49 -0
  196. package/dist/esm/fns/aggregationFns.js +110 -0
  197. package/dist/esm/fns/aggregationFns.js.map +1 -0
  198. package/dist/esm/fns/filterFns.d.ts +76 -0
  199. package/dist/esm/fns/filterFns.js +134 -0
  200. package/dist/esm/fns/filterFns.js.map +1 -0
  201. package/dist/esm/fns/sortFns.d.ts +17 -0
  202. package/dist/esm/{sortingFns.js → fns/sortFns.js} +21 -15
  203. package/dist/esm/fns/sortFns.js.map +1 -0
  204. package/dist/esm/helpers/columnHelper.d.ts +61 -0
  205. package/dist/esm/{columnHelper.js → helpers/columnHelper.js} +1 -0
  206. package/dist/esm/helpers/columnHelper.js.map +1 -0
  207. package/dist/esm/helpers/tableFeatures.d.ts +13 -0
  208. package/dist/esm/helpers/tableFeatures.js +7 -0
  209. package/dist/esm/helpers/tableFeatures.js.map +1 -0
  210. package/dist/esm/helpers/tableHelper.d.ts +25 -0
  211. package/dist/esm/helpers/tableHelper.js +13 -0
  212. package/dist/esm/helpers/tableHelper.js.map +1 -0
  213. package/dist/esm/helpers/tableOptions.d.ts +23 -0
  214. package/dist/esm/helpers/tableOptions.js +7 -0
  215. package/dist/esm/helpers/tableOptions.js.map +1 -0
  216. package/dist/esm/index.d.ts +109 -33
  217. package/dist/esm/index.js +397 -65
  218. package/dist/esm/index.js.map +1 -1
  219. package/dist/esm/types/Cell.d.ts +13 -0
  220. package/dist/esm/types/Column.d.ts +26 -0
  221. package/dist/esm/types/ColumnDef.d.ts +64 -0
  222. package/dist/esm/types/Header.d.ts +14 -0
  223. package/dist/esm/types/HeaderGroup.d.ts +12 -0
  224. package/dist/esm/types/Row.d.ts +19 -0
  225. package/dist/esm/types/RowModel.d.ts +23 -0
  226. package/dist/esm/types/RowModelFns.d.ts +15 -0
  227. package/dist/esm/types/Table.d.ts +53 -0
  228. package/dist/esm/types/TableFeatures.d.ts +77 -0
  229. package/dist/esm/types/TableOptions.d.ts +39 -0
  230. package/dist/esm/types/TableState.d.ts +23 -0
  231. package/dist/esm/types/type-utils.d.ts +22 -0
  232. package/dist/esm/utils.d.ts +66 -33
  233. package/dist/esm/utils.js +183 -52
  234. package/dist/esm/utils.js.map +1 -1
  235. package/package.json +21 -12
  236. package/src/core/cells/constructCell.ts +49 -0
  237. package/src/core/cells/coreCellsFeature.ts +44 -0
  238. package/src/core/cells/coreCellsFeature.types.ts +68 -0
  239. package/src/core/cells/coreCellsFeature.utils.ts +35 -0
  240. package/src/core/columns/constructColumn.ts +111 -0
  241. package/src/core/columns/coreColumnsFeature.ts +90 -0
  242. package/src/core/columns/coreColumnsFeature.types.ts +103 -0
  243. package/src/core/columns/coreColumnsFeature.utils.ts +160 -0
  244. package/src/core/coreFeatures.ts +24 -0
  245. package/src/core/headers/buildHeaderGroups.ts +177 -0
  246. package/src/core/headers/constructHeader.ts +61 -0
  247. package/src/core/headers/coreHeadersFeature.ts +98 -0
  248. package/src/core/headers/coreHeadersFeature.types.ts +123 -0
  249. package/src/core/headers/coreHeadersFeature.utils.ts +131 -0
  250. package/src/core/row-models/coreRowModelsFeature.ts +78 -0
  251. package/src/core/row-models/coreRowModelsFeature.types.ts +67 -0
  252. package/src/core/row-models/coreRowModelsFeature.utils.ts +140 -0
  253. package/src/core/row-models/createCoreRowModel.ts +88 -0
  254. package/src/core/rows/constructRow.ts +59 -0
  255. package/src/core/rows/coreRowsFeature.ts +84 -0
  256. package/src/core/rows/coreRowsFeature.types.ts +111 -0
  257. package/src/core/rows/coreRowsFeature.utils.ts +152 -0
  258. package/src/core/table/constructTable.ts +95 -0
  259. package/src/core/table/coreTablesFeature.ts +36 -0
  260. package/src/core/table/coreTablesFeature.types.ts +123 -0
  261. package/src/core/table/coreTablesFeature.utils.ts +40 -0
  262. package/src/features/column-faceting/columnFacetingFeature.ts +112 -0
  263. package/src/features/column-faceting/columnFacetingFeature.types.ts +97 -0
  264. package/src/features/column-faceting/columnFacetingFeature.utils.ts +77 -0
  265. package/src/features/column-faceting/createFacetedMinMaxValues.ts +63 -0
  266. package/src/features/column-faceting/createFacetedRowModel.ts +76 -0
  267. package/src/features/column-faceting/createFacetedUniqueValues.ts +60 -0
  268. package/src/features/column-filtering/columnFilteringFeature.ts +121 -0
  269. package/src/features/column-filtering/columnFilteringFeature.types.ts +219 -0
  270. package/src/features/column-filtering/columnFilteringFeature.utils.ts +213 -0
  271. package/src/features/column-filtering/createFilteredRowModel.ts +171 -0
  272. package/src/features/column-filtering/filterRowsUtils.ts +152 -0
  273. package/src/features/column-grouping/columnGroupingFeature.ts +151 -0
  274. package/src/features/column-grouping/columnGroupingFeature.types.ts +218 -0
  275. package/src/features/column-grouping/columnGroupingFeature.utils.ts +192 -0
  276. package/src/features/column-grouping/createGroupedRowModel.ts +215 -0
  277. package/src/features/column-ordering/columnOrderingFeature.ts +96 -0
  278. package/src/features/column-ordering/columnOrderingFeature.types.ts +49 -0
  279. package/src/features/column-ordering/columnOrderingFeature.utils.ts +133 -0
  280. package/src/features/column-pinning/columnPinningFeature.ts +324 -0
  281. package/src/features/column-pinning/columnPinningFeature.types.ts +176 -0
  282. package/src/features/column-pinning/columnPinningFeature.utils.ts +537 -0
  283. package/src/features/column-resizing/columnResizingFeature.ts +92 -0
  284. package/src/features/column-resizing/columnResizingFeature.types.ts +81 -0
  285. package/src/features/column-resizing/columnResizingFeature.utils.ts +265 -0
  286. package/src/features/column-sizing/columnSizingFeature.ts +146 -0
  287. package/src/features/column-sizing/columnSizingFeature.types.ts +92 -0
  288. package/src/features/column-sizing/columnSizingFeature.utils.ts +211 -0
  289. package/src/features/column-visibility/columnVisibilityFeature.ts +155 -0
  290. package/src/features/column-visibility/columnVisibilityFeature.types.ts +101 -0
  291. package/src/features/column-visibility/columnVisibilityFeature.utils.ts +183 -0
  292. package/src/features/global-filtering/globalFilteringFeature.ts +92 -0
  293. package/src/features/global-filtering/globalFilteringFeature.types.ts +84 -0
  294. package/src/features/global-filtering/globalFilteringFeature.utils.ts +60 -0
  295. package/src/features/row-expanding/createExpandedRowModel.ts +72 -0
  296. package/src/features/row-expanding/rowExpandingFeature.ts +122 -0
  297. package/src/features/row-expanding/rowExpandingFeature.types.ts +141 -0
  298. package/src/features/row-expanding/rowExpandingFeature.utils.ts +207 -0
  299. package/src/features/row-pagination/createPaginatedRowModel.ts +78 -0
  300. package/src/features/row-pagination/rowPaginationFeature.ts +121 -0
  301. package/src/features/row-pagination/rowPaginationFeature.types.ts +141 -0
  302. package/src/features/row-pagination/rowPaginationFeature.utils.ts +204 -0
  303. package/src/features/row-pinning/rowPinningFeature.ts +121 -0
  304. package/src/features/row-pinning/rowPinningFeature.types.ts +89 -0
  305. package/src/features/row-pinning/rowPinningFeature.utils.ts +197 -0
  306. package/src/features/row-selection/rowSelectionFeature.ts +164 -0
  307. package/src/features/row-selection/rowSelectionFeature.types.ts +143 -0
  308. package/src/features/row-selection/rowSelectionFeature.utils.ts +464 -0
  309. package/src/features/row-sorting/createSortedRowModel.ts +147 -0
  310. package/src/features/row-sorting/rowSortingFeature.ts +136 -0
  311. package/src/features/row-sorting/rowSortingFeature.types.ts +229 -0
  312. package/src/features/row-sorting/rowSortingFeature.utils.ts +320 -0
  313. package/src/features/stockFeatures.ts +48 -0
  314. package/src/fns/aggregationFns.ts +220 -0
  315. package/src/fns/filterFns.ts +379 -0
  316. package/src/{sortingFns.ts → fns/sortFns.ts} +66 -21
  317. package/src/helpers/columnHelper.ts +117 -0
  318. package/src/helpers/tableFeatures.ts +24 -0
  319. package/src/helpers/tableHelper.ts +61 -0
  320. package/src/helpers/tableOptions.ts +82 -0
  321. package/src/index.ts +156 -42
  322. package/src/types/Cell.ts +41 -0
  323. package/src/types/Column.ts +86 -0
  324. package/src/types/ColumnDef.ts +217 -0
  325. package/src/types/Header.ts +45 -0
  326. package/src/types/HeaderGroup.ts +24 -0
  327. package/src/types/Row.ts +55 -0
  328. package/src/types/RowModel.ts +137 -0
  329. package/src/types/RowModelFns.ts +51 -0
  330. package/src/types/Table.ts +125 -0
  331. package/src/types/TableFeatures.ts +150 -0
  332. package/src/types/TableOptions.ts +125 -0
  333. package/src/types/TableState.ts +88 -0
  334. package/src/types/type-utils.ts +84 -0
  335. package/src/utils.ts +344 -163
  336. package/dist/cjs/aggregationFns.cjs +0 -98
  337. package/dist/cjs/aggregationFns.cjs.map +0 -1
  338. package/dist/cjs/aggregationFns.d.cts +0 -14
  339. package/dist/cjs/columnHelper.cjs +0 -19
  340. package/dist/cjs/columnHelper.cjs.map +0 -1
  341. package/dist/cjs/columnHelper.d.cts +0 -9
  342. package/dist/cjs/core/cell.cjs +0 -38
  343. package/dist/cjs/core/cell.cjs.map +0 -1
  344. package/dist/cjs/core/cell.d.cts +0 -50
  345. package/dist/cjs/core/column.cjs +0 -81
  346. package/dist/cjs/core/column.cjs.map +0 -1
  347. package/dist/cjs/core/column.d.cts +0 -56
  348. package/dist/cjs/core/headers.cjs +0 -310
  349. package/dist/cjs/core/headers.cjs.map +0 -1
  350. package/dist/cjs/core/headers.d.cts +0 -195
  351. package/dist/cjs/core/row.cjs +0 -93
  352. package/dist/cjs/core/row.cjs.map +0 -1
  353. package/dist/cjs/core/row.d.cts +0 -92
  354. package/dist/cjs/core/table.cjs +0 -228
  355. package/dist/cjs/core/table.cjs.map +0 -1
  356. package/dist/cjs/core/table.d.cts +0 -221
  357. package/dist/cjs/features/ColumnFaceting.cjs +0 -29
  358. package/dist/cjs/features/ColumnFaceting.cjs.map +0 -1
  359. package/dist/cjs/features/ColumnFaceting.d.cts +0 -35
  360. package/dist/cjs/features/ColumnFiltering.cjs +0 -137
  361. package/dist/cjs/features/ColumnFiltering.cjs.map +0 -1
  362. package/dist/cjs/features/ColumnFiltering.d.cts +0 -195
  363. package/dist/cjs/features/ColumnGrouping.cjs +0 -134
  364. package/dist/cjs/features/ColumnGrouping.cjs.map +0 -1
  365. package/dist/cjs/features/ColumnGrouping.d.cts +0 -202
  366. package/dist/cjs/features/ColumnOrdering.cjs +0 -76
  367. package/dist/cjs/features/ColumnOrdering.cjs.map +0 -1
  368. package/dist/cjs/features/ColumnPinning.cjs +0 -145
  369. package/dist/cjs/features/ColumnPinning.cjs.map +0 -1
  370. package/dist/cjs/features/ColumnPinning.d.cts +0 -127
  371. package/dist/cjs/features/ColumnSizing.cjs +0 -308
  372. package/dist/cjs/features/ColumnSizing.cjs.map +0 -1
  373. package/dist/cjs/features/ColumnSizing.d.cts +0 -194
  374. package/dist/cjs/features/ColumnVisibility.cjs +0 -144
  375. package/dist/cjs/features/ColumnVisibility.cjs.map +0 -1
  376. package/dist/cjs/features/ColumnVisibility.d.cts +0 -130
  377. package/dist/cjs/features/GlobalFaceting.cjs +0 -29
  378. package/dist/cjs/features/GlobalFaceting.cjs.map +0 -1
  379. package/dist/cjs/features/GlobalFaceting.d.cts +0 -27
  380. package/dist/cjs/features/GlobalFiltering.cjs +0 -50
  381. package/dist/cjs/features/GlobalFiltering.cjs.map +0 -1
  382. package/dist/cjs/features/GlobalFiltering.d.cts +0 -80
  383. package/dist/cjs/features/RowExpanding.cjs +0 -154
  384. package/dist/cjs/features/RowExpanding.cjs.map +0 -1
  385. package/dist/cjs/features/RowExpanding.d.cts +0 -155
  386. package/dist/cjs/features/RowPagination.cjs +0 -162
  387. package/dist/cjs/features/RowPagination.cjs.map +0 -1
  388. package/dist/cjs/features/RowPagination.d.cts +0 -166
  389. package/dist/cjs/features/RowPinning.cjs +0 -133
  390. package/dist/cjs/features/RowPinning.cjs.map +0 -1
  391. package/dist/cjs/features/RowPinning.d.cts +0 -99
  392. package/dist/cjs/features/RowSelection.cjs +0 -298
  393. package/dist/cjs/features/RowSelection.cjs.map +0 -1
  394. package/dist/cjs/features/RowSelection.d.cts +0 -177
  395. package/dist/cjs/features/RowSorting.cjs +0 -201
  396. package/dist/cjs/features/RowSorting.cjs.map +0 -1
  397. package/dist/cjs/features/RowSorting.d.cts +0 -238
  398. package/dist/cjs/filterFns.cjs +0 -88
  399. package/dist/cjs/filterFns.cjs.map +0 -1
  400. package/dist/cjs/filterFns.d.cts +0 -14
  401. package/dist/cjs/index.cjs +0 -87
  402. package/dist/cjs/index.cjs.map +0 -1
  403. package/dist/cjs/index.d.cts +0 -34
  404. package/dist/cjs/sortingFns.cjs +0 -91
  405. package/dist/cjs/sortingFns.cjs.map +0 -1
  406. package/dist/cjs/sortingFns.d.cts +0 -12
  407. package/dist/cjs/types.d.cts +0 -120
  408. package/dist/cjs/utils/filterRowsUtils.cjs +0 -99
  409. package/dist/cjs/utils/filterRowsUtils.cjs.map +0 -1
  410. package/dist/cjs/utils/filterRowsUtils.d.cts +0 -3
  411. package/dist/cjs/utils/getCoreRowModel.cjs +0 -54
  412. package/dist/cjs/utils/getCoreRowModel.cjs.map +0 -1
  413. package/dist/cjs/utils/getCoreRowModel.d.cts +0 -3
  414. package/dist/cjs/utils/getExpandedRowModel.cjs +0 -41
  415. package/dist/cjs/utils/getExpandedRowModel.cjs.map +0 -1
  416. package/dist/cjs/utils/getExpandedRowModel.d.cts +0 -8
  417. package/dist/cjs/utils/getFacetedMinMaxValues.cjs +0 -36
  418. package/dist/cjs/utils/getFacetedMinMaxValues.cjs.map +0 -1
  419. package/dist/cjs/utils/getFacetedMinMaxValues.d.cts +0 -3
  420. package/dist/cjs/utils/getFacetedRowModel.cjs +0 -35
  421. package/dist/cjs/utils/getFacetedRowModel.cjs.map +0 -1
  422. package/dist/cjs/utils/getFacetedRowModel.d.cts +0 -3
  423. package/dist/cjs/utils/getFacetedUniqueValues.cjs +0 -38
  424. package/dist/cjs/utils/getFacetedUniqueValues.cjs.map +0 -1
  425. package/dist/cjs/utils/getFacetedUniqueValues.d.cts +0 -3
  426. package/dist/cjs/utils/getFilteredRowModel.cjs +0 -116
  427. package/dist/cjs/utils/getFilteredRowModel.cjs.map +0 -1
  428. package/dist/cjs/utils/getFilteredRowModel.d.cts +0 -3
  429. package/dist/cjs/utils/getGroupedRowModel.cjs +0 -118
  430. package/dist/cjs/utils/getGroupedRowModel.cjs.map +0 -1
  431. package/dist/cjs/utils/getGroupedRowModel.d.cts +0 -3
  432. package/dist/cjs/utils/getPaginationRowModel.cjs +0 -49
  433. package/dist/cjs/utils/getPaginationRowModel.cjs.map +0 -1
  434. package/dist/cjs/utils/getPaginationRowModel.d.cts +0 -5
  435. package/dist/cjs/utils/getSortedRowModel.cjs +0 -91
  436. package/dist/cjs/utils/getSortedRowModel.cjs.map +0 -1
  437. package/dist/cjs/utils/getSortedRowModel.d.cts +0 -3
  438. package/dist/cjs/utils.cjs +0 -100
  439. package/dist/cjs/utils.cjs.map +0 -1
  440. package/dist/cjs/utils.d.cts +0 -39
  441. package/dist/esm/aggregationFns.d.ts +0 -14
  442. package/dist/esm/aggregationFns.js +0 -98
  443. package/dist/esm/aggregationFns.js.map +0 -1
  444. package/dist/esm/columnHelper.d.ts +0 -9
  445. package/dist/esm/columnHelper.js.map +0 -1
  446. package/dist/esm/core/cell.d.ts +0 -50
  447. package/dist/esm/core/cell.js +0 -38
  448. package/dist/esm/core/cell.js.map +0 -1
  449. package/dist/esm/core/column.d.ts +0 -56
  450. package/dist/esm/core/column.js +0 -81
  451. package/dist/esm/core/column.js.map +0 -1
  452. package/dist/esm/core/headers.d.ts +0 -195
  453. package/dist/esm/core/headers.js +0 -310
  454. package/dist/esm/core/headers.js.map +0 -1
  455. package/dist/esm/core/row.d.ts +0 -92
  456. package/dist/esm/core/row.js +0 -93
  457. package/dist/esm/core/row.js.map +0 -1
  458. package/dist/esm/core/table.d.ts +0 -221
  459. package/dist/esm/core/table.js +0 -228
  460. package/dist/esm/core/table.js.map +0 -1
  461. package/dist/esm/features/ColumnFaceting.d.ts +0 -35
  462. package/dist/esm/features/ColumnFaceting.js +0 -29
  463. package/dist/esm/features/ColumnFaceting.js.map +0 -1
  464. package/dist/esm/features/ColumnFiltering.d.ts +0 -195
  465. package/dist/esm/features/ColumnFiltering.js +0 -137
  466. package/dist/esm/features/ColumnFiltering.js.map +0 -1
  467. package/dist/esm/features/ColumnGrouping.d.ts +0 -202
  468. package/dist/esm/features/ColumnGrouping.js +0 -134
  469. package/dist/esm/features/ColumnGrouping.js.map +0 -1
  470. package/dist/esm/features/ColumnOrdering.d.ts +0 -54
  471. package/dist/esm/features/ColumnOrdering.js +0 -76
  472. package/dist/esm/features/ColumnOrdering.js.map +0 -1
  473. package/dist/esm/features/ColumnPinning.d.ts +0 -127
  474. package/dist/esm/features/ColumnPinning.js +0 -145
  475. package/dist/esm/features/ColumnPinning.js.map +0 -1
  476. package/dist/esm/features/ColumnSizing.d.ts +0 -194
  477. package/dist/esm/features/ColumnSizing.js +0 -308
  478. package/dist/esm/features/ColumnSizing.js.map +0 -1
  479. package/dist/esm/features/ColumnVisibility.d.ts +0 -130
  480. package/dist/esm/features/ColumnVisibility.js +0 -144
  481. package/dist/esm/features/ColumnVisibility.js.map +0 -1
  482. package/dist/esm/features/GlobalFaceting.d.ts +0 -27
  483. package/dist/esm/features/GlobalFaceting.js +0 -29
  484. package/dist/esm/features/GlobalFaceting.js.map +0 -1
  485. package/dist/esm/features/GlobalFiltering.d.ts +0 -80
  486. package/dist/esm/features/GlobalFiltering.js +0 -50
  487. package/dist/esm/features/GlobalFiltering.js.map +0 -1
  488. package/dist/esm/features/RowExpanding.d.ts +0 -155
  489. package/dist/esm/features/RowExpanding.js +0 -154
  490. package/dist/esm/features/RowExpanding.js.map +0 -1
  491. package/dist/esm/features/RowPagination.d.ts +0 -166
  492. package/dist/esm/features/RowPagination.js +0 -162
  493. package/dist/esm/features/RowPagination.js.map +0 -1
  494. package/dist/esm/features/RowPinning.d.ts +0 -99
  495. package/dist/esm/features/RowPinning.js +0 -133
  496. package/dist/esm/features/RowPinning.js.map +0 -1
  497. package/dist/esm/features/RowSelection.d.ts +0 -177
  498. package/dist/esm/features/RowSelection.js +0 -298
  499. package/dist/esm/features/RowSelection.js.map +0 -1
  500. package/dist/esm/features/RowSorting.d.ts +0 -238
  501. package/dist/esm/features/RowSorting.js +0 -201
  502. package/dist/esm/features/RowSorting.js.map +0 -1
  503. package/dist/esm/filterFns.d.ts +0 -14
  504. package/dist/esm/filterFns.js +0 -88
  505. package/dist/esm/filterFns.js.map +0 -1
  506. package/dist/esm/sortingFns.d.ts +0 -12
  507. package/dist/esm/sortingFns.js.map +0 -1
  508. package/dist/esm/types.d.ts +0 -120
  509. package/dist/esm/utils/filterRowsUtils.d.ts +0 -3
  510. package/dist/esm/utils/filterRowsUtils.js.map +0 -1
  511. package/dist/esm/utils/getCoreRowModel.d.ts +0 -3
  512. package/dist/esm/utils/getCoreRowModel.js +0 -54
  513. package/dist/esm/utils/getCoreRowModel.js.map +0 -1
  514. package/dist/esm/utils/getExpandedRowModel.d.ts +0 -8
  515. package/dist/esm/utils/getExpandedRowModel.js +0 -41
  516. package/dist/esm/utils/getExpandedRowModel.js.map +0 -1
  517. package/dist/esm/utils/getFacetedMinMaxValues.d.ts +0 -3
  518. package/dist/esm/utils/getFacetedMinMaxValues.js +0 -36
  519. package/dist/esm/utils/getFacetedMinMaxValues.js.map +0 -1
  520. package/dist/esm/utils/getFacetedRowModel.d.ts +0 -3
  521. package/dist/esm/utils/getFacetedRowModel.js +0 -35
  522. package/dist/esm/utils/getFacetedRowModel.js.map +0 -1
  523. package/dist/esm/utils/getFacetedUniqueValues.d.ts +0 -3
  524. package/dist/esm/utils/getFacetedUniqueValues.js +0 -38
  525. package/dist/esm/utils/getFacetedUniqueValues.js.map +0 -1
  526. package/dist/esm/utils/getFilteredRowModel.d.ts +0 -3
  527. package/dist/esm/utils/getFilteredRowModel.js +0 -116
  528. package/dist/esm/utils/getFilteredRowModel.js.map +0 -1
  529. package/dist/esm/utils/getGroupedRowModel.d.ts +0 -3
  530. package/dist/esm/utils/getGroupedRowModel.js +0 -118
  531. package/dist/esm/utils/getGroupedRowModel.js.map +0 -1
  532. package/dist/esm/utils/getPaginationRowModel.d.ts +0 -5
  533. package/dist/esm/utils/getPaginationRowModel.js +0 -49
  534. package/dist/esm/utils/getPaginationRowModel.js.map +0 -1
  535. package/dist/esm/utils/getSortedRowModel.d.ts +0 -3
  536. package/dist/esm/utils/getSortedRowModel.js +0 -91
  537. package/dist/esm/utils/getSortedRowModel.js.map +0 -1
  538. package/src/aggregationFns.ts +0 -123
  539. package/src/columnHelper.ts +0 -91
  540. package/src/core/cell.ts +0 -91
  541. package/src/core/column.ts +0 -165
  542. package/src/core/headers.ts +0 -639
  543. package/src/core/row.ts +0 -201
  544. package/src/core/table.ts +0 -527
  545. package/src/features/ColumnFaceting.ts +0 -84
  546. package/src/features/ColumnFiltering.ts +0 -429
  547. package/src/features/ColumnGrouping.ts +0 -422
  548. package/src/features/ColumnOrdering.ts +0 -161
  549. package/src/features/ColumnPinning.ts +0 -336
  550. package/src/features/ColumnSizing.ts +0 -579
  551. package/src/features/ColumnVisibility.ts +0 -317
  552. package/src/features/GlobalFaceting.ts +0 -66
  553. package/src/features/GlobalFiltering.ts +0 -162
  554. package/src/features/RowExpanding.ts +0 -355
  555. package/src/features/RowPagination.ts +0 -396
  556. package/src/features/RowPinning.ts +0 -273
  557. package/src/features/RowSelection.ts +0 -668
  558. package/src/features/RowSorting.ts +0 -542
  559. package/src/filterFns.ts +0 -150
  560. package/src/types.ts +0 -361
  561. package/src/utils/filterRowsUtils.ts +0 -130
  562. package/src/utils/getCoreRowModel.ts +0 -82
  563. package/src/utils/getExpandedRowModel.ts +0 -51
  564. package/src/utils/getFacetedMinMaxValues.ts +0 -42
  565. package/src/utils/getFacetedRowModel.ts +0 -44
  566. package/src/utils/getFacetedUniqueValues.ts +0 -42
  567. package/src/utils/getFilteredRowModel.ts +0 -151
  568. package/src/utils/getGroupedRowModel.ts +0 -181
  569. package/src/utils/getPaginationRowModel.ts +0 -60
  570. package/src/utils/getSortedRowModel.ts +0 -121
@@ -0,0 +1,10 @@
1
+ import { RowData } from '../../types/type-utils.js';
2
+ import { TableFeature, TableFeatures } from '../../types/TableFeatures.js';
3
+ interface RowExpandingFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {
4
+ }
5
+ export declare function constructRowExpandingFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<RowExpandingFeatureConstructors<TFeatures, TData>>;
6
+ /**
7
+ * The Row Expanding feature adds row expanding state and APIs to the table and row objects.
8
+ */
9
+ export declare const rowExpandingFeature: TableFeature<RowExpandingFeatureConstructors<TableFeatures, RowData>>;
10
+ export {};
@@ -0,0 +1,74 @@
1
+ import { assignTableAPIs, assignPrototypeAPIs, makeStateUpdater } from "../../utils.js";
2
+ import { table_getExpandedDepth, table_getIsAllRowsExpanded, table_getIsSomeRowsExpanded, table_getToggleAllRowsExpandedHandler, table_getCanSomeRowsExpand, table_resetExpanded, table_toggleAllRowsExpanded, table_setExpanded, table_autoResetExpanded, row_getToggleExpandedHandler, row_getIsAllParentsExpanded, row_getCanExpand, row_getIsExpanded, row_toggleExpanded, getDefaultExpandedState } from "./rowExpandingFeature.utils.js";
3
+ function constructRowExpandingFeature() {
4
+ return {
5
+ getInitialState: (initialState) => {
6
+ return {
7
+ expanded: getDefaultExpandedState(),
8
+ ...initialState
9
+ };
10
+ },
11
+ getDefaultTableOptions: (table) => {
12
+ return {
13
+ onExpandedChange: makeStateUpdater("expanded", table),
14
+ paginateExpandedRows: true
15
+ };
16
+ },
17
+ assignRowPrototype: (prototype, table) => {
18
+ assignPrototypeAPIs("rowExpandingFeature", prototype, table, {
19
+ row_toggleExpanded: {
20
+ fn: (row, expanded) => row_toggleExpanded(row, expanded)
21
+ },
22
+ row_getIsExpanded: {
23
+ fn: (row) => row_getIsExpanded(row)
24
+ },
25
+ row_getCanExpand: {
26
+ fn: (row) => row_getCanExpand(row)
27
+ },
28
+ row_getIsAllParentsExpanded: {
29
+ fn: (row) => row_getIsAllParentsExpanded(row)
30
+ },
31
+ row_getToggleExpandedHandler: {
32
+ fn: (row) => row_getToggleExpandedHandler(row)
33
+ }
34
+ });
35
+ },
36
+ constructTableAPIs: (table) => {
37
+ assignTableAPIs("rowExpandingFeature", table, {
38
+ table_autoResetExpanded: {
39
+ fn: () => table_autoResetExpanded(table)
40
+ },
41
+ table_setExpanded: {
42
+ fn: (updater) => table_setExpanded(table, updater)
43
+ },
44
+ table_toggleAllRowsExpanded: {
45
+ fn: (expanded) => table_toggleAllRowsExpanded(table, expanded)
46
+ },
47
+ table_resetExpanded: {
48
+ fn: (defaultState) => table_resetExpanded(table, defaultState)
49
+ },
50
+ table_getCanSomeRowsExpand: {
51
+ fn: () => table_getCanSomeRowsExpand(table)
52
+ },
53
+ table_getToggleAllRowsExpandedHandler: {
54
+ fn: () => table_getToggleAllRowsExpandedHandler(table)
55
+ },
56
+ table_getIsSomeRowsExpanded: {
57
+ fn: () => table_getIsSomeRowsExpanded(table)
58
+ },
59
+ table_getIsAllRowsExpanded: {
60
+ fn: () => table_getIsAllRowsExpanded(table)
61
+ },
62
+ table_getExpandedDepth: {
63
+ fn: () => table_getExpandedDepth(table)
64
+ }
65
+ });
66
+ }
67
+ };
68
+ }
69
+ const rowExpandingFeature = constructRowExpandingFeature();
70
+ export {
71
+ constructRowExpandingFeature,
72
+ rowExpandingFeature
73
+ };
74
+ //# sourceMappingURL=rowExpandingFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowExpandingFeature.js","sources":["../../../../src/features/row-expanding/rowExpandingFeature.ts"],"sourcesContent":["import {\n assignPrototypeAPIs,\n assignTableAPIs,\n makeStateUpdater,\n} from '../../utils'\nimport {\n getDefaultExpandedState,\n row_getCanExpand,\n row_getIsAllParentsExpanded,\n row_getIsExpanded,\n row_getToggleExpandedHandler,\n row_toggleExpanded,\n table_autoResetExpanded,\n table_getCanSomeRowsExpand,\n table_getExpandedDepth,\n table_getIsAllRowsExpanded,\n table_getIsSomeRowsExpanded,\n table_getToggleAllRowsExpandedHandler,\n table_resetExpanded,\n table_setExpanded,\n table_toggleAllRowsExpanded,\n} from './rowExpandingFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// CachedRowModel_Expanded,\n// CreateRowModel_Expanded,\n// Row_RowExpanding,\n// TableOptions_RowExpanding,\n// TableState_RowExpanding,\n// Table_RowExpanding,\n// } from './rowExpandingFeature.types'\n\ninterface RowExpandingFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // CachedRowModel: CachedRowModel_Expanded<TFeatures, TData>\n // CreateRowModels: CreateRowModel_Expanded<TFeatures, TData>\n // Row: Row_RowExpanding\n // Table: Table_RowExpanding<TFeatures, TData>\n // TableOptions: TableOptions_RowExpanding<TFeatures, TData>\n // TableState: TableState_RowExpanding\n}\n\nexport function constructRowExpandingFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowExpandingFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n expanded: getDefaultExpandedState(),\n ...initialState,\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onExpandedChange: makeStateUpdater('expanded', table),\n paginateExpandedRows: true,\n }\n },\n\n assignRowPrototype: (prototype, table) => {\n assignPrototypeAPIs('rowExpandingFeature', prototype, table, {\n row_toggleExpanded: {\n fn: (row, expanded) => row_toggleExpanded(row, expanded),\n },\n row_getIsExpanded: {\n fn: (row) => row_getIsExpanded(row),\n },\n row_getCanExpand: {\n fn: (row) => row_getCanExpand(row),\n },\n row_getIsAllParentsExpanded: {\n fn: (row) => row_getIsAllParentsExpanded(row),\n },\n row_getToggleExpandedHandler: {\n fn: (row) => row_getToggleExpandedHandler(row),\n },\n })\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowExpandingFeature', table, {\n table_autoResetExpanded: {\n fn: () => table_autoResetExpanded(table),\n },\n table_setExpanded: {\n fn: (updater) => table_setExpanded(table, updater),\n },\n table_toggleAllRowsExpanded: {\n fn: (expanded) => table_toggleAllRowsExpanded(table, expanded),\n },\n table_resetExpanded: {\n fn: (defaultState) => table_resetExpanded(table, defaultState),\n },\n table_getCanSomeRowsExpand: {\n fn: () => table_getCanSomeRowsExpand(table),\n },\n table_getToggleAllRowsExpandedHandler: {\n fn: () => table_getToggleAllRowsExpandedHandler(table),\n },\n table_getIsSomeRowsExpanded: {\n fn: () => table_getIsSomeRowsExpanded(table),\n },\n table_getIsAllRowsExpanded: {\n fn: () => table_getIsAllRowsExpanded(table),\n },\n table_getExpandedDepth: {\n fn: () => table_getExpandedDepth(table),\n },\n })\n },\n }\n}\n\n/**\n * The Row Expanding feature adds row expanding state and APIs to the table and row objects.\n */\nexport const rowExpandingFeature = constructRowExpandingFeature()\n"],"names":[],"mappings":";;AA6CO,SAAS,+BAGqD;AACnE,SAAO;AAAA,IACL,iBAAiB,CAAC,iBAAiB;AACjC,aAAO;AAAA,QACL,UAAU,wBAAA;AAAA,QACV,GAAG;AAAA,MAAA;AAAA,IAEP;AAAA,IAEA,wBAAwB,CAAC,UAAU;AACjC,aAAO;AAAA,QACL,kBAAkB,iBAAiB,YAAY,KAAK;AAAA,QACpD,sBAAsB;AAAA,MAAA;AAAA,IAE1B;AAAA,IAEA,oBAAoB,CAAC,WAAW,UAAU;AACxC,0BAAoB,uBAAuB,WAAW,OAAO;AAAA,QAC3D,oBAAoB;AAAA,UAClB,IAAI,CAAC,KAAK,aAAa,mBAAmB,KAAK,QAAQ;AAAA,QAAA;AAAA,QAEzD,mBAAmB;AAAA,UACjB,IAAI,CAAC,QAAQ,kBAAkB,GAAG;AAAA,QAAA;AAAA,QAEpC,kBAAkB;AAAA,UAChB,IAAI,CAAC,QAAQ,iBAAiB,GAAG;AAAA,QAAA;AAAA,QAEnC,6BAA6B;AAAA,UAC3B,IAAI,CAAC,QAAQ,4BAA4B,GAAG;AAAA,QAAA;AAAA,QAE9C,8BAA8B;AAAA,UAC5B,IAAI,CAAC,QAAQ,6BAA6B,GAAG;AAAA,QAAA;AAAA,MAC/C,CACD;AAAA,IACH;AAAA,IAEA,oBAAoB,CAAC,UAAU;AAC7B,sBAAgB,uBAAuB,OAAO;AAAA,QAC5C,yBAAyB;AAAA,UACvB,IAAI,MAAM,wBAAwB,KAAK;AAAA,QAAA;AAAA,QAEzC,mBAAmB;AAAA,UACjB,IAAI,CAAC,YAAY,kBAAkB,OAAO,OAAO;AAAA,QAAA;AAAA,QAEnD,6BAA6B;AAAA,UAC3B,IAAI,CAAC,aAAa,4BAA4B,OAAO,QAAQ;AAAA,QAAA;AAAA,QAE/D,qBAAqB;AAAA,UACnB,IAAI,CAAC,iBAAiB,oBAAoB,OAAO,YAAY;AAAA,QAAA;AAAA,QAE/D,4BAA4B;AAAA,UAC1B,IAAI,MAAM,2BAA2B,KAAK;AAAA,QAAA;AAAA,QAE5C,uCAAuC;AAAA,UACrC,IAAI,MAAM,sCAAsC,KAAK;AAAA,QAAA;AAAA,QAEvD,6BAA6B;AAAA,UAC3B,IAAI,MAAM,4BAA4B,KAAK;AAAA,QAAA;AAAA,QAE7C,4BAA4B;AAAA,UAC1B,IAAI,MAAM,2BAA2B,KAAK;AAAA,QAAA;AAAA,QAE5C,wBAAwB;AAAA,UACtB,IAAI,MAAM,uBAAuB,KAAK;AAAA,QAAA;AAAA,MACxC,CACD;AAAA,IACH;AAAA,EAAA;AAEJ;AAKO,MAAM,sBAAsB,6BAAA;"}
@@ -0,0 +1,116 @@
1
+ import { Table } from '../../types/Table.js';
2
+ import { OnChangeFn, RowData, Updater } from '../../types/type-utils.js';
3
+ import { TableFeatures } from '../../types/TableFeatures.js';
4
+ import { RowModel } from '../../core/row-models/coreRowModelsFeature.types';
5
+ import { Row } from '../../types/Row.js';
6
+ export type ExpandedStateList = Record<string, boolean>;
7
+ export type ExpandedState = true | Record<string, boolean>;
8
+ export interface TableState_RowExpanding {
9
+ expanded: ExpandedState;
10
+ }
11
+ export interface Row_RowExpanding {
12
+ /**
13
+ * Returns whether the row can be expanded.
14
+ */
15
+ getCanExpand: () => boolean;
16
+ /**
17
+ * Returns whether all parent rows of the row are expanded.
18
+ */
19
+ getIsAllParentsExpanded: () => boolean;
20
+ /**
21
+ * Returns whether the row is expanded.
22
+ */
23
+ getIsExpanded: () => boolean;
24
+ /**
25
+ * 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.
26
+ */
27
+ getToggleExpandedHandler: () => () => void;
28
+ /**
29
+ * Toggles the expanded state (or sets it if `expanded` is provided) for the row.
30
+ */
31
+ toggleExpanded: (expanded?: boolean) => void;
32
+ }
33
+ export interface TableOptions_RowExpanding<TFeatures extends TableFeatures, TData extends RowData> {
34
+ /**
35
+ * Enable this setting to automatically reset the expanded state of the table when expanding state changes.
36
+ */
37
+ autoResetExpanded?: boolean;
38
+ /**
39
+ * Enable/disable expanding for all rows.
40
+ */
41
+ enableExpanding?: boolean;
42
+ /**
43
+ * If provided, allows you to override the default behavior of determining whether a row is currently expanded.
44
+ */
45
+ getIsRowExpanded?: (row: Row<TFeatures, TData>) => boolean;
46
+ /**
47
+ * If provided, allows you to override the default behavior of determining whether a row can be expanded.
48
+ */
49
+ getRowCanExpand?: (row: Row<TFeatures, TData>) => boolean;
50
+ /**
51
+ * 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.
52
+ */
53
+ manualExpanding?: boolean;
54
+ /**
55
+ * 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.
56
+ */
57
+ onExpandedChange?: OnChangeFn<ExpandedState>;
58
+ /**
59
+ * 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)
60
+ */
61
+ paginateExpandedRows?: boolean;
62
+ }
63
+ export interface Table_RowExpanding<TFeatures extends TableFeatures, TData extends RowData> {
64
+ autoResetExpanded: () => void;
65
+ /**
66
+ * Returns whether there are any rows that can be expanded.
67
+ */
68
+ getCanSomeRowsExpand: () => boolean;
69
+ /**
70
+ * Returns the maximum depth of the expanded rows.
71
+ */
72
+ getExpandedDepth: () => number;
73
+ /**
74
+ * Returns whether all rows are currently expanded.
75
+ */
76
+ getIsAllRowsExpanded: () => boolean;
77
+ /**
78
+ * Returns whether there are any rows that are currently expanded.
79
+ */
80
+ getIsSomeRowsExpanded: () => boolean;
81
+ /**
82
+ * 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.
83
+ */
84
+ getToggleAllRowsExpandedHandler: () => (event: unknown) => void;
85
+ /**
86
+ * Resets the expanded state of the table to the initial state.
87
+ */
88
+ resetExpanded: (defaultState?: boolean) => void;
89
+ /**
90
+ * Updates the expanded state of the table via an update function or value.
91
+ */
92
+ setExpanded: (updater: Updater<ExpandedState>) => void;
93
+ /**
94
+ * Toggles the expanded state for all rows.
95
+ */
96
+ toggleAllRowsExpanded: (expanded?: boolean) => void;
97
+ }
98
+ export interface Table_RowModels_Expanded<TFeatures extends TableFeatures, TData extends RowData> {
99
+ /**
100
+ * Returns the row model after expansion has been applied.
101
+ */
102
+ getExpandedRowModel: () => RowModel<TFeatures, TData>;
103
+ /**
104
+ * Returns the row model before expansion has been applied.
105
+ */
106
+ getPreExpandedRowModel: () => RowModel<TFeatures, TData>;
107
+ }
108
+ export interface CreateRowModel_Expanded<TFeatures extends TableFeatures, TData extends RowData> {
109
+ /**
110
+ * 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.
111
+ */
112
+ expandedRowModel?: (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData>;
113
+ }
114
+ export interface CachedRowModel_Expanded<TFeatures extends TableFeatures, TData extends RowData> {
115
+ expandedRowModel: () => RowModel<TFeatures, TData>;
116
+ }
@@ -0,0 +1,20 @@
1
+ import { RowData, Updater } from '../../types/type-utils.js';
2
+ import { TableFeatures } from '../../types/TableFeatures.js';
3
+ import { Table_Internal } from '../../types/Table.js';
4
+ import { Row } from '../../types/Row.js';
5
+ import { ExpandedState } from './rowExpandingFeature.types';
6
+ export declare function getDefaultExpandedState(): ExpandedState;
7
+ export declare function table_autoResetExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): void;
8
+ export declare function table_setExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, updater: Updater<ExpandedState>): void;
9
+ export declare function table_toggleAllRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, expanded?: boolean): void;
10
+ export declare function table_resetExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean): void;
11
+ export declare function table_getCanSomeRowsExpand<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): boolean;
12
+ export declare function table_getToggleAllRowsExpandedHandler<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): (e: unknown) => void;
13
+ export declare function table_getIsSomeRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): boolean;
14
+ export declare function table_getIsAllRowsExpanded<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): boolean;
15
+ export declare function table_getExpandedDepth<TFeatures extends TableFeatures, TData extends RowData>(table: Table_Internal<TFeatures, TData>): number;
16
+ export declare function row_toggleExpanded<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>, expanded?: boolean): void;
17
+ export declare function row_getIsExpanded<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): boolean;
18
+ export declare function row_getCanExpand<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): boolean;
19
+ export declare function row_getIsAllParentsExpanded<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): boolean;
20
+ export declare function row_getToggleExpandedHandler<TFeatures extends TableFeatures, TData extends RowData>(row: Row<TFeatures, TData>): () => void;
@@ -0,0 +1,125 @@
1
+ function getDefaultExpandedState() {
2
+ return structuredClone({});
3
+ }
4
+ function table_autoResetExpanded(table) {
5
+ if (table.options.autoResetAll ?? table.options.autoResetExpanded ?? !table.options.manualExpanding) {
6
+ queueMicrotask(() => table_resetExpanded(table));
7
+ }
8
+ }
9
+ function table_setExpanded(table, updater) {
10
+ table.options.onExpandedChange?.(updater);
11
+ }
12
+ function table_toggleAllRowsExpanded(table, expanded) {
13
+ if (expanded ?? !table_getIsAllRowsExpanded(table)) {
14
+ table_setExpanded(table, true);
15
+ } else {
16
+ table_setExpanded(table, {});
17
+ }
18
+ }
19
+ function table_resetExpanded(table, defaultState) {
20
+ table_setExpanded(
21
+ table,
22
+ defaultState ? {} : table.initialState.expanded ?? {}
23
+ );
24
+ }
25
+ function table_getCanSomeRowsExpand(table) {
26
+ return table.getPrePaginatedRowModel().flatRows.some((row) => row_getCanExpand(row));
27
+ }
28
+ function table_getToggleAllRowsExpandedHandler(table) {
29
+ return (e) => {
30
+ e.persist?.();
31
+ table_toggleAllRowsExpanded(table);
32
+ };
33
+ }
34
+ function table_getIsSomeRowsExpanded(table) {
35
+ const expanded = table.store.state.expanded ?? {};
36
+ return expanded === true || Object.values(expanded).some(Boolean);
37
+ }
38
+ function table_getIsAllRowsExpanded(table) {
39
+ const expanded = table.store.state.expanded ?? {};
40
+ if (expanded === true) {
41
+ return true;
42
+ }
43
+ if (!Object.keys(expanded).length) {
44
+ return false;
45
+ }
46
+ if (table.getRowModel().flatRows.some((row) => !row_getIsExpanded(row))) {
47
+ return false;
48
+ }
49
+ return true;
50
+ }
51
+ function table_getExpandedDepth(table) {
52
+ let maxDepth = 0;
53
+ const rowIds = table.store.state.expanded === true ? Object.keys(table.getRowModel().rowsById) : Object.keys(table.store.state.expanded ?? {});
54
+ rowIds.forEach((id) => {
55
+ const splitId = id.split(".");
56
+ maxDepth = Math.max(maxDepth, splitId.length);
57
+ });
58
+ return maxDepth;
59
+ }
60
+ function row_toggleExpanded(row, expanded) {
61
+ table_setExpanded(row.table, (old) => {
62
+ const exists = old === true ? true : !!old[row.id];
63
+ let oldExpanded = {};
64
+ if (old === true) {
65
+ Object.keys(row.table.getRowModel().rowsById).forEach((rowId) => {
66
+ oldExpanded[rowId] = true;
67
+ });
68
+ } else {
69
+ oldExpanded = old;
70
+ }
71
+ expanded = expanded ?? !exists;
72
+ if (!exists && expanded) {
73
+ return {
74
+ ...oldExpanded,
75
+ [row.id]: true
76
+ };
77
+ }
78
+ if (exists && !expanded) {
79
+ const { [row.id]: _, ...rest } = oldExpanded;
80
+ return rest;
81
+ }
82
+ return old;
83
+ });
84
+ }
85
+ function row_getIsExpanded(row) {
86
+ const expanded = row.table.store.state.expanded ?? {};
87
+ return !!(row.table.options.getIsRowExpanded?.(row) ?? (expanded === true || expanded[row.id]));
88
+ }
89
+ function row_getCanExpand(row) {
90
+ return row.table.options.getRowCanExpand?.(row) ?? ((row.table.options.enableExpanding ?? true) && !!row.subRows.length);
91
+ }
92
+ function row_getIsAllParentsExpanded(row) {
93
+ let isFullyExpanded = true;
94
+ let currentRow = row;
95
+ while (isFullyExpanded && currentRow.parentId) {
96
+ currentRow = row.table.getRow(currentRow.parentId, true);
97
+ isFullyExpanded = row_getIsExpanded(row);
98
+ }
99
+ return isFullyExpanded;
100
+ }
101
+ function row_getToggleExpandedHandler(row) {
102
+ const canExpand = row_getCanExpand(row);
103
+ return () => {
104
+ if (!canExpand) return;
105
+ row_toggleExpanded(row);
106
+ };
107
+ }
108
+ export {
109
+ getDefaultExpandedState,
110
+ row_getCanExpand,
111
+ row_getIsAllParentsExpanded,
112
+ row_getIsExpanded,
113
+ row_getToggleExpandedHandler,
114
+ row_toggleExpanded,
115
+ table_autoResetExpanded,
116
+ table_getCanSomeRowsExpand,
117
+ table_getExpandedDepth,
118
+ table_getIsAllRowsExpanded,
119
+ table_getIsSomeRowsExpanded,
120
+ table_getToggleAllRowsExpandedHandler,
121
+ table_resetExpanded,
122
+ table_setExpanded,
123
+ table_toggleAllRowsExpanded
124
+ };
125
+ //# sourceMappingURL=rowExpandingFeature.utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowExpandingFeature.utils.js","sources":["../../../../src/features/row-expanding/rowExpandingFeature.utils.ts"],"sourcesContent":["import type { RowData, Updater } from '../../types/type-utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type {\n ExpandedState,\n ExpandedStateList,\n} from './rowExpandingFeature.types'\n\nexport function getDefaultExpandedState(): ExpandedState {\n return structuredClone({})\n}\n\nexport function table_autoResetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n if (\n table.options.autoResetAll ??\n table.options.autoResetExpanded ??\n !table.options.manualExpanding\n ) {\n queueMicrotask(() => table_resetExpanded(table))\n }\n}\n\nexport function table_setExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, updater: Updater<ExpandedState>) {\n table.options.onExpandedChange?.(updater)\n}\n\nexport function table_toggleAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, expanded?: boolean) {\n if (expanded ?? !table_getIsAllRowsExpanded(table)) {\n table_setExpanded(table, true)\n } else {\n table_setExpanded(table, {})\n }\n}\n\nexport function table_resetExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>, defaultState?: boolean) {\n table_setExpanded(\n table,\n defaultState ? {} : (table.initialState.expanded ?? {}),\n )\n}\n\nexport function table_getCanSomeRowsExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return table\n .getPrePaginatedRowModel()\n .flatRows.some((row) => row_getCanExpand(row))\n}\n\nexport function table_getToggleAllRowsExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n return (e: unknown) => {\n ;(e as any).persist?.()\n table_toggleAllRowsExpanded(table)\n }\n}\n\nexport function table_getIsSomeRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.store.state.expanded ?? {}\n return expanded === true || Object.values(expanded).some(Boolean)\n}\n\nexport function table_getIsAllRowsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n const expanded = table.store.state.expanded ?? {}\n\n // If expanded is true, save some cycles and return true\n if (expanded === true) {\n return 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(row))) {\n return false\n }\n\n // They must all be expanded :shrug:\n return true\n}\n\nexport function table_getExpandedDepth<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(table: Table_Internal<TFeatures, TData>) {\n let maxDepth = 0\n\n const rowIds =\n table.store.state.expanded === true\n ? Object.keys(table.getRowModel().rowsById)\n : Object.keys(table.store.state.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\nexport function row_toggleExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>, expanded?: boolean) {\n table_setExpanded(row.table, (old) => {\n const exists = old === true ? true : !!old[row.id]\n\n let oldExpanded: ExpandedStateList = {}\n\n if (old === true) {\n Object.keys(row.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\nexport function row_getIsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const expanded = row.table.store.state.expanded ?? ({} as ExpandedState)\n\n return !!(\n row.table.options.getIsRowExpanded?.(row) ??\n (expanded === true || expanded[row.id])\n )\n}\n\nexport function row_getCanExpand<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n return (\n row.table.options.getRowCanExpand?.(row) ??\n ((row.table.options.enableExpanding ?? true) && !!row.subRows.length)\n )\n}\n\nexport function row_getIsAllParentsExpanded<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n let isFullyExpanded = true\n let currentRow = row\n\n while (isFullyExpanded && currentRow.parentId) {\n currentRow = row.table.getRow(currentRow.parentId, true)\n isFullyExpanded = row_getIsExpanded(row)\n }\n\n return isFullyExpanded\n}\n\nexport function row_getToggleExpandedHandler<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(row: Row<TFeatures, TData>) {\n const canExpand = row_getCanExpand(row)\n\n return () => {\n if (!canExpand) return\n row_toggleExpanded(row)\n }\n}\n"],"names":[],"mappings":"AASO,SAAS,0BAAyC;AACvD,SAAO,gBAAgB,CAAA,CAAE;AAC3B;AAEO,SAAS,wBAGd,OAAyC;AACzC,MACE,MAAM,QAAQ,gBACd,MAAM,QAAQ,qBACd,CAAC,MAAM,QAAQ,iBACf;AACA,mBAAe,MAAM,oBAAoB,KAAK,CAAC;AAAA,EACjD;AACF;AAEO,SAAS,kBAGd,OAAyC,SAAiC;AAC1E,QAAM,QAAQ,mBAAmB,OAAO;AAC1C;AAEO,SAAS,4BAGd,OAAyC,UAAoB;AAC7D,MAAI,YAAY,CAAC,2BAA2B,KAAK,GAAG;AAClD,sBAAkB,OAAO,IAAI;AAAA,EAC/B,OAAO;AACL,sBAAkB,OAAO,EAAE;AAAA,EAC7B;AACF;AAEO,SAAS,oBAGd,OAAyC,cAAwB;AACjE;AAAA,IACE;AAAA,IACA,eAAe,CAAA,IAAM,MAAM,aAAa,YAAY,CAAA;AAAA,EAAC;AAEzD;AAEO,SAAS,2BAGd,OAAyC;AACzC,SAAO,MACJ,0BACA,SAAS,KAAK,CAAC,QAAQ,iBAAiB,GAAG,CAAC;AACjD;AAEO,SAAS,sCAGd,OAAyC;AACzC,SAAO,CAAC,MAAe;AACnB,MAAU,UAAA;AACZ,gCAA4B,KAAK;AAAA,EACnC;AACF;AAEO,SAAS,4BAGd,OAAyC;AACzC,QAAM,WAAW,MAAM,MAAM,MAAM,YAAY,CAAA;AAC/C,SAAO,aAAa,QAAQ,OAAO,OAAO,QAAQ,EAAE,KAAK,OAAO;AAClE;AAEO,SAAS,2BAGd,OAAyC;AACzC,QAAM,WAAW,MAAM,MAAM,MAAM,YAAY,CAAA;AAG/C,MAAI,aAAa,MAAM;AACrB,WAAO;AAAA,EACT;AAEA,MAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,QAAQ;AACjC,WAAO;AAAA,EACT;AAGA,MAAI,MAAM,YAAA,EAAc,SAAS,KAAK,CAAC,QAAQ,CAAC,kBAAkB,GAAG,CAAC,GAAG;AACvE,WAAO;AAAA,EACT;AAGA,SAAO;AACT;AAEO,SAAS,uBAGd,OAAyC;AACzC,MAAI,WAAW;AAEf,QAAM,SACJ,MAAM,MAAM,MAAM,aAAa,OAC3B,OAAO,KAAK,MAAM,YAAA,EAAc,QAAQ,IACxC,OAAO,KAAK,MAAM,MAAM,MAAM,YAAY,EAAE;AAElD,SAAO,QAAQ,CAAC,OAAO;AACrB,UAAM,UAAU,GAAG,MAAM,GAAG;AAC5B,eAAW,KAAK,IAAI,UAAU,QAAQ,MAAM;AAAA,EAC9C,CAAC;AAED,SAAO;AACT;AAEO,SAAS,mBAGd,KAA4B,UAAoB;AAChD,oBAAkB,IAAI,OAAO,CAAC,QAAQ;AACpC,UAAM,SAAS,QAAQ,OAAO,OAAO,CAAC,CAAC,IAAI,IAAI,EAAE;AAEjD,QAAI,cAAiC,CAAA;AAErC,QAAI,QAAQ,MAAM;AAChB,aAAO,KAAK,IAAI,MAAM,YAAA,EAAc,QAAQ,EAAE,QAAQ,CAAC,UAAU;AAC/D,oBAAY,KAAK,IAAI;AAAA,MACvB,CAAC;AAAA,IACH,OAAO;AACL,oBAAc;AAAA,IAChB;AAEA,eAAW,YAAY,CAAC;AAExB,QAAI,CAAC,UAAU,UAAU;AACvB,aAAO;AAAA,QACL,GAAG;AAAA,QACH,CAAC,IAAI,EAAE,GAAG;AAAA,MAAA;AAAA,IAEd;AAEA,QAAI,UAAU,CAAC,UAAU;AACvB,YAAM,EAAE,CAAC,IAAI,EAAE,GAAG,GAAG,GAAG,SAAS;AACjC,aAAO;AAAA,IACT;AAEA,WAAO;AAAA,EACT,CAAC;AACH;AAEO,SAAS,kBAGd,KAA4B;AAC5B,QAAM,WAAW,IAAI,MAAM,MAAM,MAAM,YAAa,CAAA;AAEpD,SAAO,CAAC,EACN,IAAI,MAAM,QAAQ,mBAAmB,GAAG,MACvC,aAAa,QAAQ,SAAS,IAAI,EAAE;AAEzC;AAEO,SAAS,iBAGd,KAA4B;AAC5B,SACE,IAAI,MAAM,QAAQ,kBAAkB,GAAG,OACrC,IAAI,MAAM,QAAQ,mBAAmB,SAAS,CAAC,CAAC,IAAI,QAAQ;AAElE;AAEO,SAAS,4BAGd,KAA4B;AAC5B,MAAI,kBAAkB;AACtB,MAAI,aAAa;AAEjB,SAAO,mBAAmB,WAAW,UAAU;AAC7C,iBAAa,IAAI,MAAM,OAAO,WAAW,UAAU,IAAI;AACvD,sBAAkB,kBAAkB,GAAG;AAAA,EACzC;AAEA,SAAO;AACT;AAEO,SAAS,6BAGd,KAA4B;AAC5B,QAAM,YAAY,iBAAiB,GAAG;AAEtC,SAAO,MAAM;AACX,QAAI,CAAC,UAAW;AAChB,uBAAmB,GAAG;AAAA,EACxB;AACF;"}
@@ -0,0 +1,5 @@
1
+ import { TableFeatures } from '../../types/TableFeatures.js';
2
+ import { RowModel } from '../../core/row-models/coreRowModelsFeature.types';
3
+ import { Table } from '../../types/Table.js';
4
+ import { RowData } from '../../types/type-utils.js';
5
+ export declare function createPaginatedRowModel<TFeatures extends TableFeatures, TData extends RowData = any>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData>;
@@ -0,0 +1,58 @@
1
+ import { tableMemo } from "../../utils.js";
2
+ import { expandRows } from "../row-expanding/createExpandedRowModel.js";
3
+ import { getDefaultPaginationState } from "./rowPaginationFeature.utils.js";
4
+ function createPaginatedRowModel() {
5
+ return (_table) => {
6
+ const table = _table;
7
+ return tableMemo({
8
+ feature: "rowPaginationFeature",
9
+ table,
10
+ fnName: "table.getPaginatedRowModel",
11
+ memoDeps: () => [
12
+ table.getPrePaginatedRowModel(),
13
+ table.store.state.pagination,
14
+ table.options.paginateExpandedRows ? table.store.state.expanded : void 0
15
+ ],
16
+ fn: () => _createPaginatedRowModel(table)
17
+ });
18
+ };
19
+ }
20
+ function _createPaginatedRowModel(table) {
21
+ const prePaginatedRowModel = table.getPrePaginatedRowModel();
22
+ const pagination = table.store.state.pagination;
23
+ if (!prePaginatedRowModel.rows.length) {
24
+ return prePaginatedRowModel;
25
+ }
26
+ const { pageSize, pageIndex } = pagination ?? getDefaultPaginationState();
27
+ const { rows, flatRows, rowsById } = prePaginatedRowModel;
28
+ const pageStart = pageSize * pageIndex;
29
+ const pageEnd = pageStart + pageSize;
30
+ const paginatedRows = rows.slice(pageStart, pageEnd);
31
+ let paginatedRowModel;
32
+ if (!table.options.paginateExpandedRows) {
33
+ paginatedRowModel = expandRows({
34
+ rows: paginatedRows,
35
+ flatRows,
36
+ rowsById
37
+ });
38
+ } else {
39
+ paginatedRowModel = {
40
+ rows: paginatedRows,
41
+ flatRows,
42
+ rowsById
43
+ };
44
+ }
45
+ paginatedRowModel.flatRows = [];
46
+ const handleRow = (row) => {
47
+ paginatedRowModel.flatRows.push(row);
48
+ if (row.subRows.length) {
49
+ row.subRows.forEach(handleRow);
50
+ }
51
+ };
52
+ paginatedRowModel.rows.forEach(handleRow);
53
+ return paginatedRowModel;
54
+ }
55
+ export {
56
+ createPaginatedRowModel
57
+ };
58
+ //# sourceMappingURL=createPaginatedRowModel.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createPaginatedRowModel.js","sources":["../../../../src/features/row-pagination/createPaginatedRowModel.ts"],"sourcesContent":["import { tableMemo } from '../../utils'\nimport { expandRows } from '../row-expanding/createExpandedRowModel'\nimport { getDefaultPaginationState } from './rowPaginationFeature.utils'\nimport type { TableFeatures } from '../../types/TableFeatures'\nimport type { RowModel } from '../../core/row-models/coreRowModelsFeature.types'\nimport type { Table, Table_Internal } from '../../types/Table'\nimport type { Row } from '../../types/Row'\nimport type { RowData } from '../../types/type-utils'\n\nexport function createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(): (table: Table<TFeatures, TData>) => () => RowModel<TFeatures, TData> {\n return (_table) => {\n const table = _table as Table_Internal<TFeatures, TData>\n return tableMemo({\n feature: 'rowPaginationFeature',\n table,\n fnName: 'table.getPaginatedRowModel',\n memoDeps: () => [\n table.getPrePaginatedRowModel(),\n table.store.state.pagination,\n table.options.paginateExpandedRows\n ? table.store.state.expanded\n : undefined,\n ],\n fn: () => _createPaginatedRowModel(table),\n })\n }\n}\n\nfunction _createPaginatedRowModel<\n TFeatures extends TableFeatures,\n TData extends RowData = any,\n>(table: Table_Internal<TFeatures, TData>): RowModel<TFeatures, TData> {\n const prePaginatedRowModel = table.getPrePaginatedRowModel()\n const pagination = table.store.state.pagination\n\n if (!prePaginatedRowModel.rows.length) {\n return prePaginatedRowModel\n }\n\n const { pageSize, pageIndex } = pagination ?? getDefaultPaginationState()\n const { rows, flatRows, rowsById } = prePaginatedRowModel\n const pageStart = pageSize * pageIndex\n const pageEnd = pageStart + pageSize\n\n const paginatedRows = rows.slice(pageStart, pageEnd)\n\n let paginatedRowModel: RowModel<TFeatures, TData>\n\n if (!table.options.paginateExpandedRows) {\n paginatedRowModel = expandRows({\n rows: paginatedRows,\n flatRows,\n rowsById,\n })\n } else {\n paginatedRowModel = {\n rows: paginatedRows,\n flatRows,\n rowsById,\n }\n }\n\n paginatedRowModel.flatRows = []\n\n const handleRow = (row: Row<TFeatures, TData>) => {\n paginatedRowModel.flatRows.push(row)\n if (row.subRows.length) {\n row.subRows.forEach(handleRow)\n }\n }\n\n paginatedRowModel.rows.forEach(handleRow)\n\n return paginatedRowModel\n}\n"],"names":[],"mappings":";;;AASO,SAAS,0BAG0D;AACxE,SAAO,CAAC,WAAW;AACjB,UAAM,QAAQ;AACd,WAAO,UAAU;AAAA,MACf,SAAS;AAAA,MACT;AAAA,MACA,QAAQ;AAAA,MACR,UAAU,MAAM;AAAA,QACd,MAAM,wBAAA;AAAA,QACN,MAAM,MAAM,MAAM;AAAA,QAClB,MAAM,QAAQ,uBACV,MAAM,MAAM,MAAM,WAClB;AAAA,MAAA;AAAA,MAEN,IAAI,MAAM,yBAAyB,KAAK;AAAA,IAAA,CACzC;AAAA,EACH;AACF;AAEA,SAAS,yBAGP,OAAqE;AACrE,QAAM,uBAAuB,MAAM,wBAAA;AACnC,QAAM,aAAa,MAAM,MAAM,MAAM;AAErC,MAAI,CAAC,qBAAqB,KAAK,QAAQ;AACrC,WAAO;AAAA,EACT;AAEA,QAAM,EAAE,UAAU,cAAc,cAAc,0BAAA;AAC9C,QAAM,EAAE,MAAM,UAAU,SAAA,IAAa;AACrC,QAAM,YAAY,WAAW;AAC7B,QAAM,UAAU,YAAY;AAE5B,QAAM,gBAAgB,KAAK,MAAM,WAAW,OAAO;AAEnD,MAAI;AAEJ,MAAI,CAAC,MAAM,QAAQ,sBAAsB;AACvC,wBAAoB,WAAW;AAAA,MAC7B,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IAAA,CACD;AAAA,EACH,OAAO;AACL,wBAAoB;AAAA,MAClB,MAAM;AAAA,MACN;AAAA,MACA;AAAA,IAAA;AAAA,EAEJ;AAEA,oBAAkB,WAAW,CAAA;AAE7B,QAAM,YAAY,CAAC,QAA+B;AAChD,sBAAkB,SAAS,KAAK,GAAG;AACnC,QAAI,IAAI,QAAQ,QAAQ;AACtB,UAAI,QAAQ,QAAQ,SAAS;AAAA,IAC/B;AAAA,EACF;AAEA,oBAAkB,KAAK,QAAQ,SAAS;AAExC,SAAO;AACT;"}
@@ -0,0 +1,10 @@
1
+ import { RowData } from '../../types/type-utils.js';
2
+ import { TableFeature, TableFeatures } from '../../types/TableFeatures.js';
3
+ interface RowPaginationFeatureConstructors<TFeatures extends TableFeatures, TData extends RowData> {
4
+ }
5
+ export declare function constructRowPaginationFeature<TFeatures extends TableFeatures, TData extends RowData>(): TableFeature<RowPaginationFeatureConstructors<TFeatures, TData>>;
6
+ /**
7
+ * The (Row) Pagination feature adds pagination state and APIs to the table object.
8
+ */
9
+ export declare const rowPaginationFeature: TableFeature<RowPaginationFeatureConstructors<TableFeatures, RowData>>;
10
+ export {};
@@ -0,0 +1,78 @@
1
+ import { assignTableAPIs, makeStateUpdater } from "../../utils.js";
2
+ import { table_getRowCount, table_lastPage, table_firstPage, table_nextPage, table_previousPage, table_getCanNextPage, table_getCanPreviousPage, table_getPageOptions, table_resetPageSize, table_getPageCount, table_setPageSize, table_resetPageIndex, table_setPageIndex, table_resetPagination, table_setPagination, table_autoResetPageIndex, getDefaultPaginationState } from "./rowPaginationFeature.utils.js";
3
+ function constructRowPaginationFeature() {
4
+ return {
5
+ getInitialState: (initialState) => {
6
+ return {
7
+ ...initialState,
8
+ pagination: {
9
+ ...getDefaultPaginationState(),
10
+ ...initialState.pagination
11
+ }
12
+ };
13
+ },
14
+ getDefaultTableOptions: (table) => {
15
+ return {
16
+ onPaginationChange: makeStateUpdater("pagination", table)
17
+ };
18
+ },
19
+ constructTableAPIs: (table) => {
20
+ assignTableAPIs("rowPaginationFeature", table, {
21
+ table_autoResetPageIndex: {
22
+ fn: () => table_autoResetPageIndex(table)
23
+ },
24
+ table_setPagination: {
25
+ fn: (updater) => table_setPagination(table, updater)
26
+ },
27
+ table_resetPagination: {
28
+ fn: (defaultState) => table_resetPagination(table, defaultState)
29
+ },
30
+ table_setPageIndex: {
31
+ fn: (updater) => table_setPageIndex(table, updater)
32
+ },
33
+ table_resetPageIndex: {
34
+ fn: (defaultState) => table_resetPageIndex(table, defaultState)
35
+ },
36
+ table_setPageSize: {
37
+ fn: (updater) => table_setPageSize(table, updater)
38
+ },
39
+ table_getPageCount: {
40
+ fn: () => table_getPageCount(table)
41
+ },
42
+ table_resetPageSize: {
43
+ fn: (defaultState) => table_resetPageSize(table, defaultState)
44
+ },
45
+ table_getPageOptions: {
46
+ fn: () => table_getPageOptions(table)
47
+ },
48
+ table_getCanPreviousPage: {
49
+ fn: () => table_getCanPreviousPage(table)
50
+ },
51
+ table_getCanNextPage: {
52
+ fn: () => table_getCanNextPage(table)
53
+ },
54
+ table_previousPage: {
55
+ fn: () => table_previousPage(table)
56
+ },
57
+ table_nextPage: {
58
+ fn: () => table_nextPage(table)
59
+ },
60
+ table_firstPage: {
61
+ fn: () => table_firstPage(table)
62
+ },
63
+ table_lastPage: {
64
+ fn: () => table_lastPage(table)
65
+ },
66
+ table_getRowCount: {
67
+ fn: () => table_getRowCount(table)
68
+ }
69
+ });
70
+ }
71
+ };
72
+ }
73
+ const rowPaginationFeature = constructRowPaginationFeature();
74
+ export {
75
+ constructRowPaginationFeature,
76
+ rowPaginationFeature
77
+ };
78
+ //# sourceMappingURL=rowPaginationFeature.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rowPaginationFeature.js","sources":["../../../../src/features/row-pagination/rowPaginationFeature.ts"],"sourcesContent":["import { assignTableAPIs, makeStateUpdater } from '../../utils'\nimport {\n getDefaultPaginationState,\n table_autoResetPageIndex,\n table_firstPage,\n table_getCanNextPage,\n table_getCanPreviousPage,\n table_getPageCount,\n table_getPageOptions,\n table_getRowCount,\n table_lastPage,\n table_nextPage,\n table_previousPage,\n table_resetPageIndex,\n table_resetPageSize,\n table_resetPagination,\n table_setPageIndex,\n table_setPageSize,\n table_setPagination,\n} from './rowPaginationFeature.utils'\nimport type { RowData } from '../../types/type-utils'\nimport type { TableFeature, TableFeatures } from '../../types/TableFeatures'\n// import type {\n// CachedRowModel_Paginated,\n// CreateRowModel_Paginated,\n// TableOptions_RowPagination,\n// TableState_RowPagination,\n// Table_RowPagination,\n// } from './rowPaginationFeature.types'\n\ninterface RowPaginationFeatureConstructors<\n TFeatures extends TableFeatures,\n TData extends RowData,\n> {\n // CachedRowModel: CachedRowModel_Paginated<TFeatures, TData>\n // CreateRowModels: CreateRowModel_Paginated<TFeatures, TData>\n // Table: Table_RowPagination<TFeatures, TData>\n // TableOptions: TableOptions_RowPagination<TFeatures, TData>\n // TableState: TableState_RowPagination\n}\n\nexport function constructRowPaginationFeature<\n TFeatures extends TableFeatures,\n TData extends RowData,\n>(): TableFeature<RowPaginationFeatureConstructors<TFeatures, TData>> {\n return {\n getInitialState: (initialState) => {\n return {\n ...initialState,\n pagination: {\n ...getDefaultPaginationState(),\n ...initialState.pagination,\n },\n }\n },\n\n getDefaultTableOptions: (table) => {\n return {\n onPaginationChange: makeStateUpdater('pagination', table),\n }\n },\n\n constructTableAPIs: (table) => {\n assignTableAPIs('rowPaginationFeature', table, {\n table_autoResetPageIndex: {\n fn: () => table_autoResetPageIndex(table),\n },\n table_setPagination: {\n fn: (updater) => table_setPagination(table, updater),\n },\n table_resetPagination: {\n fn: (defaultState) => table_resetPagination(table, defaultState),\n },\n table_setPageIndex: {\n fn: (updater) => table_setPageIndex(table, updater),\n },\n table_resetPageIndex: {\n fn: (defaultState) => table_resetPageIndex(table, defaultState),\n },\n table_setPageSize: {\n fn: (updater) => table_setPageSize(table, updater),\n },\n table_getPageCount: {\n fn: () => table_getPageCount(table),\n },\n table_resetPageSize: {\n fn: (defaultState) => table_resetPageSize(table, defaultState),\n },\n table_getPageOptions: {\n fn: () => table_getPageOptions(table),\n },\n table_getCanPreviousPage: {\n fn: () => table_getCanPreviousPage(table),\n },\n table_getCanNextPage: {\n fn: () => table_getCanNextPage(table),\n },\n table_previousPage: {\n fn: () => table_previousPage(table),\n },\n table_nextPage: {\n fn: () => table_nextPage(table),\n },\n table_firstPage: {\n fn: () => table_firstPage(table),\n },\n table_lastPage: {\n fn: () => table_lastPage(table),\n },\n table_getRowCount: {\n fn: () => table_getRowCount(table),\n },\n })\n },\n }\n}\n\n/**\n * The (Row) Pagination feature adds pagination state and APIs to the table object.\n */\nexport const rowPaginationFeature = constructRowPaginationFeature()\n"],"names":[],"mappings":";;AAyCO,SAAS,gCAGsD;AACpE,SAAO;AAAA,IACL,iBAAiB,CAAC,iBAAiB;AACjC,aAAO;AAAA,QACL,GAAG;AAAA,QACH,YAAY;AAAA,UACV,GAAG,0BAAA;AAAA,UACH,GAAG,aAAa;AAAA,QAAA;AAAA,MAClB;AAAA,IAEJ;AAAA,IAEA,wBAAwB,CAAC,UAAU;AACjC,aAAO;AAAA,QACL,oBAAoB,iBAAiB,cAAc,KAAK;AAAA,MAAA;AAAA,IAE5D;AAAA,IAEA,oBAAoB,CAAC,UAAU;AAC7B,sBAAgB,wBAAwB,OAAO;AAAA,QAC7C,0BAA0B;AAAA,UACxB,IAAI,MAAM,yBAAyB,KAAK;AAAA,QAAA;AAAA,QAE1C,qBAAqB;AAAA,UACnB,IAAI,CAAC,YAAY,oBAAoB,OAAO,OAAO;AAAA,QAAA;AAAA,QAErD,uBAAuB;AAAA,UACrB,IAAI,CAAC,iBAAiB,sBAAsB,OAAO,YAAY;AAAA,QAAA;AAAA,QAEjE,oBAAoB;AAAA,UAClB,IAAI,CAAC,YAAY,mBAAmB,OAAO,OAAO;AAAA,QAAA;AAAA,QAEpD,sBAAsB;AAAA,UACpB,IAAI,CAAC,iBAAiB,qBAAqB,OAAO,YAAY;AAAA,QAAA;AAAA,QAEhE,mBAAmB;AAAA,UACjB,IAAI,CAAC,YAAY,kBAAkB,OAAO,OAAO;AAAA,QAAA;AAAA,QAEnD,oBAAoB;AAAA,UAClB,IAAI,MAAM,mBAAmB,KAAK;AAAA,QAAA;AAAA,QAEpC,qBAAqB;AAAA,UACnB,IAAI,CAAC,iBAAiB,oBAAoB,OAAO,YAAY;AAAA,QAAA;AAAA,QAE/D,sBAAsB;AAAA,UACpB,IAAI,MAAM,qBAAqB,KAAK;AAAA,QAAA;AAAA,QAEtC,0BAA0B;AAAA,UACxB,IAAI,MAAM,yBAAyB,KAAK;AAAA,QAAA;AAAA,QAE1C,sBAAsB;AAAA,UACpB,IAAI,MAAM,qBAAqB,KAAK;AAAA,QAAA;AAAA,QAEtC,oBAAoB;AAAA,UAClB,IAAI,MAAM,mBAAmB,KAAK;AAAA,QAAA;AAAA,QAEpC,gBAAgB;AAAA,UACd,IAAI,MAAM,eAAe,KAAK;AAAA,QAAA;AAAA,QAEhC,iBAAiB;AAAA,UACf,IAAI,MAAM,gBAAgB,KAAK;AAAA,QAAA;AAAA,QAEjC,gBAAgB;AAAA,UACd,IAAI,MAAM,eAAe,KAAK;AAAA,QAAA;AAAA,QAEhC,mBAAmB;AAAA,UACjB,IAAI,MAAM,kBAAkB,KAAK;AAAA,QAAA;AAAA,MACnC,CACD;AAAA,IACH;AAAA,EAAA;AAEJ;AAKO,MAAM,uBAAuB,8BAAA;"}