@fluentui/react-table 9.2.12 → 9.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (555) hide show
  1. package/CHANGELOG.json +86 -1
  2. package/CHANGELOG.md +24 -2
  3. package/lib/DataGrid.js +0 -1
  4. package/lib/DataGrid.js.map +1 -1
  5. package/lib/DataGridBody.js +0 -1
  6. package/lib/DataGridBody.js.map +1 -1
  7. package/lib/DataGridCell.js +0 -1
  8. package/lib/DataGridCell.js.map +1 -1
  9. package/lib/DataGridHeader.js +0 -1
  10. package/lib/DataGridHeader.js.map +1 -1
  11. package/lib/DataGridHeaderCell.js +0 -1
  12. package/lib/DataGridHeaderCell.js.map +1 -1
  13. package/lib/DataGridRow.js +0 -1
  14. package/lib/DataGridRow.js.map +1 -1
  15. package/lib/DataGridSelectionCell.js +0 -1
  16. package/lib/DataGridSelectionCell.js.map +1 -1
  17. package/lib/Table.js +0 -1
  18. package/lib/Table.js.map +1 -1
  19. package/lib/TableBody.js +0 -1
  20. package/lib/TableBody.js.map +1 -1
  21. package/lib/TableCell.js +0 -1
  22. package/lib/TableCell.js.map +1 -1
  23. package/lib/TableCellActions.js +0 -1
  24. package/lib/TableCellActions.js.map +1 -1
  25. package/lib/TableCellLayout.js +0 -1
  26. package/lib/TableCellLayout.js.map +1 -1
  27. package/lib/TableCellPrimaryLayout.js +0 -1
  28. package/lib/TableCellPrimaryLayout.js.map +1 -1
  29. package/lib/TableHeader.js +0 -1
  30. package/lib/TableHeader.js.map +1 -1
  31. package/lib/TableHeaderCell.js +0 -1
  32. package/lib/TableHeaderCell.js.map +1 -1
  33. package/lib/TableResizeHandle.js +0 -1
  34. package/lib/TableResizeHandle.js.map +1 -1
  35. package/lib/TableRow.js +0 -1
  36. package/lib/TableRow.js.map +1 -1
  37. package/lib/TableSelectionCell.js +0 -1
  38. package/lib/TableSelectionCell.js.map +1 -1
  39. package/lib/components/DataGrid/DataGrid.js +5 -7
  40. package/lib/components/DataGrid/DataGrid.js.map +1 -1
  41. package/lib/components/DataGrid/DataGrid.types.js +0 -1
  42. package/lib/components/DataGrid/DataGrid.types.js.map +1 -1
  43. package/lib/components/DataGrid/index.js +0 -1
  44. package/lib/components/DataGrid/index.js.map +1 -1
  45. package/lib/components/DataGrid/renderDataGrid.js +4 -6
  46. package/lib/components/DataGrid/renderDataGrid.js.map +1 -1
  47. package/lib/components/DataGrid/useDataGrid.js +71 -89
  48. package/lib/components/DataGrid/useDataGrid.js.map +1 -1
  49. package/lib/components/DataGrid/useDataGridContextValues.js +12 -13
  50. package/lib/components/DataGrid/useDataGridContextValues.js.map +1 -1
  51. package/lib/components/DataGrid/useDataGridStyles.styles.js.map +1 -1
  52. package/lib/components/DataGridBody/DataGridBody.js +5 -7
  53. package/lib/components/DataGridBody/DataGridBody.js.map +1 -1
  54. package/lib/components/DataGridBody/DataGridBody.types.js +0 -1
  55. package/lib/components/DataGridBody/DataGridBody.types.js.map +1 -1
  56. package/lib/components/DataGridBody/index.js +0 -1
  57. package/lib/components/DataGridBody/index.js.map +1 -1
  58. package/lib/components/DataGridBody/renderDataGridBody.js +7 -12
  59. package/lib/components/DataGridBody/renderDataGridBody.js.map +1 -1
  60. package/lib/components/DataGridBody/useDataGridBody.js +15 -19
  61. package/lib/components/DataGridBody/useDataGridBody.js.map +1 -1
  62. package/lib/components/DataGridBody/useDataGridBodyStyles.styles.js.map +1 -1
  63. package/lib/components/DataGridCell/DataGridCell.js +5 -7
  64. package/lib/components/DataGridCell/DataGridCell.js.map +1 -1
  65. package/lib/components/DataGridCell/DataGridCell.types.js +1 -2
  66. package/lib/components/DataGridCell/DataGridCell.types.js.map +1 -1
  67. package/lib/components/DataGridCell/index.js +0 -1
  68. package/lib/components/DataGridCell/index.js.map +1 -1
  69. package/lib/components/DataGridCell/renderDataGridCell.js +2 -4
  70. package/lib/components/DataGridCell/renderDataGridCell.js.map +1 -1
  71. package/lib/components/DataGridCell/useDataGridCell.js +12 -14
  72. package/lib/components/DataGridCell/useDataGridCell.js.map +1 -1
  73. package/lib/components/DataGridCell/useDataGridCellStyles.styles.js.map +1 -1
  74. package/lib/components/DataGridHeader/DataGridHeader.js +5 -7
  75. package/lib/components/DataGridHeader/DataGridHeader.js.map +1 -1
  76. package/lib/components/DataGridHeader/DataGridHeader.types.js +1 -2
  77. package/lib/components/DataGridHeader/DataGridHeader.types.js.map +1 -1
  78. package/lib/components/DataGridHeader/index.js +0 -1
  79. package/lib/components/DataGridHeader/index.js.map +1 -1
  80. package/lib/components/DataGridHeader/renderDataGridHeader.js +2 -4
  81. package/lib/components/DataGridHeader/renderDataGridHeader.js.map +1 -1
  82. package/lib/components/DataGridHeader/useDataGridHeader.js +5 -7
  83. package/lib/components/DataGridHeader/useDataGridHeader.js.map +1 -1
  84. package/lib/components/DataGridHeader/useDataGridHeaderStyles.styles.js.map +1 -1
  85. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js +5 -7
  86. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -1
  87. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.types.js +1 -2
  88. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -1
  89. package/lib/components/DataGridHeaderCell/index.js +0 -1
  90. package/lib/components/DataGridHeaderCell/index.js.map +1 -1
  91. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js +2 -4
  92. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -1
  93. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js +23 -26
  94. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -1
  95. package/lib/components/DataGridHeaderCell/useDataGridHeaderCellStyles.styles.js.map +1 -1
  96. package/lib/components/DataGridRow/DataGridRow.js +5 -7
  97. package/lib/components/DataGridRow/DataGridRow.js.map +1 -1
  98. package/lib/components/DataGridRow/DataGridRow.types.js +0 -1
  99. package/lib/components/DataGridRow/DataGridRow.types.js.map +1 -1
  100. package/lib/components/DataGridRow/index.js +0 -1
  101. package/lib/components/DataGridRow/index.js.map +1 -1
  102. package/lib/components/DataGridRow/renderDataGridRow.js +7 -12
  103. package/lib/components/DataGridRow/renderDataGridRow.js.map +1 -1
  104. package/lib/components/DataGridRow/useDataGridRow.js +54 -56
  105. package/lib/components/DataGridRow/useDataGridRow.js.map +1 -1
  106. package/lib/components/DataGridRow/useDataGridRowStyles.styles.js.map +1 -1
  107. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js +5 -7
  108. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -1
  109. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.types.js +1 -2
  110. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -1
  111. package/lib/components/DataGridSelectionCell/index.js +0 -1
  112. package/lib/components/DataGridSelectionCell/index.js.map +1 -1
  113. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js +2 -4
  114. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -1
  115. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js +31 -33
  116. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -1
  117. package/lib/components/DataGridSelectionCell/useDataGridSelectionCellStyles.styles.js.map +1 -1
  118. package/lib/components/Table/Table.js +5 -7
  119. package/lib/components/Table/Table.js.map +1 -1
  120. package/lib/components/Table/Table.types.js +1 -2
  121. package/lib/components/Table/Table.types.js.map +1 -1
  122. package/lib/components/Table/index.js +0 -1
  123. package/lib/components/Table/index.js.map +1 -1
  124. package/lib/components/Table/renderTable.js +6 -11
  125. package/lib/components/Table/renderTable.js.map +1 -1
  126. package/lib/components/Table/useTable.js +17 -19
  127. package/lib/components/Table/useTable.js.map +1 -1
  128. package/lib/components/Table/useTableContextValues.js +13 -14
  129. package/lib/components/Table/useTableContextValues.js.map +1 -1
  130. package/lib/components/Table/useTableStyles.styles.js.map +1 -1
  131. package/lib/components/TableBody/TableBody.js +5 -7
  132. package/lib/components/TableBody/TableBody.js.map +1 -1
  133. package/lib/components/TableBody/TableBody.types.js +1 -2
  134. package/lib/components/TableBody/TableBody.types.js.map +1 -1
  135. package/lib/components/TableBody/index.js +0 -1
  136. package/lib/components/TableBody/index.js.map +1 -1
  137. package/lib/components/TableBody/renderTableBody.js +4 -9
  138. package/lib/components/TableBody/renderTableBody.js.map +1 -1
  139. package/lib/components/TableBody/useTableBody.js +15 -19
  140. package/lib/components/TableBody/useTableBody.js.map +1 -1
  141. package/lib/components/TableBody/useTableBodyStyles.styles.js.map +1 -1
  142. package/lib/components/TableCell/TableCell.js +5 -7
  143. package/lib/components/TableCell/TableCell.js.map +1 -1
  144. package/lib/components/TableCell/TableCell.types.js +1 -2
  145. package/lib/components/TableCell/TableCell.types.js.map +1 -1
  146. package/lib/components/TableCell/index.js +0 -1
  147. package/lib/components/TableCell/index.js.map +1 -1
  148. package/lib/components/TableCell/renderTableCell.js +4 -9
  149. package/lib/components/TableCell/renderTableCell.js.map +1 -1
  150. package/lib/components/TableCell/useTableCell.js +16 -21
  151. package/lib/components/TableCell/useTableCell.js.map +1 -1
  152. package/lib/components/TableCell/useTableCellStyles.styles.js.map +1 -1
  153. package/lib/components/TableCellActions/TableCellActions.js +5 -7
  154. package/lib/components/TableCellActions/TableCellActions.js.map +1 -1
  155. package/lib/components/TableCellActions/TableCellActions.types.js +1 -2
  156. package/lib/components/TableCellActions/TableCellActions.types.js.map +1 -1
  157. package/lib/components/TableCellActions/index.js +0 -1
  158. package/lib/components/TableCellActions/index.js.map +1 -1
  159. package/lib/components/TableCellActions/renderTableCellActions.js +4 -9
  160. package/lib/components/TableCellActions/renderTableCellActions.js.map +1 -1
  161. package/lib/components/TableCellActions/useTableCellActions.js +12 -14
  162. package/lib/components/TableCellActions/useTableCellActions.js.map +1 -1
  163. package/lib/components/TableCellActions/useTableCellActionsStyles.styles.js.map +1 -1
  164. package/lib/components/TableCellLayout/TableCellLayout.js +5 -7
  165. package/lib/components/TableCellLayout/TableCellLayout.js.map +1 -1
  166. package/lib/components/TableCellLayout/TableCellLayout.types.js +1 -2
  167. package/lib/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  168. package/lib/components/TableCellLayout/index.js +0 -1
  169. package/lib/components/TableCellLayout/index.js.map +1 -1
  170. package/lib/components/TableCellLayout/renderTableCellLayout.js +6 -11
  171. package/lib/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  172. package/lib/components/TableCellLayout/useTableCellLayout.js +30 -34
  173. package/lib/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  174. package/lib/components/TableCellLayout/useTableCellLayoutContextValues.js +9 -10
  175. package/lib/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -1
  176. package/lib/components/TableCellLayout/useTableCellLayoutStyles.styles.js.map +1 -1
  177. package/lib/components/TableHeader/TableHeader.js +5 -7
  178. package/lib/components/TableHeader/TableHeader.js.map +1 -1
  179. package/lib/components/TableHeader/TableHeader.types.js +1 -2
  180. package/lib/components/TableHeader/TableHeader.types.js.map +1 -1
  181. package/lib/components/TableHeader/index.js +0 -1
  182. package/lib/components/TableHeader/index.js.map +1 -1
  183. package/lib/components/TableHeader/renderTableHeader.js +6 -11
  184. package/lib/components/TableHeader/renderTableHeader.js.map +1 -1
  185. package/lib/components/TableHeader/useTableHeader.js +15 -19
  186. package/lib/components/TableHeader/useTableHeader.js.map +1 -1
  187. package/lib/components/TableHeader/useTableHeaderStyles.styles.js.map +1 -1
  188. package/lib/components/TableHeaderCell/TableHeaderCell.js +5 -7
  189. package/lib/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  190. package/lib/components/TableHeaderCell/TableHeaderCell.types.js +1 -2
  191. package/lib/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  192. package/lib/components/TableHeaderCell/index.js +0 -1
  193. package/lib/components/TableHeaderCell/index.js.map +1 -1
  194. package/lib/components/TableHeaderCell/renderTableHeaderCell.js +4 -9
  195. package/lib/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  196. package/lib/components/TableHeaderCell/useTableHeaderCell.js +46 -51
  197. package/lib/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  198. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.styles.js +10 -2
  199. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.styles.js.map +1 -1
  200. package/lib/components/TableResizeHandle/TableResizeHandle.js +5 -7
  201. package/lib/components/TableResizeHandle/TableResizeHandle.js.map +1 -1
  202. package/lib/components/TableResizeHandle/TableResizeHandle.types.js +1 -2
  203. package/lib/components/TableResizeHandle/TableResizeHandle.types.js.map +1 -1
  204. package/lib/components/TableResizeHandle/index.js +0 -1
  205. package/lib/components/TableResizeHandle/index.js.map +1 -1
  206. package/lib/components/TableResizeHandle/renderTableResizeHandle.js +4 -9
  207. package/lib/components/TableResizeHandle/renderTableResizeHandle.js.map +1 -1
  208. package/lib/components/TableResizeHandle/useTableResizeHandle.js +16 -18
  209. package/lib/components/TableResizeHandle/useTableResizeHandle.js.map +1 -1
  210. package/lib/components/TableResizeHandle/useTableResizeHandleStyles.styles.js.map +1 -1
  211. package/lib/components/TableRow/TableRow.js +5 -7
  212. package/lib/components/TableRow/TableRow.js.map +1 -1
  213. package/lib/components/TableRow/TableRow.types.js +1 -2
  214. package/lib/components/TableRow/TableRow.types.js.map +1 -1
  215. package/lib/components/TableRow/index.js +0 -1
  216. package/lib/components/TableRow/index.js.map +1 -1
  217. package/lib/components/TableRow/renderTableRow.js +4 -9
  218. package/lib/components/TableRow/renderTableRow.js.map +1 -1
  219. package/lib/components/TableRow/useTableRow.js +22 -27
  220. package/lib/components/TableRow/useTableRow.js.map +1 -1
  221. package/lib/components/TableRow/useTableRowStyles.styles.js.map +1 -1
  222. package/lib/components/TableSelectionCell/TableSelectionCell.js +5 -7
  223. package/lib/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  224. package/lib/components/TableSelectionCell/TableSelectionCell.types.js +1 -2
  225. package/lib/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  226. package/lib/components/TableSelectionCell/index.js +0 -1
  227. package/lib/components/TableSelectionCell/index.js.map +1 -1
  228. package/lib/components/TableSelectionCell/renderTableSelectionCell.js +4 -9
  229. package/lib/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  230. package/lib/components/TableSelectionCell/useTableSelectionCell.js +32 -41
  231. package/lib/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  232. package/lib/components/TableSelectionCell/useTableSelectionCellStyles.styles.js.map +1 -1
  233. package/lib/contexts/columnIdContext.js +2 -3
  234. package/lib/contexts/columnIdContext.js.map +1 -1
  235. package/lib/contexts/dataGridContext.js +7 -8
  236. package/lib/contexts/dataGridContext.js.map +1 -1
  237. package/lib/contexts/rowIdContext.js +2 -3
  238. package/lib/contexts/rowIdContext.js.map +1 -1
  239. package/lib/contexts/tableContext.js +5 -6
  240. package/lib/contexts/tableContext.js.map +1 -1
  241. package/lib/contexts/tableHeaderContext.js +2 -3
  242. package/lib/contexts/tableHeaderContext.js.map +1 -1
  243. package/lib/hooks/createColumn.js +21 -28
  244. package/lib/hooks/createColumn.js.map +1 -1
  245. package/lib/hooks/index.js +0 -1
  246. package/lib/hooks/index.js.map +1 -1
  247. package/lib/hooks/selectionManager.js +71 -68
  248. package/lib/hooks/selectionManager.js.map +1 -1
  249. package/lib/hooks/types.js +0 -1
  250. package/lib/hooks/types.js.map +1 -1
  251. package/lib/hooks/useKeyboardResizing.js +96 -87
  252. package/lib/hooks/useKeyboardResizing.js.map +1 -1
  253. package/lib/hooks/useMeasureElement.js +42 -40
  254. package/lib/hooks/useMeasureElement.js.map +1 -1
  255. package/lib/hooks/useTableColumnResizeMouseHandler.js +64 -61
  256. package/lib/hooks/useTableColumnResizeMouseHandler.js.map +1 -1
  257. package/lib/hooks/useTableColumnResizeState.js +100 -105
  258. package/lib/hooks/useTableColumnResizeState.js.map +1 -1
  259. package/lib/hooks/useTableColumnSizing.js +74 -74
  260. package/lib/hooks/useTableColumnSizing.js.map +1 -1
  261. package/lib/hooks/useTableFeatures.js +30 -35
  262. package/lib/hooks/useTableFeatures.js.map +1 -1
  263. package/lib/hooks/useTableSelection.js +64 -66
  264. package/lib/hooks/useTableSelection.js.map +1 -1
  265. package/lib/hooks/useTableSort.js +68 -76
  266. package/lib/hooks/useTableSort.js.map +1 -1
  267. package/lib/index.js +0 -1
  268. package/lib/index.js.map +1 -1
  269. package/lib/utils/columnResizeUtils.js +104 -108
  270. package/lib/utils/columnResizeUtils.js.map +1 -1
  271. package/lib-commonjs/DataGrid.js +0 -3
  272. package/lib-commonjs/DataGrid.js.map +1 -1
  273. package/lib-commonjs/DataGridBody.js +0 -3
  274. package/lib-commonjs/DataGridBody.js.map +1 -1
  275. package/lib-commonjs/DataGridCell.js +0 -3
  276. package/lib-commonjs/DataGridCell.js.map +1 -1
  277. package/lib-commonjs/DataGridHeader.js +0 -3
  278. package/lib-commonjs/DataGridHeader.js.map +1 -1
  279. package/lib-commonjs/DataGridHeaderCell.js +0 -3
  280. package/lib-commonjs/DataGridHeaderCell.js.map +1 -1
  281. package/lib-commonjs/DataGridRow.js +0 -3
  282. package/lib-commonjs/DataGridRow.js.map +1 -1
  283. package/lib-commonjs/DataGridSelectionCell.js +0 -3
  284. package/lib-commonjs/DataGridSelectionCell.js.map +1 -1
  285. package/lib-commonjs/Table.js +0 -3
  286. package/lib-commonjs/Table.js.map +1 -1
  287. package/lib-commonjs/TableBody.js +0 -3
  288. package/lib-commonjs/TableBody.js.map +1 -1
  289. package/lib-commonjs/TableCell.js +0 -3
  290. package/lib-commonjs/TableCell.js.map +1 -1
  291. package/lib-commonjs/TableCellActions.js +0 -3
  292. package/lib-commonjs/TableCellActions.js.map +1 -1
  293. package/lib-commonjs/TableCellLayout.js +0 -3
  294. package/lib-commonjs/TableCellLayout.js.map +1 -1
  295. package/lib-commonjs/TableCellPrimaryLayout.js +0 -3
  296. package/lib-commonjs/TableCellPrimaryLayout.js.map +1 -1
  297. package/lib-commonjs/TableHeader.js +0 -3
  298. package/lib-commonjs/TableHeader.js.map +1 -1
  299. package/lib-commonjs/TableHeaderCell.js +0 -3
  300. package/lib-commonjs/TableHeaderCell.js.map +1 -1
  301. package/lib-commonjs/TableResizeHandle.js +0 -3
  302. package/lib-commonjs/TableResizeHandle.js.map +1 -1
  303. package/lib-commonjs/TableRow.js +0 -3
  304. package/lib-commonjs/TableRow.js.map +1 -1
  305. package/lib-commonjs/TableSelectionCell.js +0 -3
  306. package/lib-commonjs/TableSelectionCell.js.map +1 -1
  307. package/lib-commonjs/components/DataGrid/DataGrid.js +1 -3
  308. package/lib-commonjs/components/DataGrid/DataGrid.js.map +1 -1
  309. package/lib-commonjs/components/DataGrid/DataGrid.types.js +0 -3
  310. package/lib-commonjs/components/DataGrid/DataGrid.types.js.map +1 -1
  311. package/lib-commonjs/components/DataGrid/index.js +0 -3
  312. package/lib-commonjs/components/DataGrid/index.js.map +1 -1
  313. package/lib-commonjs/components/DataGrid/renderDataGrid.js +1 -3
  314. package/lib-commonjs/components/DataGrid/renderDataGrid.js.map +1 -1
  315. package/lib-commonjs/components/DataGrid/useDataGrid.js +1 -3
  316. package/lib-commonjs/components/DataGrid/useDataGrid.js.map +1 -1
  317. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js +1 -3
  318. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js.map +1 -1
  319. package/lib-commonjs/components/DataGrid/useDataGridStyles.styles.js +0 -2
  320. package/lib-commonjs/components/DataGrid/useDataGridStyles.styles.js.map +1 -1
  321. package/lib-commonjs/components/DataGridBody/DataGridBody.js +1 -3
  322. package/lib-commonjs/components/DataGridBody/DataGridBody.js.map +1 -1
  323. package/lib-commonjs/components/DataGridBody/DataGridBody.types.js +0 -3
  324. package/lib-commonjs/components/DataGridBody/DataGridBody.types.js.map +1 -1
  325. package/lib-commonjs/components/DataGridBody/index.js +0 -3
  326. package/lib-commonjs/components/DataGridBody/index.js.map +1 -1
  327. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js +1 -3
  328. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js.map +1 -1
  329. package/lib-commonjs/components/DataGridBody/useDataGridBody.js +1 -3
  330. package/lib-commonjs/components/DataGridBody/useDataGridBody.js.map +1 -1
  331. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.styles.js +0 -2
  332. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.styles.js.map +1 -1
  333. package/lib-commonjs/components/DataGridCell/DataGridCell.js +1 -3
  334. package/lib-commonjs/components/DataGridCell/DataGridCell.js.map +1 -1
  335. package/lib-commonjs/components/DataGridCell/DataGridCell.types.js +0 -3
  336. package/lib-commonjs/components/DataGridCell/DataGridCell.types.js.map +1 -1
  337. package/lib-commonjs/components/DataGridCell/index.js +0 -3
  338. package/lib-commonjs/components/DataGridCell/index.js.map +1 -1
  339. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js +1 -3
  340. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js.map +1 -1
  341. package/lib-commonjs/components/DataGridCell/useDataGridCell.js +1 -3
  342. package/lib-commonjs/components/DataGridCell/useDataGridCell.js.map +1 -1
  343. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.styles.js +0 -2
  344. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.styles.js.map +1 -1
  345. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js +1 -3
  346. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js.map +1 -1
  347. package/lib-commonjs/components/DataGridHeader/DataGridHeader.types.js +0 -3
  348. package/lib-commonjs/components/DataGridHeader/DataGridHeader.types.js.map +1 -1
  349. package/lib-commonjs/components/DataGridHeader/index.js +0 -3
  350. package/lib-commonjs/components/DataGridHeader/index.js.map +1 -1
  351. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js +1 -3
  352. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js.map +1 -1
  353. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js +1 -3
  354. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js.map +1 -1
  355. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.styles.js +0 -2
  356. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.styles.js.map +1 -1
  357. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js +1 -3
  358. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -1
  359. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.types.js +0 -3
  360. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -1
  361. package/lib-commonjs/components/DataGridHeaderCell/index.js +0 -3
  362. package/lib-commonjs/components/DataGridHeaderCell/index.js.map +1 -1
  363. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js +1 -3
  364. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -1
  365. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js +2 -3
  366. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -1
  367. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.styles.js +0 -2
  368. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.styles.js.map +1 -1
  369. package/lib-commonjs/components/DataGridRow/DataGridRow.js +1 -3
  370. package/lib-commonjs/components/DataGridRow/DataGridRow.js.map +1 -1
  371. package/lib-commonjs/components/DataGridRow/DataGridRow.types.js +0 -3
  372. package/lib-commonjs/components/DataGridRow/DataGridRow.types.js.map +1 -1
  373. package/lib-commonjs/components/DataGridRow/index.js +0 -3
  374. package/lib-commonjs/components/DataGridRow/index.js.map +1 -1
  375. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js +1 -3
  376. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js.map +1 -1
  377. package/lib-commonjs/components/DataGridRow/useDataGridRow.js +1 -3
  378. package/lib-commonjs/components/DataGridRow/useDataGridRow.js.map +1 -1
  379. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.styles.js +0 -2
  380. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.styles.js.map +1 -1
  381. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js +1 -3
  382. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -1
  383. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.types.js +0 -3
  384. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -1
  385. package/lib-commonjs/components/DataGridSelectionCell/index.js +0 -3
  386. package/lib-commonjs/components/DataGridSelectionCell/index.js.map +1 -1
  387. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js +1 -3
  388. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -1
  389. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js +1 -3
  390. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -1
  391. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.styles.js +0 -2
  392. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.styles.js.map +1 -1
  393. package/lib-commonjs/components/Table/Table.js +1 -3
  394. package/lib-commonjs/components/Table/Table.js.map +1 -1
  395. package/lib-commonjs/components/Table/Table.types.js +0 -3
  396. package/lib-commonjs/components/Table/Table.types.js.map +1 -1
  397. package/lib-commonjs/components/Table/index.js +0 -3
  398. package/lib-commonjs/components/Table/index.js.map +1 -1
  399. package/lib-commonjs/components/Table/renderTable.js +1 -3
  400. package/lib-commonjs/components/Table/renderTable.js.map +1 -1
  401. package/lib-commonjs/components/Table/useTable.js +1 -3
  402. package/lib-commonjs/components/Table/useTable.js.map +1 -1
  403. package/lib-commonjs/components/Table/useTableContextValues.js +1 -3
  404. package/lib-commonjs/components/Table/useTableContextValues.js.map +1 -1
  405. package/lib-commonjs/components/Table/useTableStyles.styles.js +0 -2
  406. package/lib-commonjs/components/Table/useTableStyles.styles.js.map +1 -1
  407. package/lib-commonjs/components/TableBody/TableBody.js +1 -3
  408. package/lib-commonjs/components/TableBody/TableBody.js.map +1 -1
  409. package/lib-commonjs/components/TableBody/TableBody.types.js +0 -3
  410. package/lib-commonjs/components/TableBody/TableBody.types.js.map +1 -1
  411. package/lib-commonjs/components/TableBody/index.js +0 -3
  412. package/lib-commonjs/components/TableBody/index.js.map +1 -1
  413. package/lib-commonjs/components/TableBody/renderTableBody.js +1 -3
  414. package/lib-commonjs/components/TableBody/renderTableBody.js.map +1 -1
  415. package/lib-commonjs/components/TableBody/useTableBody.js +1 -3
  416. package/lib-commonjs/components/TableBody/useTableBody.js.map +1 -1
  417. package/lib-commonjs/components/TableBody/useTableBodyStyles.styles.js +0 -2
  418. package/lib-commonjs/components/TableBody/useTableBodyStyles.styles.js.map +1 -1
  419. package/lib-commonjs/components/TableCell/TableCell.js +1 -3
  420. package/lib-commonjs/components/TableCell/TableCell.js.map +1 -1
  421. package/lib-commonjs/components/TableCell/TableCell.types.js +0 -3
  422. package/lib-commonjs/components/TableCell/TableCell.types.js.map +1 -1
  423. package/lib-commonjs/components/TableCell/index.js +0 -3
  424. package/lib-commonjs/components/TableCell/index.js.map +1 -1
  425. package/lib-commonjs/components/TableCell/renderTableCell.js +1 -3
  426. package/lib-commonjs/components/TableCell/renderTableCell.js.map +1 -1
  427. package/lib-commonjs/components/TableCell/useTableCell.js +1 -3
  428. package/lib-commonjs/components/TableCell/useTableCell.js.map +1 -1
  429. package/lib-commonjs/components/TableCell/useTableCellStyles.styles.js +0 -2
  430. package/lib-commonjs/components/TableCell/useTableCellStyles.styles.js.map +1 -1
  431. package/lib-commonjs/components/TableCellActions/TableCellActions.js +1 -3
  432. package/lib-commonjs/components/TableCellActions/TableCellActions.js.map +1 -1
  433. package/lib-commonjs/components/TableCellActions/TableCellActions.types.js +0 -3
  434. package/lib-commonjs/components/TableCellActions/TableCellActions.types.js.map +1 -1
  435. package/lib-commonjs/components/TableCellActions/index.js +0 -3
  436. package/lib-commonjs/components/TableCellActions/index.js.map +1 -1
  437. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js +1 -3
  438. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js.map +1 -1
  439. package/lib-commonjs/components/TableCellActions/useTableCellActions.js +1 -3
  440. package/lib-commonjs/components/TableCellActions/useTableCellActions.js.map +1 -1
  441. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.styles.js +0 -2
  442. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.styles.js.map +1 -1
  443. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js +1 -3
  444. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js.map +1 -1
  445. package/lib-commonjs/components/TableCellLayout/TableCellLayout.types.js +0 -3
  446. package/lib-commonjs/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  447. package/lib-commonjs/components/TableCellLayout/index.js +0 -3
  448. package/lib-commonjs/components/TableCellLayout/index.js.map +1 -1
  449. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js +1 -3
  450. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  451. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js +1 -3
  452. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  453. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js +1 -3
  454. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -1
  455. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.styles.js +0 -2
  456. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.styles.js.map +1 -1
  457. package/lib-commonjs/components/TableHeader/TableHeader.js +1 -3
  458. package/lib-commonjs/components/TableHeader/TableHeader.js.map +1 -1
  459. package/lib-commonjs/components/TableHeader/TableHeader.types.js +0 -3
  460. package/lib-commonjs/components/TableHeader/TableHeader.types.js.map +1 -1
  461. package/lib-commonjs/components/TableHeader/index.js +0 -3
  462. package/lib-commonjs/components/TableHeader/index.js.map +1 -1
  463. package/lib-commonjs/components/TableHeader/renderTableHeader.js +1 -3
  464. package/lib-commonjs/components/TableHeader/renderTableHeader.js.map +1 -1
  465. package/lib-commonjs/components/TableHeader/useTableHeader.js +1 -3
  466. package/lib-commonjs/components/TableHeader/useTableHeader.js.map +1 -1
  467. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.styles.js +0 -2
  468. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.styles.js.map +1 -1
  469. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js +1 -3
  470. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  471. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.types.js +0 -3
  472. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  473. package/lib-commonjs/components/TableHeaderCell/index.js +0 -3
  474. package/lib-commonjs/components/TableHeaderCell/index.js.map +1 -1
  475. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js +1 -3
  476. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  477. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js +1 -3
  478. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  479. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.styles.js +27 -3
  480. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.styles.js.map +1 -1
  481. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.js +1 -3
  482. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.js.map +1 -1
  483. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.types.js +0 -3
  484. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.types.js.map +1 -1
  485. package/lib-commonjs/components/TableResizeHandle/index.js +0 -3
  486. package/lib-commonjs/components/TableResizeHandle/index.js.map +1 -1
  487. package/lib-commonjs/components/TableResizeHandle/renderTableResizeHandle.js +1 -3
  488. package/lib-commonjs/components/TableResizeHandle/renderTableResizeHandle.js.map +1 -1
  489. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandle.js +1 -3
  490. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandle.js.map +1 -1
  491. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandleStyles.styles.js +0 -2
  492. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandleStyles.styles.js.map +1 -1
  493. package/lib-commonjs/components/TableRow/TableRow.js +1 -3
  494. package/lib-commonjs/components/TableRow/TableRow.js.map +1 -1
  495. package/lib-commonjs/components/TableRow/TableRow.types.js +0 -3
  496. package/lib-commonjs/components/TableRow/TableRow.types.js.map +1 -1
  497. package/lib-commonjs/components/TableRow/index.js +0 -3
  498. package/lib-commonjs/components/TableRow/index.js.map +1 -1
  499. package/lib-commonjs/components/TableRow/renderTableRow.js +1 -3
  500. package/lib-commonjs/components/TableRow/renderTableRow.js.map +1 -1
  501. package/lib-commonjs/components/TableRow/useTableRow.js +1 -3
  502. package/lib-commonjs/components/TableRow/useTableRow.js.map +1 -1
  503. package/lib-commonjs/components/TableRow/useTableRowStyles.styles.js +0 -2
  504. package/lib-commonjs/components/TableRow/useTableRowStyles.styles.js.map +1 -1
  505. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js +1 -3
  506. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  507. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.types.js +0 -3
  508. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  509. package/lib-commonjs/components/TableSelectionCell/index.js +0 -3
  510. package/lib-commonjs/components/TableSelectionCell/index.js.map +1 -1
  511. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js +1 -3
  512. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  513. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js +1 -3
  514. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  515. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.styles.js +0 -2
  516. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.styles.js.map +1 -1
  517. package/lib-commonjs/contexts/columnIdContext.js +1 -3
  518. package/lib-commonjs/contexts/columnIdContext.js.map +1 -1
  519. package/lib-commonjs/contexts/dataGridContext.js +2 -4
  520. package/lib-commonjs/contexts/dataGridContext.js.map +1 -1
  521. package/lib-commonjs/contexts/rowIdContext.js +1 -3
  522. package/lib-commonjs/contexts/rowIdContext.js.map +1 -1
  523. package/lib-commonjs/contexts/tableContext.js +1 -3
  524. package/lib-commonjs/contexts/tableContext.js.map +1 -1
  525. package/lib-commonjs/contexts/tableHeaderContext.js +1 -3
  526. package/lib-commonjs/contexts/tableHeaderContext.js.map +1 -1
  527. package/lib-commonjs/hooks/createColumn.js +1 -3
  528. package/lib-commonjs/hooks/createColumn.js.map +1 -1
  529. package/lib-commonjs/hooks/index.js +0 -3
  530. package/lib-commonjs/hooks/index.js.map +1 -1
  531. package/lib-commonjs/hooks/selectionManager.js +1 -3
  532. package/lib-commonjs/hooks/selectionManager.js.map +1 -1
  533. package/lib-commonjs/hooks/types.js +0 -3
  534. package/lib-commonjs/hooks/types.js.map +1 -1
  535. package/lib-commonjs/hooks/useKeyboardResizing.js +17 -18
  536. package/lib-commonjs/hooks/useKeyboardResizing.js.map +1 -1
  537. package/lib-commonjs/hooks/useMeasureElement.js +1 -3
  538. package/lib-commonjs/hooks/useMeasureElement.js.map +1 -1
  539. package/lib-commonjs/hooks/useTableColumnResizeMouseHandler.js +1 -3
  540. package/lib-commonjs/hooks/useTableColumnResizeMouseHandler.js.map +1 -1
  541. package/lib-commonjs/hooks/useTableColumnResizeState.js +1 -3
  542. package/lib-commonjs/hooks/useTableColumnResizeState.js.map +1 -1
  543. package/lib-commonjs/hooks/useTableColumnSizing.js +10 -7
  544. package/lib-commonjs/hooks/useTableColumnSizing.js.map +1 -1
  545. package/lib-commonjs/hooks/useTableFeatures.js +1 -3
  546. package/lib-commonjs/hooks/useTableFeatures.js.map +1 -1
  547. package/lib-commonjs/hooks/useTableSelection.js +2 -4
  548. package/lib-commonjs/hooks/useTableSelection.js.map +1 -1
  549. package/lib-commonjs/hooks/useTableSort.js +1 -3
  550. package/lib-commonjs/hooks/useTableSort.js.map +1 -1
  551. package/lib-commonjs/index.js +0 -3
  552. package/lib-commonjs/index.js.map +1 -1
  553. package/lib-commonjs/utils/columnResizeUtils.js +1 -3
  554. package/lib-commonjs/utils/columnResizeUtils.js.map +1 -1
  555. package/package.json +11 -11
@@ -2,67 +2,70 @@ import * as React from 'react';
2
2
  import { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';
3
3
  import { getEventClientCoords, isMouseEvent, isTouchEvent } from '@fluentui/react-utilities';
4
4
  export function useTableColumnResizeMouseHandler(columnResizeState) {
5
- const mouseX = React.useRef(0);
6
- const currentWidth = React.useRef(0);
7
- const colId = React.useRef(undefined);
8
- const {
9
- targetDocument
10
- } = useFluent();
11
- const globalWin = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView;
12
- const recalculatePosition = React.useCallback(e => {
13
- const {
14
- clientX
15
- } = getEventClientCoords(e);
16
- const dx = clientX - mouseX.current;
17
- // Update the local width for the column and set it
18
- currentWidth.current += dx;
19
- colId.current && columnResizeState.setColumnWidth(e, {
20
- columnId: colId.current,
21
- width: currentWidth.current
22
- });
23
- mouseX.current = clientX;
24
- }, [columnResizeState]);
25
- const onDrag = React.useCallback(e => {
26
- // Using requestAnimationFrame here drastically improves resizing experience on slower CPUs
27
- if (typeof (globalWin === null || globalWin === void 0 ? void 0 : globalWin.requestAnimationFrame) === 'function') {
28
- requestAnimationFrame(() => recalculatePosition(e));
29
- } else {
30
- recalculatePosition(e);
31
- }
32
- }, [globalWin === null || globalWin === void 0 ? void 0 : globalWin.requestAnimationFrame, recalculatePosition]);
33
- const onDragEnd = React.useCallback(event => {
34
- if (isMouseEvent(event)) {
35
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('mouseup', onDragEnd);
36
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('mousemove', onDrag);
37
- }
38
- if (isTouchEvent(event)) {
39
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('touchend', onDragEnd);
40
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('touchmove', onDrag);
41
- }
42
- }, [onDrag, targetDocument]);
43
- const getOnMouseDown = columnId => {
44
- return event => {
45
- // Keep the width locally so that we decouple the calculation of the next with from rendering.
46
- // This makes the whole experience much faster and more precise
47
- currentWidth.current = columnResizeState.getColumnWidth(columnId);
48
- mouseX.current = getEventClientCoords(event).clientX;
49
- colId.current = columnId;
50
- if (isMouseEvent(event)) {
51
- // ignore other buttons than primary mouse button
52
- if (event.target !== event.currentTarget || event.button !== 0) {
53
- return;
5
+ const mouseX = React.useRef(0);
6
+ const currentWidth = React.useRef(0);
7
+ const colId = React.useRef(undefined);
8
+ const { targetDocument } = useFluent();
9
+ const globalWin = targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView;
10
+ const recalculatePosition = React.useCallback((e)=>{
11
+ const { clientX } = getEventClientCoords(e);
12
+ const dx = clientX - mouseX.current;
13
+ // Update the local width for the column and set it
14
+ currentWidth.current += dx;
15
+ colId.current && columnResizeState.setColumnWidth(e, {
16
+ columnId: colId.current,
17
+ width: currentWidth.current
18
+ });
19
+ mouseX.current = clientX;
20
+ }, [
21
+ columnResizeState
22
+ ]);
23
+ const onDrag = React.useCallback((e)=>{
24
+ // Using requestAnimationFrame here drastically improves resizing experience on slower CPUs
25
+ if (typeof (globalWin === null || globalWin === void 0 ? void 0 : globalWin.requestAnimationFrame) === 'function') {
26
+ requestAnimationFrame(()=>recalculatePosition(e));
27
+ } else {
28
+ recalculatePosition(e);
54
29
  }
55
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('mouseup', onDragEnd);
56
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('mousemove', onDrag);
57
- }
58
- if (isTouchEvent(event)) {
59
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('touchend', onDragEnd);
60
- targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('touchmove', onDrag);
61
- }
30
+ }, [
31
+ globalWin === null || globalWin === void 0 ? void 0 : globalWin.requestAnimationFrame,
32
+ recalculatePosition
33
+ ]);
34
+ const onDragEnd = React.useCallback((event)=>{
35
+ if (isMouseEvent(event)) {
36
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('mouseup', onDragEnd);
37
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('mousemove', onDrag);
38
+ }
39
+ if (isTouchEvent(event)) {
40
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('touchend', onDragEnd);
41
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.removeEventListener('touchmove', onDrag);
42
+ }
43
+ }, [
44
+ onDrag,
45
+ targetDocument
46
+ ]);
47
+ const getOnMouseDown = (columnId)=>{
48
+ return (event)=>{
49
+ // Keep the width locally so that we decouple the calculation of the next with from rendering.
50
+ // This makes the whole experience much faster and more precise
51
+ currentWidth.current = columnResizeState.getColumnWidth(columnId);
52
+ mouseX.current = getEventClientCoords(event).clientX;
53
+ colId.current = columnId;
54
+ if (isMouseEvent(event)) {
55
+ // ignore other buttons than primary mouse button
56
+ if (event.target !== event.currentTarget || event.button !== 0) {
57
+ return;
58
+ }
59
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('mouseup', onDragEnd);
60
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('mousemove', onDrag);
61
+ }
62
+ if (isTouchEvent(event)) {
63
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('touchend', onDragEnd);
64
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.addEventListener('touchmove', onDrag);
65
+ }
66
+ };
67
+ };
68
+ return {
69
+ getOnMouseDown: (columnId)=>getOnMouseDown(columnId)
62
70
  };
63
- };
64
- return {
65
- getOnMouseDown: columnId => getOnMouseDown(columnId)
66
- };
67
71
  }
68
- //# sourceMappingURL=useTableColumnResizeMouseHandler.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","useFluent_unstable","useFluent","getEventClientCoords","isMouseEvent","isTouchEvent","useTableColumnResizeMouseHandler","columnResizeState","mouseX","useRef","currentWidth","colId","undefined","targetDocument","globalWin","defaultView","recalculatePosition","useCallback","e","clientX","dx","current","setColumnWidth","columnId","width","onDrag","requestAnimationFrame","onDragEnd","event","removeEventListener","getOnMouseDown","getColumnWidth","target","currentTarget","button","addEventListener"],"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} 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\n const { targetDocument } = useFluent();\n const globalWin = targetDocument?.defaultView;\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 && columnResizeState.setColumnWidth(e, { columnId: colId.current, width: currentWidth.current });\n mouseX.current = clientX;\n },\n [columnResizeState],\n );\n\n const onDrag = React.useCallback(\n (e: NativeTouchOrMouseEvent) => {\n // Using requestAnimationFrame here drastically improves resizing experience on slower CPUs\n if (typeof globalWin?.requestAnimationFrame === 'function') {\n requestAnimationFrame(() => recalculatePosition(e));\n } else {\n recalculatePosition(e);\n }\n },\n [globalWin?.requestAnimationFrame, 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 },\n [onDrag, targetDocument],\n );\n\n const getOnMouseDown = (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 = columnResizeState.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 }\n\n if (isTouchEvent(event)) {\n targetDocument?.addEventListener('touchend', onDragEnd);\n targetDocument?.addEventListener('touchmove', onDrag);\n }\n };\n\n return {\n getOnMouseDown: (columnId: TableColumnId) => getOnMouseDown(columnId),\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"sources":["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} 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\n const { targetDocument } = useFluent();\n const globalWin = targetDocument?.defaultView;\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 && columnResizeState.setColumnWidth(e, { columnId: colId.current, width: currentWidth.current });\n mouseX.current = clientX;\n },\n [columnResizeState],\n );\n\n const onDrag = React.useCallback(\n (e: NativeTouchOrMouseEvent) => {\n // Using requestAnimationFrame here drastically improves resizing experience on slower CPUs\n if (typeof globalWin?.requestAnimationFrame === 'function') {\n requestAnimationFrame(() => recalculatePosition(e));\n } else {\n recalculatePosition(e);\n }\n },\n [globalWin?.requestAnimationFrame, 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 },\n [onDrag, targetDocument],\n );\n\n const getOnMouseDown = (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 = columnResizeState.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 }\n\n if (isTouchEvent(event)) {\n targetDocument?.addEventListener('touchend', onDragEnd);\n targetDocument?.addEventListener('touchmove', onDrag);\n }\n };\n\n return {\n getOnMouseDown: (columnId: TableColumnId) => getOnMouseDown(columnId),\n };\n}\n"],"names":["React","useFluent_unstable","useFluent","getEventClientCoords","isMouseEvent","isTouchEvent","useTableColumnResizeMouseHandler","columnResizeState","mouseX","useRef","currentWidth","colId","undefined","targetDocument","globalWin","defaultView","recalculatePosition","useCallback","e","clientX","dx","current","setColumnWidth","columnId","width","onDrag","requestAnimationFrame","onDragEnd","event","removeEventListener","getOnMouseDown","getColumnWidth","target","currentTarget","button","addEventListener"],"mappings":"AAAA,YAAYA,WAAW,QAAQ;AAE/B,SAASC,sBAAsBC,SAAS,QAAQ,kCAAkC;AAClF,SAGEC,oBAAoB,EACpBC,YAAY,EACZC,YAAY,QACP,4BAA4B;AAEnC,OAAO,SAASC,iCAAiCC,iBAAoC,EAAE;IACrF,MAAMC,SAASR,MAAMS,MAAM,CAAC;IAC5B,MAAMC,eAAeV,MAAMS,MAAM,CAAC;IAClC,MAAME,QAAQX,MAAMS,MAAM,CAA4BG;IAEtD,MAAM,EAAEC,eAAc,EAAE,GAAGX;IAC3B,MAAMY,YAAYD,2BAAAA,4BAAAA,KAAAA,IAAAA,eAAgBE,WAAW;IAE7C,MAAMC,sBAAsBhB,MAAMiB,WAAW,CAC3C,CAACC,IAA+B;QAC9B,MAAM,EAAEC,QAAO,EAAE,GAAGhB,qBAAqBe;QACzC,MAAME,KAAKD,UAAUX,OAAOa,OAAO;QAEnC,mDAAmD;QACnDX,aAAaW,OAAO,IAAID;QACxBT,MAAMU,OAAO,IAAId,kBAAkBe,cAAc,CAACJ,GAAG;YAAEK,UAAUZ,MAAMU,OAAO;YAAEG,OAAOd,aAAaW,OAAO;QAAC;QAC5Gb,OAAOa,OAAO,GAAGF;IACnB,GACA;QAACZ;KAAkB;IAGrB,MAAMkB,SAASzB,MAAMiB,WAAW,CAC9B,CAACC,IAA+B;QAC9B,2FAA2F;QAC3F,IAAI,OAAOJ,CAAAA,sBAAAA,uBAAAA,KAAAA,IAAAA,UAAWY,qBAAqB,AAAD,MAAM,YAAY;YAC1DA,sBAAsB,IAAMV,oBAAoBE;QAClD,OAAO;YACLF,oBAAoBE;QACtB,CAAC;IACH,GACA;QAACJ,sBAAAA,uBAAAA,KAAAA,IAAAA,UAAWY,qBAAqB;QAAEV;KAAoB;IAGzD,MAAMW,YAAY3B,MAAMiB,WAAW,CACjC,CAACW,QAAmC;QAClC,IAAIxB,aAAawB,QAAQ;YACvBf,2BAAAA,4BAAAA,KAAAA,IAAAA,eAAgBgB,mBAAmB,CAAC,WAAWF;YAC/Cd,2BAAAA,4BAAAA,KAAAA,IAAAA,eAAgBgB,mBAAmB,CAAC,aAAaJ;QACnD,CAAC;QACD,IAAIpB,aAAauB,QAAQ;YACvBf,2BAAAA,4BAAAA,KAAAA,IAAAA,eAAgBgB,mBAAmB,CAAC,YAAYF;YAChDd,2BAAAA,4BAAAA,KAAAA,IAAAA,eAAgBgB,mBAAmB,CAAC,aAAaJ;QACnD,CAAC;IACH,GACA;QAACA;QAAQZ;KAAe;IAG1B,MAAMiB,iBAAiB,CAACP;QAA4B,OAAA,CAACK,QAAkC;YACrF,8FAA8F;YAC9F,+DAA+D;YAC/DlB,aAAaW,OAAO,GAAGd,kBAAkBwB,cAAc,CAACR;YACxDf,OAAOa,OAAO,GAAGlB,qBAAqByB,OAAOT,OAAO;YACpDR,MAAMU,OAAO,GAAGE;YAEhB,IAAInB,aAAawB,QAAQ;gBACvB,iDAAiD;gBACjD,IAAIA,MAAMI,MAAM,KAAKJ,MAAMK,aAAa,IAAIL,MAAMM,MAAM,KAAK,GAAG;oBAC9D;gBACF,CAAC;gBACDrB,2BAAAA,4BAAAA,KAAAA,IAAAA,eAAgBsB,gBAAgB,CAAC,WAAWR;gBAC5Cd,2BAAAA,4BAAAA,KAAAA,IAAAA,eAAgBsB,gBAAgB,CAAC,aAAaV;YAChD,CAAC;YAED,IAAIpB,aAAauB,QAAQ;gBACvBf,2BAAAA,4BAAAA,KAAAA,IAAAA,eAAgBsB,gBAAgB,CAAC,YAAYR;gBAC7Cd,2BAAAA,4BAAAA,KAAAA,IAAAA,eAAgBsB,gBAAgB,CAAC,aAAaV;YAChD,CAAC;QACH;;IAEA,OAAO;QACLK,gBAAgB,CAACP,WAA4BO,eAAeP;IAC9D;AACF,CAAC"}
@@ -1,112 +1,107 @@
1
1
  import { useEventCallback, useIsomorphicLayoutEffect } from '@fluentui/react-utilities';
2
2
  import * as React from 'react';
3
3
  import { columnDefinitionsToState, adjustColumnWidthsToFitContainer, getColumnById, setColumnProperty, getColumnWidth } from '../utils/columnResizeUtils';
4
- const createReducer = () => (state, action) => {
5
- switch (action.type) {
6
- case 'CONTAINER_WIDTH_UPDATED':
7
- return {
8
- ...state,
9
- containerWidth: action.containerWidth,
10
- columnWidthState: adjustColumnWidthsToFitContainer(state.columnWidthState, action.containerWidth)
11
- };
12
- case 'COLUMNS_UPDATED':
13
- const newS = columnDefinitionsToState(action.columns, state.columnWidthState, state.columnSizingOptions);
14
- return {
15
- ...state,
16
- columns: action.columns,
17
- columnWidthState: adjustColumnWidthsToFitContainer(newS, state.containerWidth)
18
- };
19
- case 'COLUMN_SIZING_OPTIONS_UPDATED':
20
- const newState = columnDefinitionsToState(state.columns, state.columnWidthState, action.columnSizingOptions);
21
- return {
22
- ...state,
23
- columnSizingOptions: action.columnSizingOptions,
24
- columnWidthState: adjustColumnWidthsToFitContainer(newState, state.containerWidth)
25
- };
26
- case 'SET_COLUMN_WIDTH':
27
- const {
28
- columnId,
29
- width
30
- } = action;
31
- const {
32
- containerWidth
33
- } = state;
34
- const column = getColumnById(state.columnWidthState, columnId);
35
- let newColumnWidthState = [...state.columnWidthState];
36
- if (!column) {
37
- return state;
38
- }
39
- // Adjust the column width and measure the new total width
40
- newColumnWidthState = setColumnProperty(newColumnWidthState, columnId, 'width', width);
41
- // Set this width as idealWidth, because its a deliberate change, not a recalculation because of container
42
- newColumnWidthState = setColumnProperty(newColumnWidthState, columnId, 'idealWidth', width);
43
- // Adjust the widths to the container size
44
- newColumnWidthState = adjustColumnWidthsToFitContainer(newColumnWidthState, containerWidth);
45
- return {
46
- ...state,
47
- columnWidthState: newColumnWidthState
48
- };
49
- }
50
- };
4
+ const createReducer = ()=>(state, action)=>{
5
+ switch(action.type){
6
+ case 'CONTAINER_WIDTH_UPDATED':
7
+ return {
8
+ ...state,
9
+ containerWidth: action.containerWidth,
10
+ columnWidthState: adjustColumnWidthsToFitContainer(state.columnWidthState, action.containerWidth)
11
+ };
12
+ case 'COLUMNS_UPDATED':
13
+ const newS = columnDefinitionsToState(action.columns, state.columnWidthState, state.columnSizingOptions);
14
+ return {
15
+ ...state,
16
+ columns: action.columns,
17
+ columnWidthState: adjustColumnWidthsToFitContainer(newS, state.containerWidth)
18
+ };
19
+ case 'COLUMN_SIZING_OPTIONS_UPDATED':
20
+ const newState = columnDefinitionsToState(state.columns, state.columnWidthState, action.columnSizingOptions);
21
+ return {
22
+ ...state,
23
+ columnSizingOptions: action.columnSizingOptions,
24
+ columnWidthState: adjustColumnWidthsToFitContainer(newState, state.containerWidth)
25
+ };
26
+ case 'SET_COLUMN_WIDTH':
27
+ const { columnId , width } = action;
28
+ const { containerWidth } = state;
29
+ const column = getColumnById(state.columnWidthState, columnId);
30
+ let newColumnWidthState = [
31
+ ...state.columnWidthState
32
+ ];
33
+ if (!column) {
34
+ return state;
35
+ }
36
+ // Adjust the column width and measure the new total width
37
+ newColumnWidthState = setColumnProperty(newColumnWidthState, columnId, 'width', width);
38
+ // Set this width as idealWidth, because its a deliberate change, not a recalculation because of container
39
+ newColumnWidthState = setColumnProperty(newColumnWidthState, columnId, 'idealWidth', width);
40
+ // Adjust the widths to the container size
41
+ newColumnWidthState = adjustColumnWidthsToFitContainer(newColumnWidthState, containerWidth);
42
+ return {
43
+ ...state,
44
+ columnWidthState: newColumnWidthState
45
+ };
46
+ }
47
+ };
51
48
  export function useTableColumnResizeState(columns, containerWidth, params = {}) {
52
- const {
53
- onColumnResize,
54
- columnSizingOptions
55
- } = params;
56
- const reducer = React.useMemo(() => createReducer(), []);
57
- const [state, dispatch] = React.useReducer(reducer, {
58
- columns,
59
- containerWidth: 0,
60
- columnWidthState: columnDefinitionsToState(columns, undefined, columnSizingOptions),
61
- columnSizingOptions
62
- });
63
- useIsomorphicLayoutEffect(() => {
64
- dispatch({
65
- type: 'CONTAINER_WIDTH_UPDATED',
66
- containerWidth
67
- });
68
- }, [containerWidth]);
69
- useIsomorphicLayoutEffect(() => {
70
- dispatch({
71
- type: 'COLUMNS_UPDATED',
72
- columns
49
+ const { onColumnResize , columnSizingOptions } = params;
50
+ const reducer = React.useMemo(()=>createReducer(), []);
51
+ const [state, dispatch] = React.useReducer(reducer, {
52
+ columns,
53
+ containerWidth: 0,
54
+ columnWidthState: columnDefinitionsToState(columns, undefined, columnSizingOptions),
55
+ columnSizingOptions
73
56
  });
74
- }, [columns]);
75
- useIsomorphicLayoutEffect(() => {
76
- dispatch({
77
- type: 'COLUMN_SIZING_OPTIONS_UPDATED',
78
- columnSizingOptions
79
- });
80
- }, [columnSizingOptions]);
81
- const setColumnWidth = useEventCallback((event, data) => {
82
- let {
83
- width
84
- } = data;
85
- const {
86
- columnId
87
- } = data;
88
- const col = getColumnById(state.columnWidthState, columnId);
89
- if (!col) {
90
- return;
91
- }
92
- width = Math.max(col.minWidth || 0, width);
93
- if (onColumnResize) {
94
- onColumnResize(event, {
95
- columnId,
96
- width
97
- });
98
- }
99
- dispatch({
100
- type: 'SET_COLUMN_WIDTH',
101
- columnId,
102
- width
57
+ useIsomorphicLayoutEffect(()=>{
58
+ dispatch({
59
+ type: 'CONTAINER_WIDTH_UPDATED',
60
+ containerWidth
61
+ });
62
+ }, [
63
+ containerWidth
64
+ ]);
65
+ useIsomorphicLayoutEffect(()=>{
66
+ dispatch({
67
+ type: 'COLUMNS_UPDATED',
68
+ columns
69
+ });
70
+ }, [
71
+ columns
72
+ ]);
73
+ useIsomorphicLayoutEffect(()=>{
74
+ dispatch({
75
+ type: 'COLUMN_SIZING_OPTIONS_UPDATED',
76
+ columnSizingOptions
77
+ });
78
+ }, [
79
+ columnSizingOptions
80
+ ]);
81
+ const setColumnWidth = useEventCallback((event, data)=>{
82
+ let { width } = data;
83
+ const { columnId } = data;
84
+ const col = getColumnById(state.columnWidthState, columnId);
85
+ if (!col) {
86
+ return;
87
+ }
88
+ width = Math.max(col.minWidth || 0, width);
89
+ if (onColumnResize) {
90
+ onColumnResize(event, {
91
+ columnId,
92
+ width
93
+ });
94
+ }
95
+ dispatch({
96
+ type: 'SET_COLUMN_WIDTH',
97
+ columnId,
98
+ width
99
+ });
103
100
  });
104
- });
105
- return {
106
- getColumnById: colId => getColumnById(state.columnWidthState, colId),
107
- getColumns: () => state.columnWidthState,
108
- getColumnWidth: colId => getColumnWidth(state.columnWidthState, colId),
109
- setColumnWidth
110
- };
101
+ return {
102
+ getColumnById: (colId)=>getColumnById(state.columnWidthState, colId),
103
+ getColumns: ()=>state.columnWidthState,
104
+ getColumnWidth: (colId)=>getColumnWidth(state.columnWidthState, colId),
105
+ setColumnWidth
106
+ };
111
107
  }
112
- //# sourceMappingURL=useTableColumnResizeState.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["useEventCallback","useIsomorphicLayoutEffect","React","columnDefinitionsToState","adjustColumnWidthsToFitContainer","getColumnById","setColumnProperty","getColumnWidth","createReducer","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","colId","getColumns"],"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>() =>\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: adjustColumnWidthsToFitContainer(state.columnWidthState, action.containerWidth),\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: adjustColumnWidthsToFitContainer(newS, state.containerWidth),\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: adjustColumnWidthsToFitContainer(newState, state.containerWidth),\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 newColumnWidthState = adjustColumnWidthsToFitContainer(newColumnWidthState, containerWidth);\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 } = params;\n\n const reducer = React.useMemo(() => createReducer<T>(), []);\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: (colId: TableColumnId) => getColumnById(state.columnWidthState, colId),\n getColumns: () => state.columnWidthState,\n getColumnWidth: (colId: TableColumnId) => getColumnWidth(state.columnWidthState, colId),\n setColumnWidth,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"sources":["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>() =>\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: adjustColumnWidthsToFitContainer(state.columnWidthState, action.containerWidth),\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: adjustColumnWidthsToFitContainer(newS, state.containerWidth),\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: adjustColumnWidthsToFitContainer(newState, state.containerWidth),\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 newColumnWidthState = adjustColumnWidthsToFitContainer(newColumnWidthState, containerWidth);\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 } = params;\n\n const reducer = React.useMemo(() => createReducer<T>(), []);\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: (colId: TableColumnId) => getColumnById(state.columnWidthState, colId),\n getColumns: () => state.columnWidthState,\n getColumnWidth: (colId: TableColumnId) => getColumnWidth(state.columnWidthState, colId),\n setColumnWidth,\n };\n}\n"],"names":["useEventCallback","useIsomorphicLayoutEffect","React","columnDefinitionsToState","adjustColumnWidthsToFitContainer","getColumnById","setColumnProperty","getColumnWidth","createReducer","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","colId","getColumns"],"mappings":"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"}
@@ -4,85 +4,85 @@ import { useMeasureElement } from './useMeasureElement';
4
4
  import { useTableColumnResizeMouseHandler } from './useTableColumnResizeMouseHandler';
5
5
  import { useTableColumnResizeState } from './useTableColumnResizeState';
6
6
  import { useKeyboardResizing } from './useKeyboardResizing';
7
+ export const KeyboardResizingCurrentColumnDataAttribute = 'data-keyboard-resizing';
7
8
  export const defaultColumnSizingState = {
8
- getColumnWidths: () => [],
9
- getOnMouseDown: () => () => null,
10
- setColumnWidth: () => null,
11
- getTableHeaderCellProps: () => ({
12
- style: {},
13
- columnId: ''
14
- }),
15
- getTableCellProps: () => ({
16
- style: {},
17
- columnId: ''
18
- }),
19
- enableKeyboardMode: () => () => null
9
+ getColumnWidths: ()=>[],
10
+ getOnMouseDown: ()=>()=>null,
11
+ setColumnWidth: ()=>null,
12
+ getTableHeaderCellProps: ()=>({
13
+ style: {},
14
+ columnId: ''
15
+ }),
16
+ getTableCellProps: ()=>({
17
+ style: {},
18
+ columnId: ''
19
+ }),
20
+ enableKeyboardMode: ()=>()=>null
20
21
  };
21
22
  export function useTableColumnSizing_unstable(params) {
22
- // False positive, these plugin hooks are intended to be run on every render
23
- // eslint-disable-next-line react-hooks/rules-of-hooks
24
- return tableState => useTableColumnSizingState(tableState, params);
23
+ // False positive, these plugin hooks are intended to be run on every render
24
+ // eslint-disable-next-line react-hooks/rules-of-hooks
25
+ return (tableState)=>useTableColumnSizingState(tableState, params);
25
26
  }
26
27
  function getColumnStyles(column) {
27
- const width = column.width;
28
- return {
29
- // native styles
30
- width,
31
- // non-native element styles (flex layout)
32
- minWidth: width,
33
- maxWidth: width
34
- };
28
+ const width = column.width;
29
+ return {
30
+ // native styles
31
+ width,
32
+ // non-native element styles (flex layout)
33
+ minWidth: width,
34
+ maxWidth: width
35
+ };
35
36
  }
36
37
  function useTableColumnSizingState(tableState, params) {
37
- const {
38
- columns
39
- } = tableState;
40
- // Gets the container width
41
- const {
42
- width,
43
- measureElementRef
44
- } = useMeasureElement();
45
- // Creates the state based on columns and available containerWidth
46
- const columnResizeState = useTableColumnResizeState(columns, width + ((params === null || params === void 0 ? void 0 : params.containerWidthOffset) || 0), params);
47
- // Creates the mouse handler and attaches the state to it
48
- const mouseHandler = useTableColumnResizeMouseHandler(columnResizeState);
49
- // Creates the keyboard handler for resizing columns
50
- const keyboardResizing = useKeyboardResizing(columnResizeState);
51
- const enableKeyboardMode = React.useCallback((columnId, onChange) => e => {
52
- e.preventDefault();
53
- e.nativeEvent.stopPropagation();
54
- keyboardResizing.toggleInteractiveMode(columnId, onChange);
55
- }, [keyboardResizing]);
56
- return {
57
- ...tableState,
58
- tableRef: measureElementRef,
59
- // eslint-disable-next-line @typescript-eslint/naming-convention
60
- columnSizing_unstable: {
61
- getOnMouseDown: mouseHandler.getOnMouseDown,
62
- setColumnWidth: (columnId, w) => columnResizeState.setColumnWidth(undefined, {
63
- columnId,
64
- width: w
65
- }),
66
- getColumnWidths: columnResizeState.getColumns,
67
- getTableHeaderCellProps: columnId => {
68
- const col = columnResizeState.getColumnById(columnId);
69
- const aside = /*#__PURE__*/React.createElement(TableResizeHandle, {
70
- onMouseDown: mouseHandler.getOnMouseDown(columnId),
71
- onTouchStart: mouseHandler.getOnMouseDown(columnId)
72
- });
73
- return col ? {
74
- style: getColumnStyles(col),
75
- aside
76
- } : {};
77
- },
78
- getTableCellProps: columnId => {
79
- const col = columnResizeState.getColumnById(columnId);
80
- return col ? {
81
- style: getColumnStyles(col)
82
- } : {};
83
- },
84
- enableKeyboardMode
85
- }
86
- };
38
+ const { columns } = tableState;
39
+ // Gets the container width
40
+ const { width , measureElementRef } = useMeasureElement();
41
+ // Creates the state based on columns and available containerWidth
42
+ const columnResizeState = useTableColumnResizeState(columns, width + ((params === null || params === void 0 ? void 0 : params.containerWidthOffset) || 0), params);
43
+ // Creates the mouse handler and attaches the state to it
44
+ const mouseHandler = useTableColumnResizeMouseHandler(columnResizeState);
45
+ // Creates the keyboard handler for resizing columns
46
+ const { toggleInteractiveMode , columnId: keyboardResizingColumnId } = useKeyboardResizing(columnResizeState);
47
+ const enableKeyboardMode = React.useCallback((columnId, onChange)=>(e)=>{
48
+ e.preventDefault();
49
+ e.nativeEvent.stopPropagation();
50
+ toggleInteractiveMode(columnId, onChange);
51
+ }, [
52
+ toggleInteractiveMode
53
+ ]);
54
+ return {
55
+ ...tableState,
56
+ tableRef: measureElementRef,
57
+ // eslint-disable-next-line @typescript-eslint/naming-convention
58
+ columnSizing_unstable: {
59
+ getOnMouseDown: mouseHandler.getOnMouseDown,
60
+ setColumnWidth: (columnId, w)=>columnResizeState.setColumnWidth(undefined, {
61
+ columnId,
62
+ width: w
63
+ }),
64
+ getColumnWidths: columnResizeState.getColumns,
65
+ getTableHeaderCellProps: (columnId)=>{
66
+ const col = columnResizeState.getColumnById(columnId);
67
+ const aside = /*#__PURE__*/ React.createElement(TableResizeHandle, {
68
+ onMouseDown: mouseHandler.getOnMouseDown(columnId),
69
+ onTouchStart: mouseHandler.getOnMouseDown(columnId)
70
+ });
71
+ return col ? {
72
+ style: getColumnStyles(col),
73
+ aside,
74
+ ...keyboardResizingColumnId === columnId ? {
75
+ [KeyboardResizingCurrentColumnDataAttribute]: ''
76
+ } : {}
77
+ } : {};
78
+ },
79
+ getTableCellProps: (columnId)=>{
80
+ const col = columnResizeState.getColumnById(columnId);
81
+ return col ? {
82
+ style: getColumnStyles(col)
83
+ } : {};
84
+ },
85
+ enableKeyboardMode
86
+ }
87
+ };
87
88
  }
88
- //# sourceMappingURL=useTableColumnSizing.js.map