@fluentui/react-table 9.2.11 → 9.3.0

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 (555) hide show
  1. package/CHANGELOG.json +143 -1
  2. package/CHANGELOG.md +40 -2
  3. package/lib/DataGrid.js +0 -1
  4. package/lib/DataGrid.js.map +1 -1
  5. package/lib/DataGridBody.js +0 -1
  6. package/lib/DataGridBody.js.map +1 -1
  7. package/lib/DataGridCell.js +0 -1
  8. package/lib/DataGridCell.js.map +1 -1
  9. package/lib/DataGridHeader.js +0 -1
  10. package/lib/DataGridHeader.js.map +1 -1
  11. package/lib/DataGridHeaderCell.js +0 -1
  12. package/lib/DataGridHeaderCell.js.map +1 -1
  13. package/lib/DataGridRow.js +0 -1
  14. package/lib/DataGridRow.js.map +1 -1
  15. package/lib/DataGridSelectionCell.js +0 -1
  16. package/lib/DataGridSelectionCell.js.map +1 -1
  17. package/lib/Table.js +0 -1
  18. package/lib/Table.js.map +1 -1
  19. package/lib/TableBody.js +0 -1
  20. package/lib/TableBody.js.map +1 -1
  21. package/lib/TableCell.js +0 -1
  22. package/lib/TableCell.js.map +1 -1
  23. package/lib/TableCellActions.js +0 -1
  24. package/lib/TableCellActions.js.map +1 -1
  25. package/lib/TableCellLayout.js +0 -1
  26. package/lib/TableCellLayout.js.map +1 -1
  27. package/lib/TableCellPrimaryLayout.js +0 -1
  28. package/lib/TableCellPrimaryLayout.js.map +1 -1
  29. package/lib/TableHeader.js +0 -1
  30. package/lib/TableHeader.js.map +1 -1
  31. package/lib/TableHeaderCell.js +0 -1
  32. package/lib/TableHeaderCell.js.map +1 -1
  33. package/lib/TableResizeHandle.js +0 -1
  34. package/lib/TableResizeHandle.js.map +1 -1
  35. package/lib/TableRow.js +0 -1
  36. package/lib/TableRow.js.map +1 -1
  37. package/lib/TableSelectionCell.js +0 -1
  38. package/lib/TableSelectionCell.js.map +1 -1
  39. package/lib/components/DataGrid/DataGrid.js +5 -7
  40. package/lib/components/DataGrid/DataGrid.js.map +1 -1
  41. package/lib/components/DataGrid/DataGrid.types.js +0 -1
  42. package/lib/components/DataGrid/DataGrid.types.js.map +1 -1
  43. package/lib/components/DataGrid/index.js +0 -1
  44. package/lib/components/DataGrid/index.js.map +1 -1
  45. package/lib/components/DataGrid/renderDataGrid.js +4 -6
  46. package/lib/components/DataGrid/renderDataGrid.js.map +1 -1
  47. package/lib/components/DataGrid/useDataGrid.js +71 -89
  48. package/lib/components/DataGrid/useDataGrid.js.map +1 -1
  49. package/lib/components/DataGrid/useDataGridContextValues.js +12 -13
  50. package/lib/components/DataGrid/useDataGridContextValues.js.map +1 -1
  51. package/lib/components/DataGrid/useDataGridStyles.styles.js.map +1 -1
  52. package/lib/components/DataGridBody/DataGridBody.js +5 -7
  53. package/lib/components/DataGridBody/DataGridBody.js.map +1 -1
  54. package/lib/components/DataGridBody/DataGridBody.types.js +0 -1
  55. package/lib/components/DataGridBody/DataGridBody.types.js.map +1 -1
  56. package/lib/components/DataGridBody/index.js +0 -1
  57. package/lib/components/DataGridBody/index.js.map +1 -1
  58. package/lib/components/DataGridBody/renderDataGridBody.js +7 -12
  59. package/lib/components/DataGridBody/renderDataGridBody.js.map +1 -1
  60. package/lib/components/DataGridBody/useDataGridBody.js +15 -19
  61. package/lib/components/DataGridBody/useDataGridBody.js.map +1 -1
  62. package/lib/components/DataGridBody/useDataGridBodyStyles.styles.js.map +1 -1
  63. package/lib/components/DataGridCell/DataGridCell.js +5 -7
  64. package/lib/components/DataGridCell/DataGridCell.js.map +1 -1
  65. package/lib/components/DataGridCell/DataGridCell.types.js +1 -2
  66. package/lib/components/DataGridCell/DataGridCell.types.js.map +1 -1
  67. package/lib/components/DataGridCell/index.js +0 -1
  68. package/lib/components/DataGridCell/index.js.map +1 -1
  69. package/lib/components/DataGridCell/renderDataGridCell.js +2 -4
  70. package/lib/components/DataGridCell/renderDataGridCell.js.map +1 -1
  71. package/lib/components/DataGridCell/useDataGridCell.js +12 -14
  72. package/lib/components/DataGridCell/useDataGridCell.js.map +1 -1
  73. package/lib/components/DataGridCell/useDataGridCellStyles.styles.js.map +1 -1
  74. package/lib/components/DataGridHeader/DataGridHeader.js +5 -7
  75. package/lib/components/DataGridHeader/DataGridHeader.js.map +1 -1
  76. package/lib/components/DataGridHeader/DataGridHeader.types.js +1 -2
  77. package/lib/components/DataGridHeader/DataGridHeader.types.js.map +1 -1
  78. package/lib/components/DataGridHeader/index.js +0 -1
  79. package/lib/components/DataGridHeader/index.js.map +1 -1
  80. package/lib/components/DataGridHeader/renderDataGridHeader.js +2 -4
  81. package/lib/components/DataGridHeader/renderDataGridHeader.js.map +1 -1
  82. package/lib/components/DataGridHeader/useDataGridHeader.js +5 -7
  83. package/lib/components/DataGridHeader/useDataGridHeader.js.map +1 -1
  84. package/lib/components/DataGridHeader/useDataGridHeaderStyles.styles.js.map +1 -1
  85. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js +5 -7
  86. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -1
  87. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.types.js +1 -2
  88. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -1
  89. package/lib/components/DataGridHeaderCell/index.js +0 -1
  90. package/lib/components/DataGridHeaderCell/index.js.map +1 -1
  91. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js +2 -4
  92. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -1
  93. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js +23 -26
  94. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -1
  95. package/lib/components/DataGridHeaderCell/useDataGridHeaderCellStyles.styles.js.map +1 -1
  96. package/lib/components/DataGridRow/DataGridRow.js +5 -7
  97. package/lib/components/DataGridRow/DataGridRow.js.map +1 -1
  98. package/lib/components/DataGridRow/DataGridRow.types.js +0 -1
  99. package/lib/components/DataGridRow/DataGridRow.types.js.map +1 -1
  100. package/lib/components/DataGridRow/index.js +0 -1
  101. package/lib/components/DataGridRow/index.js.map +1 -1
  102. package/lib/components/DataGridRow/renderDataGridRow.js +7 -12
  103. package/lib/components/DataGridRow/renderDataGridRow.js.map +1 -1
  104. package/lib/components/DataGridRow/useDataGridRow.js +54 -56
  105. package/lib/components/DataGridRow/useDataGridRow.js.map +1 -1
  106. package/lib/components/DataGridRow/useDataGridRowStyles.styles.js.map +1 -1
  107. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js +5 -7
  108. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -1
  109. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.types.js +1 -2
  110. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -1
  111. package/lib/components/DataGridSelectionCell/index.js +0 -1
  112. package/lib/components/DataGridSelectionCell/index.js.map +1 -1
  113. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js +2 -4
  114. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -1
  115. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js +31 -33
  116. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -1
  117. package/lib/components/DataGridSelectionCell/useDataGridSelectionCellStyles.styles.js.map +1 -1
  118. package/lib/components/Table/Table.js +5 -7
  119. package/lib/components/Table/Table.js.map +1 -1
  120. package/lib/components/Table/Table.types.js +1 -2
  121. package/lib/components/Table/Table.types.js.map +1 -1
  122. package/lib/components/Table/index.js +0 -1
  123. package/lib/components/Table/index.js.map +1 -1
  124. package/lib/components/Table/renderTable.js +6 -11
  125. package/lib/components/Table/renderTable.js.map +1 -1
  126. package/lib/components/Table/useTable.js +17 -19
  127. package/lib/components/Table/useTable.js.map +1 -1
  128. package/lib/components/Table/useTableContextValues.js +13 -14
  129. package/lib/components/Table/useTableContextValues.js.map +1 -1
  130. package/lib/components/Table/useTableStyles.styles.js.map +1 -1
  131. package/lib/components/TableBody/TableBody.js +5 -7
  132. package/lib/components/TableBody/TableBody.js.map +1 -1
  133. package/lib/components/TableBody/TableBody.types.js +1 -2
  134. package/lib/components/TableBody/TableBody.types.js.map +1 -1
  135. package/lib/components/TableBody/index.js +0 -1
  136. package/lib/components/TableBody/index.js.map +1 -1
  137. package/lib/components/TableBody/renderTableBody.js +4 -9
  138. package/lib/components/TableBody/renderTableBody.js.map +1 -1
  139. package/lib/components/TableBody/useTableBody.js +15 -19
  140. package/lib/components/TableBody/useTableBody.js.map +1 -1
  141. package/lib/components/TableBody/useTableBodyStyles.styles.js.map +1 -1
  142. package/lib/components/TableCell/TableCell.js +5 -7
  143. package/lib/components/TableCell/TableCell.js.map +1 -1
  144. package/lib/components/TableCell/TableCell.types.js +1 -2
  145. package/lib/components/TableCell/TableCell.types.js.map +1 -1
  146. package/lib/components/TableCell/index.js +0 -1
  147. package/lib/components/TableCell/index.js.map +1 -1
  148. package/lib/components/TableCell/renderTableCell.js +4 -9
  149. package/lib/components/TableCell/renderTableCell.js.map +1 -1
  150. package/lib/components/TableCell/useTableCell.js +16 -21
  151. package/lib/components/TableCell/useTableCell.js.map +1 -1
  152. package/lib/components/TableCell/useTableCellStyles.styles.js.map +1 -1
  153. package/lib/components/TableCellActions/TableCellActions.js +5 -7
  154. package/lib/components/TableCellActions/TableCellActions.js.map +1 -1
  155. package/lib/components/TableCellActions/TableCellActions.types.js +1 -2
  156. package/lib/components/TableCellActions/TableCellActions.types.js.map +1 -1
  157. package/lib/components/TableCellActions/index.js +0 -1
  158. package/lib/components/TableCellActions/index.js.map +1 -1
  159. package/lib/components/TableCellActions/renderTableCellActions.js +4 -9
  160. package/lib/components/TableCellActions/renderTableCellActions.js.map +1 -1
  161. package/lib/components/TableCellActions/useTableCellActions.js +12 -14
  162. package/lib/components/TableCellActions/useTableCellActions.js.map +1 -1
  163. package/lib/components/TableCellActions/useTableCellActionsStyles.styles.js.map +1 -1
  164. package/lib/components/TableCellLayout/TableCellLayout.js +5 -7
  165. package/lib/components/TableCellLayout/TableCellLayout.js.map +1 -1
  166. package/lib/components/TableCellLayout/TableCellLayout.types.js +1 -2
  167. package/lib/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  168. package/lib/components/TableCellLayout/index.js +0 -1
  169. package/lib/components/TableCellLayout/index.js.map +1 -1
  170. package/lib/components/TableCellLayout/renderTableCellLayout.js +6 -11
  171. package/lib/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  172. package/lib/components/TableCellLayout/useTableCellLayout.js +30 -34
  173. package/lib/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  174. package/lib/components/TableCellLayout/useTableCellLayoutContextValues.js +9 -10
  175. package/lib/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -1
  176. package/lib/components/TableCellLayout/useTableCellLayoutStyles.styles.js.map +1 -1
  177. package/lib/components/TableHeader/TableHeader.js +5 -7
  178. package/lib/components/TableHeader/TableHeader.js.map +1 -1
  179. package/lib/components/TableHeader/TableHeader.types.js +1 -2
  180. package/lib/components/TableHeader/TableHeader.types.js.map +1 -1
  181. package/lib/components/TableHeader/index.js +0 -1
  182. package/lib/components/TableHeader/index.js.map +1 -1
  183. package/lib/components/TableHeader/renderTableHeader.js +6 -11
  184. package/lib/components/TableHeader/renderTableHeader.js.map +1 -1
  185. package/lib/components/TableHeader/useTableHeader.js +15 -19
  186. package/lib/components/TableHeader/useTableHeader.js.map +1 -1
  187. package/lib/components/TableHeader/useTableHeaderStyles.styles.js.map +1 -1
  188. package/lib/components/TableHeaderCell/TableHeaderCell.js +5 -7
  189. package/lib/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  190. package/lib/components/TableHeaderCell/TableHeaderCell.types.js +1 -2
  191. package/lib/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  192. package/lib/components/TableHeaderCell/index.js +0 -1
  193. package/lib/components/TableHeaderCell/index.js.map +1 -1
  194. package/lib/components/TableHeaderCell/renderTableHeaderCell.js +4 -9
  195. package/lib/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  196. package/lib/components/TableHeaderCell/useTableHeaderCell.js +46 -51
  197. package/lib/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  198. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.styles.js +10 -2
  199. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.styles.js.map +1 -1
  200. package/lib/components/TableResizeHandle/TableResizeHandle.js +5 -7
  201. package/lib/components/TableResizeHandle/TableResizeHandle.js.map +1 -1
  202. package/lib/components/TableResizeHandle/TableResizeHandle.types.js +1 -2
  203. package/lib/components/TableResizeHandle/TableResizeHandle.types.js.map +1 -1
  204. package/lib/components/TableResizeHandle/index.js +0 -1
  205. package/lib/components/TableResizeHandle/index.js.map +1 -1
  206. package/lib/components/TableResizeHandle/renderTableResizeHandle.js +4 -9
  207. package/lib/components/TableResizeHandle/renderTableResizeHandle.js.map +1 -1
  208. package/lib/components/TableResizeHandle/useTableResizeHandle.js +16 -18
  209. package/lib/components/TableResizeHandle/useTableResizeHandle.js.map +1 -1
  210. package/lib/components/TableResizeHandle/useTableResizeHandleStyles.styles.js.map +1 -1
  211. package/lib/components/TableRow/TableRow.js +5 -7
  212. package/lib/components/TableRow/TableRow.js.map +1 -1
  213. package/lib/components/TableRow/TableRow.types.js +1 -2
  214. package/lib/components/TableRow/TableRow.types.js.map +1 -1
  215. package/lib/components/TableRow/index.js +0 -1
  216. package/lib/components/TableRow/index.js.map +1 -1
  217. package/lib/components/TableRow/renderTableRow.js +4 -9
  218. package/lib/components/TableRow/renderTableRow.js.map +1 -1
  219. package/lib/components/TableRow/useTableRow.js +22 -27
  220. package/lib/components/TableRow/useTableRow.js.map +1 -1
  221. package/lib/components/TableRow/useTableRowStyles.styles.js.map +1 -1
  222. package/lib/components/TableSelectionCell/TableSelectionCell.js +5 -7
  223. package/lib/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  224. package/lib/components/TableSelectionCell/TableSelectionCell.types.js +1 -2
  225. package/lib/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  226. package/lib/components/TableSelectionCell/index.js +0 -1
  227. package/lib/components/TableSelectionCell/index.js.map +1 -1
  228. package/lib/components/TableSelectionCell/renderTableSelectionCell.js +4 -9
  229. package/lib/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  230. package/lib/components/TableSelectionCell/useTableSelectionCell.js +32 -41
  231. package/lib/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  232. package/lib/components/TableSelectionCell/useTableSelectionCellStyles.styles.js.map +1 -1
  233. package/lib/contexts/columnIdContext.js +2 -3
  234. package/lib/contexts/columnIdContext.js.map +1 -1
  235. package/lib/contexts/dataGridContext.js +7 -8
  236. package/lib/contexts/dataGridContext.js.map +1 -1
  237. package/lib/contexts/rowIdContext.js +2 -3
  238. package/lib/contexts/rowIdContext.js.map +1 -1
  239. package/lib/contexts/tableContext.js +5 -6
  240. package/lib/contexts/tableContext.js.map +1 -1
  241. package/lib/contexts/tableHeaderContext.js +2 -3
  242. package/lib/contexts/tableHeaderContext.js.map +1 -1
  243. package/lib/hooks/createColumn.js +21 -28
  244. package/lib/hooks/createColumn.js.map +1 -1
  245. package/lib/hooks/index.js +0 -1
  246. package/lib/hooks/index.js.map +1 -1
  247. package/lib/hooks/selectionManager.js +71 -68
  248. package/lib/hooks/selectionManager.js.map +1 -1
  249. package/lib/hooks/types.js +0 -1
  250. package/lib/hooks/types.js.map +1 -1
  251. package/lib/hooks/useKeyboardResizing.js +96 -87
  252. package/lib/hooks/useKeyboardResizing.js.map +1 -1
  253. package/lib/hooks/useMeasureElement.js +42 -40
  254. package/lib/hooks/useMeasureElement.js.map +1 -1
  255. package/lib/hooks/useTableColumnResizeMouseHandler.js +64 -61
  256. package/lib/hooks/useTableColumnResizeMouseHandler.js.map +1 -1
  257. package/lib/hooks/useTableColumnResizeState.js +100 -105
  258. package/lib/hooks/useTableColumnResizeState.js.map +1 -1
  259. package/lib/hooks/useTableColumnSizing.js +74 -74
  260. package/lib/hooks/useTableColumnSizing.js.map +1 -1
  261. package/lib/hooks/useTableFeatures.js +30 -35
  262. package/lib/hooks/useTableFeatures.js.map +1 -1
  263. package/lib/hooks/useTableSelection.js +64 -66
  264. package/lib/hooks/useTableSelection.js.map +1 -1
  265. package/lib/hooks/useTableSort.js +68 -76
  266. package/lib/hooks/useTableSort.js.map +1 -1
  267. package/lib/index.js +0 -1
  268. package/lib/index.js.map +1 -1
  269. package/lib/utils/columnResizeUtils.js +104 -108
  270. package/lib/utils/columnResizeUtils.js.map +1 -1
  271. package/lib-commonjs/DataGrid.js +0 -3
  272. package/lib-commonjs/DataGrid.js.map +1 -1
  273. package/lib-commonjs/DataGridBody.js +0 -3
  274. package/lib-commonjs/DataGridBody.js.map +1 -1
  275. package/lib-commonjs/DataGridCell.js +0 -3
  276. package/lib-commonjs/DataGridCell.js.map +1 -1
  277. package/lib-commonjs/DataGridHeader.js +0 -3
  278. package/lib-commonjs/DataGridHeader.js.map +1 -1
  279. package/lib-commonjs/DataGridHeaderCell.js +0 -3
  280. package/lib-commonjs/DataGridHeaderCell.js.map +1 -1
  281. package/lib-commonjs/DataGridRow.js +0 -3
  282. package/lib-commonjs/DataGridRow.js.map +1 -1
  283. package/lib-commonjs/DataGridSelectionCell.js +0 -3
  284. package/lib-commonjs/DataGridSelectionCell.js.map +1 -1
  285. package/lib-commonjs/Table.js +0 -3
  286. package/lib-commonjs/Table.js.map +1 -1
  287. package/lib-commonjs/TableBody.js +0 -3
  288. package/lib-commonjs/TableBody.js.map +1 -1
  289. package/lib-commonjs/TableCell.js +0 -3
  290. package/lib-commonjs/TableCell.js.map +1 -1
  291. package/lib-commonjs/TableCellActions.js +0 -3
  292. package/lib-commonjs/TableCellActions.js.map +1 -1
  293. package/lib-commonjs/TableCellLayout.js +0 -3
  294. package/lib-commonjs/TableCellLayout.js.map +1 -1
  295. package/lib-commonjs/TableCellPrimaryLayout.js +0 -3
  296. package/lib-commonjs/TableCellPrimaryLayout.js.map +1 -1
  297. package/lib-commonjs/TableHeader.js +0 -3
  298. package/lib-commonjs/TableHeader.js.map +1 -1
  299. package/lib-commonjs/TableHeaderCell.js +0 -3
  300. package/lib-commonjs/TableHeaderCell.js.map +1 -1
  301. package/lib-commonjs/TableResizeHandle.js +0 -3
  302. package/lib-commonjs/TableResizeHandle.js.map +1 -1
  303. package/lib-commonjs/TableRow.js +0 -3
  304. package/lib-commonjs/TableRow.js.map +1 -1
  305. package/lib-commonjs/TableSelectionCell.js +0 -3
  306. package/lib-commonjs/TableSelectionCell.js.map +1 -1
  307. package/lib-commonjs/components/DataGrid/DataGrid.js +1 -3
  308. package/lib-commonjs/components/DataGrid/DataGrid.js.map +1 -1
  309. package/lib-commonjs/components/DataGrid/DataGrid.types.js +0 -3
  310. package/lib-commonjs/components/DataGrid/DataGrid.types.js.map +1 -1
  311. package/lib-commonjs/components/DataGrid/index.js +0 -3
  312. package/lib-commonjs/components/DataGrid/index.js.map +1 -1
  313. package/lib-commonjs/components/DataGrid/renderDataGrid.js +1 -3
  314. package/lib-commonjs/components/DataGrid/renderDataGrid.js.map +1 -1
  315. package/lib-commonjs/components/DataGrid/useDataGrid.js +1 -3
  316. package/lib-commonjs/components/DataGrid/useDataGrid.js.map +1 -1
  317. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js +1 -3
  318. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js.map +1 -1
  319. package/lib-commonjs/components/DataGrid/useDataGridStyles.styles.js +0 -2
  320. package/lib-commonjs/components/DataGrid/useDataGridStyles.styles.js.map +1 -1
  321. package/lib-commonjs/components/DataGridBody/DataGridBody.js +1 -3
  322. package/lib-commonjs/components/DataGridBody/DataGridBody.js.map +1 -1
  323. package/lib-commonjs/components/DataGridBody/DataGridBody.types.js +0 -3
  324. package/lib-commonjs/components/DataGridBody/DataGridBody.types.js.map +1 -1
  325. package/lib-commonjs/components/DataGridBody/index.js +0 -3
  326. package/lib-commonjs/components/DataGridBody/index.js.map +1 -1
  327. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js +1 -3
  328. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js.map +1 -1
  329. package/lib-commonjs/components/DataGridBody/useDataGridBody.js +1 -3
  330. package/lib-commonjs/components/DataGridBody/useDataGridBody.js.map +1 -1
  331. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.styles.js +0 -2
  332. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.styles.js.map +1 -1
  333. package/lib-commonjs/components/DataGridCell/DataGridCell.js +1 -3
  334. package/lib-commonjs/components/DataGridCell/DataGridCell.js.map +1 -1
  335. package/lib-commonjs/components/DataGridCell/DataGridCell.types.js +0 -3
  336. package/lib-commonjs/components/DataGridCell/DataGridCell.types.js.map +1 -1
  337. package/lib-commonjs/components/DataGridCell/index.js +0 -3
  338. package/lib-commonjs/components/DataGridCell/index.js.map +1 -1
  339. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js +1 -3
  340. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js.map +1 -1
  341. package/lib-commonjs/components/DataGridCell/useDataGridCell.js +1 -3
  342. package/lib-commonjs/components/DataGridCell/useDataGridCell.js.map +1 -1
  343. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.styles.js +0 -2
  344. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.styles.js.map +1 -1
  345. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js +1 -3
  346. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js.map +1 -1
  347. package/lib-commonjs/components/DataGridHeader/DataGridHeader.types.js +0 -3
  348. package/lib-commonjs/components/DataGridHeader/DataGridHeader.types.js.map +1 -1
  349. package/lib-commonjs/components/DataGridHeader/index.js +0 -3
  350. package/lib-commonjs/components/DataGridHeader/index.js.map +1 -1
  351. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js +1 -3
  352. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js.map +1 -1
  353. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js +1 -3
  354. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js.map +1 -1
  355. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.styles.js +0 -2
  356. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.styles.js.map +1 -1
  357. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js +1 -3
  358. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -1
  359. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.types.js +0 -3
  360. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -1
  361. package/lib-commonjs/components/DataGridHeaderCell/index.js +0 -3
  362. package/lib-commonjs/components/DataGridHeaderCell/index.js.map +1 -1
  363. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js +1 -3
  364. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -1
  365. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js +2 -3
  366. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -1
  367. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.styles.js +0 -2
  368. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.styles.js.map +1 -1
  369. package/lib-commonjs/components/DataGridRow/DataGridRow.js +1 -3
  370. package/lib-commonjs/components/DataGridRow/DataGridRow.js.map +1 -1
  371. package/lib-commonjs/components/DataGridRow/DataGridRow.types.js +0 -3
  372. package/lib-commonjs/components/DataGridRow/DataGridRow.types.js.map +1 -1
  373. package/lib-commonjs/components/DataGridRow/index.js +0 -3
  374. package/lib-commonjs/components/DataGridRow/index.js.map +1 -1
  375. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js +1 -3
  376. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js.map +1 -1
  377. package/lib-commonjs/components/DataGridRow/useDataGridRow.js +1 -3
  378. package/lib-commonjs/components/DataGridRow/useDataGridRow.js.map +1 -1
  379. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.styles.js +0 -2
  380. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.styles.js.map +1 -1
  381. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js +1 -3
  382. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -1
  383. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.types.js +0 -3
  384. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -1
  385. package/lib-commonjs/components/DataGridSelectionCell/index.js +0 -3
  386. package/lib-commonjs/components/DataGridSelectionCell/index.js.map +1 -1
  387. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js +1 -3
  388. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -1
  389. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js +1 -3
  390. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -1
  391. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.styles.js +0 -2
  392. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.styles.js.map +1 -1
  393. package/lib-commonjs/components/Table/Table.js +1 -3
  394. package/lib-commonjs/components/Table/Table.js.map +1 -1
  395. package/lib-commonjs/components/Table/Table.types.js +0 -3
  396. package/lib-commonjs/components/Table/Table.types.js.map +1 -1
  397. package/lib-commonjs/components/Table/index.js +0 -3
  398. package/lib-commonjs/components/Table/index.js.map +1 -1
  399. package/lib-commonjs/components/Table/renderTable.js +1 -3
  400. package/lib-commonjs/components/Table/renderTable.js.map +1 -1
  401. package/lib-commonjs/components/Table/useTable.js +1 -3
  402. package/lib-commonjs/components/Table/useTable.js.map +1 -1
  403. package/lib-commonjs/components/Table/useTableContextValues.js +1 -3
  404. package/lib-commonjs/components/Table/useTableContextValues.js.map +1 -1
  405. package/lib-commonjs/components/Table/useTableStyles.styles.js +0 -2
  406. package/lib-commonjs/components/Table/useTableStyles.styles.js.map +1 -1
  407. package/lib-commonjs/components/TableBody/TableBody.js +1 -3
  408. package/lib-commonjs/components/TableBody/TableBody.js.map +1 -1
  409. package/lib-commonjs/components/TableBody/TableBody.types.js +0 -3
  410. package/lib-commonjs/components/TableBody/TableBody.types.js.map +1 -1
  411. package/lib-commonjs/components/TableBody/index.js +0 -3
  412. package/lib-commonjs/components/TableBody/index.js.map +1 -1
  413. package/lib-commonjs/components/TableBody/renderTableBody.js +1 -3
  414. package/lib-commonjs/components/TableBody/renderTableBody.js.map +1 -1
  415. package/lib-commonjs/components/TableBody/useTableBody.js +1 -3
  416. package/lib-commonjs/components/TableBody/useTableBody.js.map +1 -1
  417. package/lib-commonjs/components/TableBody/useTableBodyStyles.styles.js +0 -2
  418. package/lib-commonjs/components/TableBody/useTableBodyStyles.styles.js.map +1 -1
  419. package/lib-commonjs/components/TableCell/TableCell.js +1 -3
  420. package/lib-commonjs/components/TableCell/TableCell.js.map +1 -1
  421. package/lib-commonjs/components/TableCell/TableCell.types.js +0 -3
  422. package/lib-commonjs/components/TableCell/TableCell.types.js.map +1 -1
  423. package/lib-commonjs/components/TableCell/index.js +0 -3
  424. package/lib-commonjs/components/TableCell/index.js.map +1 -1
  425. package/lib-commonjs/components/TableCell/renderTableCell.js +1 -3
  426. package/lib-commonjs/components/TableCell/renderTableCell.js.map +1 -1
  427. package/lib-commonjs/components/TableCell/useTableCell.js +1 -3
  428. package/lib-commonjs/components/TableCell/useTableCell.js.map +1 -1
  429. package/lib-commonjs/components/TableCell/useTableCellStyles.styles.js +0 -2
  430. package/lib-commonjs/components/TableCell/useTableCellStyles.styles.js.map +1 -1
  431. package/lib-commonjs/components/TableCellActions/TableCellActions.js +1 -3
  432. package/lib-commonjs/components/TableCellActions/TableCellActions.js.map +1 -1
  433. package/lib-commonjs/components/TableCellActions/TableCellActions.types.js +0 -3
  434. package/lib-commonjs/components/TableCellActions/TableCellActions.types.js.map +1 -1
  435. package/lib-commonjs/components/TableCellActions/index.js +0 -3
  436. package/lib-commonjs/components/TableCellActions/index.js.map +1 -1
  437. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js +1 -3
  438. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js.map +1 -1
  439. package/lib-commonjs/components/TableCellActions/useTableCellActions.js +1 -3
  440. package/lib-commonjs/components/TableCellActions/useTableCellActions.js.map +1 -1
  441. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.styles.js +0 -2
  442. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.styles.js.map +1 -1
  443. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js +1 -3
  444. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js.map +1 -1
  445. package/lib-commonjs/components/TableCellLayout/TableCellLayout.types.js +0 -3
  446. package/lib-commonjs/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  447. package/lib-commonjs/components/TableCellLayout/index.js +0 -3
  448. package/lib-commonjs/components/TableCellLayout/index.js.map +1 -1
  449. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js +1 -3
  450. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  451. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js +1 -3
  452. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  453. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js +1 -3
  454. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -1
  455. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.styles.js +0 -2
  456. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.styles.js.map +1 -1
  457. package/lib-commonjs/components/TableHeader/TableHeader.js +1 -3
  458. package/lib-commonjs/components/TableHeader/TableHeader.js.map +1 -1
  459. package/lib-commonjs/components/TableHeader/TableHeader.types.js +0 -3
  460. package/lib-commonjs/components/TableHeader/TableHeader.types.js.map +1 -1
  461. package/lib-commonjs/components/TableHeader/index.js +0 -3
  462. package/lib-commonjs/components/TableHeader/index.js.map +1 -1
  463. package/lib-commonjs/components/TableHeader/renderTableHeader.js +1 -3
  464. package/lib-commonjs/components/TableHeader/renderTableHeader.js.map +1 -1
  465. package/lib-commonjs/components/TableHeader/useTableHeader.js +1 -3
  466. package/lib-commonjs/components/TableHeader/useTableHeader.js.map +1 -1
  467. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.styles.js +0 -2
  468. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.styles.js.map +1 -1
  469. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js +1 -3
  470. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  471. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.types.js +0 -3
  472. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  473. package/lib-commonjs/components/TableHeaderCell/index.js +0 -3
  474. package/lib-commonjs/components/TableHeaderCell/index.js.map +1 -1
  475. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js +1 -3
  476. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  477. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js +1 -3
  478. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  479. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.styles.js +27 -3
  480. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.styles.js.map +1 -1
  481. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.js +1 -3
  482. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.js.map +1 -1
  483. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.types.js +0 -3
  484. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.types.js.map +1 -1
  485. package/lib-commonjs/components/TableResizeHandle/index.js +0 -3
  486. package/lib-commonjs/components/TableResizeHandle/index.js.map +1 -1
  487. package/lib-commonjs/components/TableResizeHandle/renderTableResizeHandle.js +1 -3
  488. package/lib-commonjs/components/TableResizeHandle/renderTableResizeHandle.js.map +1 -1
  489. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandle.js +1 -3
  490. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandle.js.map +1 -1
  491. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandleStyles.styles.js +0 -2
  492. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandleStyles.styles.js.map +1 -1
  493. package/lib-commonjs/components/TableRow/TableRow.js +1 -3
  494. package/lib-commonjs/components/TableRow/TableRow.js.map +1 -1
  495. package/lib-commonjs/components/TableRow/TableRow.types.js +0 -3
  496. package/lib-commonjs/components/TableRow/TableRow.types.js.map +1 -1
  497. package/lib-commonjs/components/TableRow/index.js +0 -3
  498. package/lib-commonjs/components/TableRow/index.js.map +1 -1
  499. package/lib-commonjs/components/TableRow/renderTableRow.js +1 -3
  500. package/lib-commonjs/components/TableRow/renderTableRow.js.map +1 -1
  501. package/lib-commonjs/components/TableRow/useTableRow.js +1 -3
  502. package/lib-commonjs/components/TableRow/useTableRow.js.map +1 -1
  503. package/lib-commonjs/components/TableRow/useTableRowStyles.styles.js +0 -2
  504. package/lib-commonjs/components/TableRow/useTableRowStyles.styles.js.map +1 -1
  505. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js +1 -3
  506. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  507. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.types.js +0 -3
  508. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  509. package/lib-commonjs/components/TableSelectionCell/index.js +0 -3
  510. package/lib-commonjs/components/TableSelectionCell/index.js.map +1 -1
  511. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js +1 -3
  512. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  513. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js +1 -3
  514. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  515. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.styles.js +0 -2
  516. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.styles.js.map +1 -1
  517. package/lib-commonjs/contexts/columnIdContext.js +1 -3
  518. package/lib-commonjs/contexts/columnIdContext.js.map +1 -1
  519. package/lib-commonjs/contexts/dataGridContext.js +2 -4
  520. package/lib-commonjs/contexts/dataGridContext.js.map +1 -1
  521. package/lib-commonjs/contexts/rowIdContext.js +1 -3
  522. package/lib-commonjs/contexts/rowIdContext.js.map +1 -1
  523. package/lib-commonjs/contexts/tableContext.js +1 -3
  524. package/lib-commonjs/contexts/tableContext.js.map +1 -1
  525. package/lib-commonjs/contexts/tableHeaderContext.js +1 -3
  526. package/lib-commonjs/contexts/tableHeaderContext.js.map +1 -1
  527. package/lib-commonjs/hooks/createColumn.js +1 -3
  528. package/lib-commonjs/hooks/createColumn.js.map +1 -1
  529. package/lib-commonjs/hooks/index.js +0 -3
  530. package/lib-commonjs/hooks/index.js.map +1 -1
  531. package/lib-commonjs/hooks/selectionManager.js +1 -3
  532. package/lib-commonjs/hooks/selectionManager.js.map +1 -1
  533. package/lib-commonjs/hooks/types.js +0 -3
  534. package/lib-commonjs/hooks/types.js.map +1 -1
  535. package/lib-commonjs/hooks/useKeyboardResizing.js +17 -18
  536. package/lib-commonjs/hooks/useKeyboardResizing.js.map +1 -1
  537. package/lib-commonjs/hooks/useMeasureElement.js +1 -3
  538. package/lib-commonjs/hooks/useMeasureElement.js.map +1 -1
  539. package/lib-commonjs/hooks/useTableColumnResizeMouseHandler.js +1 -3
  540. package/lib-commonjs/hooks/useTableColumnResizeMouseHandler.js.map +1 -1
  541. package/lib-commonjs/hooks/useTableColumnResizeState.js +1 -3
  542. package/lib-commonjs/hooks/useTableColumnResizeState.js.map +1 -1
  543. package/lib-commonjs/hooks/useTableColumnSizing.js +10 -7
  544. package/lib-commonjs/hooks/useTableColumnSizing.js.map +1 -1
  545. package/lib-commonjs/hooks/useTableFeatures.js +1 -3
  546. package/lib-commonjs/hooks/useTableFeatures.js.map +1 -1
  547. package/lib-commonjs/hooks/useTableSelection.js +2 -4
  548. package/lib-commonjs/hooks/useTableSelection.js.map +1 -1
  549. package/lib-commonjs/hooks/useTableSort.js +1 -3
  550. package/lib-commonjs/hooks/useTableSort.js.map +1 -1
  551. package/lib-commonjs/index.js +0 -3
  552. package/lib-commonjs/index.js.map +1 -1
  553. package/lib-commonjs/utils/columnResizeUtils.js +1 -3
  554. package/lib-commonjs/utils/columnResizeUtils.js.map +1 -1
  555. package/package.json +11 -11
@@ -1,86 +1,78 @@
1
1
  import * as React from 'react';
2
2
  import { useControllableState } from '@fluentui/react-utilities';
3
- const noop = () => undefined;
3
+ const noop = ()=>undefined;
4
4
  export const defaultTableSortState = {
5
- getSortDirection: () => 'ascending',
6
- setColumnSort: noop,
7
- sort: rows => [...rows],
8
- sortColumn: undefined,
9
- sortDirection: 'ascending',
10
- toggleColumnSort: noop
5
+ getSortDirection: ()=>'ascending',
6
+ setColumnSort: noop,
7
+ sort: (rows)=>[
8
+ ...rows
9
+ ],
10
+ sortColumn: undefined,
11
+ sortDirection: 'ascending',
12
+ toggleColumnSort: noop
11
13
  };
12
14
  export function useTableSort(options) {
13
- // False positive, these plugin hooks are intended to be run on every render
14
- // eslint-disable-next-line react-hooks/rules-of-hooks
15
- return tableState => useTableSortState(tableState, options);
15
+ // False positive, these plugin hooks are intended to be run on every render
16
+ // eslint-disable-next-line react-hooks/rules-of-hooks
17
+ return (tableState)=>useTableSortState(tableState, options);
16
18
  }
17
19
  export function useTableSortState(tableState, options) {
18
- const {
19
- columns
20
- } = tableState;
21
- const {
22
- sortState,
23
- defaultSortState,
24
- onSortChange
25
- } = options;
26
- const [sorted, setSorted] = useControllableState({
27
- initialState: {
28
- sortDirection: 'ascending',
29
- sortColumn: undefined
30
- },
31
- defaultState: defaultSortState,
32
- state: sortState
33
- });
34
- const {
35
- sortColumn,
36
- sortDirection
37
- } = sorted;
38
- const toggleColumnSort = (e, columnId) => {
39
- setSorted(s => {
40
- const newState = {
41
- ...s,
42
- sortColumn: columnId
43
- };
44
- if (s.sortColumn === columnId) {
45
- newState.sortDirection = s.sortDirection === 'ascending' ? 'descending' : 'ascending';
46
- } else {
47
- newState.sortDirection = 'ascending';
48
- }
49
- onSortChange === null || onSortChange === void 0 ? void 0 : onSortChange(e, newState);
50
- return newState;
20
+ const { columns } = tableState;
21
+ const { sortState , defaultSortState , onSortChange } = options;
22
+ const [sorted, setSorted] = useControllableState({
23
+ initialState: {
24
+ sortDirection: 'ascending',
25
+ sortColumn: undefined
26
+ },
27
+ defaultState: defaultSortState,
28
+ state: sortState
51
29
  });
52
- };
53
- const setColumnSort = (e, nextSortColumn, nextSortDirection) => {
54
- const newState = {
55
- sortColumn: nextSortColumn,
56
- sortDirection: nextSortDirection
30
+ const { sortColumn , sortDirection } = sorted;
31
+ const toggleColumnSort = (e, columnId)=>{
32
+ setSorted((s)=>{
33
+ const newState = {
34
+ ...s,
35
+ sortColumn: columnId
36
+ };
37
+ if (s.sortColumn === columnId) {
38
+ newState.sortDirection = s.sortDirection === 'ascending' ? 'descending' : 'ascending';
39
+ } else {
40
+ newState.sortDirection = 'ascending';
41
+ }
42
+ onSortChange === null || onSortChange === void 0 ? void 0 : onSortChange(e, newState);
43
+ return newState;
44
+ });
45
+ };
46
+ const setColumnSort = (e, nextSortColumn, nextSortDirection)=>{
47
+ const newState = {
48
+ sortColumn: nextSortColumn,
49
+ sortDirection: nextSortDirection
50
+ };
51
+ onSortChange === null || onSortChange === void 0 ? void 0 : onSortChange(e, newState);
52
+ setSorted(newState);
53
+ };
54
+ const sort = (rows)=>{
55
+ return rows.slice().sort((a, b)=>{
56
+ const sortColumnDef = columns.find((column)=>column.columnId === sortColumn);
57
+ if (!(sortColumnDef === null || sortColumnDef === void 0 ? void 0 : sortColumnDef.compare)) {
58
+ return 0;
59
+ }
60
+ const mod = sortDirection === 'ascending' ? 1 : -1;
61
+ return sortColumnDef.compare(a.item, b.item) * mod;
62
+ });
63
+ };
64
+ const getSortDirection = (columnId)=>{
65
+ return sortColumn === columnId ? sortDirection : undefined;
66
+ };
67
+ return {
68
+ ...tableState,
69
+ sort: {
70
+ sort,
71
+ sortColumn,
72
+ sortDirection,
73
+ setColumnSort,
74
+ toggleColumnSort,
75
+ getSortDirection
76
+ }
57
77
  };
58
- onSortChange === null || onSortChange === void 0 ? void 0 : onSortChange(e, newState);
59
- setSorted(newState);
60
- };
61
- const sort = rows => {
62
- return rows.slice().sort((a, b) => {
63
- const sortColumnDef = columns.find(column => column.columnId === sortColumn);
64
- if (!(sortColumnDef === null || sortColumnDef === void 0 ? void 0 : sortColumnDef.compare)) {
65
- return 0;
66
- }
67
- const mod = sortDirection === 'ascending' ? 1 : -1;
68
- return sortColumnDef.compare(a.item, b.item) * mod;
69
- });
70
- };
71
- const getSortDirection = columnId => {
72
- return sortColumn === columnId ? sortDirection : undefined;
73
- };
74
- return {
75
- ...tableState,
76
- sort: {
77
- sort,
78
- sortColumn,
79
- sortDirection,
80
- setColumnSort,
81
- toggleColumnSort,
82
- getSortDirection
83
- }
84
- };
85
78
  }
86
- //# sourceMappingURL=useTableSort.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useControllableState","noop","undefined","defaultTableSortState","getSortDirection","setColumnSort","sort","rows","sortColumn","sortDirection","toggleColumnSort","useTableSort","options","tableState","useTableSortState","columns","sortState","defaultSortState","onSortChange","sorted","setSorted","initialState","defaultState","state","e","columnId","s","newState","nextSortColumn","nextSortDirection","slice","a","b","sortColumnDef","find","column","compare","mod","item"],"sources":["../../src/hooks/useTableSort.ts"],"sourcesContent":["import * as React from 'react';\nimport { useControllableState } from '@fluentui/react-utilities';\nimport type {\n TableColumnId,\n TableRowData,\n SortState,\n TableSortState,\n TableFeaturesState,\n UseTableSortOptions,\n} from './types';\n\nconst noop = () => undefined;\n\nexport const defaultTableSortState: TableSortState<unknown> = {\n getSortDirection: () => 'ascending',\n setColumnSort: noop,\n sort: <TRowState extends TableRowData<unknown>>(rows: TRowState[]) => [...rows],\n sortColumn: undefined,\n sortDirection: 'ascending',\n toggleColumnSort: noop,\n};\n\nexport function useTableSort<TItem>(options: UseTableSortOptions) {\n // False positive, these plugin hooks are intended to be run on every render\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (tableState: TableFeaturesState<TItem>) => useTableSortState(tableState, options);\n}\n\nexport function useTableSortState<TItem>(\n tableState: TableFeaturesState<TItem>,\n options: UseTableSortOptions,\n): TableFeaturesState<TItem> {\n const { columns } = tableState;\n const { sortState, defaultSortState, onSortChange } = options;\n\n const [sorted, setSorted] = useControllableState<SortState>({\n initialState: {\n sortDirection: 'ascending' as const,\n sortColumn: undefined,\n },\n defaultState: defaultSortState,\n state: sortState,\n });\n\n const { sortColumn, sortDirection } = sorted;\n\n const toggleColumnSort = (e: React.SyntheticEvent, columnId: TableColumnId | undefined) => {\n setSorted(s => {\n const newState = { ...s, sortColumn: columnId };\n if (s.sortColumn === columnId) {\n newState.sortDirection = s.sortDirection === 'ascending' ? 'descending' : 'ascending';\n } else {\n newState.sortDirection = 'ascending';\n }\n\n onSortChange?.(e, newState);\n return newState;\n });\n };\n\n const setColumnSort: TableSortState<TItem>['setColumnSort'] = (e, nextSortColumn, nextSortDirection) => {\n const newState = { sortColumn: nextSortColumn, sortDirection: nextSortDirection };\n onSortChange?.(e, newState);\n setSorted(newState);\n };\n\n const sort = <TRowState extends TableRowData<TItem>>(rows: TRowState[]) => {\n return rows.slice().sort((a, b) => {\n const sortColumnDef = columns.find(column => column.columnId === sortColumn);\n if (!sortColumnDef?.compare) {\n return 0;\n }\n\n const mod = sortDirection === 'ascending' ? 1 : -1;\n return sortColumnDef.compare(a.item, b.item) * mod;\n });\n };\n\n const getSortDirection: TableSortState<TItem>['getSortDirection'] = (columnId: TableColumnId) => {\n return sortColumn === columnId ? sortDirection : undefined;\n };\n\n return {\n ...tableState,\n sort: {\n sort,\n sortColumn,\n sortDirection,\n setColumnSort,\n toggleColumnSort,\n getSortDirection,\n },\n };\n}\n"],"mappings":"AAAA,YAAYA,KAAA,MAAW;AACvB,SAASC,oBAAoB,QAAQ;AAUrC,MAAMC,IAAA,GAAOA,CAAA,KAAMC,SAAA;AAEnB,OAAO,MAAMC,qBAAA,GAAiD;EAC5DC,gBAAA,EAAkBA,CAAA,KAAM;EACxBC,aAAA,EAAeJ,IAAA;EACfK,IAAA,EAAgDC,IAAA,IAAsB,C,GAAIA,IAAA,CAAK;EAC/EC,UAAA,EAAYN,SAAA;EACZO,aAAA,EAAe;EACfC,gBAAA,EAAkBT;AACpB;AAEA,OAAO,SAASU,aAAoBC,OAA4B,EAAE;EAChE;EACA;EACA,OAAQC,UAAA,IAA0CC,iBAAA,CAAkBD,UAAA,EAAYD,OAAA;AAClF;AAEA,OAAO,SAASE,kBACdD,UAAqC,EACrCD,OAA4B,EACD;EAC3B,MAAM;IAAEG;EAAO,CAAE,GAAGF,UAAA;EACpB,MAAM;IAAEG,SAAA;IAAWC,gBAAA;IAAkBC;EAAY,CAAE,GAAGN,OAAA;EAEtD,MAAM,CAACO,MAAA,EAAQC,SAAA,CAAU,GAAGpB,oBAAA,CAAgC;IAC1DqB,YAAA,EAAc;MACZZ,aAAA,EAAe;MACfD,UAAA,EAAYN;IACd;IACAoB,YAAA,EAAcL,gBAAA;IACdM,KAAA,EAAOP;EACT;EAEA,MAAM;IAAER,UAAA;IAAYC;EAAa,CAAE,GAAGU,MAAA;EAEtC,MAAMT,gBAAA,GAAmBA,CAACc,CAAA,EAAyBC,QAAA,KAAwC;IACzFL,SAAA,CAAUM,CAAA,IAAK;MACb,MAAMC,QAAA,GAAW;QAAE,GAAGD,CAAC;QAAElB,UAAA,EAAYiB;MAAS;MAC9C,IAAIC,CAAA,CAAElB,UAAU,KAAKiB,QAAA,EAAU;QAC7BE,QAAA,CAASlB,aAAa,GAAGiB,CAAA,CAAEjB,aAAa,KAAK,cAAc,eAAe,WAAW;MACvF,OAAO;QACLkB,QAAA,CAASlB,aAAa,GAAG;MAC3B;MAEAS,YAAA,aAAAA,YAAA,uBAAAA,YAAA,CAAeM,CAAA,EAAGG,QAAA;MAClB,OAAOA,QAAA;IACT;EACF;EAEA,MAAMtB,aAAA,GAAwDA,CAACmB,CAAA,EAAGI,cAAA,EAAgBC,iBAAA,KAAsB;IACtG,MAAMF,QAAA,GAAW;MAAEnB,UAAA,EAAYoB,cAAA;MAAgBnB,aAAA,EAAeoB;IAAkB;IAChFX,YAAA,aAAAA,YAAA,uBAAAA,YAAA,CAAeM,CAAA,EAAGG,QAAA;IAClBP,SAAA,CAAUO,QAAA;EACZ;EAEA,MAAMrB,IAAA,GAA+CC,IAAA,IAAsB;IACzE,OAAOA,IAAA,CAAKuB,KAAK,GAAGxB,IAAI,CAAC,CAACyB,CAAA,EAAGC,CAAA,KAAM;MACjC,MAAMC,aAAA,GAAgBlB,OAAA,CAAQmB,IAAI,CAACC,MAAA,IAAUA,MAAA,CAAOV,QAAQ,KAAKjB,UAAA;MACjE,IAAI,EAACyB,aAAA,aAAAA,aAAA,uBAAAA,aAAA,CAAeG,OAAO,CAAD,EAAG;QAC3B,OAAO;MACT;MAEA,MAAMC,GAAA,GAAM5B,aAAA,KAAkB,cAAc,IAAI,CAAC,CAAC;MAClD,OAAOwB,aAAA,CAAcG,OAAO,CAACL,CAAA,CAAEO,IAAI,EAAEN,CAAA,CAAEM,IAAI,IAAID,GAAA;IACjD;EACF;EAEA,MAAMjC,gBAAA,GAA+DqB,QAAA,IAA4B;IAC/F,OAAOjB,UAAA,KAAeiB,QAAA,GAAWhB,aAAA,GAAgBP,SAAS;EAC5D;EAEA,OAAO;IACL,GAAGW,UAAU;IACbP,IAAA,EAAM;MACJA,IAAA;MACAE,UAAA;MACAC,aAAA;MACAJ,aAAA;MACAK,gBAAA;MACAN;IACF;EACF;AACF"}
1
+ {"version":3,"sources":["useTableSort.ts"],"sourcesContent":["import * as React from 'react';\nimport { useControllableState } from '@fluentui/react-utilities';\nimport type {\n TableColumnId,\n TableRowData,\n SortState,\n TableSortState,\n TableFeaturesState,\n UseTableSortOptions,\n} from './types';\n\nconst noop = () => undefined;\n\nexport const defaultTableSortState: TableSortState<unknown> = {\n getSortDirection: () => 'ascending',\n setColumnSort: noop,\n sort: <TRowState extends TableRowData<unknown>>(rows: TRowState[]) => [...rows],\n sortColumn: undefined,\n sortDirection: 'ascending',\n toggleColumnSort: noop,\n};\n\nexport function useTableSort<TItem>(options: UseTableSortOptions) {\n // False positive, these plugin hooks are intended to be run on every render\n // eslint-disable-next-line react-hooks/rules-of-hooks\n return (tableState: TableFeaturesState<TItem>) => useTableSortState(tableState, options);\n}\n\nexport function useTableSortState<TItem>(\n tableState: TableFeaturesState<TItem>,\n options: UseTableSortOptions,\n): TableFeaturesState<TItem> {\n const { columns } = tableState;\n const { sortState, defaultSortState, onSortChange } = options;\n\n const [sorted, setSorted] = useControllableState<SortState>({\n initialState: {\n sortDirection: 'ascending' as const,\n sortColumn: undefined,\n },\n defaultState: defaultSortState,\n state: sortState,\n });\n\n const { sortColumn, sortDirection } = sorted;\n\n const toggleColumnSort = (e: React.SyntheticEvent, columnId: TableColumnId | undefined) => {\n setSorted(s => {\n const newState = { ...s, sortColumn: columnId };\n if (s.sortColumn === columnId) {\n newState.sortDirection = s.sortDirection === 'ascending' ? 'descending' : 'ascending';\n } else {\n newState.sortDirection = 'ascending';\n }\n\n onSortChange?.(e, newState);\n return newState;\n });\n };\n\n const setColumnSort: TableSortState<TItem>['setColumnSort'] = (e, nextSortColumn, nextSortDirection) => {\n const newState = { sortColumn: nextSortColumn, sortDirection: nextSortDirection };\n onSortChange?.(e, newState);\n setSorted(newState);\n };\n\n const sort = <TRowState extends TableRowData<TItem>>(rows: TRowState[]) => {\n return rows.slice().sort((a, b) => {\n const sortColumnDef = columns.find(column => column.columnId === sortColumn);\n if (!sortColumnDef?.compare) {\n return 0;\n }\n\n const mod = sortDirection === 'ascending' ? 1 : -1;\n return sortColumnDef.compare(a.item, b.item) * mod;\n });\n };\n\n const getSortDirection: TableSortState<TItem>['getSortDirection'] = (columnId: TableColumnId) => {\n return sortColumn === columnId ? sortDirection : undefined;\n };\n\n return {\n ...tableState,\n sort: {\n sort,\n sortColumn,\n sortDirection,\n setColumnSort,\n toggleColumnSort,\n getSortDirection,\n },\n };\n}\n"],"names":["React","useControllableState","noop","undefined","defaultTableSortState","getSortDirection","setColumnSort","sort","rows","sortColumn","sortDirection","toggleColumnSort","useTableSort","options","tableState","useTableSortState","columns","sortState","defaultSortState","onSortChange","sorted","setSorted","initialState","defaultState","state","e","columnId","s","newState","nextSortColumn","nextSortDirection","slice","a","b","sortColumnDef","find","column","compare","mod","item"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAC/B,SAASC,oBAAoB,QAAQ,4BAA4B;AAUjE,MAAMC,OAAO,IAAMC;AAEnB,OAAO,MAAMC,wBAAiD;IAC5DC,kBAAkB,IAAM;IACxBC,eAAeJ;IACfK,MAAM,CAA0CC,OAAsB;eAAIA;SAAK;IAC/EC,YAAYN;IACZO,eAAe;IACfC,kBAAkBT;AACpB,EAAE;AAEF,OAAO,SAASU,aAAoBC,OAA4B,EAAE;IAChE,4EAA4E;IAC5E,sDAAsD;IACtD,OAAO,CAACC,aAA0CC,kBAAkBD,YAAYD;AAClF,CAAC;AAED,OAAO,SAASE,kBACdD,UAAqC,EACrCD,OAA4B,EACD;IAC3B,MAAM,EAAEG,QAAO,EAAE,GAAGF;IACpB,MAAM,EAAEG,UAAS,EAAEC,iBAAgB,EAAEC,aAAY,EAAE,GAAGN;IAEtD,MAAM,CAACO,QAAQC,UAAU,GAAGpB,qBAAgC;QAC1DqB,cAAc;YACZZ,eAAe;YACfD,YAAYN;QACd;QACAoB,cAAcL;QACdM,OAAOP;IACT;IAEA,MAAM,EAAER,WAAU,EAAEC,cAAa,EAAE,GAAGU;IAEtC,MAAMT,mBAAmB,CAACc,GAAyBC,WAAwC;QACzFL,UAAUM,CAAAA,IAAK;YACb,MAAMC,WAAW;gBAAE,GAAGD,CAAC;gBAAElB,YAAYiB;YAAS;YAC9C,IAAIC,EAAElB,UAAU,KAAKiB,UAAU;gBAC7BE,SAASlB,aAAa,GAAGiB,EAAEjB,aAAa,KAAK,cAAc,eAAe,WAAW;YACvF,OAAO;gBACLkB,SAASlB,aAAa,GAAG;YAC3B,CAAC;YAEDS,yBAAAA,0BAAAA,KAAAA,IAAAA,aAAeM,GAAGG;YAClB,OAAOA;QACT;IACF;IAEA,MAAMtB,gBAAwD,CAACmB,GAAGI,gBAAgBC,oBAAsB;QACtG,MAAMF,WAAW;YAAEnB,YAAYoB;YAAgBnB,eAAeoB;QAAkB;QAChFX,yBAAAA,0BAAAA,KAAAA,IAAAA,aAAeM,GAAGG;QAClBP,UAAUO;IACZ;IAEA,MAAMrB,OAAO,CAAwCC,OAAsB;QACzE,OAAOA,KAAKuB,KAAK,GAAGxB,IAAI,CAAC,CAACyB,GAAGC,IAAM;YACjC,MAAMC,gBAAgBlB,QAAQmB,IAAI,CAACC,CAAAA,SAAUA,OAAOV,QAAQ,KAAKjB;YACjE,IAAI,CAACyB,CAAAA,0BAAAA,2BAAAA,KAAAA,IAAAA,cAAeG,OAAO,AAAD,GAAG;gBAC3B,OAAO;YACT,CAAC;YAED,MAAMC,MAAM5B,kBAAkB,cAAc,IAAI,CAAC,CAAC;YAClD,OAAOwB,cAAcG,OAAO,CAACL,EAAEO,IAAI,EAAEN,EAAEM,IAAI,IAAID;QACjD;IACF;IAEA,MAAMjC,mBAA8D,CAACqB,WAA4B;QAC/F,OAAOjB,eAAeiB,WAAWhB,gBAAgBP,SAAS;IAC5D;IAEA,OAAO;QACL,GAAGW,UAAU;QACbP,MAAM;YACJA;YACAE;YACAC;YACAJ;YACAK;YACAN;QACF;IACF;AACF,CAAC"}
package/lib/index.js CHANGED
@@ -18,4 +18,3 @@ export { DataGrid, dataGridClassNames, useDataGridStyles_unstable, useDataGrid_u
18
18
  export { DataGridHeader, dataGridHeaderClassNames, useDataGridHeaderStyles_unstable, useDataGridHeader_unstable, renderDataGridHeader_unstable } from './DataGridHeader';
19
19
  export { DataGridHeaderCell, dataGridHeaderCellClassNames, useDataGridHeaderCellStyles_unstable, useDataGridHeaderCell_unstable, renderDataGridHeaderCell_unstable } from './DataGridHeaderCell';
20
20
  export { DataGridSelectionCell, useDataGridSelectionCellStyles_unstable, useDataGridSelectionCell_unstable, renderDataGridSelectionCell_unstable, dataGridSelectionCellClassNames } from './DataGridSelectionCell';
21
- //# sourceMappingURL=index.js.map
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"names":["useTableFeatures","useTableSelection","useTableSort","createTableColumn","useTableColumnSizing_unstable","TableCell","tableCellClassNames","tableCellClassName","useTableCellStyles_unstable","useTableCell_unstable","renderTableCell_unstable","TableRow","tableRowClassNames","tableRowClassName","useTableRowStyles_unstable","useTableRow_unstable","renderTableRow_unstable","TableBody","tableBodyClassName","tableBodyClassNames","useTableBodyStyles_unstable","useTableBody_unstable","renderTableBody_unstable","Table","tableClassName","tableClassNames","useTableStyles_unstable","useTable_unstable","renderTable_unstable","TableHeader","tableHeaderClassNames","tableHeaderClassName","useTableHeaderStyles_unstable","useTableHeader_unstable","renderTableHeader_unstable","TableHeaderCell","tableHeaderCellClassName","tableHeaderCellClassNames","useTableHeaderCellStyles_unstable","useTableHeaderCell_unstable","renderTableHeaderCell_unstable","TableResizeHandle","tableResizeHandleClassNames","useTableResizeHandleStyles_unstable","useTableResizeHandle_unstable","renderTableResizeHandle_unstable","TableContextProvider","useTableContext","useTableRowIdContext","TableRowIdContextProvider","TableSelectionCell","useTableSelectionCellStyles_unstable","useTableSelectionCell_unstable","renderTableSelectionCell_unstable","tableSelectionCellClassNames","TableCellActions","tableCellActionsClassNames","useTableCellActionsStyles_unstable","useTableCellActions_unstable","renderTableCellActions_unstable","TableCellLayout","tableCellLayoutClassNames","useTableCellLayoutStyles_unstable","useTableCellLayout_unstable","renderTableCellLayout_unstable","DataGridCell","dataGridCellClassNames","useDataGridCellStyles_unstable","useDataGridCell_unstable","renderDataGridCell_unstable","DataGridRow","dataGridRowClassNames","useDataGridRowStyles_unstable","useDataGridRow_unstable","renderDataGridRow_unstable","DataGridBody","dataGridBodyClassNames","useDataGridBodyStyles_unstable","useDataGridBody_unstable","renderDataGridBody_unstable","DataGrid","dataGridClassNames","useDataGridStyles_unstable","useDataGrid_unstable","renderDataGrid_unstable","useDataGridContextValues_unstable","DataGridHeader","dataGridHeaderClassNames","useDataGridHeaderStyles_unstable","useDataGridHeader_unstable","renderDataGridHeader_unstable","DataGridHeaderCell","dataGridHeaderCellClassNames","useDataGridHeaderCellStyles_unstable","useDataGridHeaderCell_unstable","renderDataGridHeaderCell_unstable","DataGridSelectionCell","useDataGridSelectionCellStyles_unstable","useDataGridSelectionCell_unstable","renderDataGridSelectionCell_unstable","dataGridSelectionCellClassNames"],"sources":["../src/index.ts"],"sourcesContent":["export {\n useTableFeatures,\n useTableSelection,\n useTableSort,\n createTableColumn,\n useTableColumnSizing_unstable,\n} from './hooks';\n\nexport type {\n CreateTableColumnOptions,\n UseTableFeaturesOptions,\n TableColumnDefinition,\n TableColumnId,\n TableFeaturesState,\n TableRowData,\n TableRowId,\n TableSelectionState,\n TableSortState,\n TableFeaturePlugin,\n TableColumnSizingOptions,\n UseTableSelectionOptions,\n} from './hooks';\n\nexport {\n TableCell,\n tableCellClassNames,\n tableCellClassName,\n useTableCellStyles_unstable,\n useTableCell_unstable,\n renderTableCell_unstable,\n} from './TableCell';\nexport type { TableCellProps, TableCellState, TableCellSlots } from './TableCell';\n\nexport {\n TableRow,\n tableRowClassNames,\n tableRowClassName,\n useTableRowStyles_unstable,\n useTableRow_unstable,\n renderTableRow_unstable,\n} from './TableRow';\nexport type { TableRowProps, TableRowState, TableRowSlots } from './TableRow';\n\nexport {\n TableBody,\n tableBodyClassName,\n tableBodyClassNames,\n useTableBodyStyles_unstable,\n useTableBody_unstable,\n renderTableBody_unstable,\n} from './TableBody';\nexport type { TableBodyProps, TableBodyState, TableBodySlots } from './TableBody';\n\nexport {\n Table,\n tableClassName,\n tableClassNames,\n useTableStyles_unstable,\n useTable_unstable,\n renderTable_unstable,\n} from './Table';\nexport type { TableProps, TableSlots, TableState, TableContextValue, TableContextValues, SortDirection } from './Table';\n\nexport {\n TableHeader,\n tableHeaderClassNames,\n tableHeaderClassName,\n useTableHeaderStyles_unstable,\n useTableHeader_unstable,\n renderTableHeader_unstable,\n} from './TableHeader';\nexport type { TableHeaderProps, TableHeaderSlots, TableHeaderState } from './TableHeader';\n\nexport {\n TableHeaderCell,\n tableHeaderCellClassName,\n tableHeaderCellClassNames,\n useTableHeaderCellStyles_unstable,\n useTableHeaderCell_unstable,\n renderTableHeaderCell_unstable,\n} from './TableHeaderCell';\nexport type { TableHeaderCellProps, TableHeaderCellSlots, TableHeaderCellState } from './TableHeaderCell';\n\nexport {\n TableResizeHandle,\n tableResizeHandleClassNames,\n useTableResizeHandleStyles_unstable,\n useTableResizeHandle_unstable,\n renderTableResizeHandle_unstable,\n} from './TableResizeHandle';\nexport type { TableResizeHandleProps, TableResizeHandleSlots, TableResizeHandleState } from './TableResizeHandle';\n\nexport { TableContextProvider, useTableContext } from './contexts/tableContext';\nexport { useTableRowIdContext, TableRowIdContextProvider } from './contexts/rowIdContext';\nexport {\n TableSelectionCell,\n useTableSelectionCellStyles_unstable,\n useTableSelectionCell_unstable,\n renderTableSelectionCell_unstable,\n tableSelectionCellClassNames,\n} from './TableSelectionCell';\n\nexport type { TableSelectionCellProps, TableSelectionCellState, TableSelectionCellSlots } from './TableSelectionCell';\nexport {\n TableCellActions,\n tableCellActionsClassNames,\n useTableCellActionsStyles_unstable,\n useTableCellActions_unstable,\n renderTableCellActions_unstable,\n} from './TableCellActions';\n\nexport type { TableCellActionsProps, TableCellActionsSlots, TableCellActionsState } from './TableCellActions';\nexport {\n TableCellLayout,\n tableCellLayoutClassNames,\n useTableCellLayoutStyles_unstable,\n useTableCellLayout_unstable,\n renderTableCellLayout_unstable,\n} from './TableCellLayout';\nexport type { TableCellLayoutProps, TableCellLayoutSlots, TableCellLayoutState } from './TableCellLayout';\n\nexport {\n DataGridCell,\n dataGridCellClassNames,\n useDataGridCellStyles_unstable,\n useDataGridCell_unstable,\n renderDataGridCell_unstable,\n} from './DataGridCell';\nexport type { DataGridCellProps, DataGridCellState, DataGridCellSlots } from './DataGridCell';\n\nexport {\n DataGridRow,\n dataGridRowClassNames,\n useDataGridRowStyles_unstable,\n useDataGridRow_unstable,\n renderDataGridRow_unstable,\n} from './DataGridRow';\nexport type { DataGridRowProps, DataGridRowState, DataGridRowSlots, CellRenderFunction } from './DataGridRow';\n\nexport {\n DataGridBody,\n dataGridBodyClassNames,\n useDataGridBodyStyles_unstable,\n useDataGridBody_unstable,\n renderDataGridBody_unstable,\n} from './DataGridBody';\nexport type { DataGridBodyProps, DataGridBodyState, DataGridBodySlots, RowRenderFunction } from './DataGridBody';\n\nexport {\n DataGrid,\n dataGridClassNames,\n useDataGridStyles_unstable,\n useDataGrid_unstable,\n renderDataGrid_unstable,\n useDataGridContextValues_unstable,\n} from './DataGrid';\nexport type {\n DataGridProps,\n DataGridSlots,\n DataGridState,\n DataGridContextValues,\n DataGridContextValue,\n DataGridFocusMode,\n} from './DataGrid';\n\nexport {\n DataGridHeader,\n dataGridHeaderClassNames,\n useDataGridHeaderStyles_unstable,\n useDataGridHeader_unstable,\n renderDataGridHeader_unstable,\n} from './DataGridHeader';\nexport type { DataGridHeaderProps, DataGridHeaderSlots, DataGridHeaderState } from './DataGridHeader';\n\nexport {\n DataGridHeaderCell,\n dataGridHeaderCellClassNames,\n useDataGridHeaderCellStyles_unstable,\n useDataGridHeaderCell_unstable,\n renderDataGridHeaderCell_unstable,\n} from './DataGridHeaderCell';\nexport type { DataGridHeaderCellProps, DataGridHeaderCellSlots, DataGridHeaderCellState } from './DataGridHeaderCell';\n\nexport {\n DataGridSelectionCell,\n useDataGridSelectionCellStyles_unstable,\n useDataGridSelectionCell_unstable,\n renderDataGridSelectionCell_unstable,\n dataGridSelectionCellClassNames,\n} from './DataGridSelectionCell';\n\nexport type {\n DataGridSelectionCellProps,\n DataGridSelectionCellState,\n DataGridSelectionCellSlots,\n} from './DataGridSelectionCell';\n"],"mappings":"AAAA,SACEA,gBAAgB,EAChBC,iBAAiB,EACjBC,YAAY,EACZC,iBAAiB,EACjBC,6BAA6B,QACxB;AAiBP,SACEC,SAAS,EACTC,mBAAmB,EACnBC,kBAAkB,EAClBC,2BAA2B,EAC3BC,qBAAqB,EACrBC,wBAAwB,QACnB;AAGP,SACEC,QAAQ,EACRC,kBAAkB,EAClBC,iBAAiB,EACjBC,0BAA0B,EAC1BC,oBAAoB,EACpBC,uBAAuB,QAClB;AAGP,SACEC,SAAS,EACTC,kBAAkB,EAClBC,mBAAmB,EACnBC,2BAA2B,EAC3BC,qBAAqB,EACrBC,wBAAwB,QACnB;AAGP,SACEC,KAAK,EACLC,cAAc,EACdC,eAAe,EACfC,uBAAuB,EACvBC,iBAAiB,EACjBC,oBAAoB,QACf;AAGP,SACEC,WAAW,EACXC,qBAAqB,EACrBC,oBAAoB,EACpBC,6BAA6B,EAC7BC,uBAAuB,EACvBC,0BAA0B,QACrB;AAGP,SACEC,eAAe,EACfC,wBAAwB,EACxBC,yBAAyB,EACzBC,iCAAiC,EACjCC,2BAA2B,EAC3BC,8BAA8B,QACzB;AAGP,SACEC,iBAAiB,EACjBC,2BAA2B,EAC3BC,mCAAmC,EACnCC,6BAA6B,EAC7BC,gCAAgC,QAC3B;AAGP,SAASC,oBAAoB,EAAEC,eAAe,QAAQ;AACtD,SAASC,oBAAoB,EAAEC,yBAAyB,QAAQ;AAChE,SACEC,kBAAkB,EAClBC,oCAAoC,EACpCC,8BAA8B,EAC9BC,iCAAiC,EACjCC,4BAA4B,QACvB;AAGP,SACEC,gBAAgB,EAChBC,0BAA0B,EAC1BC,kCAAkC,EAClCC,4BAA4B,EAC5BC,+BAA+B,QAC1B;AAGP,SACEC,eAAe,EACfC,yBAAyB,EACzBC,iCAAiC,EACjCC,2BAA2B,EAC3BC,8BAA8B,QACzB;AAGP,SACEC,YAAY,EACZC,sBAAsB,EACtBC,8BAA8B,EAC9BC,wBAAwB,EACxBC,2BAA2B,QACtB;AAGP,SACEC,WAAW,EACXC,qBAAqB,EACrBC,6BAA6B,EAC7BC,uBAAuB,EACvBC,0BAA0B,QACrB;AAGP,SACEC,YAAY,EACZC,sBAAsB,EACtBC,8BAA8B,EAC9BC,wBAAwB,EACxBC,2BAA2B,QACtB;AAGP,SACEC,QAAQ,EACRC,kBAAkB,EAClBC,0BAA0B,EAC1BC,oBAAoB,EACpBC,uBAAuB,EACvBC,iCAAiC,QAC5B;AAUP,SACEC,cAAc,EACdC,wBAAwB,EACxBC,gCAAgC,EAChCC,0BAA0B,EAC1BC,6BAA6B,QACxB;AAGP,SACEC,kBAAkB,EAClBC,4BAA4B,EAC5BC,oCAAoC,EACpCC,8BAA8B,EAC9BC,iCAAiC,QAC5B;AAGP,SACEC,qBAAqB,EACrBC,uCAAuC,EACvCC,iCAAiC,EACjCC,oCAAoC,EACpCC,+BAA+B,QAC1B"}
1
+ {"version":3,"sources":["index.ts"],"sourcesContent":["export {\n useTableFeatures,\n useTableSelection,\n useTableSort,\n createTableColumn,\n useTableColumnSizing_unstable,\n} from './hooks';\n\nexport type {\n CreateTableColumnOptions,\n UseTableFeaturesOptions,\n TableColumnDefinition,\n TableColumnId,\n TableFeaturesState,\n TableRowData,\n TableRowId,\n TableSelectionState,\n TableSortState,\n TableFeaturePlugin,\n TableColumnSizingOptions,\n UseTableSelectionOptions,\n} from './hooks';\n\nexport {\n TableCell,\n tableCellClassNames,\n tableCellClassName,\n useTableCellStyles_unstable,\n useTableCell_unstable,\n renderTableCell_unstable,\n} from './TableCell';\nexport type { TableCellProps, TableCellState, TableCellSlots } from './TableCell';\n\nexport {\n TableRow,\n tableRowClassNames,\n tableRowClassName,\n useTableRowStyles_unstable,\n useTableRow_unstable,\n renderTableRow_unstable,\n} from './TableRow';\nexport type { TableRowProps, TableRowState, TableRowSlots } from './TableRow';\n\nexport {\n TableBody,\n tableBodyClassName,\n tableBodyClassNames,\n useTableBodyStyles_unstable,\n useTableBody_unstable,\n renderTableBody_unstable,\n} from './TableBody';\nexport type { TableBodyProps, TableBodyState, TableBodySlots } from './TableBody';\n\nexport {\n Table,\n tableClassName,\n tableClassNames,\n useTableStyles_unstable,\n useTable_unstable,\n renderTable_unstable,\n} from './Table';\nexport type { TableProps, TableSlots, TableState, TableContextValue, TableContextValues, SortDirection } from './Table';\n\nexport {\n TableHeader,\n tableHeaderClassNames,\n tableHeaderClassName,\n useTableHeaderStyles_unstable,\n useTableHeader_unstable,\n renderTableHeader_unstable,\n} from './TableHeader';\nexport type { TableHeaderProps, TableHeaderSlots, TableHeaderState } from './TableHeader';\n\nexport {\n TableHeaderCell,\n tableHeaderCellClassName,\n tableHeaderCellClassNames,\n useTableHeaderCellStyles_unstable,\n useTableHeaderCell_unstable,\n renderTableHeaderCell_unstable,\n} from './TableHeaderCell';\nexport type { TableHeaderCellProps, TableHeaderCellSlots, TableHeaderCellState } from './TableHeaderCell';\n\nexport {\n TableResizeHandle,\n tableResizeHandleClassNames,\n useTableResizeHandleStyles_unstable,\n useTableResizeHandle_unstable,\n renderTableResizeHandle_unstable,\n} from './TableResizeHandle';\nexport type { TableResizeHandleProps, TableResizeHandleSlots, TableResizeHandleState } from './TableResizeHandle';\n\nexport { TableContextProvider, useTableContext } from './contexts/tableContext';\nexport { useTableRowIdContext, TableRowIdContextProvider } from './contexts/rowIdContext';\nexport {\n TableSelectionCell,\n useTableSelectionCellStyles_unstable,\n useTableSelectionCell_unstable,\n renderTableSelectionCell_unstable,\n tableSelectionCellClassNames,\n} from './TableSelectionCell';\n\nexport type { TableSelectionCellProps, TableSelectionCellState, TableSelectionCellSlots } from './TableSelectionCell';\nexport {\n TableCellActions,\n tableCellActionsClassNames,\n useTableCellActionsStyles_unstable,\n useTableCellActions_unstable,\n renderTableCellActions_unstable,\n} from './TableCellActions';\n\nexport type { TableCellActionsProps, TableCellActionsSlots, TableCellActionsState } from './TableCellActions';\nexport {\n TableCellLayout,\n tableCellLayoutClassNames,\n useTableCellLayoutStyles_unstable,\n useTableCellLayout_unstable,\n renderTableCellLayout_unstable,\n} from './TableCellLayout';\nexport type { TableCellLayoutProps, TableCellLayoutSlots, TableCellLayoutState } from './TableCellLayout';\n\nexport {\n DataGridCell,\n dataGridCellClassNames,\n useDataGridCellStyles_unstable,\n useDataGridCell_unstable,\n renderDataGridCell_unstable,\n} from './DataGridCell';\nexport type { DataGridCellProps, DataGridCellState, DataGridCellSlots } from './DataGridCell';\n\nexport {\n DataGridRow,\n dataGridRowClassNames,\n useDataGridRowStyles_unstable,\n useDataGridRow_unstable,\n renderDataGridRow_unstable,\n} from './DataGridRow';\nexport type { DataGridRowProps, DataGridRowState, DataGridRowSlots, CellRenderFunction } from './DataGridRow';\n\nexport {\n DataGridBody,\n dataGridBodyClassNames,\n useDataGridBodyStyles_unstable,\n useDataGridBody_unstable,\n renderDataGridBody_unstable,\n} from './DataGridBody';\nexport type { DataGridBodyProps, DataGridBodyState, DataGridBodySlots, RowRenderFunction } from './DataGridBody';\n\nexport {\n DataGrid,\n dataGridClassNames,\n useDataGridStyles_unstable,\n useDataGrid_unstable,\n renderDataGrid_unstable,\n useDataGridContextValues_unstable,\n} from './DataGrid';\nexport type {\n DataGridProps,\n DataGridSlots,\n DataGridState,\n DataGridContextValues,\n DataGridContextValue,\n DataGridFocusMode,\n} from './DataGrid';\n\nexport {\n DataGridHeader,\n dataGridHeaderClassNames,\n useDataGridHeaderStyles_unstable,\n useDataGridHeader_unstable,\n renderDataGridHeader_unstable,\n} from './DataGridHeader';\nexport type { DataGridHeaderProps, DataGridHeaderSlots, DataGridHeaderState } from './DataGridHeader';\n\nexport {\n DataGridHeaderCell,\n dataGridHeaderCellClassNames,\n useDataGridHeaderCellStyles_unstable,\n useDataGridHeaderCell_unstable,\n renderDataGridHeaderCell_unstable,\n} from './DataGridHeaderCell';\nexport type { DataGridHeaderCellProps, DataGridHeaderCellSlots, DataGridHeaderCellState } from './DataGridHeaderCell';\n\nexport {\n DataGridSelectionCell,\n useDataGridSelectionCellStyles_unstable,\n useDataGridSelectionCell_unstable,\n renderDataGridSelectionCell_unstable,\n dataGridSelectionCellClassNames,\n} from './DataGridSelectionCell';\n\nexport type {\n DataGridSelectionCellProps,\n DataGridSelectionCellState,\n DataGridSelectionCellSlots,\n} from './DataGridSelectionCell';\n"],"names":["useTableFeatures","useTableSelection","useTableSort","createTableColumn","useTableColumnSizing_unstable","TableCell","tableCellClassNames","tableCellClassName","useTableCellStyles_unstable","useTableCell_unstable","renderTableCell_unstable","TableRow","tableRowClassNames","tableRowClassName","useTableRowStyles_unstable","useTableRow_unstable","renderTableRow_unstable","TableBody","tableBodyClassName","tableBodyClassNames","useTableBodyStyles_unstable","useTableBody_unstable","renderTableBody_unstable","Table","tableClassName","tableClassNames","useTableStyles_unstable","useTable_unstable","renderTable_unstable","TableHeader","tableHeaderClassNames","tableHeaderClassName","useTableHeaderStyles_unstable","useTableHeader_unstable","renderTableHeader_unstable","TableHeaderCell","tableHeaderCellClassName","tableHeaderCellClassNames","useTableHeaderCellStyles_unstable","useTableHeaderCell_unstable","renderTableHeaderCell_unstable","TableResizeHandle","tableResizeHandleClassNames","useTableResizeHandleStyles_unstable","useTableResizeHandle_unstable","renderTableResizeHandle_unstable","TableContextProvider","useTableContext","useTableRowIdContext","TableRowIdContextProvider","TableSelectionCell","useTableSelectionCellStyles_unstable","useTableSelectionCell_unstable","renderTableSelectionCell_unstable","tableSelectionCellClassNames","TableCellActions","tableCellActionsClassNames","useTableCellActionsStyles_unstable","useTableCellActions_unstable","renderTableCellActions_unstable","TableCellLayout","tableCellLayoutClassNames","useTableCellLayoutStyles_unstable","useTableCellLayout_unstable","renderTableCellLayout_unstable","DataGridCell","dataGridCellClassNames","useDataGridCellStyles_unstable","useDataGridCell_unstable","renderDataGridCell_unstable","DataGridRow","dataGridRowClassNames","useDataGridRowStyles_unstable","useDataGridRow_unstable","renderDataGridRow_unstable","DataGridBody","dataGridBodyClassNames","useDataGridBodyStyles_unstable","useDataGridBody_unstable","renderDataGridBody_unstable","DataGrid","dataGridClassNames","useDataGridStyles_unstable","useDataGrid_unstable","renderDataGrid_unstable","useDataGridContextValues_unstable","DataGridHeader","dataGridHeaderClassNames","useDataGridHeaderStyles_unstable","useDataGridHeader_unstable","renderDataGridHeader_unstable","DataGridHeaderCell","dataGridHeaderCellClassNames","useDataGridHeaderCellStyles_unstable","useDataGridHeaderCell_unstable","renderDataGridHeaderCell_unstable","DataGridSelectionCell","useDataGridSelectionCellStyles_unstable","useDataGridSelectionCell_unstable","renderDataGridSelectionCell_unstable","dataGridSelectionCellClassNames"],"mappings":"AAAA,SACEA,gBAAgB,EAChBC,iBAAiB,EACjBC,YAAY,EACZC,iBAAiB,EACjBC,6BAA6B,QACxB,UAAU;AAiBjB,SACEC,SAAS,EACTC,mBAAmB,EACnBC,kBAAkB,EAClBC,2BAA2B,EAC3BC,qBAAqB,EACrBC,wBAAwB,QACnB,cAAc;AAGrB,SACEC,QAAQ,EACRC,kBAAkB,EAClBC,iBAAiB,EACjBC,0BAA0B,EAC1BC,oBAAoB,EACpBC,uBAAuB,QAClB,aAAa;AAGpB,SACEC,SAAS,EACTC,kBAAkB,EAClBC,mBAAmB,EACnBC,2BAA2B,EAC3BC,qBAAqB,EACrBC,wBAAwB,QACnB,cAAc;AAGrB,SACEC,KAAK,EACLC,cAAc,EACdC,eAAe,EACfC,uBAAuB,EACvBC,iBAAiB,EACjBC,oBAAoB,QACf,UAAU;AAGjB,SACEC,WAAW,EACXC,qBAAqB,EACrBC,oBAAoB,EACpBC,6BAA6B,EAC7BC,uBAAuB,EACvBC,0BAA0B,QACrB,gBAAgB;AAGvB,SACEC,eAAe,EACfC,wBAAwB,EACxBC,yBAAyB,EACzBC,iCAAiC,EACjCC,2BAA2B,EAC3BC,8BAA8B,QACzB,oBAAoB;AAG3B,SACEC,iBAAiB,EACjBC,2BAA2B,EAC3BC,mCAAmC,EACnCC,6BAA6B,EAC7BC,gCAAgC,QAC3B,sBAAsB;AAG7B,SAASC,oBAAoB,EAAEC,eAAe,QAAQ,0BAA0B;AAChF,SAASC,oBAAoB,EAAEC,yBAAyB,QAAQ,0BAA0B;AAC1F,SACEC,kBAAkB,EAClBC,oCAAoC,EACpCC,8BAA8B,EAC9BC,iCAAiC,EACjCC,4BAA4B,QACvB,uBAAuB;AAG9B,SACEC,gBAAgB,EAChBC,0BAA0B,EAC1BC,kCAAkC,EAClCC,4BAA4B,EAC5BC,+BAA+B,QAC1B,qBAAqB;AAG5B,SACEC,eAAe,EACfC,yBAAyB,EACzBC,iCAAiC,EACjCC,2BAA2B,EAC3BC,8BAA8B,QACzB,oBAAoB;AAG3B,SACEC,YAAY,EACZC,sBAAsB,EACtBC,8BAA8B,EAC9BC,wBAAwB,EACxBC,2BAA2B,QACtB,iBAAiB;AAGxB,SACEC,WAAW,EACXC,qBAAqB,EACrBC,6BAA6B,EAC7BC,uBAAuB,EACvBC,0BAA0B,QACrB,gBAAgB;AAGvB,SACEC,YAAY,EACZC,sBAAsB,EACtBC,8BAA8B,EAC9BC,wBAAwB,EACxBC,2BAA2B,QACtB,iBAAiB;AAGxB,SACEC,QAAQ,EACRC,kBAAkB,EAClBC,0BAA0B,EAC1BC,oBAAoB,EACpBC,uBAAuB,EACvBC,iCAAiC,QAC5B,aAAa;AAUpB,SACEC,cAAc,EACdC,wBAAwB,EACxBC,gCAAgC,EAChCC,0BAA0B,EAC1BC,6BAA6B,QACxB,mBAAmB;AAG1B,SACEC,kBAAkB,EAClBC,4BAA4B,EAC5BC,oCAAoC,EACpCC,8BAA8B,EAC9BC,iCAAiC,QAC5B,uBAAuB;AAG9B,SACEC,qBAAqB,EACrBC,uCAAuC,EACvCC,iCAAiC,EACjCC,oCAAoC,EACpCC,+BAA+B,QAC1B,0BAA0B"}
@@ -9,76 +9,69 @@ const DEFAULT_MIN_WIDTH = 100;
9
9
  * @param columns
10
10
  * @param state
11
11
  * @returns
12
- */
13
- export function columnDefinitionsToState(columns, state = [], columnSizingOptions = {}) {
14
- let updated = false;
15
- const stateMap = new Map(state.map(s => [s.columnId, s]));
16
- const updatedState = columns.map(column => {
17
- const existingColumnState = stateMap.get(column.columnId);
18
- if (existingColumnState) {
19
- var _columnSizingOptions_column_columnId;
20
- const {
21
- idealWidth = existingColumnState.idealWidth,
22
- minWidth = existingColumnState.minWidth,
23
- padding = existingColumnState.padding
24
- } = (_columnSizingOptions_column_columnId = columnSizingOptions[column.columnId]) !== null && _columnSizingOptions_column_columnId !== void 0 ? _columnSizingOptions_column_columnId : {};
25
- if (idealWidth !== existingColumnState.idealWidth || minWidth !== existingColumnState.minWidth || padding !== existingColumnState.padding) {
12
+ */ export function columnDefinitionsToState(columns, state = [], columnSizingOptions = {}) {
13
+ let updated = false;
14
+ const stateMap = new Map(state.map((s)=>[
15
+ s.columnId,
16
+ s
17
+ ]));
18
+ const updatedState = columns.map((column)=>{
19
+ const existingColumnState = stateMap.get(column.columnId);
20
+ if (existingColumnState) {
21
+ var _columnSizingOptions_column_columnId;
22
+ const { idealWidth =existingColumnState.idealWidth , minWidth =existingColumnState.minWidth , padding =existingColumnState.padding } = (_columnSizingOptions_column_columnId = columnSizingOptions[column.columnId]) !== null && _columnSizingOptions_column_columnId !== void 0 ? _columnSizingOptions_column_columnId : {};
23
+ if (idealWidth !== existingColumnState.idealWidth || minWidth !== existingColumnState.minWidth || padding !== existingColumnState.padding) {
24
+ updated = true;
25
+ return {
26
+ ...existingColumnState,
27
+ idealWidth,
28
+ width: idealWidth,
29
+ minWidth,
30
+ padding
31
+ };
32
+ }
33
+ return existingColumnState;
34
+ }
35
+ var _columnSizingOptions_column_columnId1;
36
+ const { defaultWidth , idealWidth =DEFAULT_WIDTH , minWidth =DEFAULT_MIN_WIDTH , padding } = (_columnSizingOptions_column_columnId1 = columnSizingOptions[column.columnId]) !== null && _columnSizingOptions_column_columnId1 !== void 0 ? _columnSizingOptions_column_columnId1 : {};
26
37
  updated = true;
27
38
  return {
28
- ...existingColumnState,
29
- idealWidth,
30
- width: idealWidth,
31
- minWidth,
32
- padding
39
+ columnId: column.columnId,
40
+ width: Math.max(defaultWidth !== null && defaultWidth !== void 0 ? defaultWidth : idealWidth, minWidth),
41
+ minWidth,
42
+ idealWidth: Math.max(defaultWidth !== null && defaultWidth !== void 0 ? defaultWidth : idealWidth, minWidth),
43
+ padding: padding !== null && padding !== void 0 ? padding : 16
33
44
  };
34
- }
35
- return existingColumnState;
36
- }
37
- var _columnSizingOptions_column_columnId1;
38
- const {
39
- defaultWidth,
40
- idealWidth = DEFAULT_WIDTH,
41
- minWidth = DEFAULT_MIN_WIDTH,
42
- padding
43
- } = (_columnSizingOptions_column_columnId1 = columnSizingOptions[column.columnId]) !== null && _columnSizingOptions_column_columnId1 !== void 0 ? _columnSizingOptions_column_columnId1 : {};
44
- updated = true;
45
- return {
46
- columnId: column.columnId,
47
- width: Math.max(defaultWidth !== null && defaultWidth !== void 0 ? defaultWidth : idealWidth, minWidth),
48
- minWidth,
49
- idealWidth: Math.max(defaultWidth !== null && defaultWidth !== void 0 ? defaultWidth : idealWidth, minWidth),
50
- padding: padding !== null && padding !== void 0 ? padding : 16
51
- };
52
- });
53
- // If the length of the new state changed (column was added or removed) or any of
54
- // the individual states has a new reference (column was replaced),
55
- // we have to reset the column widths to their ideal width (because the column which was last may not be last now).
56
- // Then the adjustColumnWidthsToFitContainer can do its job and properly stretch the last column.
57
- if (updatedState.length !== state.length || updated) {
58
- const column = updatedState.find(col => col.width > col.idealWidth);
59
- if (column) {
60
- column.width = column.idealWidth;
45
+ });
46
+ // If the length of the new state changed (column was added or removed) or any of
47
+ // the individual states has a new reference (column was replaced),
48
+ // we have to reset the column widths to their ideal width (because the column which was last may not be last now).
49
+ // Then the adjustColumnWidthsToFitContainer can do its job and properly stretch the last column.
50
+ if (updatedState.length !== state.length || updated) {
51
+ const column = updatedState.find((col)=>col.width > col.idealWidth);
52
+ if (column) {
53
+ column.width = column.idealWidth;
54
+ }
55
+ updated = true;
61
56
  }
62
- updated = true;
63
- }
64
- return updated ? updatedState : state;
57
+ return updated ? updatedState : state;
65
58
  }
66
59
  export function getColumnById(state, columnId) {
67
- return state.find(c => c.columnId === columnId);
60
+ return state.find((c)=>c.columnId === columnId);
68
61
  }
69
62
  export function getColumnByIndex(state, index) {
70
- return state[index];
63
+ return state[index];
71
64
  }
72
65
  export function getTotalWidth(state) {
73
- return state.reduce((sum, column) => sum + column.width + column.padding, 0);
66
+ return state.reduce((sum, column)=>sum + column.width + column.padding, 0);
74
67
  }
75
68
  export function getLength(state) {
76
- return state.length;
69
+ return state.length;
77
70
  }
78
71
  export function getColumnWidth(state, columnId) {
79
- const column = getColumnById(state, columnId);
80
- var _column_width;
81
- return (_column_width = column === null || column === void 0 ? void 0 : column.width) !== null && _column_width !== void 0 ? _column_width : 0;
72
+ const column = getColumnById(state, columnId);
73
+ var _column_width;
74
+ return (_column_width = column === null || column === void 0 ? void 0 : column.width) !== null && _column_width !== void 0 ? _column_width : 0;
82
75
  }
83
76
  /**
84
77
  * This function takes the current state and returns an updated state, so that it can be set.
@@ -91,23 +84,28 @@ export function getColumnWidth(state, columnId) {
91
84
  * @param property
92
85
  * @param value
93
86
  * @returns
94
- */
95
- export function setColumnProperty(localState, columnId, property, value) {
96
- const currentColumn = getColumnById(localState, columnId);
97
- if (!currentColumn || (currentColumn === null || currentColumn === void 0 ? void 0 : currentColumn[property]) === value) {
98
- return localState;
99
- }
100
- const updatedColumn = {
101
- ...currentColumn,
102
- [property]: value
103
- };
104
- const newState = localState.reduce((acc, current) => {
105
- if (current.columnId === updatedColumn.columnId) {
106
- return [...acc, updatedColumn];
87
+ */ export function setColumnProperty(localState, columnId, property, value) {
88
+ const currentColumn = getColumnById(localState, columnId);
89
+ if (!currentColumn || (currentColumn === null || currentColumn === void 0 ? void 0 : currentColumn[property]) === value) {
90
+ return localState;
107
91
  }
108
- return [...acc, current];
109
- }, []);
110
- return newState;
92
+ const updatedColumn = {
93
+ ...currentColumn,
94
+ [property]: value
95
+ };
96
+ const newState = localState.reduce((acc, current)=>{
97
+ if (current.columnId === updatedColumn.columnId) {
98
+ return [
99
+ ...acc,
100
+ updatedColumn
101
+ ];
102
+ }
103
+ return [
104
+ ...acc,
105
+ current
106
+ ];
107
+ }, []);
108
+ return newState;
111
109
  }
112
110
  /**
113
111
  * This function takes the state and container width and makes sure the each column in the state
@@ -117,41 +115,39 @@ export function setColumnProperty(localState, columnId, property, value) {
117
115
  * @param state
118
116
  * @param containerWidth
119
117
  * @returns
120
- */
121
- export function adjustColumnWidthsToFitContainer(state, containerWidth) {
122
- let newState = state;
123
- const totalWidth = getTotalWidth(newState);
124
- // The total width is smaller, we are expanding columns
125
- if (totalWidth < containerWidth) {
126
- let difference = containerWidth - totalWidth;
127
- let i = 0;
128
- // We start at the beginning and assign the columns their ideal width
129
- while (i < newState.length && difference > 0) {
130
- const currentCol = getColumnByIndex(newState, i);
131
- const colAdjustment = Math.min(currentCol.idealWidth - currentCol.width, difference);
132
- newState = setColumnProperty(newState, currentCol.columnId, 'width', currentCol.width + colAdjustment);
133
- difference -= colAdjustment;
134
- // if there is still empty space, after all columns are their ideal sizes, assign it to the last column
135
- if (i === newState.length - 1 && difference !== 0) {
136
- const lastCol = getColumnByIndex(newState, i);
137
- newState = setColumnProperty(newState, lastCol.columnId, 'width', lastCol.width + difference);
138
- }
139
- i++;
140
- }
141
- } else if (totalWidth >= containerWidth) {
142
- let difference = totalWidth - containerWidth;
143
- // We start with the last column
144
- let j = newState.length - 1;
145
- while (j >= 0 && difference > 0) {
146
- const currentCol = getColumnByIndex(newState, j);
147
- if (currentCol.width > currentCol.minWidth) {
148
- const colAdjustment = Math.min(currentCol.width - currentCol.minWidth, difference);
149
- difference -= colAdjustment;
150
- newState = setColumnProperty(newState, currentCol.columnId, 'width', currentCol.width - colAdjustment);
151
- }
152
- j--;
118
+ */ export function adjustColumnWidthsToFitContainer(state, containerWidth) {
119
+ let newState = state;
120
+ const totalWidth = getTotalWidth(newState);
121
+ // The total width is smaller, we are expanding columns
122
+ if (totalWidth < containerWidth) {
123
+ let difference = containerWidth - totalWidth;
124
+ let i = 0;
125
+ // We start at the beginning and assign the columns their ideal width
126
+ while(i < newState.length && difference > 0){
127
+ const currentCol = getColumnByIndex(newState, i);
128
+ const colAdjustment = Math.min(currentCol.idealWidth - currentCol.width, difference);
129
+ newState = setColumnProperty(newState, currentCol.columnId, 'width', currentCol.width + colAdjustment);
130
+ difference -= colAdjustment;
131
+ // if there is still empty space, after all columns are their ideal sizes, assign it to the last column
132
+ if (i === newState.length - 1 && difference !== 0) {
133
+ const lastCol = getColumnByIndex(newState, i);
134
+ newState = setColumnProperty(newState, lastCol.columnId, 'width', lastCol.width + difference);
135
+ }
136
+ i++;
137
+ }
138
+ } else if (totalWidth >= containerWidth) {
139
+ let difference = totalWidth - containerWidth;
140
+ // We start with the last column
141
+ let j = newState.length - 1;
142
+ while(j >= 0 && difference > 0){
143
+ const currentCol = getColumnByIndex(newState, j);
144
+ if (currentCol.width > currentCol.minWidth) {
145
+ const colAdjustment = Math.min(currentCol.width - currentCol.minWidth, difference);
146
+ difference -= colAdjustment;
147
+ newState = setColumnProperty(newState, currentCol.columnId, 'width', currentCol.width - colAdjustment);
148
+ }
149
+ j--;
150
+ }
153
151
  }
154
- }
155
- return newState;
152
+ return newState;
156
153
  }
157
- //# sourceMappingURL=columnResizeUtils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DEFAULT_WIDTH","DEFAULT_MIN_WIDTH","columnDefinitionsToState","columns","state","columnSizingOptions","updated","stateMap","Map","map","s","columnId","updatedState","column","existingColumnState","get","_columnSizingOptions_column_columnId","idealWidth","minWidth","padding","width","_columnSizingOptions_column_columnId1","defaultWidth","Math","max","length","find","col","getColumnById","c","getColumnByIndex","index","getTotalWidth","reduce","sum","getLength","getColumnWidth","_column_width","setColumnProperty","localState","property","value","currentColumn","updatedColumn","newState","acc","current","adjustColumnWidthsToFitContainer","containerWidth","totalWidth","difference","i","currentCol","colAdjustment","min","lastCol","j"],"sources":["../../src/utils/columnResizeUtils.ts"],"sourcesContent":["import { TableColumnDefinition, ColumnWidthState, TableColumnId, TableColumnSizingOptions } from '../hooks';\n\nconst DEFAULT_WIDTH = 150;\nconst DEFAULT_MIN_WIDTH = 100;\n\n/**\n * This function takes the column definitions and the curent ColumnWidthState and returns new state.\n * - It uses existing state for existing columns.\n * - It removes any state for columns no longer present.\n * - It checks if any column has been replaced and returns updated state if so\n * - It returns old state if no changes in the state have been made (so that react doesn't call effects)\n * @param columns\n * @param state\n * @returns\n */\n\nexport function columnDefinitionsToState<T>(\n columns: TableColumnDefinition<T>[],\n state: ColumnWidthState[] = [],\n columnSizingOptions: TableColumnSizingOptions = {},\n): ColumnWidthState[] {\n let updated = false;\n const stateMap = new Map(state.map(s => [s.columnId, s]));\n\n const updatedState = columns.map(column => {\n const existingColumnState = stateMap.get(column.columnId);\n\n if (existingColumnState) {\n const {\n idealWidth = existingColumnState.idealWidth,\n minWidth = existingColumnState.minWidth,\n padding = existingColumnState.padding,\n } = columnSizingOptions[column.columnId] ?? {};\n\n if (\n idealWidth !== existingColumnState.idealWidth ||\n minWidth !== existingColumnState.minWidth ||\n padding !== existingColumnState.padding\n ) {\n updated = true;\n return {\n ...existingColumnState,\n idealWidth,\n width: idealWidth,\n minWidth,\n padding,\n };\n }\n return existingColumnState;\n }\n\n const {\n defaultWidth,\n idealWidth = DEFAULT_WIDTH,\n minWidth = DEFAULT_MIN_WIDTH,\n padding,\n } = columnSizingOptions[column.columnId] ?? {};\n\n updated = true;\n return {\n columnId: column.columnId,\n width: Math.max(defaultWidth ?? idealWidth, minWidth),\n minWidth,\n idealWidth: Math.max(defaultWidth ?? idealWidth, minWidth),\n padding: padding ?? 16,\n };\n });\n\n // If the length of the new state changed (column was added or removed) or any of\n // the individual states has a new reference (column was replaced),\n // we have to reset the column widths to their ideal width (because the column which was last may not be last now).\n // Then the adjustColumnWidthsToFitContainer can do its job and properly stretch the last column.\n if (updatedState.length !== state.length || updated) {\n const column = updatedState.find(col => col.width > col.idealWidth);\n if (column) {\n column.width = column.idealWidth;\n }\n\n updated = true;\n }\n\n return updated ? updatedState : state;\n}\n\nexport function getColumnById(state: ColumnWidthState[], columnId: TableColumnId) {\n return state.find(c => c.columnId === columnId);\n}\n\nexport function getColumnByIndex(state: ColumnWidthState[], index: number) {\n return state[index];\n}\n\nexport function getTotalWidth(state: ColumnWidthState[]): number {\n return state.reduce((sum, column) => sum + column.width + column.padding, 0);\n}\n\nexport function getLength(state: ColumnWidthState[]) {\n return state.length;\n}\n\nexport function getColumnWidth(state: ColumnWidthState[], columnId: TableColumnId): number {\n const column = getColumnById(state, columnId);\n return column?.width ?? 0;\n}\n\n/**\n * This function takes the current state and returns an updated state, so that it can be set.\n * The reason for this is that we can update the state multiple times before commiting to render.\n * This is an optimization and also prevents flickering.\n * It also returns new copy of the state only if the value is different than the one currently in\n * the state, further preventing unnecessary updates.\n * @param localState\n * @param columnId\n * @param property\n * @param value\n * @returns\n */\nexport function setColumnProperty(\n localState: ColumnWidthState[],\n columnId: TableColumnId,\n property: keyof ColumnWidthState,\n value: number,\n) {\n const currentColumn = getColumnById(localState, columnId);\n\n if (!currentColumn || currentColumn?.[property] === value) {\n return localState;\n }\n\n const updatedColumn = { ...currentColumn, [property]: value };\n\n const newState = localState.reduce((acc, current) => {\n if (current.columnId === updatedColumn.columnId) {\n return [...acc, updatedColumn];\n }\n return [...acc, current];\n }, [] as ColumnWidthState[]);\n\n return newState;\n}\n\n/**\n * This function takes the state and container width and makes sure the each column in the state\n * is its optimal width, and that the columns\n * a) fit to the container\n * b) always fill the whole container\n * @param state\n * @param containerWidth\n * @returns\n */\nexport function adjustColumnWidthsToFitContainer(state: ColumnWidthState[], containerWidth: number) {\n let newState = state;\n const totalWidth = getTotalWidth(newState);\n\n // The total width is smaller, we are expanding columns\n if (totalWidth < containerWidth) {\n let difference = containerWidth - totalWidth;\n let i = 0;\n // We start at the beginning and assign the columns their ideal width\n while (i < newState.length && difference > 0) {\n const currentCol = getColumnByIndex(newState, i);\n const colAdjustment = Math.min(currentCol.idealWidth - currentCol.width, difference);\n newState = setColumnProperty(newState, currentCol.columnId, 'width', currentCol.width + colAdjustment);\n difference -= colAdjustment;\n\n // if there is still empty space, after all columns are their ideal sizes, assign it to the last column\n if (i === newState.length - 1 && difference !== 0) {\n const lastCol = getColumnByIndex(newState, i);\n newState = setColumnProperty(newState, lastCol.columnId, 'width', lastCol.width + difference);\n }\n\n i++;\n }\n }\n\n // The total width is larger than container, we need to squash the columns\n else if (totalWidth >= containerWidth) {\n let difference = totalWidth - containerWidth;\n // We start with the last column\n let j = newState.length - 1;\n while (j >= 0 && difference > 0) {\n const currentCol = getColumnByIndex(newState, j);\n if (currentCol.width > currentCol.minWidth) {\n const colAdjustment = Math.min(currentCol.width - currentCol.minWidth, difference);\n difference -= colAdjustment;\n newState = setColumnProperty(newState, currentCol.columnId, 'width', currentCol.width - colAdjustment);\n }\n j--;\n }\n }\n\n return newState;\n}\n"],"mappings":"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"}
1
+ {"version":3,"sources":["columnResizeUtils.ts"],"sourcesContent":["import { TableColumnDefinition, ColumnWidthState, TableColumnId, TableColumnSizingOptions } from '../hooks';\n\nconst DEFAULT_WIDTH = 150;\nconst DEFAULT_MIN_WIDTH = 100;\n\n/**\n * This function takes the column definitions and the curent ColumnWidthState and returns new state.\n * - It uses existing state for existing columns.\n * - It removes any state for columns no longer present.\n * - It checks if any column has been replaced and returns updated state if so\n * - It returns old state if no changes in the state have been made (so that react doesn't call effects)\n * @param columns\n * @param state\n * @returns\n */\n\nexport function columnDefinitionsToState<T>(\n columns: TableColumnDefinition<T>[],\n state: ColumnWidthState[] = [],\n columnSizingOptions: TableColumnSizingOptions = {},\n): ColumnWidthState[] {\n let updated = false;\n const stateMap = new Map(state.map(s => [s.columnId, s]));\n\n const updatedState = columns.map(column => {\n const existingColumnState = stateMap.get(column.columnId);\n\n if (existingColumnState) {\n const {\n idealWidth = existingColumnState.idealWidth,\n minWidth = existingColumnState.minWidth,\n padding = existingColumnState.padding,\n } = columnSizingOptions[column.columnId] ?? {};\n\n if (\n idealWidth !== existingColumnState.idealWidth ||\n minWidth !== existingColumnState.minWidth ||\n padding !== existingColumnState.padding\n ) {\n updated = true;\n return {\n ...existingColumnState,\n idealWidth,\n width: idealWidth,\n minWidth,\n padding,\n };\n }\n return existingColumnState;\n }\n\n const {\n defaultWidth,\n idealWidth = DEFAULT_WIDTH,\n minWidth = DEFAULT_MIN_WIDTH,\n padding,\n } = columnSizingOptions[column.columnId] ?? {};\n\n updated = true;\n return {\n columnId: column.columnId,\n width: Math.max(defaultWidth ?? idealWidth, minWidth),\n minWidth,\n idealWidth: Math.max(defaultWidth ?? idealWidth, minWidth),\n padding: padding ?? 16,\n };\n });\n\n // If the length of the new state changed (column was added or removed) or any of\n // the individual states has a new reference (column was replaced),\n // we have to reset the column widths to their ideal width (because the column which was last may not be last now).\n // Then the adjustColumnWidthsToFitContainer can do its job and properly stretch the last column.\n if (updatedState.length !== state.length || updated) {\n const column = updatedState.find(col => col.width > col.idealWidth);\n if (column) {\n column.width = column.idealWidth;\n }\n\n updated = true;\n }\n\n return updated ? updatedState : state;\n}\n\nexport function getColumnById(state: ColumnWidthState[], columnId: TableColumnId) {\n return state.find(c => c.columnId === columnId);\n}\n\nexport function getColumnByIndex(state: ColumnWidthState[], index: number) {\n return state[index];\n}\n\nexport function getTotalWidth(state: ColumnWidthState[]): number {\n return state.reduce((sum, column) => sum + column.width + column.padding, 0);\n}\n\nexport function getLength(state: ColumnWidthState[]) {\n return state.length;\n}\n\nexport function getColumnWidth(state: ColumnWidthState[], columnId: TableColumnId): number {\n const column = getColumnById(state, columnId);\n return column?.width ?? 0;\n}\n\n/**\n * This function takes the current state and returns an updated state, so that it can be set.\n * The reason for this is that we can update the state multiple times before commiting to render.\n * This is an optimization and also prevents flickering.\n * It also returns new copy of the state only if the value is different than the one currently in\n * the state, further preventing unnecessary updates.\n * @param localState\n * @param columnId\n * @param property\n * @param value\n * @returns\n */\nexport function setColumnProperty(\n localState: ColumnWidthState[],\n columnId: TableColumnId,\n property: keyof ColumnWidthState,\n value: number,\n) {\n const currentColumn = getColumnById(localState, columnId);\n\n if (!currentColumn || currentColumn?.[property] === value) {\n return localState;\n }\n\n const updatedColumn = { ...currentColumn, [property]: value };\n\n const newState = localState.reduce((acc, current) => {\n if (current.columnId === updatedColumn.columnId) {\n return [...acc, updatedColumn];\n }\n return [...acc, current];\n }, [] as ColumnWidthState[]);\n\n return newState;\n}\n\n/**\n * This function takes the state and container width and makes sure the each column in the state\n * is its optimal width, and that the columns\n * a) fit to the container\n * b) always fill the whole container\n * @param state\n * @param containerWidth\n * @returns\n */\nexport function adjustColumnWidthsToFitContainer(state: ColumnWidthState[], containerWidth: number) {\n let newState = state;\n const totalWidth = getTotalWidth(newState);\n\n // The total width is smaller, we are expanding columns\n if (totalWidth < containerWidth) {\n let difference = containerWidth - totalWidth;\n let i = 0;\n // We start at the beginning and assign the columns their ideal width\n while (i < newState.length && difference > 0) {\n const currentCol = getColumnByIndex(newState, i);\n const colAdjustment = Math.min(currentCol.idealWidth - currentCol.width, difference);\n newState = setColumnProperty(newState, currentCol.columnId, 'width', currentCol.width + colAdjustment);\n difference -= colAdjustment;\n\n // if there is still empty space, after all columns are their ideal sizes, assign it to the last column\n if (i === newState.length - 1 && difference !== 0) {\n const lastCol = getColumnByIndex(newState, i);\n newState = setColumnProperty(newState, lastCol.columnId, 'width', lastCol.width + difference);\n }\n\n i++;\n }\n }\n\n // The total width is larger than container, we need to squash the columns\n else if (totalWidth >= containerWidth) {\n let difference = totalWidth - containerWidth;\n // We start with the last column\n let j = newState.length - 1;\n while (j >= 0 && difference > 0) {\n const currentCol = getColumnByIndex(newState, j);\n if (currentCol.width > currentCol.minWidth) {\n const colAdjustment = Math.min(currentCol.width - currentCol.minWidth, difference);\n difference -= colAdjustment;\n newState = setColumnProperty(newState, currentCol.columnId, 'width', currentCol.width - colAdjustment);\n }\n j--;\n }\n }\n\n return newState;\n}\n"],"names":["DEFAULT_WIDTH","DEFAULT_MIN_WIDTH","columnDefinitionsToState","columns","state","columnSizingOptions","updated","stateMap","Map","map","s","columnId","updatedState","column","existingColumnState","get","idealWidth","minWidth","padding","width","defaultWidth","Math","max","length","find","col","getColumnById","c","getColumnByIndex","index","getTotalWidth","reduce","sum","getLength","getColumnWidth","setColumnProperty","localState","property","value","currentColumn","updatedColumn","newState","acc","current","adjustColumnWidthsToFitContainer","containerWidth","totalWidth","difference","i","currentCol","colAdjustment","min","lastCol","j"],"mappings":"AAEA,MAAMA,gBAAgB;AACtB,MAAMC,oBAAoB;AAE1B;;;;;;;;;CASC,GAED,OAAO,SAASC,yBACdC,OAAmC,EACnCC,QAA4B,EAAE,EAC9BC,sBAAgD,CAAC,CAAC,EAC9B;IACpB,IAAIC,UAAU,KAAK;IACnB,MAAMC,WAAW,IAAIC,IAAIJ,MAAMK,GAAG,CAACC,CAAAA,IAAK;YAACA,EAAEC,QAAQ;YAAED;SAAE;IAEvD,MAAME,eAAeT,QAAQM,GAAG,CAACI,CAAAA,SAAU;QACzC,MAAMC,sBAAsBP,SAASQ,GAAG,CAACF,OAAOF,QAAQ;QAExD,IAAIG,qBAAqB;gBAKnBT;YAJJ,MAAM,EACJW,YAAaF,oBAAoBE,UAAU,CAAA,EAC3CC,UAAWH,oBAAoBG,QAAQ,CAAA,EACvCC,SAAUJ,oBAAoBI,OAAO,CAAA,EACtC,GAAGb,CAAAA,uCAAAA,mBAAmB,CAACQ,OAAOF,QAAQ,CAAC,cAApCN,kDAAAA,uCAAwC,CAAC,CAAC;YAE9C,IACEW,eAAeF,oBAAoBE,UAAU,IAC7CC,aAAaH,oBAAoBG,QAAQ,IACzCC,YAAYJ,oBAAoBI,OAAO,EACvC;gBACAZ,UAAU,IAAI;gBACd,OAAO;oBACL,GAAGQ,mBAAmB;oBACtBE;oBACAG,OAAOH;oBACPC;oBACAC;gBACF;YACF,CAAC;YACD,OAAOJ;QACT,CAAC;YAOGT;QALJ,MAAM,EACJe,aAAY,EACZJ,YAAahB,cAAa,EAC1BiB,UAAWhB,kBAAiB,EAC5BiB,QAAO,EACR,GAAGb,CAAAA,wCAAAA,mBAAmB,CAACQ,OAAOF,QAAQ,CAAC,cAApCN,mDAAAA,wCAAwC,CAAC,CAAC;QAE9CC,UAAU,IAAI;QACd,OAAO;YACLK,UAAUE,OAAOF,QAAQ;YACzBQ,OAAOE,KAAKC,GAAG,CAACF,yBAAAA,0BAAAA,eAAgBJ,UAAU,EAAEC;YAC5CA;YACAD,YAAYK,KAAKC,GAAG,CAACF,yBAAAA,0BAAAA,eAAgBJ,UAAU,EAAEC;YACjDC,SAASA,oBAAAA,qBAAAA,UAAW,EAAE;QACxB;IACF;IAEA,iFAAiF;IACjF,mEAAmE;IACnE,mHAAmH;IACnH,iGAAiG;IACjG,IAAIN,aAAaW,MAAM,KAAKnB,MAAMmB,MAAM,IAAIjB,SAAS;QACnD,MAAMO,SAASD,aAAaY,IAAI,CAACC,CAAAA,MAAOA,IAAIN,KAAK,GAAGM,IAAIT,UAAU;QAClE,IAAIH,QAAQ;YACVA,OAAOM,KAAK,GAAGN,OAAOG,UAAU;QAClC,CAAC;QAEDV,UAAU,IAAI;IAChB,CAAC;IAED,OAAOA,UAAUM,eAAeR,KAAK;AACvC,CAAC;AAED,OAAO,SAASsB,cAActB,KAAyB,EAAEO,QAAuB,EAAE;IAChF,OAAOP,MAAMoB,IAAI,CAACG,CAAAA,IAAKA,EAAEhB,QAAQ,KAAKA;AACxC,CAAC;AAED,OAAO,SAASiB,iBAAiBxB,KAAyB,EAAEyB,KAAa,EAAE;IACzE,OAAOzB,KAAK,CAACyB,MAAM;AACrB,CAAC;AAED,OAAO,SAASC,cAAc1B,KAAyB,EAAU;IAC/D,OAAOA,MAAM2B,MAAM,CAAC,CAACC,KAAKnB,SAAWmB,MAAMnB,OAAOM,KAAK,GAAGN,OAAOK,OAAO,EAAE;AAC5E,CAAC;AAED,OAAO,SAASe,UAAU7B,KAAyB,EAAE;IACnD,OAAOA,MAAMmB,MAAM;AACrB,CAAC;AAED,OAAO,SAASW,eAAe9B,KAAyB,EAAEO,QAAuB,EAAU;IACzF,MAAME,SAASa,cAActB,OAAOO;QAC7BE;IAAP,OAAOA,CAAAA,gBAAAA,mBAAAA,oBAAAA,KAAAA,IAAAA,OAAQM,KAAK,cAAbN,2BAAAA,gBAAiB,CAAC;AAC3B,CAAC;AAED;;;;;;;;;;;CAWC,GACD,OAAO,SAASsB,kBACdC,UAA8B,EAC9BzB,QAAuB,EACvB0B,QAAgC,EAChCC,KAAa,EACb;IACA,MAAMC,gBAAgBb,cAAcU,YAAYzB;IAEhD,IAAI,CAAC4B,iBAAiBA,CAAAA,0BAAAA,2BAAAA,KAAAA,IAAAA,aAAe,CAACF,SAAS,AAAD,MAAMC,OAAO;QACzD,OAAOF;IACT,CAAC;IAED,MAAMI,gBAAgB;QAAE,GAAGD,aAAa;QAAE,CAACF,SAAS,EAAEC;IAAM;IAE5D,MAAMG,WAAWL,WAAWL,MAAM,CAAC,CAACW,KAAKC,UAAY;QACnD,IAAIA,QAAQhC,QAAQ,KAAK6B,cAAc7B,QAAQ,EAAE;YAC/C,OAAO;mBAAI+B;gBAAKF;aAAc;QAChC,CAAC;QACD,OAAO;eAAIE;YAAKC;SAAQ;IAC1B,GAAG,EAAE;IAEL,OAAOF;AACT,CAAC;AAED;;;;;;;;CAQC,GACD,OAAO,SAASG,iCAAiCxC,KAAyB,EAAEyC,cAAsB,EAAE;IAClG,IAAIJ,WAAWrC;IACf,MAAM0C,aAAahB,cAAcW;IAEjC,uDAAuD;IACvD,IAAIK,aAAaD,gBAAgB;QAC/B,IAAIE,aAAaF,iBAAiBC;QAClC,IAAIE,IAAI;QACR,qEAAqE;QACrE,MAAOA,IAAIP,SAASlB,MAAM,IAAIwB,aAAa,EAAG;YAC5C,MAAME,aAAarB,iBAAiBa,UAAUO;YAC9C,MAAME,gBAAgB7B,KAAK8B,GAAG,CAACF,WAAWjC,UAAU,GAAGiC,WAAW9B,KAAK,EAAE4B;YACzEN,WAAWN,kBAAkBM,UAAUQ,WAAWtC,QAAQ,EAAE,SAASsC,WAAW9B,KAAK,GAAG+B;YACxFH,cAAcG;YAEd,uGAAuG;YACvG,IAAIF,MAAMP,SAASlB,MAAM,GAAG,KAAKwB,eAAe,GAAG;gBACjD,MAAMK,UAAUxB,iBAAiBa,UAAUO;gBAC3CP,WAAWN,kBAAkBM,UAAUW,QAAQzC,QAAQ,EAAE,SAASyC,QAAQjC,KAAK,GAAG4B;YACpF,CAAC;YAEDC;QACF;IACF,OAGK,IAAIF,cAAcD,gBAAgB;QACrC,IAAIE,aAAaD,aAAaD;QAC9B,gCAAgC;QAChC,IAAIQ,IAAIZ,SAASlB,MAAM,GAAG;QAC1B,MAAO8B,KAAK,KAAKN,aAAa,EAAG;YAC/B,MAAME,aAAarB,iBAAiBa,UAAUY;YAC9C,IAAIJ,WAAW9B,KAAK,GAAG8B,WAAWhC,QAAQ,EAAE;gBAC1C,MAAMiC,gBAAgB7B,KAAK8B,GAAG,CAACF,WAAW9B,KAAK,GAAG8B,WAAWhC,QAAQ,EAAE8B;gBACvEA,cAAcG;gBACdT,WAAWN,kBAAkBM,UAAUQ,WAAWtC,QAAQ,EAAE,SAASsC,WAAW9B,KAAK,GAAG+B;YAC1F,CAAC;YACDG;QACF;IACF,CAAC;IAED,OAAOZ;AACT,CAAC"}
@@ -4,6 +4,3 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
6
  _exportStar(require("./components/DataGrid/index"), exports);
7
- //# sourceMappingURL=DataGrid.js.map
8
-
9
- //# sourceMappingURL=DataGrid.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/DataGrid.js"],"sourcesContent":["export * from './components/DataGrid/index';\n//# sourceMappingURL=DataGrid.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,oCAAoC"}
1
+ {"version":3,"sources":["DataGrid.js"],"sourcesContent":["export * from './components/DataGrid/index';\n"],"names":[],"mappings":";;;;;oBAAc"}
@@ -4,6 +4,3 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
6
  _exportStar(require("./components/DataGridBody/index"), exports);
7
- //# sourceMappingURL=DataGridBody.js.map
8
-
9
- //# sourceMappingURL=DataGridBody.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/DataGridBody.js"],"sourcesContent":["export * from './components/DataGridBody/index';\n//# sourceMappingURL=DataGridBody.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,wCAAwC"}
1
+ {"version":3,"sources":["DataGridBody.js"],"sourcesContent":["export * from './components/DataGridBody/index';\n"],"names":[],"mappings":";;;;;oBAAc"}
@@ -4,6 +4,3 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
6
  _exportStar(require("./components/DataGridCell/index"), exports);
7
- //# sourceMappingURL=DataGridCell.js.map
8
-
9
- //# sourceMappingURL=DataGridCell.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/DataGridCell.js"],"sourcesContent":["export * from './components/DataGridCell/index';\n//# sourceMappingURL=DataGridCell.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,wCAAwC"}
1
+ {"version":3,"sources":["DataGridCell.js"],"sourcesContent":["export * from './components/DataGridCell/index';\n"],"names":[],"mappings":";;;;;oBAAc"}
@@ -4,6 +4,3 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
6
  _exportStar(require("./components/DataGridHeader/index"), exports);
7
- //# sourceMappingURL=DataGridHeader.js.map
8
-
9
- //# sourceMappingURL=DataGridHeader.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../lib/DataGridHeader.js"],"sourcesContent":["export * from './components/DataGridHeader/index';\n//# sourceMappingURL=DataGridHeader.js.map"],"names":[],"mappings":";;;;;oBAAc;CACd,0CAA0C"}
1
+ {"version":3,"sources":["DataGridHeader.js"],"sourcesContent":["export * from './components/DataGridHeader/index';\n"],"names":[],"mappings":";;;;;oBAAc"}
@@ -4,6 +4,3 @@ Object.defineProperty(exports, "__esModule", {
4
4
  });
5
5
  const _exportStar = require("@swc/helpers/lib/_export_star.js").default;
6
6
  _exportStar(require("./components/DataGridHeaderCell/index"), exports);
7
- //# sourceMappingURL=DataGridHeaderCell.js.map
8
-
9
- //# sourceMappingURL=DataGridHeaderCell.js.map