@fluentui/react-table 9.18.0 → 9.18.2

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 (305) hide show
  1. package/CHANGELOG.md +36 -2
  2. package/lib/DataGrid.js.map +1 -1
  3. package/lib/DataGridBody.js.map +1 -1
  4. package/lib/DataGridCell.js.map +1 -1
  5. package/lib/DataGridHeader.js.map +1 -1
  6. package/lib/DataGridHeaderCell.js.map +1 -1
  7. package/lib/DataGridRow.js.map +1 -1
  8. package/lib/DataGridSelectionCell.js.map +1 -1
  9. package/lib/Table.js.map +1 -1
  10. package/lib/TableBody.js.map +1 -1
  11. package/lib/TableCell.js.map +1 -1
  12. package/lib/TableCellActions.js.map +1 -1
  13. package/lib/TableCellLayout.js.map +1 -1
  14. package/lib/TableCellPrimaryLayout.js.map +1 -1
  15. package/lib/TableHeader.js.map +1 -1
  16. package/lib/TableHeaderCell.js.map +1 -1
  17. package/lib/TableResizeHandle.js.map +1 -1
  18. package/lib/TableRow.js.map +1 -1
  19. package/lib/TableSelectionCell.js.map +1 -1
  20. package/lib/components/DataGrid/DataGrid.js.map +1 -1
  21. package/lib/components/DataGrid/DataGrid.types.js.map +1 -1
  22. package/lib/components/DataGrid/index.js.map +1 -1
  23. package/lib/components/DataGrid/renderDataGrid.js.map +1 -1
  24. package/lib/components/DataGrid/useDataGrid.js.map +1 -1
  25. package/lib/components/DataGrid/useDataGridContextValues.js.map +1 -1
  26. package/lib/components/DataGrid/useDataGridStyles.styles.raw.js.map +1 -1
  27. package/lib/components/DataGridBody/DataGridBody.js.map +1 -1
  28. package/lib/components/DataGridBody/DataGridBody.types.js.map +1 -1
  29. package/lib/components/DataGridBody/index.js.map +1 -1
  30. package/lib/components/DataGridBody/renderDataGridBody.js.map +1 -1
  31. package/lib/components/DataGridBody/useDataGridBody.js.map +1 -1
  32. package/lib/components/DataGridBody/useDataGridBodyStyles.styles.raw.js.map +1 -1
  33. package/lib/components/DataGridCell/DataGridCell.js.map +1 -1
  34. package/lib/components/DataGridCell/DataGridCell.types.js.map +1 -1
  35. package/lib/components/DataGridCell/index.js.map +1 -1
  36. package/lib/components/DataGridCell/renderDataGridCell.js.map +1 -1
  37. package/lib/components/DataGridCell/useDataGridCell.js.map +1 -1
  38. package/lib/components/DataGridCell/useDataGridCellStyles.styles.raw.js.map +1 -1
  39. package/lib/components/DataGridHeader/DataGridHeader.js.map +1 -1
  40. package/lib/components/DataGridHeader/DataGridHeader.types.js.map +1 -1
  41. package/lib/components/DataGridHeader/index.js.map +1 -1
  42. package/lib/components/DataGridHeader/renderDataGridHeader.js.map +1 -1
  43. package/lib/components/DataGridHeader/useDataGridHeader.js.map +1 -1
  44. package/lib/components/DataGridHeader/useDataGridHeaderStyles.styles.raw.js.map +1 -1
  45. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -1
  46. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -1
  47. package/lib/components/DataGridHeaderCell/index.js.map +1 -1
  48. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -1
  49. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -1
  50. package/lib/components/DataGridHeaderCell/useDataGridHeaderCellStyles.styles.raw.js.map +1 -1
  51. package/lib/components/DataGridRow/DataGridRow.js.map +1 -1
  52. package/lib/components/DataGridRow/DataGridRow.types.js.map +1 -1
  53. package/lib/components/DataGridRow/index.js.map +1 -1
  54. package/lib/components/DataGridRow/renderDataGridRow.js.map +1 -1
  55. package/lib/components/DataGridRow/useDataGridRow.js.map +1 -1
  56. package/lib/components/DataGridRow/useDataGridRowStyles.styles.raw.js.map +1 -1
  57. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -1
  58. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -1
  59. package/lib/components/DataGridSelectionCell/index.js.map +1 -1
  60. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -1
  61. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -1
  62. package/lib/components/DataGridSelectionCell/useDataGridSelectionCellStyles.styles.raw.js.map +1 -1
  63. package/lib/components/Table/Table.js.map +1 -1
  64. package/lib/components/Table/Table.types.js.map +1 -1
  65. package/lib/components/Table/index.js.map +1 -1
  66. package/lib/components/Table/renderTable.js.map +1 -1
  67. package/lib/components/Table/useTable.js.map +1 -1
  68. package/lib/components/Table/useTableContextValues.js.map +1 -1
  69. package/lib/components/Table/useTableStyles.styles.raw.js.map +1 -1
  70. package/lib/components/TableBody/TableBody.js.map +1 -1
  71. package/lib/components/TableBody/TableBody.types.js.map +1 -1
  72. package/lib/components/TableBody/index.js.map +1 -1
  73. package/lib/components/TableBody/renderTableBody.js.map +1 -1
  74. package/lib/components/TableBody/useTableBody.js.map +1 -1
  75. package/lib/components/TableBody/useTableBodyStyles.styles.raw.js.map +1 -1
  76. package/lib/components/TableCell/TableCell.js.map +1 -1
  77. package/lib/components/TableCell/TableCell.types.js.map +1 -1
  78. package/lib/components/TableCell/index.js.map +1 -1
  79. package/lib/components/TableCell/renderTableCell.js.map +1 -1
  80. package/lib/components/TableCell/useTableCell.js.map +1 -1
  81. package/lib/components/TableCell/useTableCellStyles.styles.raw.js.map +1 -1
  82. package/lib/components/TableCellActions/TableCellActions.js.map +1 -1
  83. package/lib/components/TableCellActions/TableCellActions.types.js.map +1 -1
  84. package/lib/components/TableCellActions/index.js.map +1 -1
  85. package/lib/components/TableCellActions/renderTableCellActions.js.map +1 -1
  86. package/lib/components/TableCellActions/useTableCellActions.js.map +1 -1
  87. package/lib/components/TableCellActions/useTableCellActionsStyles.styles.raw.js.map +1 -1
  88. package/lib/components/TableCellLayout/TableCellLayout.js.map +1 -1
  89. package/lib/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  90. package/lib/components/TableCellLayout/index.js.map +1 -1
  91. package/lib/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  92. package/lib/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  93. package/lib/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -1
  94. package/lib/components/TableCellLayout/useTableCellLayoutStyles.styles.raw.js.map +1 -1
  95. package/lib/components/TableHeader/TableHeader.js.map +1 -1
  96. package/lib/components/TableHeader/TableHeader.types.js.map +1 -1
  97. package/lib/components/TableHeader/index.js.map +1 -1
  98. package/lib/components/TableHeader/renderTableHeader.js.map +1 -1
  99. package/lib/components/TableHeader/useTableHeader.js.map +1 -1
  100. package/lib/components/TableHeader/useTableHeaderStyles.styles.raw.js.map +1 -1
  101. package/lib/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  102. package/lib/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  103. package/lib/components/TableHeaderCell/index.js.map +1 -1
  104. package/lib/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  105. package/lib/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  106. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.styles.raw.js.map +1 -1
  107. package/lib/components/TableResizeHandle/TableResizeHandle.js.map +1 -1
  108. package/lib/components/TableResizeHandle/TableResizeHandle.types.js.map +1 -1
  109. package/lib/components/TableResizeHandle/index.js.map +1 -1
  110. package/lib/components/TableResizeHandle/renderTableResizeHandle.js.map +1 -1
  111. package/lib/components/TableResizeHandle/useTableResizeHandle.js.map +1 -1
  112. package/lib/components/TableResizeHandle/useTableResizeHandleStyles.styles.raw.js.map +1 -1
  113. package/lib/components/TableRow/TableRow.js.map +1 -1
  114. package/lib/components/TableRow/TableRow.types.js.map +1 -1
  115. package/lib/components/TableRow/index.js.map +1 -1
  116. package/lib/components/TableRow/renderTableRow.js.map +1 -1
  117. package/lib/components/TableRow/useTableRow.js.map +1 -1
  118. package/lib/components/TableRow/useTableRowStyles.styles.raw.js.map +1 -1
  119. package/lib/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  120. package/lib/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  121. package/lib/components/TableSelectionCell/index.js.map +1 -1
  122. package/lib/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  123. package/lib/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  124. package/lib/components/TableSelectionCell/useTableSelectionCellStyles.styles.raw.js.map +1 -1
  125. package/lib/contexts/columnIdContext.js.map +1 -1
  126. package/lib/contexts/dataGridContext.js.map +1 -1
  127. package/lib/contexts/rowIdContext.js.map +1 -1
  128. package/lib/contexts/tableContext.js.map +1 -1
  129. package/lib/contexts/tableHeaderContext.js.map +1 -1
  130. package/lib/hooks/createColumn.js.map +1 -1
  131. package/lib/hooks/index.js.map +1 -1
  132. package/lib/hooks/types.js.map +1 -1
  133. package/lib/hooks/useKeyboardResizing.js.map +1 -1
  134. package/lib/hooks/useMeasureElement.js.map +1 -1
  135. package/lib/hooks/useTableColumnResizeMouseHandler.js.map +1 -1
  136. package/lib/hooks/useTableColumnResizeState.js.map +1 -1
  137. package/lib/hooks/useTableColumnSizing.js.map +1 -1
  138. package/lib/hooks/useTableCompositeNavigation.js.map +1 -1
  139. package/lib/hooks/useTableFeatures.js.map +1 -1
  140. package/lib/hooks/useTableSelection.js.map +1 -1
  141. package/lib/hooks/useTableSort.js.map +1 -1
  142. package/lib/index.js.map +1 -1
  143. package/lib/utils/columnResizeUtils.js.map +1 -1
  144. package/lib/utils/isColumnSortable.js.map +1 -1
  145. package/lib-commonjs/DataGrid.js.map +1 -1
  146. package/lib-commonjs/DataGridBody.js.map +1 -1
  147. package/lib-commonjs/DataGridCell.js.map +1 -1
  148. package/lib-commonjs/DataGridHeader.js.map +1 -1
  149. package/lib-commonjs/DataGridHeaderCell.js.map +1 -1
  150. package/lib-commonjs/DataGridRow.js.map +1 -1
  151. package/lib-commonjs/DataGridSelectionCell.js.map +1 -1
  152. package/lib-commonjs/Table.js.map +1 -1
  153. package/lib-commonjs/TableBody.js.map +1 -1
  154. package/lib-commonjs/TableCell.js.map +1 -1
  155. package/lib-commonjs/TableCellActions.js.map +1 -1
  156. package/lib-commonjs/TableCellLayout.js.map +1 -1
  157. package/lib-commonjs/TableCellPrimaryLayout.js.map +1 -1
  158. package/lib-commonjs/TableHeader.js.map +1 -1
  159. package/lib-commonjs/TableHeaderCell.js.map +1 -1
  160. package/lib-commonjs/TableResizeHandle.js.map +1 -1
  161. package/lib-commonjs/TableRow.js.map +1 -1
  162. package/lib-commonjs/TableSelectionCell.js.map +1 -1
  163. package/lib-commonjs/components/DataGrid/DataGrid.js.map +1 -1
  164. package/lib-commonjs/components/DataGrid/DataGrid.types.js.map +1 -1
  165. package/lib-commonjs/components/DataGrid/index.js.map +1 -1
  166. package/lib-commonjs/components/DataGrid/renderDataGrid.js.map +1 -1
  167. package/lib-commonjs/components/DataGrid/useDataGrid.js.map +1 -1
  168. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js.map +1 -1
  169. package/lib-commonjs/components/DataGrid/useDataGridStyles.styles.js.map +1 -1
  170. package/lib-commonjs/components/DataGrid/useDataGridStyles.styles.raw.js.map +1 -1
  171. package/lib-commonjs/components/DataGridBody/DataGridBody.js.map +1 -1
  172. package/lib-commonjs/components/DataGridBody/DataGridBody.types.js.map +1 -1
  173. package/lib-commonjs/components/DataGridBody/index.js.map +1 -1
  174. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js.map +1 -1
  175. package/lib-commonjs/components/DataGridBody/useDataGridBody.js.map +1 -1
  176. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.styles.js.map +1 -1
  177. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.styles.raw.js.map +1 -1
  178. package/lib-commonjs/components/DataGridCell/DataGridCell.js.map +1 -1
  179. package/lib-commonjs/components/DataGridCell/DataGridCell.types.js.map +1 -1
  180. package/lib-commonjs/components/DataGridCell/index.js.map +1 -1
  181. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js.map +1 -1
  182. package/lib-commonjs/components/DataGridCell/useDataGridCell.js.map +1 -1
  183. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.styles.js.map +1 -1
  184. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.styles.raw.js.map +1 -1
  185. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js.map +1 -1
  186. package/lib-commonjs/components/DataGridHeader/DataGridHeader.types.js.map +1 -1
  187. package/lib-commonjs/components/DataGridHeader/index.js.map +1 -1
  188. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js.map +1 -1
  189. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js.map +1 -1
  190. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.styles.js.map +1 -1
  191. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.styles.raw.js.map +1 -1
  192. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -1
  193. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -1
  194. package/lib-commonjs/components/DataGridHeaderCell/index.js.map +1 -1
  195. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -1
  196. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -1
  197. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.styles.js.map +1 -1
  198. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.styles.raw.js.map +1 -1
  199. package/lib-commonjs/components/DataGridRow/DataGridRow.js.map +1 -1
  200. package/lib-commonjs/components/DataGridRow/DataGridRow.types.js.map +1 -1
  201. package/lib-commonjs/components/DataGridRow/index.js.map +1 -1
  202. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js.map +1 -1
  203. package/lib-commonjs/components/DataGridRow/useDataGridRow.js.map +1 -1
  204. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.styles.js.map +1 -1
  205. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.styles.raw.js.map +1 -1
  206. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -1
  207. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -1
  208. package/lib-commonjs/components/DataGridSelectionCell/index.js.map +1 -1
  209. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -1
  210. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -1
  211. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.styles.js.map +1 -1
  212. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.styles.raw.js.map +1 -1
  213. package/lib-commonjs/components/Table/Table.js.map +1 -1
  214. package/lib-commonjs/components/Table/Table.types.js.map +1 -1
  215. package/lib-commonjs/components/Table/index.js.map +1 -1
  216. package/lib-commonjs/components/Table/renderTable.js.map +1 -1
  217. package/lib-commonjs/components/Table/useTable.js.map +1 -1
  218. package/lib-commonjs/components/Table/useTableContextValues.js.map +1 -1
  219. package/lib-commonjs/components/Table/useTableStyles.styles.js.map +1 -1
  220. package/lib-commonjs/components/Table/useTableStyles.styles.raw.js.map +1 -1
  221. package/lib-commonjs/components/TableBody/TableBody.js.map +1 -1
  222. package/lib-commonjs/components/TableBody/TableBody.types.js.map +1 -1
  223. package/lib-commonjs/components/TableBody/index.js.map +1 -1
  224. package/lib-commonjs/components/TableBody/renderTableBody.js.map +1 -1
  225. package/lib-commonjs/components/TableBody/useTableBody.js.map +1 -1
  226. package/lib-commonjs/components/TableBody/useTableBodyStyles.styles.js.map +1 -1
  227. package/lib-commonjs/components/TableBody/useTableBodyStyles.styles.raw.js.map +1 -1
  228. package/lib-commonjs/components/TableCell/TableCell.js.map +1 -1
  229. package/lib-commonjs/components/TableCell/TableCell.types.js.map +1 -1
  230. package/lib-commonjs/components/TableCell/index.js.map +1 -1
  231. package/lib-commonjs/components/TableCell/renderTableCell.js.map +1 -1
  232. package/lib-commonjs/components/TableCell/useTableCell.js.map +1 -1
  233. package/lib-commonjs/components/TableCell/useTableCellStyles.styles.js.map +1 -1
  234. package/lib-commonjs/components/TableCell/useTableCellStyles.styles.raw.js.map +1 -1
  235. package/lib-commonjs/components/TableCellActions/TableCellActions.js.map +1 -1
  236. package/lib-commonjs/components/TableCellActions/TableCellActions.types.js.map +1 -1
  237. package/lib-commonjs/components/TableCellActions/index.js.map +1 -1
  238. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js.map +1 -1
  239. package/lib-commonjs/components/TableCellActions/useTableCellActions.js.map +1 -1
  240. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.styles.js.map +1 -1
  241. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.styles.raw.js.map +1 -1
  242. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js.map +1 -1
  243. package/lib-commonjs/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  244. package/lib-commonjs/components/TableCellLayout/index.js.map +1 -1
  245. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  246. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  247. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -1
  248. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.styles.js.map +1 -1
  249. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.styles.raw.js.map +1 -1
  250. package/lib-commonjs/components/TableHeader/TableHeader.js.map +1 -1
  251. package/lib-commonjs/components/TableHeader/TableHeader.types.js.map +1 -1
  252. package/lib-commonjs/components/TableHeader/index.js.map +1 -1
  253. package/lib-commonjs/components/TableHeader/renderTableHeader.js.map +1 -1
  254. package/lib-commonjs/components/TableHeader/useTableHeader.js.map +1 -1
  255. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.styles.js.map +1 -1
  256. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.styles.raw.js.map +1 -1
  257. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  258. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  259. package/lib-commonjs/components/TableHeaderCell/index.js.map +1 -1
  260. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  261. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  262. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.styles.js.map +1 -1
  263. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.styles.raw.js.map +1 -1
  264. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.js.map +1 -1
  265. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.types.js.map +1 -1
  266. package/lib-commonjs/components/TableResizeHandle/index.js.map +1 -1
  267. package/lib-commonjs/components/TableResizeHandle/renderTableResizeHandle.js.map +1 -1
  268. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandle.js.map +1 -1
  269. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandleStyles.styles.js.map +1 -1
  270. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandleStyles.styles.raw.js.map +1 -1
  271. package/lib-commonjs/components/TableRow/TableRow.js.map +1 -1
  272. package/lib-commonjs/components/TableRow/TableRow.types.js.map +1 -1
  273. package/lib-commonjs/components/TableRow/index.js.map +1 -1
  274. package/lib-commonjs/components/TableRow/renderTableRow.js.map +1 -1
  275. package/lib-commonjs/components/TableRow/useTableRow.js.map +1 -1
  276. package/lib-commonjs/components/TableRow/useTableRowStyles.styles.js.map +1 -1
  277. package/lib-commonjs/components/TableRow/useTableRowStyles.styles.raw.js.map +1 -1
  278. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  279. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  280. package/lib-commonjs/components/TableSelectionCell/index.js.map +1 -1
  281. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  282. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  283. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.styles.js.map +1 -1
  284. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.styles.raw.js.map +1 -1
  285. package/lib-commonjs/contexts/columnIdContext.js.map +1 -1
  286. package/lib-commonjs/contexts/dataGridContext.js.map +1 -1
  287. package/lib-commonjs/contexts/rowIdContext.js.map +1 -1
  288. package/lib-commonjs/contexts/tableContext.js.map +1 -1
  289. package/lib-commonjs/contexts/tableHeaderContext.js.map +1 -1
  290. package/lib-commonjs/hooks/createColumn.js.map +1 -1
  291. package/lib-commonjs/hooks/index.js.map +1 -1
  292. package/lib-commonjs/hooks/types.js.map +1 -1
  293. package/lib-commonjs/hooks/useKeyboardResizing.js.map +1 -1
  294. package/lib-commonjs/hooks/useMeasureElement.js.map +1 -1
  295. package/lib-commonjs/hooks/useTableColumnResizeMouseHandler.js.map +1 -1
  296. package/lib-commonjs/hooks/useTableColumnResizeState.js.map +1 -1
  297. package/lib-commonjs/hooks/useTableColumnSizing.js.map +1 -1
  298. package/lib-commonjs/hooks/useTableCompositeNavigation.js.map +1 -1
  299. package/lib-commonjs/hooks/useTableFeatures.js.map +1 -1
  300. package/lib-commonjs/hooks/useTableSelection.js.map +1 -1
  301. package/lib-commonjs/hooks/useTableSort.js.map +1 -1
  302. package/lib-commonjs/index.js.map +1 -1
  303. package/lib-commonjs/utils/columnResizeUtils.js.map +1 -1
  304. package/lib-commonjs/utils/isColumnSortable.js.map +1 -1
  305. package/package.json +11 -11
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/contexts/rowIdContext.ts"],"sourcesContent":["import * as React from 'react';\nimport type { TableRowId } from '../hooks/';\n\nconst rowIdContext = React.createContext<TableRowId | undefined>(undefined);\n\nexport const tableRowIdContextDefaultValue = '';\n\nexport const useTableRowIdContext = () => React.useContext(rowIdContext) ?? tableRowIdContextDefaultValue;\n\nexport const TableRowIdContextProvider = rowIdContext.Provider;\n"],"names":["TableRowIdContextProvider","tableRowIdContextDefaultValue","useTableRowIdContext","rowIdContext","React","createContext","undefined","useContext","Provider"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IASaA,yBAAAA;eAAAA;;IAJAC,6BAAAA;eAAAA;;IAEAC,oBAAAA;eAAAA;;;;iEAPU;AAGvB,MAAMC,6BAAeC,OAAMC,aAAa,CAAyBC;AAE1D,MAAML,gCAAgC;AAEtC,MAAMC,uBAAuB;QAAME;WAAAA,CAAAA,oBAAAA,OAAMG,UAAU,CAACJ,aAAAA,MAAAA,QAAjBC,sBAAAA,KAAAA,IAAAA,oBAAkCH;AAA4B;AAEjG,MAAMD,4BAA4BG,aAAaK,QAAQ"}
1
+ {"version":3,"sources":["../src/contexts/rowIdContext.ts"],"sourcesContent":["import * as React from 'react';\nimport type { TableRowId } from '../hooks/';\n\nconst rowIdContext = React.createContext<TableRowId | undefined>(undefined);\n\nexport const tableRowIdContextDefaultValue = '';\n\nexport const useTableRowIdContext = () => React.useContext(rowIdContext) ?? tableRowIdContextDefaultValue;\n\nexport const TableRowIdContextProvider = rowIdContext.Provider;\n"],"names":["React","rowIdContext","createContext","undefined","tableRowIdContextDefaultValue","useTableRowIdContext","useContext","TableRowIdContextProvider","Provider"],"mappings":";;;;;;;;;;;6BASaO;;;iCAJAH;;;wBAEAC;;;;;iEAPU,QAAQ;AAG/B,MAAMJ,6BAAeD,OAAME,aAAa,CAAyBC;AAE1D,MAAMC,gCAAgC,GAAG;AAEzC,MAAMC,uBAAuB;QAAML;WAAAA,CAAAA,oBAAAA,OAAMM,UAAU,CAACL,aAAAA,MAAAA,QAAjBD,sBAAAA,KAAAA,IAAAA,oBAAkCI;EAA8B;AAEnG,MAAMG,4BAA4BN,aAAaO,QAAQ,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/contexts/tableContext.ts"],"sourcesContent":["import * as React from 'react';\nimport { TableContextValue } from '../components/Table/Table.types';\n\nconst tableContext = React.createContext<TableContextValue | undefined>(undefined);\n\nexport const tableContextDefaultValue: TableContextValue = {\n size: 'medium',\n noNativeElements: false,\n sortable: false,\n};\n\nexport const TableContextProvider = tableContext.Provider;\nexport const useTableContext = () => React.useContext(tableContext) ?? tableContextDefaultValue;\n"],"names":["TableContextProvider","tableContextDefaultValue","useTableContext","tableContext","React","createContext","undefined","size","noNativeElements","sortable","Provider","useContext"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAWaA,oBAAAA;eAAAA;;IANAC,wBAAAA;eAAAA;;IAOAC,eAAAA;eAAAA;;;;iEAZU;AAGvB,MAAMC,6BAAeC,OAAMC,aAAa,CAAgCC;AAEjE,MAAML,2BAA8C;IACzDM,MAAM;IACNC,kBAAkB;IAClBC,UAAU;AACZ;AAEO,MAAMT,uBAAuBG,aAAaO,QAAQ;AAClD,MAAMR,kBAAkB;QAAME;WAAAA,CAAAA,oBAAAA,OAAMO,UAAU,CAACR,aAAAA,MAAAA,QAAjBC,sBAAAA,KAAAA,IAAAA,oBAAkCH;AAAuB"}
1
+ {"version":3,"sources":["../src/contexts/tableContext.ts"],"sourcesContent":["import * as React from 'react';\nimport { TableContextValue } from '../components/Table/Table.types';\n\nconst tableContext = React.createContext<TableContextValue | undefined>(undefined);\n\nexport const tableContextDefaultValue: TableContextValue = {\n size: 'medium',\n noNativeElements: false,\n sortable: false,\n};\n\nexport const TableContextProvider = tableContext.Provider;\nexport const useTableContext = () => React.useContext(tableContext) ?? tableContextDefaultValue;\n"],"names":["React","tableContext","createContext","undefined","tableContextDefaultValue","size","noNativeElements","sortable","TableContextProvider","Provider","useTableContext","useContext"],"mappings":";;;;;;;;;;;wBAWaQ;;;4BANAJ;;;mBAOAM;;;;;iEAZU,QAAQ;AAG/B,MAAMT,6BAAeD,OAAME,aAAa,CAAgCC;AAEjE,MAAMC,2BAA8C;IACzDC,MAAM;IACNC,kBAAkB;IAClBC,UAAU;AACZ,EAAE;AAEK,MAAMC,uBAAuBP,aAAaQ,QAAQ,CAAC;AACnD,MAAMC,kBAAkB;QAAMV;WAAAA,CAAAA,oBAAAA,OAAMW,UAAU,CAACV,aAAAA,MAAAA,QAAjBD,sBAAAA,KAAAA,IAAAA,oBAAkCI;EAAyB"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/contexts/tableHeaderContext.ts"],"sourcesContent":["import * as React from 'react';\n\nconst tableHeaderContext = React.createContext<string | undefined>(undefined);\n\nconst tableHeaderContextDefaultValue = '';\n\nexport const TableHeaderContextProvider = tableHeaderContext.Provider;\nexport const useIsInTableHeader = () => React.useContext(tableHeaderContext) === tableHeaderContextDefaultValue;\n"],"names":["TableHeaderContextProvider","useIsInTableHeader","tableHeaderContext","React","createContext","undefined","tableHeaderContextDefaultValue","Provider","useContext"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAMaA,0BAAAA;eAAAA;;IACAC,kBAAAA;eAAAA;;;;iEAPU;AAEvB,MAAMC,mCAAqBC,OAAMC,aAAa,CAAqBC;AAEnE,MAAMC,iCAAiC;AAEhC,MAAMN,6BAA6BE,mBAAmBK,QAAQ;AAC9D,MAAMN,qBAAqB,IAAME,OAAMK,UAAU,CAACN,wBAAwBI"}
1
+ {"version":3,"sources":["../src/contexts/tableHeaderContext.ts"],"sourcesContent":["import * as React from 'react';\n\nconst tableHeaderContext = React.createContext<string | undefined>(undefined);\n\nconst tableHeaderContextDefaultValue = '';\n\nexport const TableHeaderContextProvider = tableHeaderContext.Provider;\nexport const useIsInTableHeader = () => React.useContext(tableHeaderContext) === tableHeaderContextDefaultValue;\n"],"names":["React","tableHeaderContext","createContext","undefined","tableHeaderContextDefaultValue","TableHeaderContextProvider","Provider","useIsInTableHeader","useContext"],"mappings":";;;;;;;;;;;8BAMaK;;;sBACAE;;;;;iEAPU,QAAQ;AAE/B,MAAMN,mCAAqBD,OAAME,aAAa,CAAqBC;AAEnE,MAAMC,iCAAiC;AAEhC,MAAMC,6BAA6BJ,mBAAmBK,QAAQ,CAAC;AAC/D,MAAMC,qBAAqB,IAAMP,OAAMQ,UAAU,CAACP,wBAAwBG,+BAA+B"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/createColumn.ts"],"sourcesContent":["import { CreateTableColumnOptions } from './types';\n\nconst defaultCompare = () => 0;\n\nconst defaultRenderCell = () => {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('@fluentui/react-table: You are using the default column renderCell function that renders null');\n }\n\n return null;\n};\n\nconst defaultRenderHeaderCell = () => {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('@fluentui/react-table: You are using the default column renderHeaderCell function that renders null');\n }\n\n return null;\n};\n\n/**\n * Helper function to create column definition with defaults\n * @param options - column definition options\n * @returns - column definition with defaults\n */\nexport function createTableColumn<TItem>(options: CreateTableColumnOptions<TItem>) {\n const {\n columnId,\n renderCell = defaultRenderCell,\n renderHeaderCell = defaultRenderHeaderCell,\n compare = defaultCompare,\n } = options;\n\n return {\n columnId,\n renderCell,\n renderHeaderCell,\n compare,\n };\n}\n"],"names":["createTableColumn","defaultCompare","defaultRenderCell","process","env","NODE_ENV","console","warn","defaultRenderHeaderCell","options","columnId","renderCell","renderHeaderCell","compare"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BA2BgBA;;;eAAAA;;;AAzBhB,MAAMC,iBAAiB,IAAM;AAE7B,MAAMC,oBAAoB;IACxB,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;QACzC,sCAAsC;QACtCC,QAAQC,IAAI,CAAC;IACf;IAEA,OAAO;AACT;AAEA,MAAMC,0BAA0B;IAC9B,IAAIL,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;QACzC,sCAAsC;QACtCC,QAAQC,IAAI,CAAC;IACf;IAEA,OAAO;AACT;AAOO,SAASP,kBAAyBS,OAAwC;IAC/E,MAAM,EACJC,QAAQ,EACRC,aAAaT,iBAAiB,EAC9BU,mBAAmBJ,uBAAuB,EAC1CK,UAAUZ,cAAc,EACzB,GAAGQ;IAEJ,OAAO;QACLC;QACAC;QACAC;QACAC;IACF;AACF"}
1
+ {"version":3,"sources":["../src/hooks/createColumn.ts"],"sourcesContent":["import { CreateTableColumnOptions } from './types';\n\nconst defaultCompare = () => 0;\n\nconst defaultRenderCell = () => {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('@fluentui/react-table: You are using the default column renderCell function that renders null');\n }\n\n return null;\n};\n\nconst defaultRenderHeaderCell = () => {\n if (process.env.NODE_ENV !== 'production') {\n // eslint-disable-next-line no-console\n console.warn('@fluentui/react-table: You are using the default column renderHeaderCell function that renders null');\n }\n\n return null;\n};\n\n/**\n * Helper function to create column definition with defaults\n * @param options - column definition options\n * @returns - column definition with defaults\n */\nexport function createTableColumn<TItem>(options: CreateTableColumnOptions<TItem>) {\n const {\n columnId,\n renderCell = defaultRenderCell,\n renderHeaderCell = defaultRenderHeaderCell,\n compare = defaultCompare,\n } = options;\n\n return {\n columnId,\n renderCell,\n renderHeaderCell,\n compare,\n };\n}\n"],"names":["defaultCompare","defaultRenderCell","process","env","NODE_ENV","console","warn","defaultRenderHeaderCell","createTableColumn","options","columnId","renderCell","renderHeaderCell","compare"],"mappings":";;;;;;;eA2BgBQ;;;AAzBhB,MAAMR,iBAAiB,IAAM;AAE7B,MAAMC,oBAAoB;IACxB,IAAIC,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;QACzC,sCAAsC;QACtCC,QAAQC,IAAI,CAAC;IACf;IAEA,OAAO;AACT;AAEA,MAAMC,0BAA0B;IAC9B,IAAIL,QAAQC,GAAG,CAACC,QAAQ,KAAK,cAAc;QACzC,sCAAsC;QACtCC,QAAQC,IAAI,CAAC;IACf;IAEA,OAAO;AACT;AAOO,2BAAkCG,OAAwC;IAC/E,MAAM,EACJC,QAAQ,EACRC,aAAaV,iBAAiB,EAC9BW,mBAAmBL,uBAAuB,EAC1CM,UAAUb,cAAc,EACzB,GAAGS;IAEJ,OAAO;QACLC;QACAC;QACAC;QACAC;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/index.ts"],"sourcesContent":["export type {\n ColumnResizeState,\n ColumnSizingTableCellProps,\n ColumnSizingTableHeaderCellProps,\n ColumnSizingTableProps,\n ColumnWidthState,\n CreateTableColumnOptions,\n EnableKeyboardModeOnChangeCallback,\n OnSelectionChangeData,\n RowEnhancer,\n SortState,\n TableColumnDefinition,\n TableColumnId,\n TableColumnSizingOptions,\n TableColumnSizingState,\n TableFeaturePlugin,\n TableFeaturesState,\n TableRowData,\n TableRowId,\n TableSelectionState,\n TableSortState,\n UseTableColumnSizingParams,\n UseTableFeaturesOptions,\n UseTableSortOptions,\n} from './types';\nexport { defaultTableState, useTableFeatures } from './useTableFeatures';\nexport { defaultTableSortState, useTableSort, useTableSortState } from './useTableSort';\nexport { defaultTableSelectionState, useTableSelection, useTableSelectionState } from './useTableSelection';\nexport { createTableColumn } from './createColumn';\nexport { defaultColumnSizingState, useTableColumnSizing_unstable } from './useTableColumnSizing';\nexport { useTableCompositeNavigation } from './useTableCompositeNavigation';\n"],"names":["createTableColumn","defaultColumnSizingState","defaultTableSelectionState","defaultTableSortState","defaultTableState","useTableColumnSizing_unstable","useTableCompositeNavigation","useTableFeatures","useTableSelection","useTableSelectionState","useTableSort","useTableSortState"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IA4BSA,iBAAiB;eAAjBA,+BAAiB;;IACjBC,wBAAwB;eAAxBA,8CAAwB;;IAFxBC,0BAA0B;eAA1BA,6CAA0B;;IAD1BC,qBAAqB;eAArBA,mCAAqB;;IADrBC,iBAAiB;eAAjBA,mCAAiB;;IAISC,6BAA6B;eAA7BA,mDAA6B;;IACvDC,2BAA2B;eAA3BA,wDAA2B;;IALRC,gBAAgB;eAAhBA,kCAAgB;;IAEPC,iBAAiB;eAAjBA,oCAAiB;;IAAEC,sBAAsB;eAAtBA,yCAAsB;;IAD9CC,YAAY;eAAZA,0BAAY;;IAAEC,iBAAiB;eAAjBA,+BAAiB;;;kCADX;8BACmB;mCACe;8BACpD;sCACsC;6CAC5B"}
1
+ {"version":3,"sources":["../src/hooks/index.ts"],"sourcesContent":["export type {\n ColumnResizeState,\n ColumnSizingTableCellProps,\n ColumnSizingTableHeaderCellProps,\n ColumnSizingTableProps,\n ColumnWidthState,\n CreateTableColumnOptions,\n EnableKeyboardModeOnChangeCallback,\n OnSelectionChangeData,\n RowEnhancer,\n SortState,\n TableColumnDefinition,\n TableColumnId,\n TableColumnSizingOptions,\n TableColumnSizingState,\n TableFeaturePlugin,\n TableFeaturesState,\n TableRowData,\n TableRowId,\n TableSelectionState,\n TableSortState,\n UseTableColumnSizingParams,\n UseTableFeaturesOptions,\n UseTableSortOptions,\n} from './types';\nexport { defaultTableState, useTableFeatures } from './useTableFeatures';\nexport { defaultTableSortState, useTableSort, useTableSortState } from './useTableSort';\nexport { defaultTableSelectionState, useTableSelection, useTableSelectionState } from './useTableSelection';\nexport { createTableColumn } from './createColumn';\nexport { defaultColumnSizingState, useTableColumnSizing_unstable } from './useTableColumnSizing';\nexport { useTableCompositeNavigation } from './useTableCompositeNavigation';\n"],"names":["defaultTableState","useTableFeatures","defaultTableSortState","useTableSort","useTableSortState","defaultTableSelectionState","useTableSelection","useTableSelectionState","createTableColumn","defaultColumnSizingState","useTableColumnSizing_unstable","useTableCompositeNavigation"],"mappings":";;;;;;;;;;;;eA4BSQ,+BAAiB;;;eACjBC,8CAAwB;;;eAFxBJ,6CAA0B;;;eAD1BH,mCAAqB;;;eADrBF,mCAAiB;;iCAIsC;eAA7BU;;;eAC1BC,wDAA2B;;;eALRV,kCAAgB;;;eAEPK,oCAAiB;;;eAAEC,yCAAsB;;gBADlC;eAAZJ;;;eAAcC,+BAAiB;;;kCADX,qBAAqB;8BACF,iBAAiB;mCACF,sBAAsB;8BAC1E,iBAAiB;sCACqB,yBAAyB;6CACrD,gCAAgC"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/types.ts"],"sourcesContent":["import * as React from 'react';\nimport { SortDirection, TableProps } from '../components/Table/Table.types';\nimport { TableHeaderCellProps } from '../components/TableHeaderCell/TableHeaderCell.types';\nimport { SelectionMode } from '@fluentui/react-utilities';\n\nexport type TableRowId = string | number;\nexport type TableColumnId = string | number;\n\nexport interface SortState {\n sortColumn: TableColumnId | undefined;\n sortDirection: SortDirection;\n}\n\nexport interface OnSelectionChangeData {\n selectedItems: Set<TableRowId>;\n}\n\nexport interface CreateTableColumnOptions<TItem> extends Partial<TableColumnDefinition<TItem>> {\n columnId: TableColumnId;\n}\n\nexport interface TableColumnDefinition<TItem> {\n columnId: TableColumnId;\n compare: (a: TItem, b: TItem) => number;\n renderHeaderCell: (data?: unknown) => React.ReactNode;\n renderCell: (item: TItem) => React.ReactNode;\n}\n\nexport type RowEnhancer<TItem, TRowState extends TableRowData<TItem> = TableRowData<TItem>> = (\n row: TableRowData<TItem>,\n) => TRowState;\n\nexport interface TableSortState<TItem> {\n /**\n * Current sort direction\n */\n sortDirection: SortDirection;\n /**\n * Column id of the currently sorted column\n */\n sortColumn: TableColumnId | undefined;\n /**\n * Set the sort direction for the specified column\n */\n setColumnSort: (event: React.SyntheticEvent, columnId: TableColumnId, sortDirection: SortDirection) => void;\n /**\n * Toggles the sort direction for specified column\n */\n toggleColumnSort: (event: React.SyntheticEvent, columnId: TableColumnId) => void;\n /**\n * Returns the sort direction if a column is sorted,\n * returns undefined if the column is not sorted\n */\n getSortDirection: (columnId: TableColumnId) => SortDirection | undefined;\n\n /**\n * Sorts rows and returns a **shallow** copy of original items\n */\n sort: <TRowState extends TableRowData<TItem>>(rows: TRowState[]) => TRowState[];\n}\n\nexport interface TableSelectionState {\n /**\n * Clears all selected rows\n */\n clearRows: (e: React.SyntheticEvent) => void;\n /**\n * Selects single row\n */\n selectRow: (e: React.SyntheticEvent, rowId: TableRowId) => void;\n /**\n * De-selects single row\n */\n deselectRow: (e: React.SyntheticEvent, rowId: TableRowId) => void;\n /**\n * Toggle selection of all rows\n */\n toggleAllRows: (e: React.SyntheticEvent) => void;\n /**\n * Toggle selection of single row\n */\n toggleRow: (e: React.SyntheticEvent, rowId: TableRowId) => void;\n /**\n * Collection of row ids corresponding to selected rows\n */\n selectedRows: Set<TableRowId>;\n /**\n * Whether all rows are selected\n */\n allRowsSelected: boolean;\n /**\n * Whether some rows are selected\n */\n someRowsSelected: boolean;\n\n /**\n * Checks if a given rowId is selected\n */\n isRowSelected: (rowId: TableRowId) => boolean;\n\n selectionMode: SelectionMode;\n}\n\nexport interface TableRowData<TItem> {\n /**\n * User provided data\n */\n item: TItem;\n /**\n * The row id, defaults to index position in the collection\n */\n rowId: TableRowId;\n}\n\nexport interface TableFeaturesState<TItem> extends Pick<UseTableFeaturesOptions<TItem>, 'items' | 'getRowId'> {\n /**\n * The row data for rendering\n * @param rowEnhancer - Enhances the row with extra user data\n */\n getRows: <TRowState extends TableRowData<TItem> = TableRowData<TItem>>(\n rowEnhancer?: RowEnhancer<TItem, TRowState>,\n ) => TRowState[];\n\n /**\n * State and actions to manage row selection\n */\n selection: TableSelectionState;\n /**\n * State and actions to manage row sorting\n */\n sort: TableSortState<TItem>;\n /**\n * Table columns\n */\n columns: TableColumnDefinition<TItem>[];\n /**\n * State and actions to manage column resizing\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n columnSizing_unstable: TableColumnSizingState;\n /**\n * A React.Ref object to be set as a ref for the table.\n * Used with column resizing.\n */\n tableRef: React.Ref<HTMLDivElement>;\n}\n\nexport interface UseTableSortOptions {\n /**\n * Used to control sorting\n */\n sortState?: SortState;\n /**\n * Used in uncontrolled mode to set initial sort column and direction on mount\n */\n defaultSortState?: SortState;\n /**\n * Called when sort changes\n */\n onSortChange?(e: React.SyntheticEvent, state: SortState): void;\n}\n\nexport interface UseTableFeaturesOptions<TItem> {\n columns: TableColumnDefinition<TItem>[];\n items: TItem[];\n getRowId?: (item: TItem) => TableRowId;\n}\n\nexport type TableFeaturePlugin = <TItem>(tableState: TableFeaturesState<TItem>) => TableFeaturesState<TItem>;\n\nexport interface ColumnWidthState {\n columnId: TableColumnId;\n width: number;\n minWidth: number;\n idealWidth: number;\n padding: number;\n}\n\nexport type ColumnSizingTableProps = TableProps;\nexport type ColumnSizingTableHeaderCellProps = Pick<TableHeaderCellProps, 'style' | 'aside'>;\nexport type ColumnSizingTableCellProps = Pick<TableHeaderCellProps, 'style'>;\n\nexport type EnableKeyboardModeOnChangeCallback = (columnId: TableColumnId, isKeyboardMode: boolean) => void;\n\nexport interface TableColumnSizingState {\n getOnMouseDown: (columnId: TableColumnId) => (e: React.MouseEvent | React.TouchEvent) => void;\n setColumnWidth: (columnId: TableColumnId, newSize: number) => void;\n getColumnWidths: () => ColumnWidthState[];\n getTableProps: (props?: TableProps) => ColumnSizingTableProps;\n getTableHeaderCellProps: (columnId: TableColumnId) => ColumnSizingTableHeaderCellProps;\n getTableCellProps: (columnId: TableColumnId) => ColumnSizingTableCellProps;\n enableKeyboardMode: (\n columnId: TableColumnId,\n onChange?: EnableKeyboardModeOnChangeCallback,\n ) => (e: React.MouseEvent | React.TouchEvent) => void;\n}\n\nexport type ColumnResizeState = {\n getColumnWidth: (columnId: TableColumnId) => number;\n setColumnWidth: (\n e: KeyboardEvent | TouchEvent | MouseEvent | undefined,\n data: { columnId: TableColumnId; width: number },\n ) => void;\n getColumnById: (columnId: TableColumnId) => ColumnWidthState | undefined;\n getColumns: () => ColumnWidthState[];\n};\n\nexport type TableColumnSizingOptions = Record<\n TableColumnId,\n Partial<Pick<ColumnWidthState, 'minWidth' | 'idealWidth' | 'padding'>> & {\n defaultWidth?: number;\n autoFitColumns?: boolean;\n }\n>;\n\nexport type UseTableColumnSizingParams = {\n columnSizingOptions?: TableColumnSizingOptions;\n onColumnResize?: (\n e: KeyboardEvent | TouchEvent | MouseEvent | undefined,\n data: { columnId: TableColumnId; width: number },\n ) => void;\n containerWidthOffset?: number;\n autoFitColumns?: boolean;\n};\n"],"names":[],"rangeMappings":";;;;;","mappings":";;;;;iEAAuB"}
1
+ {"version":3,"sources":["../src/hooks/types.ts"],"sourcesContent":["import * as React from 'react';\nimport { SortDirection, TableProps } from '../components/Table/Table.types';\nimport { TableHeaderCellProps } from '../components/TableHeaderCell/TableHeaderCell.types';\nimport { SelectionMode } from '@fluentui/react-utilities';\n\nexport type TableRowId = string | number;\nexport type TableColumnId = string | number;\n\nexport interface SortState {\n sortColumn: TableColumnId | undefined;\n sortDirection: SortDirection;\n}\n\nexport interface OnSelectionChangeData {\n selectedItems: Set<TableRowId>;\n}\n\nexport interface CreateTableColumnOptions<TItem> extends Partial<TableColumnDefinition<TItem>> {\n columnId: TableColumnId;\n}\n\nexport interface TableColumnDefinition<TItem> {\n columnId: TableColumnId;\n compare: (a: TItem, b: TItem) => number;\n renderHeaderCell: (data?: unknown) => React.ReactNode;\n renderCell: (item: TItem) => React.ReactNode;\n}\n\nexport type RowEnhancer<TItem, TRowState extends TableRowData<TItem> = TableRowData<TItem>> = (\n row: TableRowData<TItem>,\n) => TRowState;\n\nexport interface TableSortState<TItem> {\n /**\n * Current sort direction\n */\n sortDirection: SortDirection;\n /**\n * Column id of the currently sorted column\n */\n sortColumn: TableColumnId | undefined;\n /**\n * Set the sort direction for the specified column\n */\n setColumnSort: (event: React.SyntheticEvent, columnId: TableColumnId, sortDirection: SortDirection) => void;\n /**\n * Toggles the sort direction for specified column\n */\n toggleColumnSort: (event: React.SyntheticEvent, columnId: TableColumnId) => void;\n /**\n * Returns the sort direction if a column is sorted,\n * returns undefined if the column is not sorted\n */\n getSortDirection: (columnId: TableColumnId) => SortDirection | undefined;\n\n /**\n * Sorts rows and returns a **shallow** copy of original items\n */\n sort: <TRowState extends TableRowData<TItem>>(rows: TRowState[]) => TRowState[];\n}\n\nexport interface TableSelectionState {\n /**\n * Clears all selected rows\n */\n clearRows: (e: React.SyntheticEvent) => void;\n /**\n * Selects single row\n */\n selectRow: (e: React.SyntheticEvent, rowId: TableRowId) => void;\n /**\n * De-selects single row\n */\n deselectRow: (e: React.SyntheticEvent, rowId: TableRowId) => void;\n /**\n * Toggle selection of all rows\n */\n toggleAllRows: (e: React.SyntheticEvent) => void;\n /**\n * Toggle selection of single row\n */\n toggleRow: (e: React.SyntheticEvent, rowId: TableRowId) => void;\n /**\n * Collection of row ids corresponding to selected rows\n */\n selectedRows: Set<TableRowId>;\n /**\n * Whether all rows are selected\n */\n allRowsSelected: boolean;\n /**\n * Whether some rows are selected\n */\n someRowsSelected: boolean;\n\n /**\n * Checks if a given rowId is selected\n */\n isRowSelected: (rowId: TableRowId) => boolean;\n\n selectionMode: SelectionMode;\n}\n\nexport interface TableRowData<TItem> {\n /**\n * User provided data\n */\n item: TItem;\n /**\n * The row id, defaults to index position in the collection\n */\n rowId: TableRowId;\n}\n\nexport interface TableFeaturesState<TItem> extends Pick<UseTableFeaturesOptions<TItem>, 'items' | 'getRowId'> {\n /**\n * The row data for rendering\n * @param rowEnhancer - Enhances the row with extra user data\n */\n getRows: <TRowState extends TableRowData<TItem> = TableRowData<TItem>>(\n rowEnhancer?: RowEnhancer<TItem, TRowState>,\n ) => TRowState[];\n\n /**\n * State and actions to manage row selection\n */\n selection: TableSelectionState;\n /**\n * State and actions to manage row sorting\n */\n sort: TableSortState<TItem>;\n /**\n * Table columns\n */\n columns: TableColumnDefinition<TItem>[];\n /**\n * State and actions to manage column resizing\n */\n // eslint-disable-next-line @typescript-eslint/naming-convention\n columnSizing_unstable: TableColumnSizingState;\n /**\n * A React.Ref object to be set as a ref for the table.\n * Used with column resizing.\n */\n tableRef: React.Ref<HTMLDivElement>;\n}\n\nexport interface UseTableSortOptions {\n /**\n * Used to control sorting\n */\n sortState?: SortState;\n /**\n * Used in uncontrolled mode to set initial sort column and direction on mount\n */\n defaultSortState?: SortState;\n /**\n * Called when sort changes\n */\n onSortChange?(e: React.SyntheticEvent, state: SortState): void;\n}\n\nexport interface UseTableFeaturesOptions<TItem> {\n columns: TableColumnDefinition<TItem>[];\n items: TItem[];\n getRowId?: (item: TItem) => TableRowId;\n}\n\nexport type TableFeaturePlugin = <TItem>(tableState: TableFeaturesState<TItem>) => TableFeaturesState<TItem>;\n\nexport interface ColumnWidthState {\n columnId: TableColumnId;\n width: number;\n minWidth: number;\n idealWidth: number;\n padding: number;\n}\n\nexport type ColumnSizingTableProps = TableProps;\nexport type ColumnSizingTableHeaderCellProps = Pick<TableHeaderCellProps, 'style' | 'aside'>;\nexport type ColumnSizingTableCellProps = Pick<TableHeaderCellProps, 'style'>;\n\nexport type EnableKeyboardModeOnChangeCallback = (columnId: TableColumnId, isKeyboardMode: boolean) => void;\n\nexport interface TableColumnSizingState {\n getOnMouseDown: (columnId: TableColumnId) => (e: React.MouseEvent | React.TouchEvent) => void;\n setColumnWidth: (columnId: TableColumnId, newSize: number) => void;\n getColumnWidths: () => ColumnWidthState[];\n getTableProps: (props?: TableProps) => ColumnSizingTableProps;\n getTableHeaderCellProps: (columnId: TableColumnId) => ColumnSizingTableHeaderCellProps;\n getTableCellProps: (columnId: TableColumnId) => ColumnSizingTableCellProps;\n enableKeyboardMode: (\n columnId: TableColumnId,\n onChange?: EnableKeyboardModeOnChangeCallback,\n ) => (e: React.MouseEvent | React.TouchEvent) => void;\n}\n\nexport type ColumnResizeState = {\n getColumnWidth: (columnId: TableColumnId) => number;\n setColumnWidth: (\n e: KeyboardEvent | TouchEvent | MouseEvent | undefined,\n data: { columnId: TableColumnId; width: number },\n ) => void;\n getColumnById: (columnId: TableColumnId) => ColumnWidthState | undefined;\n getColumns: () => ColumnWidthState[];\n};\n\nexport type TableColumnSizingOptions = Record<\n TableColumnId,\n Partial<Pick<ColumnWidthState, 'minWidth' | 'idealWidth' | 'padding'>> & {\n defaultWidth?: number;\n autoFitColumns?: boolean;\n }\n>;\n\nexport type UseTableColumnSizingParams = {\n columnSizingOptions?: TableColumnSizingOptions;\n onColumnResize?: (\n e: KeyboardEvent | TouchEvent | MouseEvent | undefined,\n data: { columnId: TableColumnId; width: number },\n ) => void;\n containerWidthOffset?: number;\n autoFitColumns?: boolean;\n};\n"],"names":["React"],"mappings":";;;;;iEAAuB,QAAQ"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useKeyboardResizing.ts"],"sourcesContent":["import * as React from 'react';\nimport { ArrowLeft, ArrowRight, Enter, Escape, Shift, Space } from '@fluentui/keyboard-keys';\nimport { useEventCallback } from '@fluentui/react-utilities';\nimport { ColumnResizeState, EnableKeyboardModeOnChangeCallback, TableColumnId } from './types';\nimport { useFocusFinders, useTabsterAttributes } from '@fluentui/react-tabster';\n\nconst STEP = 20;\nconst PRECISION_MODIFIER = Shift;\nconst PRECISION_FACTOR = 1 / 4;\n\nexport function useKeyboardResizing(columnResizeState: ColumnResizeState) {\n const [columnId, setColumnId] = React.useState<TableColumnId>();\n const onChangeRef = React.useRef<EnableKeyboardModeOnChangeCallback>();\n const { findPrevFocusable } = useFocusFinders();\n\n const columnResizeStateRef = React.useRef<ColumnResizeState>(columnResizeState);\n React.useEffect(() => {\n columnResizeStateRef.current = columnResizeState;\n }, [columnResizeState]);\n\n const [resizeHandleRefs] = React.useState(() => new Map<TableColumnId, React.RefObject<HTMLDivElement>>());\n\n const keyboardHandler = useEventCallback((event: React.KeyboardEvent) => {\n if (!columnId) {\n return;\n }\n\n const width = columnResizeStateRef.current.getColumnWidth(columnId);\n const precisionModifier = event.getModifierState(PRECISION_MODIFIER);\n\n const stopEvent = () => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n switch (event.key) {\n case ArrowLeft:\n stopEvent();\n columnResizeStateRef.current.setColumnWidth(event.nativeEvent, {\n columnId,\n width: width - (precisionModifier ? STEP * PRECISION_FACTOR : STEP),\n });\n return;\n\n case ArrowRight:\n stopEvent();\n columnResizeStateRef.current.setColumnWidth(event.nativeEvent, {\n columnId,\n width: width + (precisionModifier ? STEP * PRECISION_FACTOR : STEP),\n });\n return;\n\n case Space:\n case Enter:\n case Escape:\n stopEvent();\n // Just blur here, the onBlur handler will take care of the rest (disableInteractiveMode).\n resizeHandleRefs.get(columnId)?.current?.blur();\n break;\n }\n });\n\n const enableInteractiveMode = React.useCallback(\n (colId: TableColumnId) => {\n setColumnId(colId);\n onChangeRef.current?.(colId, true);\n\n const handle = resizeHandleRefs.get(colId)?.current;\n if (handle) {\n handle.setAttribute('tabindex', '-1');\n handle.tabIndex = -1;\n handle.focus();\n }\n },\n [resizeHandleRefs],\n );\n\n const disableInteractiveMode = React.useCallback(() => {\n if (!columnId) {\n return;\n }\n // Notify the onChange listener that we are disabling interactive mode.\n onChangeRef.current?.(columnId, false);\n // Find the previous focusable element (table header button) and focus it.\n const el = resizeHandleRefs.get(columnId)?.current;\n if (el) {\n findPrevFocusable(el)?.focus(); // Focus the previous focusable element (header button).\n el.removeAttribute('tabindex');\n }\n\n setColumnId(undefined);\n }, [columnId, findPrevFocusable, resizeHandleRefs]);\n\n const toggleInteractiveMode = (colId: TableColumnId, onChange?: EnableKeyboardModeOnChangeCallback) => {\n onChangeRef.current = onChange;\n if (!columnId) {\n enableInteractiveMode(colId);\n } else if (colId && columnId !== colId) {\n enableInteractiveMode(colId);\n setColumnId(colId);\n } else {\n disableInteractiveMode();\n }\n };\n\n const getKeyboardResizingRef = React.useCallback(\n (colId: TableColumnId) => {\n const ref = resizeHandleRefs.get(colId) || React.createRef<HTMLDivElement>();\n resizeHandleRefs.set(colId, ref);\n return ref;\n },\n [resizeHandleRefs],\n );\n\n // This makes sure the left and right arrow keys are ignored in tabster,\n // so that they can be used for resizing.\n const tabsterAttrs = useTabsterAttributes({\n focusable: {\n ignoreKeydown: {\n ArrowLeft: true,\n ArrowRight: true,\n },\n },\n });\n\n return {\n toggleInteractiveMode,\n columnId,\n getKeyboardResizingProps: React.useCallback(\n (colId: TableColumnId, currentWidth: number) => ({\n onKeyDown: keyboardHandler,\n onBlur: disableInteractiveMode,\n ref: getKeyboardResizingRef(colId),\n role: 'separator',\n 'aria-label': 'Resize column',\n 'aria-valuetext': `${currentWidth} pixels`,\n 'aria-hidden': colId === columnId ? false : true,\n tabIndex: colId === columnId ? 0 : undefined,\n ...tabsterAttrs,\n }),\n [columnId, disableInteractiveMode, getKeyboardResizingRef, keyboardHandler, tabsterAttrs],\n ),\n };\n}\n"],"names":["useKeyboardResizing","STEP","PRECISION_MODIFIER","Shift","PRECISION_FACTOR","columnResizeState","columnId","setColumnId","React","useState","onChangeRef","useRef","findPrevFocusable","useFocusFinders","columnResizeStateRef","useEffect","current","resizeHandleRefs","Map","keyboardHandler","useEventCallback","event","width","getColumnWidth","precisionModifier","getModifierState","stopEvent","preventDefault","stopPropagation","key","ArrowLeft","setColumnWidth","nativeEvent","ArrowRight","Space","Enter","Escape","get","blur","enableInteractiveMode","useCallback","colId","handle","setAttribute","tabIndex","focus","disableInteractiveMode","el","removeAttribute","undefined","toggleInteractiveMode","onChange","getKeyboardResizingRef","ref","createRef","set","tabsterAttrs","useTabsterAttributes","focusable","ignoreKeydown","getKeyboardResizingProps","currentWidth","onKeyDown","onBlur","role"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../src/hooks/useKeyboardResizing.ts"],"sourcesContent":["import * as React from 'react';\nimport { ArrowLeft, ArrowRight, Enter, Escape, Shift, Space } from '@fluentui/keyboard-keys';\nimport { useEventCallback } from '@fluentui/react-utilities';\nimport { ColumnResizeState, EnableKeyboardModeOnChangeCallback, TableColumnId } from './types';\nimport { useFocusFinders, useTabsterAttributes } from '@fluentui/react-tabster';\n\nconst STEP = 20;\nconst PRECISION_MODIFIER = Shift;\nconst PRECISION_FACTOR = 1 / 4;\n\nexport function useKeyboardResizing(columnResizeState: ColumnResizeState) {\n const [columnId, setColumnId] = React.useState<TableColumnId>();\n const onChangeRef = React.useRef<EnableKeyboardModeOnChangeCallback>();\n const { findPrevFocusable } = useFocusFinders();\n\n const columnResizeStateRef = React.useRef<ColumnResizeState>(columnResizeState);\n React.useEffect(() => {\n columnResizeStateRef.current = columnResizeState;\n }, [columnResizeState]);\n\n const [resizeHandleRefs] = React.useState(() => new Map<TableColumnId, React.RefObject<HTMLDivElement>>());\n\n const keyboardHandler = useEventCallback((event: React.KeyboardEvent) => {\n if (!columnId) {\n return;\n }\n\n const width = columnResizeStateRef.current.getColumnWidth(columnId);\n const precisionModifier = event.getModifierState(PRECISION_MODIFIER);\n\n const stopEvent = () => {\n event.preventDefault();\n event.stopPropagation();\n };\n\n switch (event.key) {\n case ArrowLeft:\n stopEvent();\n columnResizeStateRef.current.setColumnWidth(event.nativeEvent, {\n columnId,\n width: width - (precisionModifier ? STEP * PRECISION_FACTOR : STEP),\n });\n return;\n\n case ArrowRight:\n stopEvent();\n columnResizeStateRef.current.setColumnWidth(event.nativeEvent, {\n columnId,\n width: width + (precisionModifier ? STEP * PRECISION_FACTOR : STEP),\n });\n return;\n\n case Space:\n case Enter:\n case Escape:\n stopEvent();\n // Just blur here, the onBlur handler will take care of the rest (disableInteractiveMode).\n resizeHandleRefs.get(columnId)?.current?.blur();\n break;\n }\n });\n\n const enableInteractiveMode = React.useCallback(\n (colId: TableColumnId) => {\n setColumnId(colId);\n onChangeRef.current?.(colId, true);\n\n const handle = resizeHandleRefs.get(colId)?.current;\n if (handle) {\n handle.setAttribute('tabindex', '-1');\n handle.tabIndex = -1;\n handle.focus();\n }\n },\n [resizeHandleRefs],\n );\n\n const disableInteractiveMode = React.useCallback(() => {\n if (!columnId) {\n return;\n }\n // Notify the onChange listener that we are disabling interactive mode.\n onChangeRef.current?.(columnId, false);\n // Find the previous focusable element (table header button) and focus it.\n const el = resizeHandleRefs.get(columnId)?.current;\n if (el) {\n findPrevFocusable(el)?.focus(); // Focus the previous focusable element (header button).\n el.removeAttribute('tabindex');\n }\n\n setColumnId(undefined);\n }, [columnId, findPrevFocusable, resizeHandleRefs]);\n\n const toggleInteractiveMode = (colId: TableColumnId, onChange?: EnableKeyboardModeOnChangeCallback) => {\n onChangeRef.current = onChange;\n if (!columnId) {\n enableInteractiveMode(colId);\n } else if (colId && columnId !== colId) {\n enableInteractiveMode(colId);\n setColumnId(colId);\n } else {\n disableInteractiveMode();\n }\n };\n\n const getKeyboardResizingRef = React.useCallback(\n (colId: TableColumnId) => {\n const ref = resizeHandleRefs.get(colId) || React.createRef<HTMLDivElement>();\n resizeHandleRefs.set(colId, ref);\n return ref;\n },\n [resizeHandleRefs],\n );\n\n // This makes sure the left and right arrow keys are ignored in tabster,\n // so that they can be used for resizing.\n const tabsterAttrs = useTabsterAttributes({\n focusable: {\n ignoreKeydown: {\n ArrowLeft: true,\n ArrowRight: true,\n },\n },\n });\n\n return {\n toggleInteractiveMode,\n columnId,\n getKeyboardResizingProps: React.useCallback(\n (colId: TableColumnId, currentWidth: number) => ({\n onKeyDown: keyboardHandler,\n onBlur: disableInteractiveMode,\n ref: getKeyboardResizingRef(colId),\n role: 'separator',\n 'aria-label': 'Resize column',\n 'aria-valuetext': `${currentWidth} pixels`,\n 'aria-hidden': colId === columnId ? false : true,\n tabIndex: colId === columnId ? 0 : undefined,\n ...tabsterAttrs,\n }),\n [columnId, disableInteractiveMode, getKeyboardResizingRef, keyboardHandler, tabsterAttrs],\n ),\n };\n}\n"],"names":["React","ArrowLeft","ArrowRight","Enter","Escape","Shift","Space","useEventCallback","useFocusFinders","useTabsterAttributes","STEP","PRECISION_MODIFIER","PRECISION_FACTOR","useKeyboardResizing","columnResizeState","columnId","setColumnId","useState","onChangeRef","useRef","findPrevFocusable","columnResizeStateRef","useEffect","current","resizeHandleRefs","Map","keyboardHandler","event","width","getColumnWidth","precisionModifier","getModifierState","stopEvent","preventDefault","stopPropagation","key","setColumnWidth","nativeEvent","get","blur","enableInteractiveMode","useCallback","colId","handle","setAttribute","tabIndex","focus","disableInteractiveMode","el","removeAttribute","undefined","toggleInteractiveMode","onChange","getKeyboardResizingRef","ref","createRef","set","tabsterAttrs","focusable","ignoreKeydown","getKeyboardResizingProps","currentWidth","onKeyDown","onBlur","role"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useMeasureElement.ts"],"sourcesContent":["import * as React from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n\n/**\n * Provides a way of reporting element width.\n * Returns\n * `width` - current element width (0 by default),\n * `measureElementRef` - a ref function to be passed as `ref` to the element you want to measure\n */\nexport function useMeasureElement<TElement extends HTMLElement = HTMLElement>() {\n const [width, setWidth] = React.useState(0);\n\n const container = React.useRef<HTMLElement | undefined>(undefined);\n\n const resizeObserverRef = React.useRef<ResizeObserver | null>(null);\n\n const { targetDocument } = useFluent();\n\n // the handler for resize observer\n const handleResize = React.useCallback(() => {\n const containerWidth = container.current?.getBoundingClientRect().width;\n setWidth(containerWidth || 0);\n }, []);\n\n const measureElementRef = React.useCallback(\n (el: TElement | null) => {\n if (!targetDocument) {\n return;\n }\n\n // if the element is removed, stop observing it\n if (!el && resizeObserverRef.current && container.current) {\n resizeObserverRef.current.unobserve(container.current);\n }\n\n container.current = undefined;\n\n if (el?.parentElement) {\n container.current = el.parentElement;\n handleResize();\n resizeObserverRef.current?.observe(container.current);\n }\n },\n [targetDocument, handleResize],\n );\n\n React.useEffect(() => {\n resizeObserverRef.current = createResizeObserverFromDocument(targetDocument, handleResize);\n\n if (!container.current || !resizeObserverRef.current) {\n return;\n }\n\n resizeObserverRef.current.observe(container.current);\n\n return () => {\n resizeObserverRef.current?.disconnect();\n };\n }, [handleResize, targetDocument]);\n\n return { width, measureElementRef };\n}\n\n/**\n * FIXME - TS 3.8/3.9 don't have ResizeObserver types by default, move this to a shared utility once we bump the minbar\n * A utility method that creates a ResizeObserver from a target document\n * @param targetDocument - document to use to create the ResizeObserver\n * @param callback - https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver/ResizeObserver#callback\n * @returns a ResizeObserver instance or null if the global does not exist on the document\n */\nexport function createResizeObserverFromDocument(\n targetDocument: Document | null | undefined,\n callback: ResizeObserverCallback,\n) {\n if (!targetDocument?.defaultView?.ResizeObserver) {\n return null;\n }\n\n return new targetDocument.defaultView.ResizeObserver(callback);\n}\n"],"names":["createResizeObserverFromDocument","useMeasureElement","width","setWidth","React","useState","container","useRef","undefined","resizeObserverRef","targetDocument","useFluent","handleResize","useCallback","containerWidth","current","getBoundingClientRect","measureElementRef","el","unobserve","parentElement","observe","useEffect","disconnect","callback","defaultView","ResizeObserver"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAsEgBA,gCAAAA;eAAAA;;IA7DAC,iBAAAA;eAAAA;;;;iEATO;qCACyB;AAQzC,SAASA;IACd,MAAM,CAACC,OAAOC,SAAS,GAAGC,OAAMC,QAAQ,CAAC;IAEzC,MAAMC,YAAYF,OAAMG,MAAM,CAA0BC;IAExD,MAAMC,oBAAoBL,OAAMG,MAAM,CAAwB;IAE9D,MAAM,EAAEG,cAAc,EAAE,GAAGC,IAAAA,uCAAAA;IAE3B,kCAAkC;IAClC,MAAMC,eAAeR,OAAMS,WAAW,CAAC;YACdP;QAAvB,MAAMQ,iBAAAA,AAAiBR,CAAAA,qBAAAA,UAAUS,OAAO,AAAPA,MAAO,QAAjBT,uBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,mBAAmBU,qBAAqB,GAAGd,KAAK;QACvEC,SAASW,kBAAkB;IAC7B,GAAG,EAAE;IAEL,MAAMG,oBAAoBb,OAAMS,WAAW,CACzC,CAACK;QACC,IAAI,CAACR,gBAAgB;YACnB;QACF;QAEA,+CAA+C;QAC/C,IAAI,CAACQ,MAAMT,kBAAkBM,OAAO,IAAIT,UAAUS,OAAO,EAAE;YACzDN,kBAAkBM,OAAO,CAACI,SAAS,CAACb,UAAUS,OAAO;QACvD;QAEAT,UAAUS,OAAO,GAAGP;QAEpB,IAAIU,OAAAA,QAAAA,OAAAA,KAAAA,IAAAA,KAAAA,IAAAA,GAAIE,aAAa,EAAE;gBAGrBX;YAFAH,UAAUS,OAAO,GAAGG,GAAGE,aAAa;YACpCR;YACAH,CAAAA,6BAAAA,kBAAkBM,OAAO,AAAPA,MAAO,QAAzBN,+BAAAA,KAAAA,IAAAA,KAAAA,IAAAA,2BAA2BY,OAAO,CAACf,UAAUS,OAAO;QACtD;IACF,GACA;QAACL;QAAgBE;KAAa;IAGhCR,OAAMkB,SAAS,CAAC;QACdb,kBAAkBM,OAAO,GAAGf,iCAAiCU,gBAAgBE;QAE7E,IAAI,CAACN,UAAUS,OAAO,IAAI,CAACN,kBAAkBM,OAAO,EAAE;YACpD;QACF;QAEAN,kBAAkBM,OAAO,CAACM,OAAO,CAACf,UAAUS,OAAO;QAEnD,OAAO;gBACLN;YAAAA,CAAAA,6BAAAA,kBAAkBM,OAAO,AAAPA,MAAO,QAAzBN,+BAAAA,KAAAA,IAAAA,KAAAA,IAAAA,2BAA2Bc,UAAU;QACvC;IACF,GAAG;QAACX;QAAcF;KAAe;IAEjC,OAAO;QAAER;QAAOe;IAAkB;AACpC;AASO,SAASjB,iCACdU,cAA2C,EAC3Cc,QAAgC;QAE3Bd;IAAL,IAAI,CAACA,CAAAA,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,CAAAA,8BAAAA,eAAgBe,WAAW,AAAXA,MAAW,QAA3Bf,gCAAAA,KAAAA,IAAAA,KAAAA,IAAAA,4BAA6BgB,cAAc,AAAdA,GAAgB;QAChD,OAAO;IACT;IAEA,OAAO,IAAIhB,eAAee,WAAW,CAACC,cAAc,CAACF;AACvD"}
1
+ {"version":3,"sources":["../src/hooks/useMeasureElement.ts"],"sourcesContent":["import * as React from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n\n/**\n * Provides a way of reporting element width.\n * Returns\n * `width` - current element width (0 by default),\n * `measureElementRef` - a ref function to be passed as `ref` to the element you want to measure\n */\nexport function useMeasureElement<TElement extends HTMLElement = HTMLElement>() {\n const [width, setWidth] = React.useState(0);\n\n const container = React.useRef<HTMLElement | undefined>(undefined);\n\n const resizeObserverRef = React.useRef<ResizeObserver | null>(null);\n\n const { targetDocument } = useFluent();\n\n // the handler for resize observer\n const handleResize = React.useCallback(() => {\n const containerWidth = container.current?.getBoundingClientRect().width;\n setWidth(containerWidth || 0);\n }, []);\n\n const measureElementRef = React.useCallback(\n (el: TElement | null) => {\n if (!targetDocument) {\n return;\n }\n\n // if the element is removed, stop observing it\n if (!el && resizeObserverRef.current && container.current) {\n resizeObserverRef.current.unobserve(container.current);\n }\n\n container.current = undefined;\n\n if (el?.parentElement) {\n container.current = el.parentElement;\n handleResize();\n resizeObserverRef.current?.observe(container.current);\n }\n },\n [targetDocument, handleResize],\n );\n\n React.useEffect(() => {\n resizeObserverRef.current = createResizeObserverFromDocument(targetDocument, handleResize);\n\n if (!container.current || !resizeObserverRef.current) {\n return;\n }\n\n resizeObserverRef.current.observe(container.current);\n\n return () => {\n resizeObserverRef.current?.disconnect();\n };\n }, [handleResize, targetDocument]);\n\n return { width, measureElementRef };\n}\n\n/**\n * FIXME - TS 3.8/3.9 don't have ResizeObserver types by default, move this to a shared utility once we bump the minbar\n * A utility method that creates a ResizeObserver from a target document\n * @param targetDocument - document to use to create the ResizeObserver\n * @param callback - https://developer.mozilla.org/en-US/docs/Web/API/ResizeObserver/ResizeObserver#callback\n * @returns a ResizeObserver instance or null if the global does not exist on the document\n */\nexport function createResizeObserverFromDocument(\n targetDocument: Document | null | undefined,\n callback: ResizeObserverCallback,\n) {\n if (!targetDocument?.defaultView?.ResizeObserver) {\n return null;\n }\n\n return new targetDocument.defaultView.ResizeObserver(callback);\n}\n"],"names":["React","useFluent_unstable","useFluent","useMeasureElement","width","setWidth","useState","container","useRef","undefined","resizeObserverRef","targetDocument","handleResize","useCallback","containerWidth","current","getBoundingClientRect","measureElementRef","el","unobserve","parentElement","observe","useEffect","createResizeObserverFromDocument","disconnect","callback","defaultView","ResizeObserver"],"mappings":";;;;;;;;;;;oCAsEgBuB;eAAAA;;IA7DApB,iBAAAA;;;;;iEATO,QAAQ;qCACiB,kCAAkC;AAQ3E;IACL,MAAM,CAACC,OAAOC,SAAS,GAAGL,OAAMM,QAAQ,CAAC;IAEzC,MAAMC,YAAYP,OAAMQ,MAAM,CAA0BC;IAExD,MAAMC,oBAAoBV,OAAMQ,MAAM,CAAwB;IAE9D,MAAM,EAAEG,cAAc,EAAE,OAAGT,uCAAAA;IAE3B,kCAAkC;IAClC,MAAMU,eAAeZ,OAAMa,WAAW,CAAC;YACdN;QAAvB,MAAMO,iBAAAA,CAAiBP,qBAAAA,UAAUQ,OAAAA,AAAO,MAAA,QAAjBR,uBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,mBAAmBS,qBAAqB,GAAGZ,KAAK;QACvEC,SAASS,kBAAkB;IAC7B,GAAG,EAAE;IAEL,MAAMG,oBAAoBjB,OAAMa,WAAW,CACzC,CAACK;QACC,IAAI,CAACP,gBAAgB;YACnB;QACF;QAEA,+CAA+C;QAC/C,IAAI,CAACO,MAAMR,kBAAkBK,OAAO,IAAIR,UAAUQ,OAAO,EAAE;YACzDL,kBAAkBK,OAAO,CAACI,SAAS,CAACZ,UAAUQ,OAAO;QACvD;QAEAR,UAAUQ,OAAO,GAAGN;QAEpB,IAAIS,OAAAA,QAAAA,OAAAA,KAAAA,IAAAA,KAAAA,IAAAA,GAAIE,aAAa,EAAE;gBAGrBV;YAFAH,UAAUQ,OAAO,GAAGG,GAAGE,aAAa;YACpCR;aACAF,6BAAAA,kBAAkBK,OAAAA,AAAO,MAAA,QAAzBL,+BAAAA,KAAAA,IAAAA,KAAAA,IAAAA,2BAA2BW,OAAO,CAACd,UAAUQ,OAAO;QACtD;IACF,GACA;QAACJ;QAAgBC;KAAa;IAGhCZ,OAAMsB,SAAS,CAAC;QACdZ,kBAAkBK,OAAO,GAAGQ,iCAAiCZ,gBAAgBC;QAE7E,IAAI,CAACL,UAAUQ,OAAO,IAAI,CAACL,kBAAkBK,OAAO,EAAE;YACpD;QACF;QAEAL,kBAAkBK,OAAO,CAACM,OAAO,CAACd,UAAUQ,OAAO;QAEnD,OAAO;gBACLL;aAAAA,6BAAAA,kBAAkBK,OAAAA,AAAO,MAAA,QAAzBL,+BAAAA,KAAAA,IAAAA,KAAAA,IAAAA,2BAA2Bc,UAAU;QACvC;IACF,GAAG;QAACZ;QAAcD;KAAe;IAEjC,OAAO;QAAEP;QAAOa;IAAkB;AACpC;AASO,0CACLN,cAA2C,EAC3Cc,QAAgC;QAE3Bd;IAAL,IAAI,EAACA,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,CAAAA,8BAAAA,eAAgBe,WAAAA,AAAW,MAAA,QAA3Bf,gCAAAA,KAAAA,IAAAA,KAAAA,IAAAA,4BAA6BgB,cAAAA,AAAc,GAAE;QAChD,OAAO;IACT;IAEA,OAAO,IAAIhB,eAAee,WAAW,CAACC,cAAc,CAACF;AACvD"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useTableColumnResizeMouseHandler.ts"],"sourcesContent":["import * as React from 'react';\nimport { TableColumnId, ColumnResizeState } from './types';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport {\n NativeTouchOrMouseEvent,\n ReactTouchOrMouseEvent,\n getEventClientCoords,\n isMouseEvent,\n isTouchEvent,\n useAnimationFrame,\n} from '@fluentui/react-utilities';\n\nexport function useTableColumnResizeMouseHandler(columnResizeState: ColumnResizeState) {\n const mouseX = React.useRef(0);\n const currentWidth = React.useRef(0);\n const colId = React.useRef<TableColumnId | undefined>(undefined);\n const [dragging, setDragging] = React.useState<boolean>(false);\n\n const { targetDocument } = useFluent();\n\n const { getColumnWidth, setColumnWidth } = columnResizeState;\n\n const recalculatePosition = React.useCallback(\n (e: NativeTouchOrMouseEvent) => {\n const { clientX } = getEventClientCoords(e);\n const dx = clientX - mouseX.current;\n\n // Update the local width for the column and set it\n currentWidth.current += dx;\n colId.current && setColumnWidth(e, { columnId: colId.current, width: currentWidth.current });\n mouseX.current = clientX;\n },\n [setColumnWidth],\n );\n\n const [requestRecalcFrame] = useAnimationFrame();\n\n const onDrag = React.useCallback(\n (e: NativeTouchOrMouseEvent) => {\n // Using requestAnimationFrame here drastically improves resizing experience on slower CPUs\n requestRecalcFrame(() => recalculatePosition(e));\n },\n [requestRecalcFrame, recalculatePosition],\n );\n\n const onDragEnd = React.useCallback(\n (event: NativeTouchOrMouseEvent) => {\n if (isMouseEvent(event)) {\n targetDocument?.removeEventListener('mouseup', onDragEnd);\n targetDocument?.removeEventListener('mousemove', onDrag);\n }\n if (isTouchEvent(event)) {\n targetDocument?.removeEventListener('touchend', onDragEnd);\n targetDocument?.removeEventListener('touchmove', onDrag);\n }\n setDragging(false);\n },\n [onDrag, targetDocument],\n );\n\n const getOnMouseDown = React.useCallback(\n (columnId: TableColumnId) => (event: ReactTouchOrMouseEvent) => {\n // Keep the width locally so that we decouple the calculation of the next with from rendering.\n // This makes the whole experience much faster and more precise\n currentWidth.current = getColumnWidth(columnId);\n mouseX.current = getEventClientCoords(event).clientX;\n colId.current = columnId;\n\n if (isMouseEvent(event)) {\n // ignore other buttons than primary mouse button\n if (event.target !== event.currentTarget || event.button !== 0) {\n return;\n }\n targetDocument?.addEventListener('mouseup', onDragEnd);\n targetDocument?.addEventListener('mousemove', onDrag);\n setDragging(true);\n }\n\n if (isTouchEvent(event)) {\n targetDocument?.addEventListener('touchend', onDragEnd);\n targetDocument?.addEventListener('touchmove', onDrag);\n setDragging(true);\n }\n },\n [getColumnWidth, onDrag, onDragEnd, targetDocument],\n );\n\n return {\n getOnMouseDown,\n dragging,\n };\n}\n"],"names":["useTableColumnResizeMouseHandler","columnResizeState","mouseX","React","useRef","currentWidth","colId","undefined","dragging","setDragging","useState","targetDocument","useFluent","getColumnWidth","setColumnWidth","recalculatePosition","useCallback","e","clientX","getEventClientCoords","dx","current","columnId","width","requestRecalcFrame","useAnimationFrame","onDrag","onDragEnd","event","isMouseEvent","removeEventListener","isTouchEvent","getOnMouseDown","target","currentTarget","button","addEventListener"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAYgBA;;;eAAAA;;;;iEAZO;qCAEyB;gCAQzC;AAEA,SAASA,iCAAiCC,iBAAoC;IACnF,MAAMC,SAASC,OAAMC,MAAM,CAAC;IAC5B,MAAMC,eAAeF,OAAMC,MAAM,CAAC;IAClC,MAAME,QAAQH,OAAMC,MAAM,CAA4BG;IACtD,MAAM,CAACC,UAAUC,YAAY,GAAGN,OAAMO,QAAQ,CAAU;IAExD,MAAM,EAAEC,cAAc,EAAE,GAAGC,IAAAA,uCAAAA;IAE3B,MAAM,EAAEC,cAAc,EAAEC,cAAc,EAAE,GAAGb;IAE3C,MAAMc,sBAAsBZ,OAAMa,WAAW,CAC3C,CAACC;QACC,MAAM,EAAEC,OAAO,EAAE,GAAGC,IAAAA,oCAAAA,EAAqBF;QACzC,MAAMG,KAAKF,UAAUhB,OAAOmB,OAAO;QAEnC,mDAAmD;QACnDhB,aAAagB,OAAO,IAAID;QACxBd,MAAMe,OAAO,IAAIP,eAAeG,GAAG;YAAEK,UAAUhB,MAAMe,OAAO;YAAEE,OAAOlB,aAAagB,OAAO;QAAC;QAC1FnB,OAAOmB,OAAO,GAAGH;IACnB,GACA;QAACJ;KAAe;IAGlB,MAAM,CAACU,mBAAmB,GAAGC,IAAAA,iCAAAA;IAE7B,MAAMC,SAASvB,OAAMa,WAAW,CAC9B,CAACC;QACC,2FAA2F;QAC3FO,mBAAmB,IAAMT,oBAAoBE;IAC/C,GACA;QAACO;QAAoBT;KAAoB;IAG3C,MAAMY,YAAYxB,OAAMa,WAAW,CACjC,CAACY;QACC,IAAIC,IAAAA,4BAAAA,EAAaD,QAAQ;YACvBjB,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBmB,mBAAmB,CAAC,WAAWH;YAC/ChB,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBmB,mBAAmB,CAAC,aAAaJ;QACnD;QACA,IAAIK,IAAAA,4BAAAA,EAAaH,QAAQ;YACvBjB,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBmB,mBAAmB,CAAC,YAAYH;YAChDhB,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgBmB,mBAAmB,CAAC,aAAaJ;QACnD;QACAjB,YAAY;IACd,GACA;QAACiB;QAAQf;KAAe;IAG1B,MAAMqB,iBAAiB7B,OAAMa,WAAW,CACtC,CAACM,WAA4B,CAACM;YAC5B,8FAA8F;YAC9F,+DAA+D;YAC/DvB,aAAagB,OAAO,GAAGR,eAAeS;YACtCpB,OAAOmB,OAAO,GAAGF,IAAAA,oCAAAA,EAAqBS,OAAOV,OAAO;YACpDZ,MAAMe,OAAO,GAAGC;YAEhB,IAAIO,IAAAA,4BAAAA,EAAaD,QAAQ;gBACvB,iDAAiD;gBACjD,IAAIA,MAAMK,MAAM,KAAKL,MAAMM,aAAa,IAAIN,MAAMO,MAAM,KAAK,GAAG;oBAC9D;gBACF;gBACAxB,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgByB,gBAAgB,CAAC,WAAWT;gBAC5ChB,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgByB,gBAAgB,CAAC,aAAaV;gBAC9CjB,YAAY;YACd;YAEA,IAAIsB,IAAAA,4BAAAA,EAAaH,QAAQ;gBACvBjB,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgByB,gBAAgB,CAAC,YAAYT;gBAC7ChB,mBAAAA,QAAAA,mBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,eAAgByB,gBAAgB,CAAC,aAAaV;gBAC9CjB,YAAY;YACd;QACF,GACA;QAACI;QAAgBa;QAAQC;QAAWhB;KAAe;IAGrD,OAAO;QACLqB;QACAxB;IACF;AACF"}
1
+ {"version":3,"sources":["../src/hooks/useTableColumnResizeMouseHandler.ts"],"sourcesContent":["import * as React from 'react';\nimport { TableColumnId, ColumnResizeState } from './types';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport {\n NativeTouchOrMouseEvent,\n ReactTouchOrMouseEvent,\n getEventClientCoords,\n isMouseEvent,\n isTouchEvent,\n useAnimationFrame,\n} from '@fluentui/react-utilities';\n\nexport function useTableColumnResizeMouseHandler(columnResizeState: ColumnResizeState) {\n const mouseX = React.useRef(0);\n const currentWidth = React.useRef(0);\n const colId = React.useRef<TableColumnId | undefined>(undefined);\n const [dragging, setDragging] = React.useState<boolean>(false);\n\n const { targetDocument } = useFluent();\n\n const { getColumnWidth, setColumnWidth } = columnResizeState;\n\n const recalculatePosition = React.useCallback(\n (e: NativeTouchOrMouseEvent) => {\n const { clientX } = getEventClientCoords(e);\n const dx = clientX - mouseX.current;\n\n // Update the local width for the column and set it\n currentWidth.current += dx;\n colId.current && setColumnWidth(e, { columnId: colId.current, width: currentWidth.current });\n mouseX.current = clientX;\n },\n [setColumnWidth],\n );\n\n const [requestRecalcFrame] = useAnimationFrame();\n\n const onDrag = React.useCallback(\n (e: NativeTouchOrMouseEvent) => {\n // Using requestAnimationFrame here drastically improves resizing experience on slower CPUs\n requestRecalcFrame(() => recalculatePosition(e));\n },\n [requestRecalcFrame, recalculatePosition],\n );\n\n const onDragEnd = React.useCallback(\n (event: NativeTouchOrMouseEvent) => {\n if (isMouseEvent(event)) {\n targetDocument?.removeEventListener('mouseup', onDragEnd);\n targetDocument?.removeEventListener('mousemove', onDrag);\n }\n if (isTouchEvent(event)) {\n targetDocument?.removeEventListener('touchend', onDragEnd);\n targetDocument?.removeEventListener('touchmove', onDrag);\n }\n setDragging(false);\n },\n [onDrag, targetDocument],\n );\n\n const getOnMouseDown = React.useCallback(\n (columnId: TableColumnId) => (event: ReactTouchOrMouseEvent) => {\n // Keep the width locally so that we decouple the calculation of the next with from rendering.\n // This makes the whole experience much faster and more precise\n currentWidth.current = getColumnWidth(columnId);\n mouseX.current = getEventClientCoords(event).clientX;\n colId.current = columnId;\n\n if (isMouseEvent(event)) {\n // ignore other buttons than primary mouse button\n if (event.target !== event.currentTarget || event.button !== 0) {\n return;\n }\n targetDocument?.addEventListener('mouseup', onDragEnd);\n targetDocument?.addEventListener('mousemove', onDrag);\n setDragging(true);\n }\n\n if (isTouchEvent(event)) {\n targetDocument?.addEventListener('touchend', onDragEnd);\n targetDocument?.addEventListener('touchmove', onDrag);\n setDragging(true);\n }\n },\n [getColumnWidth, onDrag, onDragEnd, targetDocument],\n );\n\n return {\n getOnMouseDown,\n dragging,\n };\n}\n"],"names":["React","useFluent_unstable","useFluent","getEventClientCoords","isMouseEvent","isTouchEvent","useAnimationFrame","useTableColumnResizeMouseHandler","columnResizeState","mouseX","useRef","currentWidth","colId","undefined","dragging","setDragging","useState","targetDocument","getColumnWidth","setColumnWidth","recalculatePosition","useCallback","e","clientX","dx","current","columnId","width","requestRecalcFrame","onDrag","onDragEnd","event","removeEventListener","getOnMouseDown","target","currentTarget","button","addEventListener"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useTableColumnResizeState.ts"],"sourcesContent":["import { useEventCallback, useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport {\n TableColumnDefinition,\n TableColumnId,\n ColumnResizeState,\n ColumnWidthState,\n UseTableColumnSizingParams,\n TableColumnSizingOptions,\n} from './types';\nimport {\n columnDefinitionsToState,\n adjustColumnWidthsToFitContainer,\n getColumnById,\n setColumnProperty,\n getColumnWidth,\n} from '../utils/columnResizeUtils';\n\ntype ComponentState<T> = {\n columns: TableColumnDefinition<T>[];\n containerWidth: number;\n columnWidthState: ColumnWidthState[];\n columnSizingOptions: TableColumnSizingOptions | undefined;\n};\n\ntype ColumnResizeStateAction<T> =\n | {\n type: 'CONTAINER_WIDTH_UPDATED';\n containerWidth: number;\n }\n | {\n type: 'COLUMNS_UPDATED';\n columns: TableColumnDefinition<T>[];\n }\n | {\n type: 'COLUMN_SIZING_OPTIONS_UPDATED';\n columnSizingOptions: TableColumnSizingOptions | undefined;\n }\n | {\n type: 'SET_COLUMN_WIDTH';\n columnId: TableColumnId;\n width: number;\n };\n\nconst createReducer =\n <T>(autoFitColumns?: boolean) =>\n (state: ComponentState<T>, action: ColumnResizeStateAction<T>): ComponentState<T> => {\n switch (action.type) {\n case 'CONTAINER_WIDTH_UPDATED':\n return {\n ...state,\n containerWidth: action.containerWidth,\n columnWidthState: autoFitColumns\n ? adjustColumnWidthsToFitContainer(state.columnWidthState, action.containerWidth)\n : state.columnWidthState,\n };\n\n case 'COLUMNS_UPDATED':\n const newS = columnDefinitionsToState(action.columns, state.columnWidthState, state.columnSizingOptions);\n return {\n ...state,\n columns: action.columns,\n columnWidthState: autoFitColumns ? adjustColumnWidthsToFitContainer(newS, state.containerWidth) : newS,\n };\n\n case 'COLUMN_SIZING_OPTIONS_UPDATED':\n const newState = columnDefinitionsToState(state.columns, state.columnWidthState, action.columnSizingOptions);\n return {\n ...state,\n columnSizingOptions: action.columnSizingOptions,\n columnWidthState: autoFitColumns\n ? adjustColumnWidthsToFitContainer(newState, state.containerWidth)\n : newState,\n };\n\n case 'SET_COLUMN_WIDTH':\n const { columnId, width } = action;\n const { containerWidth } = state;\n\n const column = getColumnById(state.columnWidthState, columnId);\n let newColumnWidthState = [...state.columnWidthState];\n\n if (!column) {\n return state;\n }\n\n // Adjust the column width and measure the new total width\n newColumnWidthState = setColumnProperty(newColumnWidthState, columnId, 'width', width);\n // Set this width as idealWidth, because its a deliberate change, not a recalculation because of container\n newColumnWidthState = setColumnProperty(newColumnWidthState, columnId, 'idealWidth', width);\n // Adjust the widths to the container size\n if (autoFitColumns) {\n newColumnWidthState = adjustColumnWidthsToFitContainer(newColumnWidthState, containerWidth);\n }\n\n return { ...state, columnWidthState: newColumnWidthState };\n }\n };\n\nexport function useTableColumnResizeState<T>(\n columns: TableColumnDefinition<T>[],\n containerWidth: number,\n params: UseTableColumnSizingParams = {},\n): ColumnResizeState {\n const { onColumnResize, columnSizingOptions, autoFitColumns = true } = params;\n\n const reducer = React.useMemo(() => createReducer<T>(autoFitColumns), [autoFitColumns]);\n\n const [state, dispatch] = React.useReducer(reducer, {\n columns,\n containerWidth: 0,\n columnWidthState: columnDefinitionsToState(columns, undefined, columnSizingOptions),\n columnSizingOptions,\n });\n\n useIsomorphicLayoutEffect(() => {\n dispatch({ type: 'CONTAINER_WIDTH_UPDATED', containerWidth });\n }, [containerWidth]);\n\n useIsomorphicLayoutEffect(() => {\n dispatch({ type: 'COLUMNS_UPDATED', columns });\n }, [columns]);\n\n useIsomorphicLayoutEffect(() => {\n dispatch({ type: 'COLUMN_SIZING_OPTIONS_UPDATED', columnSizingOptions });\n }, [columnSizingOptions]);\n\n const setColumnWidth = useEventCallback(\n (event: KeyboardEvent | MouseEvent | TouchEvent | undefined, data: { columnId: TableColumnId; width: number }) => {\n let { width } = data;\n const { columnId } = data;\n const col = getColumnById(state.columnWidthState, columnId);\n if (!col) {\n return;\n }\n\n width = Math.max(col.minWidth || 0, width);\n\n if (onColumnResize) {\n onColumnResize(event, { columnId, width });\n }\n dispatch({ type: 'SET_COLUMN_WIDTH', columnId, width });\n },\n );\n\n return {\n getColumnById: React.useCallback(\n (colId: TableColumnId) => getColumnById(state.columnWidthState, colId),\n [state.columnWidthState],\n ),\n getColumns: React.useCallback(() => state.columnWidthState, [state.columnWidthState]),\n getColumnWidth: React.useCallback(\n (colId: TableColumnId) => getColumnWidth(state.columnWidthState, colId),\n [state.columnWidthState],\n ),\n setColumnWidth,\n };\n}\n"],"names":["useTableColumnResizeState","createReducer","autoFitColumns","state","action","type","containerWidth","columnWidthState","adjustColumnWidthsToFitContainer","newS","columnDefinitionsToState","columns","columnSizingOptions","newState","columnId","width","column","getColumnById","newColumnWidthState","setColumnProperty","params","onColumnResize","reducer","React","useMemo","dispatch","useReducer","undefined","useIsomorphicLayoutEffect","setColumnWidth","useEventCallback","event","data","col","Math","max","minWidth","useCallback","colId","getColumns","getColumnWidth"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../src/hooks/useTableColumnResizeState.ts"],"sourcesContent":["import { useEventCallback, useIsomorphicLayoutEffect } from '@fluentui/react-utilities';\nimport * as React from 'react';\nimport {\n TableColumnDefinition,\n TableColumnId,\n ColumnResizeState,\n ColumnWidthState,\n UseTableColumnSizingParams,\n TableColumnSizingOptions,\n} from './types';\nimport {\n columnDefinitionsToState,\n adjustColumnWidthsToFitContainer,\n getColumnById,\n setColumnProperty,\n getColumnWidth,\n} from '../utils/columnResizeUtils';\n\ntype ComponentState<T> = {\n columns: TableColumnDefinition<T>[];\n containerWidth: number;\n columnWidthState: ColumnWidthState[];\n columnSizingOptions: TableColumnSizingOptions | undefined;\n};\n\ntype ColumnResizeStateAction<T> =\n | {\n type: 'CONTAINER_WIDTH_UPDATED';\n containerWidth: number;\n }\n | {\n type: 'COLUMNS_UPDATED';\n columns: TableColumnDefinition<T>[];\n }\n | {\n type: 'COLUMN_SIZING_OPTIONS_UPDATED';\n columnSizingOptions: TableColumnSizingOptions | undefined;\n }\n | {\n type: 'SET_COLUMN_WIDTH';\n columnId: TableColumnId;\n width: number;\n };\n\nconst createReducer =\n <T>(autoFitColumns?: boolean) =>\n (state: ComponentState<T>, action: ColumnResizeStateAction<T>): ComponentState<T> => {\n switch (action.type) {\n case 'CONTAINER_WIDTH_UPDATED':\n return {\n ...state,\n containerWidth: action.containerWidth,\n columnWidthState: autoFitColumns\n ? adjustColumnWidthsToFitContainer(state.columnWidthState, action.containerWidth)\n : state.columnWidthState,\n };\n\n case 'COLUMNS_UPDATED':\n const newS = columnDefinitionsToState(action.columns, state.columnWidthState, state.columnSizingOptions);\n return {\n ...state,\n columns: action.columns,\n columnWidthState: autoFitColumns ? adjustColumnWidthsToFitContainer(newS, state.containerWidth) : newS,\n };\n\n case 'COLUMN_SIZING_OPTIONS_UPDATED':\n const newState = columnDefinitionsToState(state.columns, state.columnWidthState, action.columnSizingOptions);\n return {\n ...state,\n columnSizingOptions: action.columnSizingOptions,\n columnWidthState: autoFitColumns\n ? adjustColumnWidthsToFitContainer(newState, state.containerWidth)\n : newState,\n };\n\n case 'SET_COLUMN_WIDTH':\n const { columnId, width } = action;\n const { containerWidth } = state;\n\n const column = getColumnById(state.columnWidthState, columnId);\n let newColumnWidthState = [...state.columnWidthState];\n\n if (!column) {\n return state;\n }\n\n // Adjust the column width and measure the new total width\n newColumnWidthState = setColumnProperty(newColumnWidthState, columnId, 'width', width);\n // Set this width as idealWidth, because its a deliberate change, not a recalculation because of container\n newColumnWidthState = setColumnProperty(newColumnWidthState, columnId, 'idealWidth', width);\n // Adjust the widths to the container size\n if (autoFitColumns) {\n newColumnWidthState = adjustColumnWidthsToFitContainer(newColumnWidthState, containerWidth);\n }\n\n return { ...state, columnWidthState: newColumnWidthState };\n }\n };\n\nexport function useTableColumnResizeState<T>(\n columns: TableColumnDefinition<T>[],\n containerWidth: number,\n params: UseTableColumnSizingParams = {},\n): ColumnResizeState {\n const { onColumnResize, columnSizingOptions, autoFitColumns = true } = params;\n\n const reducer = React.useMemo(() => createReducer<T>(autoFitColumns), [autoFitColumns]);\n\n const [state, dispatch] = React.useReducer(reducer, {\n columns,\n containerWidth: 0,\n columnWidthState: columnDefinitionsToState(columns, undefined, columnSizingOptions),\n columnSizingOptions,\n });\n\n useIsomorphicLayoutEffect(() => {\n dispatch({ type: 'CONTAINER_WIDTH_UPDATED', containerWidth });\n }, [containerWidth]);\n\n useIsomorphicLayoutEffect(() => {\n dispatch({ type: 'COLUMNS_UPDATED', columns });\n }, [columns]);\n\n useIsomorphicLayoutEffect(() => {\n dispatch({ type: 'COLUMN_SIZING_OPTIONS_UPDATED', columnSizingOptions });\n }, [columnSizingOptions]);\n\n const setColumnWidth = useEventCallback(\n (event: KeyboardEvent | MouseEvent | TouchEvent | undefined, data: { columnId: TableColumnId; width: number }) => {\n let { width } = data;\n const { columnId } = data;\n const col = getColumnById(state.columnWidthState, columnId);\n if (!col) {\n return;\n }\n\n width = Math.max(col.minWidth || 0, width);\n\n if (onColumnResize) {\n onColumnResize(event, { columnId, width });\n }\n dispatch({ type: 'SET_COLUMN_WIDTH', columnId, width });\n },\n );\n\n return {\n getColumnById: React.useCallback(\n (colId: TableColumnId) => getColumnById(state.columnWidthState, colId),\n [state.columnWidthState],\n ),\n getColumns: React.useCallback(() => state.columnWidthState, [state.columnWidthState]),\n getColumnWidth: React.useCallback(\n (colId: TableColumnId) => getColumnWidth(state.columnWidthState, colId),\n [state.columnWidthState],\n ),\n setColumnWidth,\n };\n}\n"],"names":["useEventCallback","useIsomorphicLayoutEffect","React","columnDefinitionsToState","adjustColumnWidthsToFitContainer","getColumnById","setColumnProperty","getColumnWidth","createReducer","autoFitColumns","state","action","type","containerWidth","columnWidthState","newS","columns","columnSizingOptions","newState","columnId","width","column","newColumnWidthState","useTableColumnResizeState","params","onColumnResize","reducer","useMemo","dispatch","useReducer","undefined","setColumnWidth","event","data","col","Math","max","minWidth","useCallback","colId","getColumns"],"mappings":";;;;+BAmGgBuB;;;;;;;gCAnG4C,4BAA4B;iEACjE,QAAQ;mCAexB,6BAA6B;AA4BpC,MAAMf,gBACJ,CAAIC,iBACJ,CAACC,OAA0BC;QACzB,OAAQA,OAAOC,IAAI;YACjB,KAAK;gBACH,OAAO;oBACL,GAAGF,KAAK;oBACRG,gBAAgBF,OAAOE,cAAc;oBACrCC,kBAAkBL,qBACdL,mDAAAA,EAAiCM,MAAMI,gBAAgB,EAAEH,OAAOE,cAAc,IAC9EH,MAAMI,gBAAgB;gBAC5B;YAEF,KAAK;gBACH,MAAMC,WAAOZ,2CAAAA,EAAyBQ,OAAOK,OAAO,EAAEN,MAAMI,gBAAgB,EAAEJ,MAAMO,mBAAmB;gBACvG,OAAO;oBACL,GAAGP,KAAK;oBACRM,SAASL,OAAOK,OAAO;oBACvBF,kBAAkBL,qBAAiBL,mDAAAA,EAAiCW,MAAML,MAAMG,cAAc,IAAIE;gBACpG;YAEF,KAAK;gBACH,MAAMG,eAAWf,2CAAAA,EAAyBO,MAAMM,OAAO,EAAEN,MAAMI,gBAAgB,EAAEH,OAAOM,mBAAmB;gBAC3G,OAAO;oBACL,GAAGP,KAAK;oBACRO,qBAAqBN,OAAOM,mBAAmB;oBAC/CH,kBAAkBL,qBACdL,mDAAAA,EAAiCc,UAAUR,MAAMG,cAAc,IAC/DK;gBACN;YAEF,KAAK;gBACH,MAAM,EAAEC,QAAQ,EAAEC,KAAK,EAAE,GAAGT;gBAC5B,MAAM,EAAEE,cAAc,EAAE,GAAGH;gBAE3B,MAAMW,aAAShB,gCAAAA,EAAcK,MAAMI,gBAAgB,EAAEK;gBACrD,IAAIG,sBAAsB;uBAAIZ,MAAMI,gBAAgB;iBAAC;gBAErD,IAAI,CAACO,QAAQ;oBACX,OAAOX;gBACT;gBAEA,0DAA0D;gBAC1DY,0BAAsBhB,oCAAAA,EAAkBgB,qBAAqBH,UAAU,SAASC;gBAChF,0GAA0G;gBAC1GE,0BAAsBhB,oCAAAA,EAAkBgB,qBAAqBH,UAAU,cAAcC;gBACrF,0CAA0C;gBAC1C,IAAIX,gBAAgB;oBAClBa,0BAAsBlB,mDAAAA,EAAiCkB,qBAAqBT;gBAC9E;gBAEA,OAAO;oBAAE,GAAGH,KAAK;oBAAEI,kBAAkBQ;gBAAoB;QAC7D;IACF;AAEK,mCACLN,OAAmC,EACnCH,cAAsB,EACtBW,SAAqC,CAAC,CAAC;IAEvC,MAAM,EAAEC,cAAc,EAAER,mBAAmB,EAAER,iBAAiB,IAAI,EAAE,GAAGe;IAEvE,MAAME,UAAUxB,OAAMyB,OAAO,CAAC,IAAMnB,cAAiBC,iBAAiB;QAACA;KAAe;IAEtF,MAAM,CAACC,OAAOkB,SAAS,GAAG1B,OAAM2B,UAAU,CAACH,SAAS;QAClDV;QACAH,gBAAgB;QAChBC,sBAAkBX,2CAAAA,EAAyBa,SAASc,WAAWb;QAC/DA;IACF;QAEAhB,yCAAAA,EAA0B;QACxB2B,SAAS;YAAEhB,MAAM;YAA2BC;QAAe;IAC7D,GAAG;QAACA;KAAe;QAEnBZ,yCAAAA,EAA0B;QACxB2B,SAAS;YAAEhB,MAAM;YAAmBI;QAAQ;IAC9C,GAAG;QAACA;KAAQ;IAEZf,6CAAAA,EAA0B;QACxB2B,SAAS;YAAEhB,MAAM;YAAiCK;QAAoB;IACxE,GAAG;QAACA;KAAoB;IAExB,MAAMc,qBAAiB/B,gCAAAA,EACrB,CAACgC,OAA4DC;QAC3D,IAAI,EAAEb,KAAK,EAAE,GAAGa;QAChB,MAAM,EAAEd,QAAQ,EAAE,GAAGc;QACrB,MAAMC,UAAM7B,gCAAAA,EAAcK,MAAMI,gBAAgB,EAAEK;QAClD,IAAI,CAACe,KAAK;YACR;QACF;QAEAd,QAAQe,KAAKC,GAAG,CAACF,IAAIG,QAAQ,IAAI,GAAGjB;QAEpC,IAAIK,gBAAgB;YAClBA,eAAeO,OAAO;gBAAEb;gBAAUC;YAAM;QAC1C;QACAQ,SAAS;YAAEhB,MAAM;YAAoBO;YAAUC;QAAM;IACvD;IAGF,OAAO;QACLf,eAAeH,OAAMoC,WAAW,CAC9B,CAACC,YAAyBlC,gCAAAA,EAAcK,MAAMI,gBAAgB,EAAEyB,QAChE;YAAC7B,MAAMI,gBAAgB;SAAC;QAE1B0B,YAAYtC,OAAMoC,WAAW,CAAC,IAAM5B,MAAMI,gBAAgB,EAAE;YAACJ,MAAMI,gBAAgB;SAAC;QACpFP,gBAAgBL,OAAMoC,WAAW,CAC/B,CAACC,YAAyBhC,iCAAAA,EAAeG,MAAMI,gBAAgB,EAAEyB,QACjE;YAAC7B,MAAMI,gBAAgB;SAAC;QAE1BiB;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useTableColumnSizing.tsx"],"sourcesContent":["import * as React from 'react';\nimport { TableResizeHandle } from '../TableResizeHandle';\nimport {\n ColumnWidthState,\n EnableKeyboardModeOnChangeCallback,\n TableColumnId,\n TableColumnSizingState,\n TableFeaturesState,\n UseTableColumnSizingParams,\n} from './types';\n\nimport { useMeasureElement } from './useMeasureElement';\nimport { useTableColumnResizeMouseHandler } from './useTableColumnResizeMouseHandler';\nimport { useTableColumnResizeState } from './useTableColumnResizeState';\nimport { useKeyboardResizing } from './useKeyboardResizing';\n\nexport const defaultColumnSizingState: TableColumnSizingState = {\n getColumnWidths: () => [],\n getOnMouseDown: () => () => null,\n setColumnWidth: () => null,\n getTableProps: () => ({}),\n getTableHeaderCellProps: () => ({ style: {}, columnId: '' }),\n getTableCellProps: () => ({ style: {}, columnId: '' }),\n enableKeyboardMode: () => () => null,\n};\n\nexport function useTableColumnSizing_unstable<TItem>(params?: UseTableColumnSizingParams) {\n 'use no memo';\n\n // False positive, these plugin hooks are intended to be run on every render\n\n return (tableState: TableFeaturesState<TItem>) =>\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useTableColumnSizingState(tableState, { autoFitColumns: true, ...params });\n}\n\nfunction getColumnStyles(column: ColumnWidthState, dragging?: boolean): React.CSSProperties {\n const width = column.width;\n\n return {\n // native styles\n width,\n // non-native element styles (flex layout)\n minWidth: width,\n maxWidth: width,\n // Fixed the unwanted sort: https://github.com/microsoft/fluentui/issues/27803\n ...(dragging ? { pointerEvents: 'none' } : {}),\n };\n}\n\nfunction useTableColumnSizingState<TItem>(\n tableState: TableFeaturesState<TItem>,\n params: UseTableColumnSizingParams = {},\n): TableFeaturesState<TItem> {\n const { columns } = tableState;\n\n // Gets the container width\n const { width, measureElementRef } = useMeasureElement();\n // Creates the state based on columns and available containerWidth\n const columnResizeState = useTableColumnResizeState(columns, width + (params?.containerWidthOffset || 0), params);\n // Creates the mouse handler and attaches the state to it\n const mouseHandler = useTableColumnResizeMouseHandler(columnResizeState);\n // Creates the keyboard handler for resizing columns\n const { toggleInteractiveMode, getKeyboardResizingProps } = useKeyboardResizing(columnResizeState);\n\n const { autoFitColumns } = params;\n\n const enableKeyboardMode = React.useCallback(\n (columnId: TableColumnId, onChange?: EnableKeyboardModeOnChangeCallback) =>\n (e: React.MouseEvent | React.TouchEvent) => {\n e.preventDefault();\n e.nativeEvent.stopPropagation();\n toggleInteractiveMode(columnId, onChange);\n },\n [toggleInteractiveMode],\n );\n\n const { getColumnById, setColumnWidth, getColumns } = columnResizeState;\n const { getOnMouseDown, dragging } = mouseHandler;\n return {\n ...tableState,\n tableRef: measureElementRef,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n columnSizing_unstable: {\n getOnMouseDown,\n setColumnWidth: (columnId: TableColumnId, w: number) => setColumnWidth(undefined, { columnId, width: w }),\n getColumnWidths: getColumns,\n getTableProps: (props = {}) => {\n return {\n ...props,\n style: {\n minWidth: 'fit-content',\n ...(props.style || {}),\n },\n };\n },\n getTableHeaderCellProps: React.useCallback(\n (columnId: TableColumnId) => {\n const col = getColumnById(columnId);\n const isLastColumn = columns[columns.length - 1]?.columnId === columnId;\n\n const aside =\n isLastColumn && autoFitColumns ? null : (\n <TableResizeHandle\n onMouseDown={getOnMouseDown(columnId)}\n onTouchStart={getOnMouseDown(columnId)}\n {...getKeyboardResizingProps(columnId, col?.width || 0)}\n />\n );\n\n return col\n ? {\n style: getColumnStyles(col, dragging),\n aside,\n }\n : {};\n },\n [getColumnById, columns, dragging, getKeyboardResizingProps, getOnMouseDown, autoFitColumns],\n ),\n getTableCellProps: React.useCallback(\n (columnId: TableColumnId) => {\n const col = getColumnById(columnId);\n return col ? { style: getColumnStyles(col) } : {};\n },\n [getColumnById],\n ),\n enableKeyboardMode,\n },\n };\n}\n"],"names":["defaultColumnSizingState","useTableColumnSizing_unstable","getColumnWidths","getOnMouseDown","setColumnWidth","getTableProps","getTableHeaderCellProps","style","columnId","getTableCellProps","enableKeyboardMode","params","tableState","useTableColumnSizingState","autoFitColumns","getColumnStyles","column","dragging","width","minWidth","maxWidth","pointerEvents","columns","measureElementRef","useMeasureElement","columnResizeState","useTableColumnResizeState","containerWidthOffset","mouseHandler","useTableColumnResizeMouseHandler","toggleInteractiveMode","getKeyboardResizingProps","useKeyboardResizing","React","useCallback","onChange","e","preventDefault","nativeEvent","stopPropagation","getColumnById","getColumns","tableRef","columnSizing_unstable","w","undefined","props","col","isLastColumn","length","aside","createElement","TableResizeHandle","onMouseDown","onTouchStart"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../src/hooks/useTableColumnSizing.tsx"],"sourcesContent":["import * as React from 'react';\nimport { TableResizeHandle } from '../TableResizeHandle';\nimport {\n ColumnWidthState,\n EnableKeyboardModeOnChangeCallback,\n TableColumnId,\n TableColumnSizingState,\n TableFeaturesState,\n UseTableColumnSizingParams,\n} from './types';\n\nimport { useMeasureElement } from './useMeasureElement';\nimport { useTableColumnResizeMouseHandler } from './useTableColumnResizeMouseHandler';\nimport { useTableColumnResizeState } from './useTableColumnResizeState';\nimport { useKeyboardResizing } from './useKeyboardResizing';\n\nexport const defaultColumnSizingState: TableColumnSizingState = {\n getColumnWidths: () => [],\n getOnMouseDown: () => () => null,\n setColumnWidth: () => null,\n getTableProps: () => ({}),\n getTableHeaderCellProps: () => ({ style: {}, columnId: '' }),\n getTableCellProps: () => ({ style: {}, columnId: '' }),\n enableKeyboardMode: () => () => null,\n};\n\nexport function useTableColumnSizing_unstable<TItem>(params?: UseTableColumnSizingParams) {\n 'use no memo';\n\n // False positive, these plugin hooks are intended to be run on every render\n\n return (tableState: TableFeaturesState<TItem>) =>\n // eslint-disable-next-line react-hooks/rules-of-hooks\n useTableColumnSizingState(tableState, { autoFitColumns: true, ...params });\n}\n\nfunction getColumnStyles(column: ColumnWidthState, dragging?: boolean): React.CSSProperties {\n const width = column.width;\n\n return {\n // native styles\n width,\n // non-native element styles (flex layout)\n minWidth: width,\n maxWidth: width,\n // Fixed the unwanted sort: https://github.com/microsoft/fluentui/issues/27803\n ...(dragging ? { pointerEvents: 'none' } : {}),\n };\n}\n\nfunction useTableColumnSizingState<TItem>(\n tableState: TableFeaturesState<TItem>,\n params: UseTableColumnSizingParams = {},\n): TableFeaturesState<TItem> {\n const { columns } = tableState;\n\n // Gets the container width\n const { width, measureElementRef } = useMeasureElement();\n // Creates the state based on columns and available containerWidth\n const columnResizeState = useTableColumnResizeState(columns, width + (params?.containerWidthOffset || 0), params);\n // Creates the mouse handler and attaches the state to it\n const mouseHandler = useTableColumnResizeMouseHandler(columnResizeState);\n // Creates the keyboard handler for resizing columns\n const { toggleInteractiveMode, getKeyboardResizingProps } = useKeyboardResizing(columnResizeState);\n\n const { autoFitColumns } = params;\n\n const enableKeyboardMode = React.useCallback(\n (columnId: TableColumnId, onChange?: EnableKeyboardModeOnChangeCallback) =>\n (e: React.MouseEvent | React.TouchEvent) => {\n e.preventDefault();\n e.nativeEvent.stopPropagation();\n toggleInteractiveMode(columnId, onChange);\n },\n [toggleInteractiveMode],\n );\n\n const { getColumnById, setColumnWidth, getColumns } = columnResizeState;\n const { getOnMouseDown, dragging } = mouseHandler;\n return {\n ...tableState,\n tableRef: measureElementRef,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n columnSizing_unstable: {\n getOnMouseDown,\n setColumnWidth: (columnId: TableColumnId, w: number) => setColumnWidth(undefined, { columnId, width: w }),\n getColumnWidths: getColumns,\n getTableProps: (props = {}) => {\n return {\n ...props,\n style: {\n minWidth: 'fit-content',\n ...(props.style || {}),\n },\n };\n },\n getTableHeaderCellProps: React.useCallback(\n (columnId: TableColumnId) => {\n const col = getColumnById(columnId);\n const isLastColumn = columns[columns.length - 1]?.columnId === columnId;\n\n const aside =\n isLastColumn && autoFitColumns ? null : (\n <TableResizeHandle\n onMouseDown={getOnMouseDown(columnId)}\n onTouchStart={getOnMouseDown(columnId)}\n {...getKeyboardResizingProps(columnId, col?.width || 0)}\n />\n );\n\n return col\n ? {\n style: getColumnStyles(col, dragging),\n aside,\n }\n : {};\n },\n [getColumnById, columns, dragging, getKeyboardResizingProps, getOnMouseDown, autoFitColumns],\n ),\n getTableCellProps: React.useCallback(\n (columnId: TableColumnId) => {\n const col = getColumnById(columnId);\n return col ? { style: getColumnStyles(col) } : {};\n },\n [getColumnById],\n ),\n enableKeyboardMode,\n },\n };\n}\n"],"names":["React","TableResizeHandle","useMeasureElement","useTableColumnResizeMouseHandler","useTableColumnResizeState","useKeyboardResizing","defaultColumnSizingState","getColumnWidths","getOnMouseDown","setColumnWidth","getTableProps","getTableHeaderCellProps","style","columnId","getTableCellProps","enableKeyboardMode","useTableColumnSizing_unstable","params","tableState","useTableColumnSizingState","autoFitColumns","getColumnStyles","column","dragging","width","minWidth","maxWidth","pointerEvents","columns","measureElementRef","columnResizeState","containerWidthOffset","mouseHandler","toggleInteractiveMode","getKeyboardResizingProps","useCallback","onChange","e","preventDefault","nativeEvent","stopPropagation","getColumnById","getColumns","tableRef","columnSizing_unstable","w","undefined","props","col","isLastColumn","length","aside","onMouseDown","onTouchStart"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useTableCompositeNavigation.ts"],"sourcesContent":["import * as React from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowDown, ArrowRight, ArrowUp } from '@fluentui/keyboard-keys';\nimport {\n useArrowNavigationGroup,\n useFocusableGroup,\n useMergedTabsterAttributes_unstable,\n TabsterDOMAttribute,\n useFocusFinders,\n GroupperMoveFocusEvent,\n MoverMoveFocusEvent,\n GroupperMoveFocusActions,\n MoverKeys,\n} from '@fluentui/react-tabster';\nimport { isHTMLElement } from '@fluentui/react-utilities';\n\nexport function useTableCompositeNavigation(): {\n onTableKeyDown: React.KeyboardEventHandler;\n tableTabsterAttribute: TabsterDOMAttribute;\n tableRowTabsterAttribute: TabsterDOMAttribute;\n} {\n const horizontalAttr = useArrowNavigationGroup({ axis: 'horizontal' });\n const gridAttr = useArrowNavigationGroup({ axis: 'grid' });\n const groupperAttr = useFocusableGroup({ tabBehavior: 'limited-trap-focus' });\n const { findFirstFocusable } = useFocusFinders();\n const { targetDocument } = useFluent();\n\n const rowAttr = useMergedTabsterAttributes_unstable(horizontalAttr, groupperAttr);\n\n const onKeyDown: React.KeyboardEventHandler = React.useCallback(\n e => {\n if (!targetDocument) {\n return;\n }\n\n let activeElement = targetDocument.activeElement;\n if (!activeElement || !e.currentTarget.contains(activeElement)) {\n return;\n }\n const activeElementRole = activeElement.getAttribute('role');\n\n // Enter groupper when in row focus mode to navigate cells\n if (e.key === ArrowRight && activeElementRole === 'row' && isHTMLElement(activeElement)) {\n findFirstFocusable(activeElement)?.focus();\n }\n\n if (activeElementRole === 'row') {\n return;\n }\n\n const isInCell = (() => {\n let cur = isHTMLElement(activeElement) ? activeElement : null;\n while (cur) {\n const curRole = cur.getAttribute('role');\n if (curRole === 'cell' || curRole === 'gridcell') {\n return true;\n }\n\n cur = cur.parentElement;\n }\n\n return false;\n })();\n\n // Escape groupper focus trap before arrow down\n if ((e.key === ArrowDown || e.key === ArrowUp) && isInCell) {\n activeElement.dispatchEvent(new GroupperMoveFocusEvent({ action: GroupperMoveFocusActions.Escape }));\n\n activeElement = targetDocument.activeElement;\n\n if (activeElement) {\n activeElement.dispatchEvent(new MoverMoveFocusEvent({ key: MoverKeys[e.key] }));\n }\n }\n },\n [targetDocument, findFirstFocusable],\n );\n\n return {\n onTableKeyDown: onKeyDown,\n tableTabsterAttribute: gridAttr,\n tableRowTabsterAttribute: rowAttr,\n };\n}\n"],"names":["useTableCompositeNavigation","horizontalAttr","useArrowNavigationGroup","axis","gridAttr","groupperAttr","useFocusableGroup","tabBehavior","findFirstFocusable","useFocusFinders","targetDocument","useFluent","rowAttr","useMergedTabsterAttributes_unstable","onKeyDown","React","useCallback","e","activeElement","currentTarget","contains","activeElementRole","getAttribute","key","ArrowRight","isHTMLElement","focus","isInCell","cur","curRole","parentElement","ArrowDown","ArrowUp","dispatchEvent","GroupperMoveFocusEvent","action","GroupperMoveFocusActions","Escape","MoverMoveFocusEvent","MoverKeys","onTableKeyDown","tableTabsterAttribute","tableRowTabsterAttribute"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;+BAgBgBA;;;eAAAA;;;;iEAhBO;qCACyB;8BACD;8BAWxC;gCACuB;AAEvB,SAASA;IAKd,MAAMC,iBAAiBC,IAAAA,qCAAAA,EAAwB;QAAEC,MAAM;IAAa;IACpE,MAAMC,WAAWF,IAAAA,qCAAAA,EAAwB;QAAEC,MAAM;IAAO;IACxD,MAAME,eAAeC,IAAAA,+BAAAA,EAAkB;QAAEC,aAAa;IAAqB;IAC3E,MAAM,EAAEC,kBAAkB,EAAE,GAAGC,IAAAA,6BAAAA;IAC/B,MAAM,EAAEC,cAAc,EAAE,GAAGC,IAAAA,uCAAAA;IAE3B,MAAMC,UAAUC,IAAAA,iDAAAA,EAAoCZ,gBAAgBI;IAEpE,MAAMS,YAAwCC,OAAMC,WAAW,CAC7DC,CAAAA;QACE,IAAI,CAACP,gBAAgB;YACnB;QACF;QAEA,IAAIQ,gBAAgBR,eAAeQ,aAAa;QAChD,IAAI,CAACA,iBAAiB,CAACD,EAAEE,aAAa,CAACC,QAAQ,CAACF,gBAAgB;YAC9D;QACF;QACA,MAAMG,oBAAoBH,cAAcI,YAAY,CAAC;QAErD,0DAA0D;QAC1D,IAAIL,EAAEM,GAAG,KAAKC,wBAAAA,IAAcH,sBAAsB,SAASI,IAAAA,6BAAAA,EAAcP,gBAAgB;gBACvFV;YAAAA,CAAAA,sBAAAA,mBAAmBU,cAAAA,MAAAA,QAAnBV,wBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,oBAAmCkB,KAAK;QAC1C;QAEA,IAAIL,sBAAsB,OAAO;YAC/B;QACF;QAEA,MAAMM,WAAW,AAAC,CAAA;YAChB,IAAIC,MAAMH,IAAAA,6BAAAA,EAAcP,iBAAiBA,gBAAgB;YACzD,MAAOU,IAAK;gBACV,MAAMC,UAAUD,IAAIN,YAAY,CAAC;gBACjC,IAAIO,YAAY,UAAUA,YAAY,YAAY;oBAChD,OAAO;gBACT;gBAEAD,MAAMA,IAAIE,aAAa;YACzB;YAEA,OAAO;QACT,CAAA;QAEA,+CAA+C;QAC/C,IAAI,AAACb,CAAAA,EAAEM,GAAG,KAAKQ,uBAAAA,IAAad,EAAEM,GAAG,KAAKS,qBAAM,AAANA,KAAYL,UAAU;YAC1DT,cAAce,aAAa,CAAC,IAAIC,oCAAAA,CAAuB;gBAAEC,QAAQC,sCAAAA,CAAyBC,MAAM;YAAC;YAEjGnB,gBAAgBR,eAAeQ,aAAa;YAE5C,IAAIA,eAAe;gBACjBA,cAAce,aAAa,CAAC,IAAIK,iCAAAA,CAAoB;oBAAEf,KAAKgB,uBAAS,CAACtB,EAAEM,GAAG,CAAC;gBAAC;YAC9E;QACF;IACF,GACA;QAACb;QAAgBF;KAAmB;IAGtC,OAAO;QACLgC,gBAAgB1B;QAChB2B,uBAAuBrC;QACvBsC,0BAA0B9B;IAC5B;AACF"}
1
+ {"version":3,"sources":["../src/hooks/useTableCompositeNavigation.ts"],"sourcesContent":["import * as React from 'react';\nimport { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\nimport { ArrowDown, ArrowRight, ArrowUp } from '@fluentui/keyboard-keys';\nimport {\n useArrowNavigationGroup,\n useFocusableGroup,\n useMergedTabsterAttributes_unstable,\n TabsterDOMAttribute,\n useFocusFinders,\n GroupperMoveFocusEvent,\n MoverMoveFocusEvent,\n GroupperMoveFocusActions,\n MoverKeys,\n} from '@fluentui/react-tabster';\nimport { isHTMLElement } from '@fluentui/react-utilities';\n\nexport function useTableCompositeNavigation(): {\n onTableKeyDown: React.KeyboardEventHandler;\n tableTabsterAttribute: TabsterDOMAttribute;\n tableRowTabsterAttribute: TabsterDOMAttribute;\n} {\n const horizontalAttr = useArrowNavigationGroup({ axis: 'horizontal' });\n const gridAttr = useArrowNavigationGroup({ axis: 'grid' });\n const groupperAttr = useFocusableGroup({ tabBehavior: 'limited-trap-focus' });\n const { findFirstFocusable } = useFocusFinders();\n const { targetDocument } = useFluent();\n\n const rowAttr = useMergedTabsterAttributes_unstable(horizontalAttr, groupperAttr);\n\n const onKeyDown: React.KeyboardEventHandler = React.useCallback(\n e => {\n if (!targetDocument) {\n return;\n }\n\n let activeElement = targetDocument.activeElement;\n if (!activeElement || !e.currentTarget.contains(activeElement)) {\n return;\n }\n const activeElementRole = activeElement.getAttribute('role');\n\n // Enter groupper when in row focus mode to navigate cells\n if (e.key === ArrowRight && activeElementRole === 'row' && isHTMLElement(activeElement)) {\n findFirstFocusable(activeElement)?.focus();\n }\n\n if (activeElementRole === 'row') {\n return;\n }\n\n const isInCell = (() => {\n let cur = isHTMLElement(activeElement) ? activeElement : null;\n while (cur) {\n const curRole = cur.getAttribute('role');\n if (curRole === 'cell' || curRole === 'gridcell') {\n return true;\n }\n\n cur = cur.parentElement;\n }\n\n return false;\n })();\n\n // Escape groupper focus trap before arrow down\n if ((e.key === ArrowDown || e.key === ArrowUp) && isInCell) {\n activeElement.dispatchEvent(new GroupperMoveFocusEvent({ action: GroupperMoveFocusActions.Escape }));\n\n activeElement = targetDocument.activeElement;\n\n if (activeElement) {\n activeElement.dispatchEvent(new MoverMoveFocusEvent({ key: MoverKeys[e.key] }));\n }\n }\n },\n [targetDocument, findFirstFocusable],\n );\n\n return {\n onTableKeyDown: onKeyDown,\n tableTabsterAttribute: gridAttr,\n tableRowTabsterAttribute: rowAttr,\n };\n}\n"],"names":["React","useFluent_unstable","useFluent","ArrowDown","ArrowRight","ArrowUp","useArrowNavigationGroup","useFocusableGroup","useMergedTabsterAttributes_unstable","useFocusFinders","GroupperMoveFocusEvent","MoverMoveFocusEvent","GroupperMoveFocusActions","MoverKeys","isHTMLElement","useTableCompositeNavigation","horizontalAttr","axis","gridAttr","groupperAttr","tabBehavior","findFirstFocusable","targetDocument","rowAttr","onKeyDown","useCallback","e","activeElement","currentTarget","contains","activeElementRole","getAttribute","key","focus","isInCell","cur","curRole","parentElement","dispatchEvent","action","Escape","onTableKeyDown","tableTabsterAttribute","tableRowTabsterAttribute"],"mappings":";;;;+BAgBgBe;;;;;;;iEAhBO,QAAQ;qCACiB,kCAAkC;8BACnC,0BAA0B;8BAWlE,0BAA0B;gCACH,4BAA4B;AAEnD;IAKL,MAAMC,qBAAiBV,qCAAAA,EAAwB;QAAEW,MAAM;IAAa;IACpE,MAAMC,eAAWZ,qCAAAA,EAAwB;QAAEW,MAAM;IAAO;IACxD,MAAME,mBAAeZ,+BAAAA,EAAkB;QAAEa,aAAa;IAAqB;IAC3E,MAAM,EAAEC,kBAAkB,EAAE,GAAGZ,iCAAAA;IAC/B,MAAM,EAAEa,cAAc,EAAE,OAAGpB,uCAAAA;IAE3B,MAAMqB,cAAUf,iDAAAA,EAAoCQ,gBAAgBG;IAEpE,MAAMK,YAAwCxB,OAAMyB,WAAW,CAC7DC,CAAAA;QACE,IAAI,CAACJ,gBAAgB;YACnB;QACF;QAEA,IAAIK,gBAAgBL,eAAeK,aAAa;QAChD,IAAI,CAACA,iBAAiB,CAACD,EAAEE,aAAa,CAACC,QAAQ,CAACF,gBAAgB;YAC9D;QACF;QACA,MAAMG,oBAAoBH,cAAcI,YAAY,CAAC;QAErD,0DAA0D;QAC1D,IAAIL,EAAEM,GAAG,KAAK5B,wBAAAA,IAAc0B,sBAAsB,aAAShB,6BAAAA,EAAca,gBAAgB;gBACvFN;aAAAA,sBAAAA,mBAAmBM,cAAAA,MAAAA,QAAnBN,wBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,oBAAmCY,KAAK;QAC1C;QAEA,IAAIH,sBAAsB,OAAO;YAC/B;QACF;QAEA,MAAMI,WAAY,CAAA;YAChB,IAAIC,UAAMrB,6BAAAA,EAAca,iBAAiBA,gBAAgB;YACzD,MAAOQ,IAAK;gBACV,MAAMC,UAAUD,IAAIJ,YAAY,CAAC;gBACjC,IAAIK,YAAY,UAAUA,YAAY,YAAY;oBAChD,OAAO;gBACT;gBAEAD,MAAMA,IAAIE,aAAa;YACzB;YAEA,OAAO;SACT,CAAA;QAEA,+CAA+C;QAC/C,IAAKX,CAAAA,EAAEM,GAAG,KAAK7B,uBAAAA,IAAauB,EAAEM,GAAG,KAAK3B,qBAAAA,AAAM,KAAM6B,UAAU;YAC1DP,cAAcW,aAAa,CAAC,IAAI5B,oCAAAA,CAAuB;gBAAE6B,QAAQ3B,sCAAAA,CAAyB4B,MAAM;YAAC;YAEjGb,gBAAgBL,eAAeK,aAAa;YAE5C,IAAIA,eAAe;gBACjBA,cAAcW,aAAa,CAAC,IAAI3B,iCAAAA,CAAoB;oBAAEqB,KAAKnB,uBAAS,CAACa,EAAEM,GAAG,CAAC;gBAAC;YAC9E;QACF;IACF,GACA;QAACV;QAAgBD;KAAmB;IAGtC,OAAO;QACLoB,gBAAgBjB;QAChBkB,uBAAuBxB;QACvByB,0BAA0BpB;IAC5B;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useTableFeatures.ts"],"sourcesContent":["import * as React from 'react';\nimport type {\n UseTableFeaturesOptions,\n TableFeaturesState,\n TableRowData,\n RowEnhancer,\n TableFeaturePlugin,\n TableSortState,\n} from './types';\nimport { defaultTableSelectionState } from './useTableSelection';\nimport { defaultTableSortState } from './useTableSort';\nimport { defaultColumnSizingState } from './useTableColumnSizing';\n\nconst defaultRowEnhancer: RowEnhancer<unknown, TableRowData<unknown>> = row => row;\n\nexport const defaultTableState: TableFeaturesState<unknown> = {\n selection: defaultTableSelectionState,\n sort: defaultTableSortState,\n getRows: () => [],\n getRowId: () => '',\n items: [],\n columns: [],\n // eslint-disable-next-line @typescript-eslint/naming-convention\n columnSizing_unstable: defaultColumnSizingState,\n tableRef: React.createRef<HTMLDivElement>(),\n};\n\nexport function useTableFeatures<TItem>(\n options: UseTableFeaturesOptions<TItem>,\n plugins: TableFeaturePlugin[] = [],\n): TableFeaturesState<TItem> {\n const { items, getRowId, columns } = options;\n\n const getRows = React.useCallback(\n <TRowState extends TableRowData<TItem>>(rowEnhancer = defaultRowEnhancer as RowEnhancer<TItem, TRowState>) => {\n return items.map((item, i) => rowEnhancer({ item, rowId: getRowId?.(item) ?? i }));\n },\n [items, getRowId],\n );\n\n const initialState: TableFeaturesState<TItem> = {\n getRowId,\n items,\n columns,\n getRows,\n selection: defaultTableSelectionState,\n sort: defaultTableSortState as TableSortState<TItem>,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n columnSizing_unstable: defaultColumnSizingState,\n tableRef: React.createRef(),\n };\n\n return plugins.reduce((state, plugin) => plugin(state), initialState);\n}\n"],"names":["defaultTableState","useTableFeatures","defaultRowEnhancer","row","selection","defaultTableSelectionState","sort","defaultTableSortState","getRows","getRowId","items","columns","columnSizing_unstable","defaultColumnSizingState","tableRef","React","createRef","options","plugins","useCallback","rowEnhancer","map","item","i","rowId","initialState","reduce","state","plugin"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAeaA,iBAAAA;eAAAA;;IAYGC,gBAAAA;eAAAA;;;;iEA3BO;mCASoB;8BACL;sCACG;AAEzC,MAAMC,qBAAkEC,CAAAA,MAAOA;AAExE,MAAMH,oBAAiD;IAC5DI,WAAWC,6CAAAA;IACXC,MAAMC,mCAAAA;IACNC,SAAS,IAAM,EAAE;IACjBC,UAAU,IAAM;IAChBC,OAAO,EAAE;IACTC,SAAS,EAAE;IACX,gEAAgE;IAChEC,uBAAuBC,8CAAAA;IACvBC,wBAAUC,OAAMC,SAAS;AAC3B;AAEO,SAASf,iBACdgB,OAAuC,EACvCC,UAAgC,EAAE;IAElC,MAAM,EAAER,KAAK,EAAED,QAAQ,EAAEE,OAAO,EAAE,GAAGM;IAErC,MAAMT,UAAUO,OAAMI,WAAW,CAC/B,CAAwCC,cAAclB,kBAAmD;QACvG,OAAOQ,MAAMW,GAAG,CAAC,CAACC,MAAMC;gBAAiCd;mBAA3BW,YAAY;gBAAEE;gBAAME,OAAOf,CAAAA,YAAAA,aAAAA,QAAAA,aAAAA,KAAAA,IAAAA,KAAAA,IAAAA,SAAWa,KAAAA,MAAAA,QAAXb,cAAAA,KAAAA,IAAAA,YAAoBc;YAAE;QAAC;IAClF,GACA;QAACb;QAAOD;KAAS;IAGnB,MAAMgB,eAA0C;QAC9ChB;QACAC;QACAC;QACAH;QACAJ,WAAWC,6CAAAA;QACXC,MAAMC,mCAAAA;QACN,gEAAgE;QAChEK,uBAAuBC,8CAAAA;QACvBC,wBAAUC,OAAMC,SAAS;IAC3B;IAEA,OAAOE,QAAQQ,MAAM,CAAC,CAACC,OAAOC,SAAWA,OAAOD,QAAQF;AAC1D"}
1
+ {"version":3,"sources":["../src/hooks/useTableFeatures.ts"],"sourcesContent":["import * as React from 'react';\nimport type {\n UseTableFeaturesOptions,\n TableFeaturesState,\n TableRowData,\n RowEnhancer,\n TableFeaturePlugin,\n TableSortState,\n} from './types';\nimport { defaultTableSelectionState } from './useTableSelection';\nimport { defaultTableSortState } from './useTableSort';\nimport { defaultColumnSizingState } from './useTableColumnSizing';\n\nconst defaultRowEnhancer: RowEnhancer<unknown, TableRowData<unknown>> = row => row;\n\nexport const defaultTableState: TableFeaturesState<unknown> = {\n selection: defaultTableSelectionState,\n sort: defaultTableSortState,\n getRows: () => [],\n getRowId: () => '',\n items: [],\n columns: [],\n // eslint-disable-next-line @typescript-eslint/naming-convention\n columnSizing_unstable: defaultColumnSizingState,\n tableRef: React.createRef<HTMLDivElement>(),\n};\n\nexport function useTableFeatures<TItem>(\n options: UseTableFeaturesOptions<TItem>,\n plugins: TableFeaturePlugin[] = [],\n): TableFeaturesState<TItem> {\n const { items, getRowId, columns } = options;\n\n const getRows = React.useCallback(\n <TRowState extends TableRowData<TItem>>(rowEnhancer = defaultRowEnhancer as RowEnhancer<TItem, TRowState>) => {\n return items.map((item, i) => rowEnhancer({ item, rowId: getRowId?.(item) ?? i }));\n },\n [items, getRowId],\n );\n\n const initialState: TableFeaturesState<TItem> = {\n getRowId,\n items,\n columns,\n getRows,\n selection: defaultTableSelectionState,\n sort: defaultTableSortState as TableSortState<TItem>,\n // eslint-disable-next-line @typescript-eslint/naming-convention\n columnSizing_unstable: defaultColumnSizingState,\n tableRef: React.createRef(),\n };\n\n return plugins.reduce((state, plugin) => plugin(state), initialState);\n}\n"],"names":["React","defaultTableSelectionState","defaultTableSortState","defaultColumnSizingState","defaultRowEnhancer","row","defaultTableState","selection","sort","getRows","getRowId","items","columns","columnSizing_unstable","tableRef","createRef","useTableFeatures","options","plugins","useCallback","rowEnhancer","map","item","i","rowId","initialState","reduce","state","plugin"],"mappings":";;;;;;;;;;;IAeaM,iBAAAA;;;oBAYGU;eAAAA;;;;iEA3BO,QAAQ;mCASY,sBAAsB;8BAC3B,iBAAiB;sCACd,yBAAyB;AAElE,MAAMZ,qBAAkEC,CAAAA,MAAOA;AAExE,0BAAuD;IAC5DE,WAAWN,6CAAAA;IACXO,MAAMN,mCAAAA;IACNO,SAAS,IAAM,EAAE;IACjBC,UAAU,IAAM;IAChBC,OAAO,EAAE;IACTC,SAAS,EAAE;IACX,gEAAgE;IAChEC,uBAAuBV,8CAAAA;IACvBW,wBAAUd,OAAMe,SAAS;AAC3B,EAAE;AAEK,0BACLE,OAAuC,EACvCC,UAAgC,EAAE;IAElC,MAAM,EAAEP,KAAK,EAAED,QAAQ,EAAEE,OAAO,EAAE,GAAGK;IAErC,MAAMR,UAAUT,OAAMmB,WAAW,CAC/B,CAAwCC,cAAchB,kBAAmD;QACvG,OAAOO,MAAMU,GAAG,CAAC,CAACC,MAAMC;gBAAiCb;mBAA3BU,YAAY;gBAAEE;gBAAME,OAAOd,CAAAA,YAAAA,aAAAA,QAAAA,aAAAA,KAAAA,IAAAA,KAAAA,IAAAA,SAAWY,KAAAA,MAAAA,QAAXZ,cAAAA,KAAAA,IAAAA,YAAoBa;YAAE;;IACjF,GACA;QAACZ;QAAOD;KAAS;IAGnB,MAAMe,eAA0C;QAC9Cf;QACAC;QACAC;QACAH;QACAF,WAAWN,6CAAAA;QACXO,MAAMN,mCAAAA;QACN,gEAAgE;QAChEW,uBAAuBV,8CAAAA;QACvBW,wBAAUd,OAAMe,SAAS;IAC3B;IAEA,OAAOG,QAAQQ,MAAM,CAAC,CAACC,OAAOC,SAAWA,OAAOD,QAAQF;AAC1D"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useTableSelection.ts"],"sourcesContent":["import * as React from 'react';\nimport { SelectionHookParams, useEventCallback, useSelection } from '@fluentui/react-utilities';\nimport type { TableRowId, TableSelectionState, TableFeaturesState } from './types';\n\nconst noop = () => undefined;\n\nexport const defaultTableSelectionState: TableSelectionState = {\n allRowsSelected: false,\n clearRows: noop,\n deselectRow: noop,\n isRowSelected: () => false,\n selectRow: noop,\n selectedRows: new Set(),\n someRowsSelected: false,\n toggleAllRows: noop,\n toggleRow: noop,\n selectionMode: 'multiselect',\n};\n\nexport function useTableSelection<TItem>(options: SelectionHookParams) {\n 'use no memo';\n\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>) => useTableSelectionState(tableState, options);\n}\n\nexport function useTableSelectionState<TItem>(\n tableState: TableFeaturesState<TItem>,\n options: SelectionHookParams,\n): TableFeaturesState<TItem> {\n const { items, getRowId } = tableState;\n const { selectionMode: selectionMode, defaultSelectedItems, selectedItems, onSelectionChange } = options;\n\n const [selected, selectionMethods] = useSelection({\n selectionMode,\n defaultSelectedItems,\n selectedItems,\n onSelectionChange,\n });\n\n // Selection state can contain obselete items (i.e. rows that are removed)\n const selectableRowIds = React.useMemo(() => {\n const rowIds = new Set<TableRowId>();\n for (let i = 0; i < items.length; i++) {\n rowIds.add(getRowId?.(items[i]) ?? i);\n }\n\n return rowIds;\n }, [items, getRowId]);\n\n const allRowsSelected = React.useMemo(() => {\n if (selectionMode === 'single') {\n const selectedRow = Array.from(selected)[0];\n return selectableRowIds.has(selectedRow);\n }\n\n // multiselect case\n if (selected.size < selectableRowIds.size) {\n return false;\n }\n\n if (selectableRowIds.size === 0) {\n return false;\n }\n\n let res = true;\n selectableRowIds.forEach(selectableRowId => {\n if (!selected.has(selectableRowId)) {\n res = false;\n }\n });\n\n return res;\n }, [selectableRowIds, selected, selectionMode]);\n\n const someRowsSelected = React.useMemo(() => {\n if (selected.size <= 0) {\n return false;\n }\n\n let res = false;\n selectableRowIds.forEach(selectableRowId => {\n if (selected.has(selectableRowId)) {\n res = true;\n }\n });\n\n return res;\n }, [selectableRowIds, selected]);\n\n const toggleAllRows: TableSelectionState['toggleAllRows'] = useEventCallback(e => {\n selectionMethods.toggleAllItems(\n e,\n items.map((item, i) => getRowId?.(item) ?? i),\n );\n });\n\n const toggleRow: TableSelectionState['toggleRow'] = useEventCallback((e, rowId: TableRowId) =>\n selectionMethods.toggleItem(e, rowId),\n );\n\n const deselectRow: TableSelectionState['deselectRow'] = useEventCallback((e, rowId: TableRowId) =>\n selectionMethods.deselectItem(e, rowId),\n );\n\n const selectRow: TableSelectionState['selectRow'] = useEventCallback((e, rowId: TableRowId) =>\n selectionMethods.selectItem(e, rowId),\n );\n\n const isRowSelected: TableSelectionState['isRowSelected'] = (rowId: TableRowId) => selectionMethods.isSelected(rowId);\n\n const clearRows: TableSelectionState['clearRows'] = useEventCallback(e => selectionMethods.clearItems(e));\n\n return {\n ...tableState,\n selection: {\n selectionMode,\n someRowsSelected,\n allRowsSelected,\n selectedRows: selected,\n toggleRow,\n toggleAllRows,\n clearRows,\n deselectRow,\n selectRow,\n isRowSelected,\n },\n };\n}\n"],"names":["defaultTableSelectionState","useTableSelection","useTableSelectionState","noop","undefined","allRowsSelected","clearRows","deselectRow","isRowSelected","selectRow","selectedRows","Set","someRowsSelected","toggleAllRows","toggleRow","selectionMode","options","tableState","items","getRowId","defaultSelectedItems","selectedItems","onSelectionChange","selected","selectionMethods","useSelection","selectableRowIds","React","useMemo","rowIds","i","length","add","selectedRow","Array","from","has","size","res","forEach","selectableRowId","useEventCallback","e","toggleAllItems","map","item","rowId","toggleItem","deselectItem","selectItem","isSelected","clearItems","selection"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../src/hooks/useTableSelection.ts"],"sourcesContent":["import * as React from 'react';\nimport { SelectionHookParams, useEventCallback, useSelection } from '@fluentui/react-utilities';\nimport type { TableRowId, TableSelectionState, TableFeaturesState } from './types';\n\nconst noop = () => undefined;\n\nexport const defaultTableSelectionState: TableSelectionState = {\n allRowsSelected: false,\n clearRows: noop,\n deselectRow: noop,\n isRowSelected: () => false,\n selectRow: noop,\n selectedRows: new Set(),\n someRowsSelected: false,\n toggleAllRows: noop,\n toggleRow: noop,\n selectionMode: 'multiselect',\n};\n\nexport function useTableSelection<TItem>(options: SelectionHookParams) {\n 'use no memo';\n\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>) => useTableSelectionState(tableState, options);\n}\n\nexport function useTableSelectionState<TItem>(\n tableState: TableFeaturesState<TItem>,\n options: SelectionHookParams,\n): TableFeaturesState<TItem> {\n const { items, getRowId } = tableState;\n const { selectionMode: selectionMode, defaultSelectedItems, selectedItems, onSelectionChange } = options;\n\n const [selected, selectionMethods] = useSelection({\n selectionMode,\n defaultSelectedItems,\n selectedItems,\n onSelectionChange,\n });\n\n // Selection state can contain obselete items (i.e. rows that are removed)\n const selectableRowIds = React.useMemo(() => {\n const rowIds = new Set<TableRowId>();\n for (let i = 0; i < items.length; i++) {\n rowIds.add(getRowId?.(items[i]) ?? i);\n }\n\n return rowIds;\n }, [items, getRowId]);\n\n const allRowsSelected = React.useMemo(() => {\n if (selectionMode === 'single') {\n const selectedRow = Array.from(selected)[0];\n return selectableRowIds.has(selectedRow);\n }\n\n // multiselect case\n if (selected.size < selectableRowIds.size) {\n return false;\n }\n\n if (selectableRowIds.size === 0) {\n return false;\n }\n\n let res = true;\n selectableRowIds.forEach(selectableRowId => {\n if (!selected.has(selectableRowId)) {\n res = false;\n }\n });\n\n return res;\n }, [selectableRowIds, selected, selectionMode]);\n\n const someRowsSelected = React.useMemo(() => {\n if (selected.size <= 0) {\n return false;\n }\n\n let res = false;\n selectableRowIds.forEach(selectableRowId => {\n if (selected.has(selectableRowId)) {\n res = true;\n }\n });\n\n return res;\n }, [selectableRowIds, selected]);\n\n const toggleAllRows: TableSelectionState['toggleAllRows'] = useEventCallback(e => {\n selectionMethods.toggleAllItems(\n e,\n items.map((item, i) => getRowId?.(item) ?? i),\n );\n });\n\n const toggleRow: TableSelectionState['toggleRow'] = useEventCallback((e, rowId: TableRowId) =>\n selectionMethods.toggleItem(e, rowId),\n );\n\n const deselectRow: TableSelectionState['deselectRow'] = useEventCallback((e, rowId: TableRowId) =>\n selectionMethods.deselectItem(e, rowId),\n );\n\n const selectRow: TableSelectionState['selectRow'] = useEventCallback((e, rowId: TableRowId) =>\n selectionMethods.selectItem(e, rowId),\n );\n\n const isRowSelected: TableSelectionState['isRowSelected'] = (rowId: TableRowId) => selectionMethods.isSelected(rowId);\n\n const clearRows: TableSelectionState['clearRows'] = useEventCallback(e => selectionMethods.clearItems(e));\n\n return {\n ...tableState,\n selection: {\n selectionMode,\n someRowsSelected,\n allRowsSelected,\n selectedRows: selected,\n toggleRow,\n toggleAllRows,\n clearRows,\n deselectRow,\n selectRow,\n isRowSelected,\n },\n };\n}\n"],"names":["React","useEventCallback","useSelection","noop","undefined","defaultTableSelectionState","allRowsSelected","clearRows","deselectRow","isRowSelected","selectRow","selectedRows","Set","someRowsSelected","toggleAllRows","toggleRow","selectionMode","useTableSelection","options","tableState","useTableSelectionState","items","getRowId","defaultSelectedItems","selectedItems","onSelectionChange","selected","selectionMethods","selectableRowIds","useMemo","rowIds","i","length","add","selectedRow","Array","from","has","size","res","forEach","selectableRowId","e","toggleAllItems","map","item","rowId","toggleItem","deselectItem","selectItem","isSelected","clearItems","selection"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/hooks/useTableSort.ts"],"sourcesContent":["import * as React from 'react';\nimport { useControllableState, useEventCallback } 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 'use no memo';\n\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: onSortChangeProp = noop } = 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 onSortChange = useEventCallback(onSortChangeProp);\n\n const toggleColumnSort = React.useCallback(\n (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 [onSortChange, setSorted],\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 = React.useCallback(\n <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 [columns, sortColumn, sortDirection],\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":["defaultTableSortState","useTableSort","useTableSortState","noop","undefined","getSortDirection","setColumnSort","sort","rows","sortColumn","sortDirection","toggleColumnSort","options","tableState","columns","sortState","defaultSortState","onSortChange","onSortChangeProp","sorted","setSorted","useControllableState","initialState","defaultState","state","useEventCallback","React","useCallback","e","columnId","s","newState","nextSortColumn","nextSortDirection","slice","a","b","sortColumnDef","find","column","compare","mod","item"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":";;;;;;;;;;;IAaaA,qBAAAA;eAAAA;;IASGC,YAAAA;eAAAA;;IAQAC,iBAAAA;eAAAA;;;;iEA9BO;gCACgC;AAUvD,MAAMC,OAAO,IAAMC;AAEZ,MAAMJ,wBAAiD;IAC5DK,kBAAkB,IAAM;IACxBC,eAAeH;IACfI,MAAM,CAA0CC,OAAsB;eAAIA;SAAK;IAC/EC,YAAYL;IACZM,eAAe;IACfC,kBAAkBR;AACpB;AAEO,SAASF,aAAoBW,OAA4B;IAC9D;IAEA,4EAA4E;IAC5E,sDAAsD;IACtD,OAAO,CAACC,aAA0CX,kBAAkBW,YAAYD;AAClF;AAEO,SAASV,kBACdW,UAAqC,EACrCD,OAA4B;IAE5B,MAAM,EAAEE,OAAO,EAAE,GAAGD;IACpB,MAAM,EAAEE,SAAS,EAAEC,gBAAgB,EAAEC,cAAcC,mBAAmBf,IAAI,EAAE,GAAGS;IAE/E,MAAM,CAACO,QAAQC,UAAU,GAAGC,IAAAA,oCAAAA,EAAgC;QAC1DC,cAAc;YACZZ,eAAe;YACfD,YAAYL;QACd;QACAmB,cAAcP;QACdQ,OAAOT;IACT;IAEA,MAAM,EAAEN,UAAU,EAAEC,aAAa,EAAE,GAAGS;IAEtC,MAAMF,eAAeQ,IAAAA,gCAAAA,EAAiBP;IAEtC,MAAMP,mBAAmBe,OAAMC,WAAW,CACxC,CAACC,GAAyBC;QACxBT,UAAUU,CAAAA;YACR,MAAMC,WAAW;gBAAE,GAAGD,CAAC;gBAAErB,YAAYoB;YAAS;YAC9C,IAAIC,EAAErB,UAAU,KAAKoB,UAAU;gBAC7BE,SAASrB,aAAa,GAAGoB,EAAEpB,aAAa,KAAK,cAAc,eAAe;YAC5E,OAAO;gBACLqB,SAASrB,aAAa,GAAG;YAC3B;YAEAO,iBAAAA,QAAAA,iBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,aAAeW,GAAGG;YAClB,OAAOA;QACT;IACF,GACA;QAACd;QAAcG;KAAU;IAG3B,MAAMd,gBAAwD,CAACsB,GAAGI,gBAAgBC;QAChF,MAAMF,WAAW;YAAEtB,YAAYuB;YAAgBtB,eAAeuB;QAAkB;QAChFhB,iBAAAA,QAAAA,iBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,aAAeW,GAAGG;QAClBX,UAAUW;IACZ;IAEA,MAAMxB,OAAOmB,OAAMC,WAAW,CAC5B,CAAwCnB;QACtC,OAAOA,KAAK0B,KAAK,GAAG3B,IAAI,CAAC,CAAC4B,GAAGC;YAC3B,MAAMC,gBAAgBvB,QAAQwB,IAAI,CAACC,CAAAA,SAAUA,OAAOV,QAAQ,KAAKpB;YACjE,IAAI,CAAC4B,CAAAA,kBAAAA,QAAAA,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAeG,OAAO,AAAPA,GAAS;gBAC3B,OAAO;YACT;YAEA,MAAMC,MAAM/B,kBAAkB,cAAc,IAAI,CAAC;YACjD,OAAO2B,cAAcG,OAAO,CAACL,EAAEO,IAAI,EAAEN,EAAEM,IAAI,IAAID;QACjD;IACF,GACA;QAAC3B;QAASL;QAAYC;KAAc;IAGtC,MAAML,mBAA8D,CAACwB;QACnE,OAAOpB,eAAeoB,WAAWnB,gBAAgBN;IACnD;IAEA,OAAO;QACL,GAAGS,UAAU;QACbN,MAAM;YACJA;YACAE;YACAC;YACAJ;YACAK;YACAN;QACF;IACF;AACF"}
1
+ {"version":3,"sources":["../src/hooks/useTableSort.ts"],"sourcesContent":["import * as React from 'react';\nimport { useControllableState, useEventCallback } 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 'use no memo';\n\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: onSortChangeProp = noop } = 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 onSortChange = useEventCallback(onSortChangeProp);\n\n const toggleColumnSort = React.useCallback(\n (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 [onSortChange, setSorted],\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 = React.useCallback(\n <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 [columns, sortColumn, sortDirection],\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","useEventCallback","noop","undefined","defaultTableSortState","getSortDirection","setColumnSort","sort","rows","sortColumn","sortDirection","toggleColumnSort","useTableSort","options","tableState","useTableSortState","columns","sortState","defaultSortState","onSortChange","onSortChangeProp","sorted","setSorted","initialState","defaultState","state","useCallback","e","columnId","s","newState","nextSortColumn","nextSortDirection","slice","a","b","sortColumnDef","find","column","compare","mod","item"],"mappings":";;;;;;;;;;;yBAaaK;eAAAA;;gBASGQ;;;IAQAG,iBAAAA;;;;;iEA9BO,QAAQ;gCACwB,4BAA4B;AAUnF,MAAMb,OAAO,IAAMC;AAEZ,8BAAuD;IAC5DE,kBAAkB,IAAM;IACxBC,eAAeJ;IACfK,MAAM,CAA0CC,OAAsB;eAAIA;SAAK;IAC/EC,YAAYN;IACZO,eAAe;IACfC,kBAAkBT;AACpB,EAAE;AAEK,SAASU,aAAoBC,OAA4B;IAC9D;IAEA,4EAA4E;IAC5E,sDAAsD;IACtD,OAAO,CAACC,aAA0CC,kBAAkBD,YAAYD;AAClF;AAEO,2BACLC,UAAqC,EACrCD,OAA4B;IAE5B,MAAM,EAAEG,OAAO,EAAE,GAAGF;IACpB,MAAM,EAAEG,SAAS,EAAEC,gBAAgB,EAAEC,cAAcC,mBAAmBlB,IAAI,EAAE,GAAGW;IAE/E,MAAM,CAACQ,QAAQC,UAAU,OAAGtB,oCAAAA,EAAgC;QAC1DuB,cAAc;YACZb,eAAe;YACfD,YAAYN;QACd;QACAqB,cAAcN;QACdO,OAAOR;IACT;IAEA,MAAM,EAAER,UAAU,EAAEC,aAAa,EAAE,GAAGW;IAEtC,MAAMF,eAAelB,oCAAAA,EAAiBmB;IAEtC,MAAMT,mBAAmBZ,OAAM2B,WAAW,CACxC,CAACC,GAAyBC;QACxBN,UAAUO,CAAAA;YACR,MAAMC,WAAW;gBAAE,GAAGD,CAAC;gBAAEpB,YAAYmB;YAAS;YAC9C,IAAIC,EAAEpB,UAAU,KAAKmB,UAAU;gBAC7BE,SAASpB,aAAa,GAAGmB,EAAEnB,aAAa,KAAK,cAAc,eAAe;YAC5E,OAAO;gBACLoB,SAASpB,aAAa,GAAG;YAC3B;YAEAS,iBAAAA,QAAAA,iBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,aAAeQ,GAAGG;YAClB,OAAOA;QACT;IACF,GACA;QAACX;QAAcG;KAAU;IAG3B,MAAMhB,gBAAwD,CAACqB,GAAGI,gBAAgBC;QAChF,MAAMF,WAAW;YAAErB,YAAYsB;YAAgBrB,eAAesB;QAAkB;QAChFb,iBAAAA,QAAAA,iBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,aAAeQ,GAAGG;QAClBR,UAAUQ;IACZ;IAEA,MAAMvB,OAAOR,OAAM2B,WAAW,CAC5B,CAAwClB;QACtC,OAAOA,KAAKyB,KAAK,GAAG1B,IAAI,CAAC,CAAC2B,GAAGC;YAC3B,MAAMC,gBAAgBpB,QAAQqB,IAAI,CAACC,CAAAA,SAAUA,OAAOV,QAAQ,KAAKnB;YACjE,IAAI,EAAC2B,kBAAAA,QAAAA,kBAAAA,KAAAA,IAAAA,KAAAA,IAAAA,cAAeG,OAAAA,AAAO,GAAE;gBAC3B,OAAO;YACT;YAEA,MAAMC,MAAM9B,kBAAkB,cAAc,IAAI,CAAC;YACjD,OAAO0B,cAAcG,OAAO,CAACL,EAAEO,IAAI,EAAEN,EAAEM,IAAI,IAAID;QACjD;IACF,GACA;QAACxB;QAASP;QAAYC;KAAc;IAGtC,MAAML,mBAA8D,CAACuB;QACnE,OAAOnB,eAAemB,WAAWlB,gBAAgBP;IACnD;IAEA,OAAO;QACL,GAAGW,UAAU;QACbP,MAAM;YACJA;YACAE;YACAC;YACAJ;YACAK;YACAN;QACF;IACF;AACF"}
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {\n useTableFeatures,\n useTableSelection,\n useTableSort,\n createTableColumn,\n useTableColumnSizing_unstable,\n useTableCompositeNavigation,\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} 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 { ColumnIdContextProvider, useColumnIdContext } from './contexts/columnIdContext';\nexport { TableContextProvider, useTableContext } from './contexts/tableContext';\nexport { useTableRowIdContext, TableRowIdContextProvider } from './contexts/rowIdContext';\nexport { TableHeaderContextProvider, useIsInTableHeader } from './contexts/tableHeaderContext';\nexport {\n TableSelectionCell,\n useTableSelectionCellStyles_unstable,\n useTableSelectionCell_unstable,\n renderTableSelectionCell_unstable,\n tableSelectionCellClassNames,\n CELL_WIDTH as TABLE_SELECTION_CELL_WIDTH,\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, DataGridCellFocusMode } 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';\nexport { DataGridContextProvider, useDataGridContext_unstable } from './contexts/dataGridContext';\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":["ColumnIdContextProvider","DataGrid","DataGridBody","DataGridCell","DataGridContextProvider","DataGridHeader","DataGridHeaderCell","DataGridRow","DataGridSelectionCell","TABLE_SELECTION_CELL_WIDTH","CELL_WIDTH","Table","TableBody","TableCell","TableCellActions","TableCellLayout","TableContextProvider","TableHeader","TableHeaderCell","TableHeaderContextProvider","TableResizeHandle","TableRow","TableRowIdContextProvider","TableSelectionCell","createTableColumn","dataGridBodyClassNames","dataGridCellClassNames","dataGridClassNames","dataGridHeaderCellClassNames","dataGridHeaderClassNames","dataGridRowClassNames","dataGridSelectionCellClassNames","renderDataGridBody_unstable","renderDataGridCell_unstable","renderDataGridHeaderCell_unstable","renderDataGridHeader_unstable","renderDataGridRow_unstable","renderDataGridSelectionCell_unstable","renderDataGrid_unstable","renderTableBody_unstable","renderTableCellActions_unstable","renderTableCellLayout_unstable","renderTableCell_unstable","renderTableHeaderCell_unstable","renderTableHeader_unstable","renderTableResizeHandle_unstable","renderTableRow_unstable","renderTableSelectionCell_unstable","renderTable_unstable","tableBodyClassName","tableBodyClassNames","tableCellActionsClassNames","tableCellClassName","tableCellClassNames","tableCellLayoutClassNames","tableClassName","tableClassNames","tableHeaderCellClassName","tableHeaderCellClassNames","tableHeaderClassName","tableHeaderClassNames","tableResizeHandleClassNames","tableRowClassName","tableRowClassNames","tableSelectionCellClassNames","useColumnIdContext","useDataGridBodyStyles_unstable","useDataGridBody_unstable","useDataGridCellStyles_unstable","useDataGridCell_unstable","useDataGridContextValues_unstable","useDataGridContext_unstable","useDataGridHeaderCellStyles_unstable","useDataGridHeaderCell_unstable","useDataGridHeaderStyles_unstable","useDataGridHeader_unstable","useDataGridRowStyles_unstable","useDataGridRow_unstable","useDataGridSelectionCellStyles_unstable","useDataGridSelectionCell_unstable","useDataGridStyles_unstable","useDataGrid_unstable","useIsInTableHeader","useTableBodyStyles_unstable","useTableBody_unstable","useTableCellActionsStyles_unstable","useTableCellActions_unstable","useTableCellLayoutStyles_unstable","useTableCellLayout_unstable","useTableCellStyles_unstable","useTableCell_unstable","useTableColumnSizing_unstable","useTableCompositeNavigation","useTableContext","useTableFeatures","useTableHeaderCellStyles_unstable","useTableHeaderCell_unstable","useTableHeaderStyles_unstable","useTableHeader_unstable","useTableResizeHandleStyles_unstable","useTableResizeHandle_unstable","useTableRowIdContext","useTableRowStyles_unstable","useTableRow_unstable","useTableSelection","useTableSelectionCellStyles_unstable","useTableSelectionCell_unstable","useTableSort","useTableStyles_unstable","useTable_unstable"],"rangeMappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;","mappings":"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"}
1
+ {"version":3,"sources":["../src/index.ts"],"sourcesContent":["export {\n useTableFeatures,\n useTableSelection,\n useTableSort,\n createTableColumn,\n useTableColumnSizing_unstable,\n useTableCompositeNavigation,\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} 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 { ColumnIdContextProvider, useColumnIdContext } from './contexts/columnIdContext';\nexport { TableContextProvider, useTableContext } from './contexts/tableContext';\nexport { useTableRowIdContext, TableRowIdContextProvider } from './contexts/rowIdContext';\nexport { TableHeaderContextProvider, useIsInTableHeader } from './contexts/tableHeaderContext';\nexport {\n TableSelectionCell,\n useTableSelectionCellStyles_unstable,\n useTableSelectionCell_unstable,\n renderTableSelectionCell_unstable,\n tableSelectionCellClassNames,\n CELL_WIDTH as TABLE_SELECTION_CELL_WIDTH,\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, DataGridCellFocusMode } 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';\nexport { DataGridContextProvider, useDataGridContext_unstable } from './contexts/dataGridContext';\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","useTableCompositeNavigation","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","ColumnIdContextProvider","useColumnIdContext","TableContextProvider","useTableContext","useTableRowIdContext","TableRowIdContextProvider","TableHeaderContextProvider","useIsInTableHeader","TableSelectionCell","useTableSelectionCellStyles_unstable","useTableSelectionCell_unstable","renderTableSelectionCell_unstable","tableSelectionCellClassNames","CELL_WIDTH","TABLE_SELECTION_CELL_WIDTH","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","DataGridContextProvider","useDataGridContext_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":"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"}