@fluentui/react-table 9.2.12 → 9.4.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 (557) hide show
  1. package/CHANGELOG.json +193 -1
  2. package/CHANGELOG.md +51 -2
  3. package/dist/index.d.ts +15 -1
  4. package/lib/DataGrid.js +0 -1
  5. package/lib/DataGrid.js.map +1 -1
  6. package/lib/DataGridBody.js +0 -1
  7. package/lib/DataGridBody.js.map +1 -1
  8. package/lib/DataGridCell.js +0 -1
  9. package/lib/DataGridCell.js.map +1 -1
  10. package/lib/DataGridHeader.js +0 -1
  11. package/lib/DataGridHeader.js.map +1 -1
  12. package/lib/DataGridHeaderCell.js +0 -1
  13. package/lib/DataGridHeaderCell.js.map +1 -1
  14. package/lib/DataGridRow.js +0 -1
  15. package/lib/DataGridRow.js.map +1 -1
  16. package/lib/DataGridSelectionCell.js +0 -1
  17. package/lib/DataGridSelectionCell.js.map +1 -1
  18. package/lib/Table.js +0 -1
  19. package/lib/Table.js.map +1 -1
  20. package/lib/TableBody.js +0 -1
  21. package/lib/TableBody.js.map +1 -1
  22. package/lib/TableCell.js +0 -1
  23. package/lib/TableCell.js.map +1 -1
  24. package/lib/TableCellActions.js +0 -1
  25. package/lib/TableCellActions.js.map +1 -1
  26. package/lib/TableCellLayout.js +0 -1
  27. package/lib/TableCellLayout.js.map +1 -1
  28. package/lib/TableCellPrimaryLayout.js +0 -1
  29. package/lib/TableCellPrimaryLayout.js.map +1 -1
  30. package/lib/TableHeader.js +0 -1
  31. package/lib/TableHeader.js.map +1 -1
  32. package/lib/TableHeaderCell.js +0 -1
  33. package/lib/TableHeaderCell.js.map +1 -1
  34. package/lib/TableResizeHandle.js +0 -1
  35. package/lib/TableResizeHandle.js.map +1 -1
  36. package/lib/TableRow.js +0 -1
  37. package/lib/TableRow.js.map +1 -1
  38. package/lib/TableSelectionCell.js +0 -1
  39. package/lib/TableSelectionCell.js.map +1 -1
  40. package/lib/components/DataGrid/DataGrid.js +5 -7
  41. package/lib/components/DataGrid/DataGrid.js.map +1 -1
  42. package/lib/components/DataGrid/DataGrid.types.js +0 -1
  43. package/lib/components/DataGrid/DataGrid.types.js.map +1 -1
  44. package/lib/components/DataGrid/index.js +0 -1
  45. package/lib/components/DataGrid/index.js.map +1 -1
  46. package/lib/components/DataGrid/renderDataGrid.js +4 -6
  47. package/lib/components/DataGrid/renderDataGrid.js.map +1 -1
  48. package/lib/components/DataGrid/useDataGrid.js +72 -89
  49. package/lib/components/DataGrid/useDataGrid.js.map +1 -1
  50. package/lib/components/DataGrid/useDataGridContextValues.js +12 -13
  51. package/lib/components/DataGrid/useDataGridContextValues.js.map +1 -1
  52. package/lib/components/DataGrid/useDataGridStyles.styles.js.map +1 -1
  53. package/lib/components/DataGridBody/DataGridBody.js +5 -7
  54. package/lib/components/DataGridBody/DataGridBody.js.map +1 -1
  55. package/lib/components/DataGridBody/DataGridBody.types.js +0 -1
  56. package/lib/components/DataGridBody/DataGridBody.types.js.map +1 -1
  57. package/lib/components/DataGridBody/index.js +0 -1
  58. package/lib/components/DataGridBody/index.js.map +1 -1
  59. package/lib/components/DataGridBody/renderDataGridBody.js +7 -12
  60. package/lib/components/DataGridBody/renderDataGridBody.js.map +1 -1
  61. package/lib/components/DataGridBody/useDataGridBody.js +15 -19
  62. package/lib/components/DataGridBody/useDataGridBody.js.map +1 -1
  63. package/lib/components/DataGridBody/useDataGridBodyStyles.styles.js.map +1 -1
  64. package/lib/components/DataGridCell/DataGridCell.js +5 -7
  65. package/lib/components/DataGridCell/DataGridCell.js.map +1 -1
  66. package/lib/components/DataGridCell/DataGridCell.types.js +1 -2
  67. package/lib/components/DataGridCell/DataGridCell.types.js.map +1 -1
  68. package/lib/components/DataGridCell/index.js +0 -1
  69. package/lib/components/DataGridCell/index.js.map +1 -1
  70. package/lib/components/DataGridCell/renderDataGridCell.js +2 -4
  71. package/lib/components/DataGridCell/renderDataGridCell.js.map +1 -1
  72. package/lib/components/DataGridCell/useDataGridCell.js +18 -14
  73. package/lib/components/DataGridCell/useDataGridCell.js.map +1 -1
  74. package/lib/components/DataGridCell/useDataGridCellStyles.styles.js.map +1 -1
  75. package/lib/components/DataGridHeader/DataGridHeader.js +5 -7
  76. package/lib/components/DataGridHeader/DataGridHeader.js.map +1 -1
  77. package/lib/components/DataGridHeader/DataGridHeader.types.js +1 -2
  78. package/lib/components/DataGridHeader/DataGridHeader.types.js.map +1 -1
  79. package/lib/components/DataGridHeader/index.js +0 -1
  80. package/lib/components/DataGridHeader/index.js.map +1 -1
  81. package/lib/components/DataGridHeader/renderDataGridHeader.js +2 -4
  82. package/lib/components/DataGridHeader/renderDataGridHeader.js.map +1 -1
  83. package/lib/components/DataGridHeader/useDataGridHeader.js +5 -7
  84. package/lib/components/DataGridHeader/useDataGridHeader.js.map +1 -1
  85. package/lib/components/DataGridHeader/useDataGridHeaderStyles.styles.js.map +1 -1
  86. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js +5 -7
  87. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -1
  88. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.types.js +1 -2
  89. package/lib/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -1
  90. package/lib/components/DataGridHeaderCell/index.js +0 -1
  91. package/lib/components/DataGridHeaderCell/index.js.map +1 -1
  92. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js +2 -4
  93. package/lib/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -1
  94. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js +23 -26
  95. package/lib/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -1
  96. package/lib/components/DataGridHeaderCell/useDataGridHeaderCellStyles.styles.js.map +1 -1
  97. package/lib/components/DataGridRow/DataGridRow.js +5 -7
  98. package/lib/components/DataGridRow/DataGridRow.js.map +1 -1
  99. package/lib/components/DataGridRow/DataGridRow.types.js +0 -1
  100. package/lib/components/DataGridRow/DataGridRow.types.js.map +1 -1
  101. package/lib/components/DataGridRow/index.js +0 -1
  102. package/lib/components/DataGridRow/index.js.map +1 -1
  103. package/lib/components/DataGridRow/renderDataGridRow.js +7 -12
  104. package/lib/components/DataGridRow/renderDataGridRow.js.map +1 -1
  105. package/lib/components/DataGridRow/useDataGridRow.js +54 -56
  106. package/lib/components/DataGridRow/useDataGridRow.js.map +1 -1
  107. package/lib/components/DataGridRow/useDataGridRowStyles.styles.js.map +1 -1
  108. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js +5 -7
  109. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -1
  110. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.types.js +1 -2
  111. package/lib/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -1
  112. package/lib/components/DataGridSelectionCell/index.js +0 -1
  113. package/lib/components/DataGridSelectionCell/index.js.map +1 -1
  114. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js +2 -4
  115. package/lib/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -1
  116. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js +31 -33
  117. package/lib/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -1
  118. package/lib/components/DataGridSelectionCell/useDataGridSelectionCellStyles.styles.js.map +1 -1
  119. package/lib/components/Table/Table.js +5 -7
  120. package/lib/components/Table/Table.js.map +1 -1
  121. package/lib/components/Table/Table.types.js +1 -2
  122. package/lib/components/Table/Table.types.js.map +1 -1
  123. package/lib/components/Table/index.js +0 -1
  124. package/lib/components/Table/index.js.map +1 -1
  125. package/lib/components/Table/renderTable.js +6 -11
  126. package/lib/components/Table/renderTable.js.map +1 -1
  127. package/lib/components/Table/useTable.js +17 -19
  128. package/lib/components/Table/useTable.js.map +1 -1
  129. package/lib/components/Table/useTableContextValues.js +13 -14
  130. package/lib/components/Table/useTableContextValues.js.map +1 -1
  131. package/lib/components/Table/useTableStyles.styles.js.map +1 -1
  132. package/lib/components/TableBody/TableBody.js +5 -7
  133. package/lib/components/TableBody/TableBody.js.map +1 -1
  134. package/lib/components/TableBody/TableBody.types.js +1 -2
  135. package/lib/components/TableBody/TableBody.types.js.map +1 -1
  136. package/lib/components/TableBody/index.js +0 -1
  137. package/lib/components/TableBody/index.js.map +1 -1
  138. package/lib/components/TableBody/renderTableBody.js +4 -9
  139. package/lib/components/TableBody/renderTableBody.js.map +1 -1
  140. package/lib/components/TableBody/useTableBody.js +15 -19
  141. package/lib/components/TableBody/useTableBody.js.map +1 -1
  142. package/lib/components/TableBody/useTableBodyStyles.styles.js.map +1 -1
  143. package/lib/components/TableCell/TableCell.js +5 -7
  144. package/lib/components/TableCell/TableCell.js.map +1 -1
  145. package/lib/components/TableCell/TableCell.types.js +1 -2
  146. package/lib/components/TableCell/TableCell.types.js.map +1 -1
  147. package/lib/components/TableCell/index.js +0 -1
  148. package/lib/components/TableCell/index.js.map +1 -1
  149. package/lib/components/TableCell/renderTableCell.js +4 -9
  150. package/lib/components/TableCell/renderTableCell.js.map +1 -1
  151. package/lib/components/TableCell/useTableCell.js +16 -21
  152. package/lib/components/TableCell/useTableCell.js.map +1 -1
  153. package/lib/components/TableCell/useTableCellStyles.styles.js.map +1 -1
  154. package/lib/components/TableCellActions/TableCellActions.js +5 -7
  155. package/lib/components/TableCellActions/TableCellActions.js.map +1 -1
  156. package/lib/components/TableCellActions/TableCellActions.types.js +1 -2
  157. package/lib/components/TableCellActions/TableCellActions.types.js.map +1 -1
  158. package/lib/components/TableCellActions/index.js +0 -1
  159. package/lib/components/TableCellActions/index.js.map +1 -1
  160. package/lib/components/TableCellActions/renderTableCellActions.js +4 -9
  161. package/lib/components/TableCellActions/renderTableCellActions.js.map +1 -1
  162. package/lib/components/TableCellActions/useTableCellActions.js +12 -14
  163. package/lib/components/TableCellActions/useTableCellActions.js.map +1 -1
  164. package/lib/components/TableCellActions/useTableCellActionsStyles.styles.js.map +1 -1
  165. package/lib/components/TableCellLayout/TableCellLayout.js +5 -7
  166. package/lib/components/TableCellLayout/TableCellLayout.js.map +1 -1
  167. package/lib/components/TableCellLayout/TableCellLayout.types.js +1 -2
  168. package/lib/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  169. package/lib/components/TableCellLayout/index.js +0 -1
  170. package/lib/components/TableCellLayout/index.js.map +1 -1
  171. package/lib/components/TableCellLayout/renderTableCellLayout.js +6 -11
  172. package/lib/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  173. package/lib/components/TableCellLayout/useTableCellLayout.js +30 -34
  174. package/lib/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  175. package/lib/components/TableCellLayout/useTableCellLayoutContextValues.js +9 -10
  176. package/lib/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -1
  177. package/lib/components/TableCellLayout/useTableCellLayoutStyles.styles.js.map +1 -1
  178. package/lib/components/TableHeader/TableHeader.js +5 -7
  179. package/lib/components/TableHeader/TableHeader.js.map +1 -1
  180. package/lib/components/TableHeader/TableHeader.types.js +1 -2
  181. package/lib/components/TableHeader/TableHeader.types.js.map +1 -1
  182. package/lib/components/TableHeader/index.js +0 -1
  183. package/lib/components/TableHeader/index.js.map +1 -1
  184. package/lib/components/TableHeader/renderTableHeader.js +6 -11
  185. package/lib/components/TableHeader/renderTableHeader.js.map +1 -1
  186. package/lib/components/TableHeader/useTableHeader.js +15 -19
  187. package/lib/components/TableHeader/useTableHeader.js.map +1 -1
  188. package/lib/components/TableHeader/useTableHeaderStyles.styles.js.map +1 -1
  189. package/lib/components/TableHeaderCell/TableHeaderCell.js +5 -7
  190. package/lib/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  191. package/lib/components/TableHeaderCell/TableHeaderCell.types.js +1 -2
  192. package/lib/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  193. package/lib/components/TableHeaderCell/index.js +0 -1
  194. package/lib/components/TableHeaderCell/index.js.map +1 -1
  195. package/lib/components/TableHeaderCell/renderTableHeaderCell.js +4 -9
  196. package/lib/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  197. package/lib/components/TableHeaderCell/useTableHeaderCell.js +45 -52
  198. package/lib/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  199. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.styles.js +11 -2
  200. package/lib/components/TableHeaderCell/useTableHeaderCellStyles.styles.js.map +1 -1
  201. package/lib/components/TableResizeHandle/TableResizeHandle.js +5 -7
  202. package/lib/components/TableResizeHandle/TableResizeHandle.js.map +1 -1
  203. package/lib/components/TableResizeHandle/TableResizeHandle.types.js +1 -2
  204. package/lib/components/TableResizeHandle/TableResizeHandle.types.js.map +1 -1
  205. package/lib/components/TableResizeHandle/index.js +0 -1
  206. package/lib/components/TableResizeHandle/index.js.map +1 -1
  207. package/lib/components/TableResizeHandle/renderTableResizeHandle.js +4 -9
  208. package/lib/components/TableResizeHandle/renderTableResizeHandle.js.map +1 -1
  209. package/lib/components/TableResizeHandle/useTableResizeHandle.js +16 -18
  210. package/lib/components/TableResizeHandle/useTableResizeHandle.js.map +1 -1
  211. package/lib/components/TableResizeHandle/useTableResizeHandleStyles.styles.js.map +1 -1
  212. package/lib/components/TableRow/TableRow.js +5 -7
  213. package/lib/components/TableRow/TableRow.js.map +1 -1
  214. package/lib/components/TableRow/TableRow.types.js +1 -2
  215. package/lib/components/TableRow/TableRow.types.js.map +1 -1
  216. package/lib/components/TableRow/index.js +0 -1
  217. package/lib/components/TableRow/index.js.map +1 -1
  218. package/lib/components/TableRow/renderTableRow.js +4 -9
  219. package/lib/components/TableRow/renderTableRow.js.map +1 -1
  220. package/lib/components/TableRow/useTableRow.js +22 -27
  221. package/lib/components/TableRow/useTableRow.js.map +1 -1
  222. package/lib/components/TableRow/useTableRowStyles.styles.js +6 -8
  223. package/lib/components/TableRow/useTableRowStyles.styles.js.map +1 -1
  224. package/lib/components/TableSelectionCell/TableSelectionCell.js +5 -7
  225. package/lib/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  226. package/lib/components/TableSelectionCell/TableSelectionCell.types.js +1 -2
  227. package/lib/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  228. package/lib/components/TableSelectionCell/index.js +0 -1
  229. package/lib/components/TableSelectionCell/index.js.map +1 -1
  230. package/lib/components/TableSelectionCell/renderTableSelectionCell.js +4 -9
  231. package/lib/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  232. package/lib/components/TableSelectionCell/useTableSelectionCell.js +32 -41
  233. package/lib/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  234. package/lib/components/TableSelectionCell/useTableSelectionCellStyles.styles.js.map +1 -1
  235. package/lib/contexts/columnIdContext.js +2 -3
  236. package/lib/contexts/columnIdContext.js.map +1 -1
  237. package/lib/contexts/dataGridContext.js +7 -8
  238. package/lib/contexts/dataGridContext.js.map +1 -1
  239. package/lib/contexts/rowIdContext.js +2 -3
  240. package/lib/contexts/rowIdContext.js.map +1 -1
  241. package/lib/contexts/tableContext.js +5 -6
  242. package/lib/contexts/tableContext.js.map +1 -1
  243. package/lib/contexts/tableHeaderContext.js +2 -3
  244. package/lib/contexts/tableHeaderContext.js.map +1 -1
  245. package/lib/hooks/createColumn.js +21 -28
  246. package/lib/hooks/createColumn.js.map +1 -1
  247. package/lib/hooks/index.js +0 -1
  248. package/lib/hooks/index.js.map +1 -1
  249. package/lib/hooks/selectionManager.js +71 -68
  250. package/lib/hooks/selectionManager.js.map +1 -1
  251. package/lib/hooks/types.js +0 -1
  252. package/lib/hooks/types.js.map +1 -1
  253. package/lib/hooks/useKeyboardResizing.js +96 -87
  254. package/lib/hooks/useKeyboardResizing.js.map +1 -1
  255. package/lib/hooks/useMeasureElement.js +42 -40
  256. package/lib/hooks/useMeasureElement.js.map +1 -1
  257. package/lib/hooks/useTableColumnResizeMouseHandler.js +64 -61
  258. package/lib/hooks/useTableColumnResizeMouseHandler.js.map +1 -1
  259. package/lib/hooks/useTableColumnResizeState.js +100 -105
  260. package/lib/hooks/useTableColumnResizeState.js.map +1 -1
  261. package/lib/hooks/useTableColumnSizing.js +74 -74
  262. package/lib/hooks/useTableColumnSizing.js.map +1 -1
  263. package/lib/hooks/useTableFeatures.js +30 -35
  264. package/lib/hooks/useTableFeatures.js.map +1 -1
  265. package/lib/hooks/useTableSelection.js +64 -66
  266. package/lib/hooks/useTableSelection.js.map +1 -1
  267. package/lib/hooks/useTableSort.js +68 -76
  268. package/lib/hooks/useTableSort.js.map +1 -1
  269. package/lib/index.js +1 -2
  270. package/lib/index.js.map +1 -1
  271. package/lib/utils/columnResizeUtils.js +104 -108
  272. package/lib/utils/columnResizeUtils.js.map +1 -1
  273. package/lib-commonjs/DataGrid.js +0 -3
  274. package/lib-commonjs/DataGrid.js.map +1 -1
  275. package/lib-commonjs/DataGridBody.js +0 -3
  276. package/lib-commonjs/DataGridBody.js.map +1 -1
  277. package/lib-commonjs/DataGridCell.js +0 -3
  278. package/lib-commonjs/DataGridCell.js.map +1 -1
  279. package/lib-commonjs/DataGridHeader.js +0 -3
  280. package/lib-commonjs/DataGridHeader.js.map +1 -1
  281. package/lib-commonjs/DataGridHeaderCell.js +0 -3
  282. package/lib-commonjs/DataGridHeaderCell.js.map +1 -1
  283. package/lib-commonjs/DataGridRow.js +0 -3
  284. package/lib-commonjs/DataGridRow.js.map +1 -1
  285. package/lib-commonjs/DataGridSelectionCell.js +0 -3
  286. package/lib-commonjs/DataGridSelectionCell.js.map +1 -1
  287. package/lib-commonjs/Table.js +0 -3
  288. package/lib-commonjs/Table.js.map +1 -1
  289. package/lib-commonjs/TableBody.js +0 -3
  290. package/lib-commonjs/TableBody.js.map +1 -1
  291. package/lib-commonjs/TableCell.js +0 -3
  292. package/lib-commonjs/TableCell.js.map +1 -1
  293. package/lib-commonjs/TableCellActions.js +0 -3
  294. package/lib-commonjs/TableCellActions.js.map +1 -1
  295. package/lib-commonjs/TableCellLayout.js +0 -3
  296. package/lib-commonjs/TableCellLayout.js.map +1 -1
  297. package/lib-commonjs/TableCellPrimaryLayout.js +0 -3
  298. package/lib-commonjs/TableCellPrimaryLayout.js.map +1 -1
  299. package/lib-commonjs/TableHeader.js +0 -3
  300. package/lib-commonjs/TableHeader.js.map +1 -1
  301. package/lib-commonjs/TableHeaderCell.js +0 -3
  302. package/lib-commonjs/TableHeaderCell.js.map +1 -1
  303. package/lib-commonjs/TableResizeHandle.js +0 -3
  304. package/lib-commonjs/TableResizeHandle.js.map +1 -1
  305. package/lib-commonjs/TableRow.js +0 -3
  306. package/lib-commonjs/TableRow.js.map +1 -1
  307. package/lib-commonjs/TableSelectionCell.js +0 -3
  308. package/lib-commonjs/TableSelectionCell.js.map +1 -1
  309. package/lib-commonjs/components/DataGrid/DataGrid.js +1 -3
  310. package/lib-commonjs/components/DataGrid/DataGrid.js.map +1 -1
  311. package/lib-commonjs/components/DataGrid/DataGrid.types.js +0 -3
  312. package/lib-commonjs/components/DataGrid/DataGrid.types.js.map +1 -1
  313. package/lib-commonjs/components/DataGrid/index.js +0 -3
  314. package/lib-commonjs/components/DataGrid/index.js.map +1 -1
  315. package/lib-commonjs/components/DataGrid/renderDataGrid.js +1 -3
  316. package/lib-commonjs/components/DataGrid/renderDataGrid.js.map +1 -1
  317. package/lib-commonjs/components/DataGrid/useDataGrid.js +4 -5
  318. package/lib-commonjs/components/DataGrid/useDataGrid.js.map +1 -1
  319. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js +1 -3
  320. package/lib-commonjs/components/DataGrid/useDataGridContextValues.js.map +1 -1
  321. package/lib-commonjs/components/DataGrid/useDataGridStyles.styles.js +0 -2
  322. package/lib-commonjs/components/DataGrid/useDataGridStyles.styles.js.map +1 -1
  323. package/lib-commonjs/components/DataGridBody/DataGridBody.js +1 -3
  324. package/lib-commonjs/components/DataGridBody/DataGridBody.js.map +1 -1
  325. package/lib-commonjs/components/DataGridBody/DataGridBody.types.js +0 -3
  326. package/lib-commonjs/components/DataGridBody/DataGridBody.types.js.map +1 -1
  327. package/lib-commonjs/components/DataGridBody/index.js +0 -3
  328. package/lib-commonjs/components/DataGridBody/index.js.map +1 -1
  329. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js +1 -3
  330. package/lib-commonjs/components/DataGridBody/renderDataGridBody.js.map +1 -1
  331. package/lib-commonjs/components/DataGridBody/useDataGridBody.js +1 -3
  332. package/lib-commonjs/components/DataGridBody/useDataGridBody.js.map +1 -1
  333. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.styles.js +0 -2
  334. package/lib-commonjs/components/DataGridBody/useDataGridBodyStyles.styles.js.map +1 -1
  335. package/lib-commonjs/components/DataGridCell/DataGridCell.js +1 -3
  336. package/lib-commonjs/components/DataGridCell/DataGridCell.js.map +1 -1
  337. package/lib-commonjs/components/DataGridCell/DataGridCell.types.js +0 -3
  338. package/lib-commonjs/components/DataGridCell/DataGridCell.types.js.map +1 -1
  339. package/lib-commonjs/components/DataGridCell/index.js +0 -3
  340. package/lib-commonjs/components/DataGridCell/index.js.map +1 -1
  341. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js +1 -3
  342. package/lib-commonjs/components/DataGridCell/renderDataGridCell.js.map +1 -1
  343. package/lib-commonjs/components/DataGridCell/useDataGridCell.js +7 -3
  344. package/lib-commonjs/components/DataGridCell/useDataGridCell.js.map +1 -1
  345. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.styles.js +0 -2
  346. package/lib-commonjs/components/DataGridCell/useDataGridCellStyles.styles.js.map +1 -1
  347. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js +1 -3
  348. package/lib-commonjs/components/DataGridHeader/DataGridHeader.js.map +1 -1
  349. package/lib-commonjs/components/DataGridHeader/DataGridHeader.types.js +0 -3
  350. package/lib-commonjs/components/DataGridHeader/DataGridHeader.types.js.map +1 -1
  351. package/lib-commonjs/components/DataGridHeader/index.js +0 -3
  352. package/lib-commonjs/components/DataGridHeader/index.js.map +1 -1
  353. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js +1 -3
  354. package/lib-commonjs/components/DataGridHeader/renderDataGridHeader.js.map +1 -1
  355. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js +1 -3
  356. package/lib-commonjs/components/DataGridHeader/useDataGridHeader.js.map +1 -1
  357. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.styles.js +0 -2
  358. package/lib-commonjs/components/DataGridHeader/useDataGridHeaderStyles.styles.js.map +1 -1
  359. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js +1 -3
  360. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.js.map +1 -1
  361. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.types.js +0 -3
  362. package/lib-commonjs/components/DataGridHeaderCell/DataGridHeaderCell.types.js.map +1 -1
  363. package/lib-commonjs/components/DataGridHeaderCell/index.js +0 -3
  364. package/lib-commonjs/components/DataGridHeaderCell/index.js.map +1 -1
  365. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js +1 -3
  366. package/lib-commonjs/components/DataGridHeaderCell/renderDataGridHeaderCell.js.map +1 -1
  367. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js +2 -3
  368. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCell.js.map +1 -1
  369. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.styles.js +0 -2
  370. package/lib-commonjs/components/DataGridHeaderCell/useDataGridHeaderCellStyles.styles.js.map +1 -1
  371. package/lib-commonjs/components/DataGridRow/DataGridRow.js +1 -3
  372. package/lib-commonjs/components/DataGridRow/DataGridRow.js.map +1 -1
  373. package/lib-commonjs/components/DataGridRow/DataGridRow.types.js +0 -3
  374. package/lib-commonjs/components/DataGridRow/DataGridRow.types.js.map +1 -1
  375. package/lib-commonjs/components/DataGridRow/index.js +0 -3
  376. package/lib-commonjs/components/DataGridRow/index.js.map +1 -1
  377. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js +1 -3
  378. package/lib-commonjs/components/DataGridRow/renderDataGridRow.js.map +1 -1
  379. package/lib-commonjs/components/DataGridRow/useDataGridRow.js +1 -3
  380. package/lib-commonjs/components/DataGridRow/useDataGridRow.js.map +1 -1
  381. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.styles.js +0 -2
  382. package/lib-commonjs/components/DataGridRow/useDataGridRowStyles.styles.js.map +1 -1
  383. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js +1 -3
  384. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.js.map +1 -1
  385. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.types.js +0 -3
  386. package/lib-commonjs/components/DataGridSelectionCell/DataGridSelectionCell.types.js.map +1 -1
  387. package/lib-commonjs/components/DataGridSelectionCell/index.js +0 -3
  388. package/lib-commonjs/components/DataGridSelectionCell/index.js.map +1 -1
  389. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js +1 -3
  390. package/lib-commonjs/components/DataGridSelectionCell/renderDataGridSelectionCell.js.map +1 -1
  391. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js +1 -3
  392. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCell.js.map +1 -1
  393. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.styles.js +0 -2
  394. package/lib-commonjs/components/DataGridSelectionCell/useDataGridSelectionCellStyles.styles.js.map +1 -1
  395. package/lib-commonjs/components/Table/Table.js +1 -3
  396. package/lib-commonjs/components/Table/Table.js.map +1 -1
  397. package/lib-commonjs/components/Table/Table.types.js +0 -3
  398. package/lib-commonjs/components/Table/Table.types.js.map +1 -1
  399. package/lib-commonjs/components/Table/index.js +0 -3
  400. package/lib-commonjs/components/Table/index.js.map +1 -1
  401. package/lib-commonjs/components/Table/renderTable.js +1 -3
  402. package/lib-commonjs/components/Table/renderTable.js.map +1 -1
  403. package/lib-commonjs/components/Table/useTable.js +1 -3
  404. package/lib-commonjs/components/Table/useTable.js.map +1 -1
  405. package/lib-commonjs/components/Table/useTableContextValues.js +1 -3
  406. package/lib-commonjs/components/Table/useTableContextValues.js.map +1 -1
  407. package/lib-commonjs/components/Table/useTableStyles.styles.js +0 -2
  408. package/lib-commonjs/components/Table/useTableStyles.styles.js.map +1 -1
  409. package/lib-commonjs/components/TableBody/TableBody.js +1 -3
  410. package/lib-commonjs/components/TableBody/TableBody.js.map +1 -1
  411. package/lib-commonjs/components/TableBody/TableBody.types.js +0 -3
  412. package/lib-commonjs/components/TableBody/TableBody.types.js.map +1 -1
  413. package/lib-commonjs/components/TableBody/index.js +0 -3
  414. package/lib-commonjs/components/TableBody/index.js.map +1 -1
  415. package/lib-commonjs/components/TableBody/renderTableBody.js +1 -3
  416. package/lib-commonjs/components/TableBody/renderTableBody.js.map +1 -1
  417. package/lib-commonjs/components/TableBody/useTableBody.js +1 -3
  418. package/lib-commonjs/components/TableBody/useTableBody.js.map +1 -1
  419. package/lib-commonjs/components/TableBody/useTableBodyStyles.styles.js +0 -2
  420. package/lib-commonjs/components/TableBody/useTableBodyStyles.styles.js.map +1 -1
  421. package/lib-commonjs/components/TableCell/TableCell.js +1 -3
  422. package/lib-commonjs/components/TableCell/TableCell.js.map +1 -1
  423. package/lib-commonjs/components/TableCell/TableCell.types.js +0 -3
  424. package/lib-commonjs/components/TableCell/TableCell.types.js.map +1 -1
  425. package/lib-commonjs/components/TableCell/index.js +0 -3
  426. package/lib-commonjs/components/TableCell/index.js.map +1 -1
  427. package/lib-commonjs/components/TableCell/renderTableCell.js +1 -3
  428. package/lib-commonjs/components/TableCell/renderTableCell.js.map +1 -1
  429. package/lib-commonjs/components/TableCell/useTableCell.js +1 -3
  430. package/lib-commonjs/components/TableCell/useTableCell.js.map +1 -1
  431. package/lib-commonjs/components/TableCell/useTableCellStyles.styles.js +0 -2
  432. package/lib-commonjs/components/TableCell/useTableCellStyles.styles.js.map +1 -1
  433. package/lib-commonjs/components/TableCellActions/TableCellActions.js +1 -3
  434. package/lib-commonjs/components/TableCellActions/TableCellActions.js.map +1 -1
  435. package/lib-commonjs/components/TableCellActions/TableCellActions.types.js +0 -3
  436. package/lib-commonjs/components/TableCellActions/TableCellActions.types.js.map +1 -1
  437. package/lib-commonjs/components/TableCellActions/index.js +0 -3
  438. package/lib-commonjs/components/TableCellActions/index.js.map +1 -1
  439. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js +1 -3
  440. package/lib-commonjs/components/TableCellActions/renderTableCellActions.js.map +1 -1
  441. package/lib-commonjs/components/TableCellActions/useTableCellActions.js +1 -3
  442. package/lib-commonjs/components/TableCellActions/useTableCellActions.js.map +1 -1
  443. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.styles.js +0 -2
  444. package/lib-commonjs/components/TableCellActions/useTableCellActionsStyles.styles.js.map +1 -1
  445. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js +1 -3
  446. package/lib-commonjs/components/TableCellLayout/TableCellLayout.js.map +1 -1
  447. package/lib-commonjs/components/TableCellLayout/TableCellLayout.types.js +0 -3
  448. package/lib-commonjs/components/TableCellLayout/TableCellLayout.types.js.map +1 -1
  449. package/lib-commonjs/components/TableCellLayout/index.js +0 -3
  450. package/lib-commonjs/components/TableCellLayout/index.js.map +1 -1
  451. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js +1 -3
  452. package/lib-commonjs/components/TableCellLayout/renderTableCellLayout.js.map +1 -1
  453. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js +1 -3
  454. package/lib-commonjs/components/TableCellLayout/useTableCellLayout.js.map +1 -1
  455. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js +1 -3
  456. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutContextValues.js.map +1 -1
  457. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.styles.js +0 -2
  458. package/lib-commonjs/components/TableCellLayout/useTableCellLayoutStyles.styles.js.map +1 -1
  459. package/lib-commonjs/components/TableHeader/TableHeader.js +1 -3
  460. package/lib-commonjs/components/TableHeader/TableHeader.js.map +1 -1
  461. package/lib-commonjs/components/TableHeader/TableHeader.types.js +0 -3
  462. package/lib-commonjs/components/TableHeader/TableHeader.types.js.map +1 -1
  463. package/lib-commonjs/components/TableHeader/index.js +0 -3
  464. package/lib-commonjs/components/TableHeader/index.js.map +1 -1
  465. package/lib-commonjs/components/TableHeader/renderTableHeader.js +1 -3
  466. package/lib-commonjs/components/TableHeader/renderTableHeader.js.map +1 -1
  467. package/lib-commonjs/components/TableHeader/useTableHeader.js +1 -3
  468. package/lib-commonjs/components/TableHeader/useTableHeader.js.map +1 -1
  469. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.styles.js +0 -2
  470. package/lib-commonjs/components/TableHeader/useTableHeaderStyles.styles.js.map +1 -1
  471. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js +1 -3
  472. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.js.map +1 -1
  473. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.types.js +0 -3
  474. package/lib-commonjs/components/TableHeaderCell/TableHeaderCell.types.js.map +1 -1
  475. package/lib-commonjs/components/TableHeaderCell/index.js +0 -3
  476. package/lib-commonjs/components/TableHeaderCell/index.js.map +1 -1
  477. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js +1 -3
  478. package/lib-commonjs/components/TableHeaderCell/renderTableHeaderCell.js.map +1 -1
  479. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js +6 -10
  480. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCell.js.map +1 -1
  481. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.styles.js +29 -3
  482. package/lib-commonjs/components/TableHeaderCell/useTableHeaderCellStyles.styles.js.map +1 -1
  483. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.js +1 -3
  484. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.js.map +1 -1
  485. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.types.js +0 -3
  486. package/lib-commonjs/components/TableResizeHandle/TableResizeHandle.types.js.map +1 -1
  487. package/lib-commonjs/components/TableResizeHandle/index.js +0 -3
  488. package/lib-commonjs/components/TableResizeHandle/index.js.map +1 -1
  489. package/lib-commonjs/components/TableResizeHandle/renderTableResizeHandle.js +1 -3
  490. package/lib-commonjs/components/TableResizeHandle/renderTableResizeHandle.js.map +1 -1
  491. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandle.js +1 -3
  492. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandle.js.map +1 -1
  493. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandleStyles.styles.js +0 -2
  494. package/lib-commonjs/components/TableResizeHandle/useTableResizeHandleStyles.styles.js.map +1 -1
  495. package/lib-commonjs/components/TableRow/TableRow.js +1 -3
  496. package/lib-commonjs/components/TableRow/TableRow.js.map +1 -1
  497. package/lib-commonjs/components/TableRow/TableRow.types.js +0 -3
  498. package/lib-commonjs/components/TableRow/TableRow.types.js.map +1 -1
  499. package/lib-commonjs/components/TableRow/index.js +0 -3
  500. package/lib-commonjs/components/TableRow/index.js.map +1 -1
  501. package/lib-commonjs/components/TableRow/renderTableRow.js +1 -3
  502. package/lib-commonjs/components/TableRow/renderTableRow.js.map +1 -1
  503. package/lib-commonjs/components/TableRow/useTableRow.js +1 -3
  504. package/lib-commonjs/components/TableRow/useTableRow.js.map +1 -1
  505. package/lib-commonjs/components/TableRow/useTableRowStyles.styles.js +12 -13
  506. package/lib-commonjs/components/TableRow/useTableRowStyles.styles.js.map +1 -1
  507. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js +1 -3
  508. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.js.map +1 -1
  509. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.types.js +0 -3
  510. package/lib-commonjs/components/TableSelectionCell/TableSelectionCell.types.js.map +1 -1
  511. package/lib-commonjs/components/TableSelectionCell/index.js +0 -3
  512. package/lib-commonjs/components/TableSelectionCell/index.js.map +1 -1
  513. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js +1 -3
  514. package/lib-commonjs/components/TableSelectionCell/renderTableSelectionCell.js.map +1 -1
  515. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js +1 -3
  516. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCell.js.map +1 -1
  517. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.styles.js +0 -2
  518. package/lib-commonjs/components/TableSelectionCell/useTableSelectionCellStyles.styles.js.map +1 -1
  519. package/lib-commonjs/contexts/columnIdContext.js +1 -3
  520. package/lib-commonjs/contexts/columnIdContext.js.map +1 -1
  521. package/lib-commonjs/contexts/dataGridContext.js +2 -4
  522. package/lib-commonjs/contexts/dataGridContext.js.map +1 -1
  523. package/lib-commonjs/contexts/rowIdContext.js +1 -3
  524. package/lib-commonjs/contexts/rowIdContext.js.map +1 -1
  525. package/lib-commonjs/contexts/tableContext.js +1 -3
  526. package/lib-commonjs/contexts/tableContext.js.map +1 -1
  527. package/lib-commonjs/contexts/tableHeaderContext.js +1 -3
  528. package/lib-commonjs/contexts/tableHeaderContext.js.map +1 -1
  529. package/lib-commonjs/hooks/createColumn.js +1 -3
  530. package/lib-commonjs/hooks/createColumn.js.map +1 -1
  531. package/lib-commonjs/hooks/index.js +0 -3
  532. package/lib-commonjs/hooks/index.js.map +1 -1
  533. package/lib-commonjs/hooks/selectionManager.js +1 -3
  534. package/lib-commonjs/hooks/selectionManager.js.map +1 -1
  535. package/lib-commonjs/hooks/types.js +0 -3
  536. package/lib-commonjs/hooks/types.js.map +1 -1
  537. package/lib-commonjs/hooks/useKeyboardResizing.js +17 -18
  538. package/lib-commonjs/hooks/useKeyboardResizing.js.map +1 -1
  539. package/lib-commonjs/hooks/useMeasureElement.js +1 -3
  540. package/lib-commonjs/hooks/useMeasureElement.js.map +1 -1
  541. package/lib-commonjs/hooks/useTableColumnResizeMouseHandler.js +1 -3
  542. package/lib-commonjs/hooks/useTableColumnResizeMouseHandler.js.map +1 -1
  543. package/lib-commonjs/hooks/useTableColumnResizeState.js +1 -3
  544. package/lib-commonjs/hooks/useTableColumnResizeState.js.map +1 -1
  545. package/lib-commonjs/hooks/useTableColumnSizing.js +10 -7
  546. package/lib-commonjs/hooks/useTableColumnSizing.js.map +1 -1
  547. package/lib-commonjs/hooks/useTableFeatures.js +1 -3
  548. package/lib-commonjs/hooks/useTableFeatures.js.map +1 -1
  549. package/lib-commonjs/hooks/useTableSelection.js +2 -4
  550. package/lib-commonjs/hooks/useTableSelection.js.map +1 -1
  551. package/lib-commonjs/hooks/useTableSort.js +1 -3
  552. package/lib-commonjs/hooks/useTableSort.js.map +1 -1
  553. package/lib-commonjs/index.js +1 -3
  554. package/lib-commonjs/index.js.map +1 -1
  555. package/lib-commonjs/utils/columnResizeUtils.js +1 -3
  556. package/lib-commonjs/utils/columnResizeUtils.js.map +1 -1
  557. package/package.json +16 -14
@@ -6,93 +6,102 @@ const STEP = 20;
6
6
  const PRECISION_MODIFIER = Shift;
7
7
  const PRECISION_FACTOR = 1 / 4;
8
8
  export function useKeyboardResizing(columnResizeState) {
9
- const columnId = React.useRef();
10
- const onChangeRef = React.useRef();
11
- const addListenerTimeout = React.useRef();
12
- const columnResizeStateRef = React.useRef(columnResizeState);
13
- React.useEffect(() => {
14
- columnResizeStateRef.current = columnResizeState;
15
- }, [columnResizeState]);
16
- const {
17
- targetDocument
18
- } = useFluent();
19
- const keyboardHandler = useEventCallback(event => {
20
- const colId = columnId.current;
21
- if (!colId) {
22
- return;
23
- }
24
- const width = columnResizeStateRef.current.getColumnWidth(colId);
25
- const precisionModifier = event.getModifierState(PRECISION_MODIFIER);
26
- const stopEvent = () => {
27
- event.preventDefault();
28
- event.stopPropagation();
9
+ const [columnId, setColumnId] = React.useState();
10
+ const onChangeRef = React.useRef();
11
+ const addListenerTimeout = React.useRef();
12
+ const columnResizeStateRef = React.useRef(columnResizeState);
13
+ React.useEffect(()=>{
14
+ columnResizeStateRef.current = columnResizeState;
15
+ }, [
16
+ columnResizeState
17
+ ]);
18
+ const { targetDocument } = useFluent();
19
+ const keyboardHandler = useEventCallback((event)=>{
20
+ if (!columnId) {
21
+ return;
22
+ }
23
+ const width = columnResizeStateRef.current.getColumnWidth(columnId);
24
+ const precisionModifier = event.getModifierState(PRECISION_MODIFIER);
25
+ const stopEvent = ()=>{
26
+ event.preventDefault();
27
+ event.stopPropagation();
28
+ };
29
+ switch(event.key){
30
+ case ArrowLeft:
31
+ stopEvent();
32
+ columnResizeStateRef.current.setColumnWidth(event, {
33
+ columnId,
34
+ width: width - (precisionModifier ? STEP * PRECISION_FACTOR : STEP)
35
+ });
36
+ return;
37
+ case ArrowRight:
38
+ stopEvent();
39
+ columnResizeStateRef.current.setColumnWidth(event, {
40
+ columnId,
41
+ width: width + (precisionModifier ? STEP * PRECISION_FACTOR : STEP)
42
+ });
43
+ return;
44
+ case Space:
45
+ case Enter:
46
+ case Escape:
47
+ stopEvent();
48
+ disableInteractiveMode();
49
+ break;
50
+ }
51
+ });
52
+ // On component unmout, cancel any timer for adding a listener (if it exists) and remove the listener
53
+ React.useEffect(()=>{
54
+ return ()=>{
55
+ var _targetDocument_defaultView, _targetDocument_defaultView1;
56
+ targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.clearTimeout(addListenerTimeout.current);
57
+ targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView1 = targetDocument.defaultView) === null || _targetDocument_defaultView1 === void 0 ? void 0 : _targetDocument_defaultView1.removeEventListener('keydown', keyboardHandler);
58
+ };
59
+ }, [
60
+ keyboardHandler,
61
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView
62
+ ]);
63
+ const enableInteractiveMode = React.useCallback((colId)=>{
64
+ var _onChangeRef_current, _targetDocument_defaultView;
65
+ setColumnId(colId);
66
+ (_onChangeRef_current = onChangeRef.current) === null || _onChangeRef_current === void 0 ? void 0 : _onChangeRef_current.call(onChangeRef, colId, true);
67
+ // Create the listener in the next tick, because the event that triggered this is still propagating
68
+ // when Enter was pressed and would be caught in the keyboardHandler, disabling the keyboard mode immediately.
69
+ // No idea why this is happening, but this is a working workaround.
70
+ // Tracked here: https://github.com/microsoft/fluentui/issues/27177
71
+ addListenerTimeout.current = targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.setTimeout(()=>{
72
+ var _targetDocument_defaultView;
73
+ targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.addEventListener('keydown', keyboardHandler);
74
+ }, 0);
75
+ }, [
76
+ keyboardHandler,
77
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView
78
+ ]);
79
+ const disableInteractiveMode = React.useCallback(()=>{
80
+ var _targetDocument_defaultView;
81
+ if (columnId) {
82
+ var _onChangeRef_current;
83
+ (_onChangeRef_current = onChangeRef.current) === null || _onChangeRef_current === void 0 ? void 0 : _onChangeRef_current.call(onChangeRef, columnId, false);
84
+ }
85
+ setColumnId(undefined);
86
+ targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.removeEventListener('keydown', keyboardHandler);
87
+ }, [
88
+ columnId,
89
+ keyboardHandler,
90
+ targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView
91
+ ]);
92
+ const toggleInteractiveMode = (colId, onChange)=>{
93
+ onChangeRef.current = onChange;
94
+ if (!columnId) {
95
+ enableInteractiveMode(colId);
96
+ } else if (colId && columnId !== colId) {
97
+ setColumnId(colId);
98
+ onChange === null || onChange === void 0 ? void 0 : onChange(columnId, true);
99
+ } else {
100
+ disableInteractiveMode();
101
+ }
29
102
  };
30
- switch (event.key) {
31
- case ArrowLeft:
32
- stopEvent();
33
- columnResizeStateRef.current.setColumnWidth(event, {
34
- columnId: colId,
35
- width: width - (precisionModifier ? STEP * PRECISION_FACTOR : STEP)
36
- });
37
- return;
38
- case ArrowRight:
39
- stopEvent();
40
- columnResizeStateRef.current.setColumnWidth(event, {
41
- columnId: colId,
42
- width: width + (precisionModifier ? STEP * PRECISION_FACTOR : STEP)
43
- });
44
- return;
45
- case Space:
46
- case Enter:
47
- case Escape:
48
- stopEvent();
49
- disableInteractiveMode();
50
- break;
51
- }
52
- });
53
- // On component unmout, cancel any timer for adding a listener (if it exists) and remove the listener
54
- React.useEffect(() => {
55
- return () => {
56
- var _targetDocument_defaultView, _targetDocument_defaultView1;
57
- targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.clearTimeout(addListenerTimeout.current);
58
- targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView1 = targetDocument.defaultView) === null || _targetDocument_defaultView1 === void 0 ? void 0 : _targetDocument_defaultView1.removeEventListener('keydown', keyboardHandler);
103
+ return {
104
+ toggleInteractiveMode,
105
+ columnId
59
106
  };
60
- }, [keyboardHandler, targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView]);
61
- const enableInteractiveMode = React.useCallback(colId => {
62
- var _onChangeRef_current, _targetDocument_defaultView;
63
- columnId.current = colId;
64
- (_onChangeRef_current = onChangeRef.current) === null || _onChangeRef_current === void 0 ? void 0 : _onChangeRef_current.call(onChangeRef, colId, true);
65
- // Create the listener in the next tick, because the event that triggered this is still propagating
66
- // when Enter was pressed and would be caught in the keyboardHandler, disabling the keyboard mode immediately.
67
- // No idea why this is happening, but this is a working workaround.
68
- // Tracked here: https://github.com/microsoft/fluentui/issues/27177
69
- addListenerTimeout.current = targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.setTimeout(() => {
70
- var _targetDocument_defaultView;
71
- targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.addEventListener('keydown', keyboardHandler);
72
- }, 0);
73
- }, [keyboardHandler, targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView]);
74
- const disableInteractiveMode = React.useCallback(() => {
75
- var _targetDocument_defaultView;
76
- if (columnId.current) {
77
- var _onChangeRef_current;
78
- (_onChangeRef_current = onChangeRef.current) === null || _onChangeRef_current === void 0 ? void 0 : _onChangeRef_current.call(onChangeRef, columnId.current, false);
79
- }
80
- columnId.current = undefined;
81
- targetDocument === null || targetDocument === void 0 ? void 0 : (_targetDocument_defaultView = targetDocument.defaultView) === null || _targetDocument_defaultView === void 0 ? void 0 : _targetDocument_defaultView.removeEventListener('keydown', keyboardHandler);
82
- }, [keyboardHandler, targetDocument === null || targetDocument === void 0 ? void 0 : targetDocument.defaultView]);
83
- const toggleInteractiveMode = (colId, onChange) => {
84
- onChangeRef.current = onChange;
85
- if (!columnId.current) {
86
- enableInteractiveMode(colId);
87
- } else if (colId && columnId.current !== colId) {
88
- columnId.current = colId;
89
- onChange === null || onChange === void 0 ? void 0 : onChange(columnId.current, true);
90
- } else {
91
- disableInteractiveMode();
92
- }
93
- };
94
- return {
95
- toggleInteractiveMode
96
- };
97
107
  }
98
- //# sourceMappingURL=useKeyboardResizing.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["React","ArrowLeft","ArrowRight","Enter","Escape","Shift","Space","useEventCallback","useFluent_unstable","useFluent","STEP","PRECISION_MODIFIER","PRECISION_FACTOR","useKeyboardResizing","columnResizeState","columnId","useRef","onChangeRef","addListenerTimeout","columnResizeStateRef","useEffect","current","targetDocument","keyboardHandler","event","colId","width","getColumnWidth","precisionModifier","getModifierState","stopEvent","preventDefault","stopPropagation","key","setColumnWidth","disableInteractiveMode","_targetDocument_defaultView","_targetDocument_defaultView1","defaultView","clearTimeout","removeEventListener","enableInteractiveMode","useCallback","_onChangeRef_current","call","setTimeout","addEventListener","undefined","toggleInteractiveMode","onChange"],"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 { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\n\nconst STEP = 20;\nconst PRECISION_MODIFIER = Shift;\nconst PRECISION_FACTOR = 1 / 4;\n\nexport function useKeyboardResizing(columnResizeState: ColumnResizeState) {\n const columnId = React.useRef<TableColumnId>();\n const onChangeRef = React.useRef<EnableKeyboardModeOnChangeCallback>();\n const addListenerTimeout = React.useRef<number>();\n\n const columnResizeStateRef = React.useRef<ColumnResizeState>(columnResizeState);\n React.useEffect(() => {\n columnResizeStateRef.current = columnResizeState;\n }, [columnResizeState]);\n\n const { targetDocument } = useFluent();\n\n const keyboardHandler = useEventCallback((event: KeyboardEvent) => {\n const colId = columnId.current;\n\n if (!colId) {\n return;\n }\n\n const width = columnResizeStateRef.current.getColumnWidth(colId);\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, {\n columnId: colId,\n width: width - (precisionModifier ? STEP * PRECISION_FACTOR : STEP),\n });\n return;\n\n case ArrowRight:\n stopEvent();\n columnResizeStateRef.current.setColumnWidth(event, {\n columnId: colId,\n width: width + (precisionModifier ? STEP * PRECISION_FACTOR : STEP),\n });\n return;\n\n case Space:\n case Enter:\n case Escape:\n stopEvent();\n disableInteractiveMode();\n break;\n }\n });\n\n // On component unmout, cancel any timer for adding a listener (if it exists) and remove the listener\n React.useEffect(\n () => () => {\n targetDocument?.defaultView?.clearTimeout(addListenerTimeout.current);\n targetDocument?.defaultView?.removeEventListener('keydown', keyboardHandler);\n },\n [keyboardHandler, targetDocument?.defaultView],\n );\n\n const enableInteractiveMode = React.useCallback(\n (colId: TableColumnId) => {\n columnId.current = colId;\n onChangeRef.current?.(colId, true);\n // Create the listener in the next tick, because the event that triggered this is still propagating\n // when Enter was pressed and would be caught in the keyboardHandler, disabling the keyboard mode immediately.\n // No idea why this is happening, but this is a working workaround.\n // Tracked here: https://github.com/microsoft/fluentui/issues/27177\n addListenerTimeout.current = targetDocument?.defaultView?.setTimeout(() => {\n targetDocument?.defaultView?.addEventListener('keydown', keyboardHandler);\n }, 0);\n },\n [keyboardHandler, targetDocument?.defaultView],\n );\n\n const disableInteractiveMode = React.useCallback(() => {\n if (columnId.current) {\n onChangeRef.current?.(columnId.current, false);\n }\n columnId.current = undefined;\n targetDocument?.defaultView?.removeEventListener('keydown', keyboardHandler);\n }, [keyboardHandler, targetDocument?.defaultView]);\n\n const toggleInteractiveMode = (colId: TableColumnId, onChange?: EnableKeyboardModeOnChangeCallback) => {\n onChangeRef.current = onChange;\n if (!columnId.current) {\n enableInteractiveMode(colId);\n } else if (colId && columnId.current !== colId) {\n columnId.current = colId;\n onChange?.(columnId.current, true);\n } else {\n disableInteractiveMode();\n }\n };\n\n return {\n toggleInteractiveMode,\n };\n}\n"],"mappings":"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"}
1
+ {"version":3,"sources":["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 { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts';\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 addListenerTimeout = React.useRef<number>();\n\n const columnResizeStateRef = React.useRef<ColumnResizeState>(columnResizeState);\n React.useEffect(() => {\n columnResizeStateRef.current = columnResizeState;\n }, [columnResizeState]);\n\n const { targetDocument } = useFluent();\n\n const keyboardHandler = useEventCallback((event: 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, {\n columnId,\n width: width - (precisionModifier ? STEP * PRECISION_FACTOR : STEP),\n });\n return;\n\n case ArrowRight:\n stopEvent();\n columnResizeStateRef.current.setColumnWidth(event, {\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 disableInteractiveMode();\n break;\n }\n });\n\n // On component unmout, cancel any timer for adding a listener (if it exists) and remove the listener\n React.useEffect(\n () => () => {\n targetDocument?.defaultView?.clearTimeout(addListenerTimeout.current);\n targetDocument?.defaultView?.removeEventListener('keydown', keyboardHandler);\n },\n [keyboardHandler, targetDocument?.defaultView],\n );\n\n const enableInteractiveMode = React.useCallback(\n (colId: TableColumnId) => {\n setColumnId(colId);\n onChangeRef.current?.(colId, true);\n // Create the listener in the next tick, because the event that triggered this is still propagating\n // when Enter was pressed and would be caught in the keyboardHandler, disabling the keyboard mode immediately.\n // No idea why this is happening, but this is a working workaround.\n // Tracked here: https://github.com/microsoft/fluentui/issues/27177\n addListenerTimeout.current = targetDocument?.defaultView?.setTimeout(() => {\n targetDocument?.defaultView?.addEventListener('keydown', keyboardHandler);\n }, 0);\n },\n [keyboardHandler, targetDocument?.defaultView],\n );\n\n const disableInteractiveMode = React.useCallback(() => {\n if (columnId) {\n onChangeRef.current?.(columnId, false);\n }\n setColumnId(undefined);\n targetDocument?.defaultView?.removeEventListener('keydown', keyboardHandler);\n }, [columnId, keyboardHandler, targetDocument?.defaultView]);\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 setColumnId(colId);\n onChange?.(columnId, true);\n } else {\n disableInteractiveMode();\n }\n };\n\n return {\n toggleInteractiveMode,\n columnId,\n };\n}\n"],"names":["React","ArrowLeft","ArrowRight","Enter","Escape","Shift","Space","useEventCallback","useFluent_unstable","useFluent","STEP","PRECISION_MODIFIER","PRECISION_FACTOR","useKeyboardResizing","columnResizeState","columnId","setColumnId","useState","onChangeRef","useRef","addListenerTimeout","columnResizeStateRef","useEffect","current","targetDocument","keyboardHandler","event","width","getColumnWidth","precisionModifier","getModifierState","stopEvent","preventDefault","stopPropagation","key","setColumnWidth","disableInteractiveMode","defaultView","clearTimeout","removeEventListener","enableInteractiveMode","useCallback","colId","setTimeout","addEventListener","undefined","toggleInteractiveMode","onChange"],"mappings":"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"}
@@ -6,45 +6,47 @@ import { useFluent_unstable as useFluent } from '@fluentui/react-shared-contexts
6
6
  * Returns
7
7
  * `width` - current element width (0 by default),
8
8
  * `measureElementRef` - a ref function to be passed as `ref` to the element you want to measure
9
- */
10
- export function useMeasureElement() {
11
- const [width, setWidth] = React.useState(0);
12
- const container = React.useRef(undefined);
13
- const {
14
- targetDocument
15
- } = useFluent();
16
- // the handler for resize observer
17
- const handleResize = React.useCallback(() => {
18
- var _container_current;
19
- const containerWidth = (_container_current = container.current) === null || _container_current === void 0 ? void 0 : _container_current.getBoundingClientRect().width;
20
- setWidth(containerWidth || 0);
21
- }, []);
22
- // Keep the reference of ResizeObserver in the state, as it should live through renders
23
- const [resizeObserver] = React.useState(canUseDOM() ? new ResizeObserver(handleResize) : undefined);
24
- const measureElementRef = React.useCallback(el => {
25
- if (!targetDocument || !resizeObserver) {
26
- return;
27
- }
28
- // cleanup previous container
29
- if (container.current) {
30
- resizeObserver.unobserve(container.current);
31
- container.current.remove();
32
- }
33
- if (el) {
34
- container.current = targetDocument.createElement('div');
35
- el.insertAdjacentElement('beforebegin', container.current);
36
- resizeObserver.observe(container.current);
37
- handleResize();
38
- }
39
- }, [targetDocument, resizeObserver, handleResize]);
40
- React.useEffect(() => {
41
- return () => {
42
- return resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
9
+ */ export function useMeasureElement() {
10
+ const [width, setWidth] = React.useState(0);
11
+ const container = React.useRef(undefined);
12
+ const { targetDocument } = useFluent();
13
+ // the handler for resize observer
14
+ const handleResize = React.useCallback(()=>{
15
+ var _container_current;
16
+ const containerWidth = (_container_current = container.current) === null || _container_current === void 0 ? void 0 : _container_current.getBoundingClientRect().width;
17
+ setWidth(containerWidth || 0);
18
+ }, []);
19
+ // Keep the reference of ResizeObserver in the state, as it should live through renders
20
+ const [resizeObserver] = React.useState(canUseDOM() ? new ResizeObserver(handleResize) : undefined);
21
+ const measureElementRef = React.useCallback((el)=>{
22
+ if (!targetDocument || !resizeObserver) {
23
+ return;
24
+ }
25
+ // cleanup previous container
26
+ if (container.current) {
27
+ resizeObserver.unobserve(container.current);
28
+ container.current.remove();
29
+ }
30
+ if (el) {
31
+ container.current = targetDocument.createElement('div');
32
+ el.insertAdjacentElement('beforebegin', container.current);
33
+ resizeObserver.observe(container.current);
34
+ handleResize();
35
+ }
36
+ }, [
37
+ targetDocument,
38
+ resizeObserver,
39
+ handleResize
40
+ ]);
41
+ React.useEffect(()=>{
42
+ return ()=>{
43
+ return resizeObserver === null || resizeObserver === void 0 ? void 0 : resizeObserver.disconnect();
44
+ };
45
+ }, [
46
+ resizeObserver
47
+ ]);
48
+ return {
49
+ width,
50
+ measureElementRef
43
51
  };
44
- }, [resizeObserver]);
45
- return {
46
- width,
47
- measureElementRef
48
- };
49
52
  }
50
- //# sourceMappingURL=useMeasureElement.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["canUseDOM","React","useFluent_unstable","useFluent","useMeasureElement","width","setWidth","useState","container","useRef","undefined","targetDocument","handleResize","useCallback","_container_current","containerWidth","current","getBoundingClientRect","resizeObserver","ResizeObserver","measureElementRef","el","unobserve","remove","createElement","insertAdjacentElement","observe","useEffect","disconnect"],"sources":["../../src/hooks/useMeasureElement.ts"],"sourcesContent":["import { canUseDOM } from '@fluentui/react-utilities';\nimport * 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 const container = React.useRef<HTMLElement | undefined>(undefined);\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 // Keep the reference of ResizeObserver in the state, as it should live through renders\n const [resizeObserver] = React.useState(canUseDOM() ? new ResizeObserver(handleResize) : undefined);\n const measureElementRef = React.useCallback(\n (el: TElement | null) => {\n if (!targetDocument || !resizeObserver) {\n return;\n }\n\n // cleanup previous container\n if (container.current) {\n resizeObserver.unobserve(container.current);\n container.current.remove();\n }\n\n if (el) {\n container.current = targetDocument.createElement('div');\n el.insertAdjacentElement('beforebegin', container.current);\n resizeObserver.observe(container.current);\n handleResize();\n }\n },\n [targetDocument, resizeObserver, handleResize],\n );\n\n React.useEffect(() => {\n return () => resizeObserver?.disconnect();\n }, [resizeObserver]);\n\n return { width, measureElementRef };\n}\n"],"mappings":"AAAA,SAASA,SAAS,QAAQ;AAC1B,YAAYC,KAAA,MAAW;AACvB,SAASC,kBAAA,IAAsBC,SAAS,QAAQ;AAEhD;;;;;;AAMA,OAAO,SAASC,kBAAA,EAAgE;EAC9E,MAAM,CAACC,KAAA,EAAOC,QAAA,CAAS,GAAGL,KAAA,CAAMM,QAAQ,CAAC;EACzC,MAAMC,SAAA,GAAYP,KAAA,CAAMQ,MAAM,CAA0BC,SAAA;EAExD,MAAM;IAAEC;EAAc,CAAE,GAAGR,SAAA;EAE3B;EACA,MAAMS,YAAA,GAAeX,KAAA,CAAMY,WAAW,CAAC,MAAM;QACpBC,kBAAA;IAAvB,MAAMC,cAAA,GAAiB,CAAAD,kBAAA,GAAAN,SAAA,CAAUQ,OAAO,cAAjBF,kBAAA,uBAAAA,kBAAA,CAAmBG,qBAAA,GAAwBZ,KAAK;IACvEC,QAAA,CAASS,cAAA,IAAkB;EAC7B,GAAG,EAAE;EAEL;EACA,MAAM,CAACG,cAAA,CAAe,GAAGjB,KAAA,CAAMM,QAAQ,CAACP,SAAA,KAAc,IAAImB,cAAA,CAAeP,YAAA,IAAgBF,SAAS;EAClG,MAAMU,iBAAA,GAAoBnB,KAAA,CAAMY,WAAW,CACxCQ,EAAA,IAAwB;IACvB,IAAI,CAACV,cAAA,IAAkB,CAACO,cAAA,EAAgB;MACtC;IACF;IAEA;IACA,IAAIV,SAAA,CAAUQ,OAAO,EAAE;MACrBE,cAAA,CAAeI,SAAS,CAACd,SAAA,CAAUQ,OAAO;MAC1CR,SAAA,CAAUQ,OAAO,CAACO,MAAM;IAC1B;IAEA,IAAIF,EAAA,EAAI;MACNb,SAAA,CAAUQ,OAAO,GAAGL,cAAA,CAAea,aAAa,CAAC;MACjDH,EAAA,CAAGI,qBAAqB,CAAC,eAAejB,SAAA,CAAUQ,OAAO;MACzDE,cAAA,CAAeQ,OAAO,CAAClB,SAAA,CAAUQ,OAAO;MACxCJ,YAAA;IACF;EACF,GACA,CAACD,cAAA,EAAgBO,cAAA,EAAgBN,YAAA,CAAa;EAGhDX,KAAA,CAAM0B,SAAS,CAAC,MAAM;IACpB,OAAO;MAAM,OAAAT,cAAA,aAAAA,cAAA,uBAAAA,cAAA,CAAgBU,UAAU;;EACzC,GAAG,CAACV,cAAA,CAAe;EAEnB,OAAO;IAAEb,KAAA;IAAOe;EAAkB;AACpC"}
1
+ {"version":3,"sources":["useMeasureElement.ts"],"sourcesContent":["import { canUseDOM } from '@fluentui/react-utilities';\nimport * 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 const container = React.useRef<HTMLElement | undefined>(undefined);\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 // Keep the reference of ResizeObserver in the state, as it should live through renders\n const [resizeObserver] = React.useState(canUseDOM() ? new ResizeObserver(handleResize) : undefined);\n const measureElementRef = React.useCallback(\n (el: TElement | null) => {\n if (!targetDocument || !resizeObserver) {\n return;\n }\n\n // cleanup previous container\n if (container.current) {\n resizeObserver.unobserve(container.current);\n container.current.remove();\n }\n\n if (el) {\n container.current = targetDocument.createElement('div');\n el.insertAdjacentElement('beforebegin', container.current);\n resizeObserver.observe(container.current);\n handleResize();\n }\n },\n [targetDocument, resizeObserver, handleResize],\n );\n\n React.useEffect(() => {\n return () => resizeObserver?.disconnect();\n }, [resizeObserver]);\n\n return { width, measureElementRef };\n}\n"],"names":["canUseDOM","React","useFluent_unstable","useFluent","useMeasureElement","width","setWidth","useState","container","useRef","undefined","targetDocument","handleResize","useCallback","containerWidth","current","getBoundingClientRect","resizeObserver","ResizeObserver","measureElementRef","el","unobserve","remove","createElement","insertAdjacentElement","observe","useEffect","disconnect"],"mappings":"AAAA,SAASA,SAAS,QAAQ,4BAA4B;AACtD,YAAYC,WAAW,QAAQ;AAC/B,SAASC,sBAAsBC,SAAS,QAAQ,kCAAkC;AAElF;;;;;CAKC,GACD,OAAO,SAASC,oBAAgE;IAC9E,MAAM,CAACC,OAAOC,SAAS,GAAGL,MAAMM,QAAQ,CAAC;IACzC,MAAMC,YAAYP,MAAMQ,MAAM,CAA0BC;IAExD,MAAM,EAAEC,eAAc,EAAE,GAAGR;IAE3B,kCAAkC;IAClC,MAAMS,eAAeX,MAAMY,WAAW,CAAC,IAAM;YACpBL;QAAvB,MAAMM,iBAAiBN,CAAAA,qBAAAA,UAAUO,OAAO,cAAjBP,gCAAAA,KAAAA,IAAAA,mBAAmBQ,wBAAwBX,KAAK;QACvEC,SAASQ,kBAAkB;IAC7B,GAAG,EAAE;IAEL,uFAAuF;IACvF,MAAM,CAACG,eAAe,GAAGhB,MAAMM,QAAQ,CAACP,cAAc,IAAIkB,eAAeN,gBAAgBF,SAAS;IAClG,MAAMS,oBAAoBlB,MAAMY,WAAW,CACzC,CAACO,KAAwB;QACvB,IAAI,CAACT,kBAAkB,CAACM,gBAAgB;YACtC;QACF,CAAC;QAED,6BAA6B;QAC7B,IAAIT,UAAUO,OAAO,EAAE;YACrBE,eAAeI,SAAS,CAACb,UAAUO,OAAO;YAC1CP,UAAUO,OAAO,CAACO,MAAM;QAC1B,CAAC;QAED,IAAIF,IAAI;YACNZ,UAAUO,OAAO,GAAGJ,eAAeY,aAAa,CAAC;YACjDH,GAAGI,qBAAqB,CAAC,eAAehB,UAAUO,OAAO;YACzDE,eAAeQ,OAAO,CAACjB,UAAUO,OAAO;YACxCH;QACF,CAAC;IACH,GACA;QAACD;QAAgBM;QAAgBL;KAAa;IAGhDX,MAAMyB,SAAS,CAAC,IAAM;QACpB,OAAO;YAAMT,OAAAA,2BAAAA,4BAAAA,KAAAA,IAAAA,eAAgBU,UAAU;;IACzC,GAAG;QAACV;KAAe;IAEnB,OAAO;QAAEZ;QAAOc;IAAkB;AACpC,CAAC"}
@@ -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"}