@economic/taco 14.0.0 → 14.1.0-EC-85807-code-report-fixes.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 (364) hide show
  1. package/dist/charts/components/Area/AreaChart.cjs.map +1 -1
  2. package/dist/charts/components/Area/AreaChart.d.ts +1 -1
  3. package/dist/charts/components/Area/AreaChart.js.map +1 -1
  4. package/dist/charts/components/Bar/BarChart.cjs +2 -2
  5. package/dist/charts/components/Bar/BarChart.cjs.map +1 -1
  6. package/dist/charts/components/Bar/BarChart.d.ts +1 -1
  7. package/dist/charts/components/Bar/BarChart.js +2 -2
  8. package/dist/charts/components/Bar/BarChart.js.map +1 -1
  9. package/dist/charts/components/ChartWrapper.cjs.map +1 -1
  10. package/dist/charts/components/ChartWrapper.js.map +1 -1
  11. package/dist/charts/components/Composed/BarLineChart.cjs.map +1 -1
  12. package/dist/charts/components/Composed/BarLineChart.d.ts +2 -2
  13. package/dist/charts/components/Composed/BarLineChart.js.map +1 -1
  14. package/dist/charts/components/Donut/DonutChart.cjs.map +1 -1
  15. package/dist/charts/components/Donut/DonutChart.d.ts +1 -1
  16. package/dist/charts/components/Donut/DonutChart.js.map +1 -1
  17. package/dist/charts/components/LegacyDonut/ActiveShape.cjs +7 -5
  18. package/dist/charts/components/LegacyDonut/ActiveShape.cjs.map +1 -1
  19. package/dist/charts/components/LegacyDonut/ActiveShape.d.ts +6 -3
  20. package/dist/charts/components/LegacyDonut/ActiveShape.js +7 -5
  21. package/dist/charts/components/LegacyDonut/ActiveShape.js.map +1 -1
  22. package/dist/charts/components/LegacyDonut/CenteredLabel.cjs +1 -1
  23. package/dist/charts/components/LegacyDonut/CenteredLabel.cjs.map +1 -1
  24. package/dist/charts/components/LegacyDonut/CenteredLabel.js +1 -1
  25. package/dist/charts/components/LegacyDonut/CenteredLabel.js.map +1 -1
  26. package/dist/charts/components/LegacyDonut/LegacyDonutChart.cjs +119 -103
  27. package/dist/charts/components/LegacyDonut/LegacyDonutChart.cjs.map +1 -1
  28. package/dist/charts/components/LegacyDonut/LegacyDonutChart.d.ts +13 -2
  29. package/dist/charts/components/LegacyDonut/LegacyDonutChart.js +119 -103
  30. package/dist/charts/components/LegacyDonut/LegacyDonutChart.js.map +1 -1
  31. package/dist/charts/components/LegacyDonut/Legend.cjs +1 -1
  32. package/dist/charts/components/LegacyDonut/Legend.cjs.map +1 -1
  33. package/dist/charts/components/LegacyDonut/Legend.js +1 -1
  34. package/dist/charts/components/LegacyDonut/Legend.js.map +1 -1
  35. package/dist/charts/components/Legend.cjs +1 -1
  36. package/dist/charts/components/Legend.cjs.map +1 -1
  37. package/dist/charts/components/Legend.js +1 -1
  38. package/dist/charts/components/Legend.js.map +1 -1
  39. package/dist/charts/components/Line/LineChart.cjs.map +1 -1
  40. package/dist/charts/components/Line/LineChart.d.ts +3 -2
  41. package/dist/charts/components/Line/LineChart.js.map +1 -1
  42. package/dist/charts/components/Pie/PieChart.cjs +4 -4
  43. package/dist/charts/components/Pie/PieChart.cjs.map +1 -1
  44. package/dist/charts/components/Pie/PieChart.js +4 -4
  45. package/dist/charts/components/Pie/PieChart.js.map +1 -1
  46. package/dist/charts/components/Pie/util.cjs.map +1 -1
  47. package/dist/charts/components/Pie/util.d.ts +2 -1
  48. package/dist/charts/components/Pie/util.js.map +1 -1
  49. package/dist/charts/components/Tooltip.cjs.map +1 -1
  50. package/dist/charts/components/Tooltip.d.ts +2 -3
  51. package/dist/charts/components/Tooltip.js.map +1 -1
  52. package/dist/charts/components/types.d.ts +9 -5
  53. package/dist/charts/components/useChartData.cjs +5 -3
  54. package/dist/charts/components/useChartData.cjs.map +1 -1
  55. package/dist/charts/components/useChartData.d.ts +6 -2
  56. package/dist/charts/components/useChartData.js +5 -3
  57. package/dist/charts/components/useChartData.js.map +1 -1
  58. package/dist/charts/utils/color.cjs +6 -10
  59. package/dist/charts/utils/color.cjs.map +1 -1
  60. package/dist/charts/utils/color.js +6 -10
  61. package/dist/charts/utils/color.js.map +1 -1
  62. package/dist/charts/utils/common.cjs +10 -10
  63. package/dist/charts/utils/common.cjs.map +1 -1
  64. package/dist/charts/utils/common.d.ts +5 -6
  65. package/dist/charts/utils/common.js +10 -10
  66. package/dist/charts/utils/common.js.map +1 -1
  67. package/dist/components/AlertDialog/Context.cjs.map +1 -1
  68. package/dist/components/AlertDialog/Context.d.ts +1 -1
  69. package/dist/components/AlertDialog/Context.js.map +1 -1
  70. package/dist/components/Calendar/Calendar.cjs.map +1 -1
  71. package/dist/components/Calendar/Calendar.js.map +1 -1
  72. package/dist/components/Combobox/Combobox.cjs.map +1 -1
  73. package/dist/components/Combobox/Combobox.js.map +1 -1
  74. package/dist/components/Combobox/useCombobox.cjs +2 -4
  75. package/dist/components/Combobox/useCombobox.cjs.map +1 -1
  76. package/dist/components/Combobox/useCombobox.d.ts +1 -1
  77. package/dist/components/Combobox/useCombobox.js +2 -4
  78. package/dist/components/Combobox/useCombobox.js.map +1 -1
  79. package/dist/components/Datepicker/useDatepicker.cjs.map +1 -1
  80. package/dist/components/Datepicker/useDatepicker.js.map +1 -1
  81. package/dist/components/Dialog/Context.cjs.map +1 -1
  82. package/dist/components/Dialog/Context.d.ts +1 -1
  83. package/dist/components/Dialog/Context.js.map +1 -1
  84. package/dist/components/Dialog/components/Content.cjs.map +1 -1
  85. package/dist/components/Dialog/components/Content.js.map +1 -1
  86. package/dist/components/Drawer/components/Content.cjs +1 -1
  87. package/dist/components/Drawer/components/Content.cjs.map +1 -1
  88. package/dist/components/Drawer/components/Content.js +1 -1
  89. package/dist/components/Drawer/components/Content.js.map +1 -1
  90. package/dist/components/Drawer/useDrawerStack.cjs.map +1 -1
  91. package/dist/components/Drawer/useDrawerStack.js.map +1 -1
  92. package/dist/components/Hanger/Hanger.cjs.map +1 -1
  93. package/dist/components/Hanger/Hanger.js.map +1 -1
  94. package/dist/components/Header/Header.cjs +1 -1
  95. package/dist/components/Header/Header.cjs.map +1 -1
  96. package/dist/components/Header/Header.js +1 -1
  97. package/dist/components/Header/Header.js.map +1 -1
  98. package/dist/components/Header/components/PrimaryNavigation.cjs.map +1 -1
  99. package/dist/components/Header/components/PrimaryNavigation.js.map +1 -1
  100. package/dist/components/Icon/Icon.cjs.map +1 -1
  101. package/dist/components/Icon/Icon.js.map +1 -1
  102. package/dist/components/Layout/components/Sidebar.cjs +2 -1
  103. package/dist/components/Layout/components/Sidebar.cjs.map +1 -1
  104. package/dist/components/Layout/components/Sidebar.js +2 -1
  105. package/dist/components/Layout/components/Sidebar.js.map +1 -1
  106. package/dist/components/LegacyComponents/IconButton/IconButton.cjs.map +1 -1
  107. package/dist/components/LegacyComponents/IconButton/IconButton.js.map +1 -1
  108. package/dist/components/List/components/Toggle.cjs +0 -2
  109. package/dist/components/List/components/Toggle.cjs.map +1 -1
  110. package/dist/components/List/components/Toggle.js +0 -2
  111. package/dist/components/List/components/Toggle.js.map +1 -1
  112. package/dist/components/Listbox/Listbox.cjs +2 -5
  113. package/dist/components/Listbox/Listbox.cjs.map +1 -1
  114. package/dist/components/Listbox/Listbox.js +2 -5
  115. package/dist/components/Listbox/Listbox.js.map +1 -1
  116. package/dist/components/Listbox/useListbox.cjs +1 -1
  117. package/dist/components/Listbox/useListbox.cjs.map +1 -1
  118. package/dist/components/Listbox/useListbox.js +1 -1
  119. package/dist/components/Listbox/useListbox.js.map +1 -1
  120. package/dist/components/Listbox/useMultiListbox.cjs +1 -1
  121. package/dist/components/Listbox/useMultiListbox.cjs.map +1 -1
  122. package/dist/components/Listbox/useMultiListbox.js +1 -1
  123. package/dist/components/Listbox/useMultiListbox.js.map +1 -1
  124. package/dist/components/Listbox/util.cjs.map +1 -1
  125. package/dist/components/Listbox/util.js.map +1 -1
  126. package/dist/components/Menu/components/Content.cjs.map +1 -1
  127. package/dist/components/Menu/components/Content.js.map +1 -1
  128. package/dist/components/Menu/components/Item.cjs.map +1 -1
  129. package/dist/components/Menu/components/Item.d.ts +2 -2
  130. package/dist/components/Menu/components/Item.js.map +1 -1
  131. package/dist/components/Menu/components/Trigger.cjs +1 -5
  132. package/dist/components/Menu/components/Trigger.cjs.map +1 -1
  133. package/dist/components/Menu/components/Trigger.js +1 -5
  134. package/dist/components/Menu/components/Trigger.js.map +1 -1
  135. package/dist/components/Pagination/usePaginationShortcuts.cjs +0 -1
  136. package/dist/components/Pagination/usePaginationShortcuts.cjs.map +1 -1
  137. package/dist/components/Pagination/usePaginationShortcuts.js +0 -1
  138. package/dist/components/Pagination/usePaginationShortcuts.js.map +1 -1
  139. package/dist/components/Provider/Provider.cjs.map +1 -1
  140. package/dist/components/Provider/Provider.d.ts +1 -1
  141. package/dist/components/Provider/Provider.js.map +1 -1
  142. package/dist/components/SearchInput/SearchInput.cjs +0 -1
  143. package/dist/components/SearchInput/SearchInput.cjs.map +1 -1
  144. package/dist/components/SearchInput/SearchInput.js +0 -1
  145. package/dist/components/SearchInput/SearchInput.js.map +1 -1
  146. package/dist/components/SearchInput2/SearchInput2.cjs +0 -1
  147. package/dist/components/SearchInput2/SearchInput2.cjs.map +1 -1
  148. package/dist/components/SearchInput2/SearchInput2.js +0 -1
  149. package/dist/components/SearchInput2/SearchInput2.js.map +1 -1
  150. package/dist/components/Select2/Select2.cjs +6 -7
  151. package/dist/components/Select2/Select2.cjs.map +1 -1
  152. package/dist/components/Select2/Select2.js +6 -7
  153. package/dist/components/Select2/Select2.js.map +1 -1
  154. package/dist/components/Select2/components/Search.cjs +0 -1
  155. package/dist/components/Select2/components/Search.cjs.map +1 -1
  156. package/dist/components/Select2/components/Search.js +0 -1
  157. package/dist/components/Select2/components/Search.js.map +1 -1
  158. package/dist/components/Select2/components/Trigger.cjs +1 -1
  159. package/dist/components/Select2/components/Trigger.cjs.map +1 -1
  160. package/dist/components/Select2/components/Trigger.js +1 -1
  161. package/dist/components/Select2/components/Trigger.js.map +1 -1
  162. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs +1 -1
  163. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.cjs.map +1 -1
  164. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js +1 -1
  165. package/dist/components/Table3/components/Columns/Cell/EditingControlCell.js.map +1 -1
  166. package/dist/components/Table3/components/Columns/Cell/util.cjs.map +1 -1
  167. package/dist/components/Table3/components/Columns/Cell/util.js.map +1 -1
  168. package/dist/components/Table3/components/Editing/Alert.cjs +4 -4
  169. package/dist/components/Table3/components/Editing/Alert.cjs.map +1 -1
  170. package/dist/components/Table3/components/Editing/Alert.js +4 -4
  171. package/dist/components/Table3/components/Editing/Alert.js.map +1 -1
  172. package/dist/components/Table3/features/useEditingState.cjs +1 -1
  173. package/dist/components/Table3/features/useEditingState.cjs.map +1 -1
  174. package/dist/components/Table3/features/useEditingState.js +1 -1
  175. package/dist/components/Table3/features/useEditingState.js.map +1 -1
  176. package/dist/components/Table3/types.d.ts +2 -2
  177. package/dist/components/Table3/useTable3.cjs +8 -6
  178. package/dist/components/Table3/useTable3.cjs.map +1 -1
  179. package/dist/components/Table3/useTable3.js +8 -6
  180. package/dist/components/Table3/useTable3.js.map +1 -1
  181. package/dist/components/Table3/util/editing.cjs +1 -1
  182. package/dist/components/Table3/util/editing.cjs.map +1 -1
  183. package/dist/components/Table3/util/editing.d.ts +1 -1
  184. package/dist/components/Table3/util/editing.js +1 -1
  185. package/dist/components/Table3/util/editing.js.map +1 -1
  186. package/dist/hooks/useBoundaryOverflowDetection.cjs.map +1 -1
  187. package/dist/hooks/useBoundaryOverflowDetection.d.ts +1 -1
  188. package/dist/hooks/useBoundaryOverflowDetection.js.map +1 -1
  189. package/dist/hooks/useBoundingClientRectListener.cjs.map +1 -1
  190. package/dist/hooks/useBoundingClientRectListener.d.ts +1 -1
  191. package/dist/hooks/useBoundingClientRectListener.js.map +1 -1
  192. package/dist/hooks/useControlled.cjs +6 -10
  193. package/dist/hooks/useControlled.cjs.map +1 -1
  194. package/dist/hooks/useControlled.js +6 -10
  195. package/dist/hooks/useControlled.js.map +1 -1
  196. package/dist/hooks/useIsFormControl.cjs.map +1 -1
  197. package/dist/hooks/useIsFormControl.d.ts +1 -1
  198. package/dist/hooks/useIsFormControl.js.map +1 -1
  199. package/dist/hooks/useMergedRef.cjs.map +1 -1
  200. package/dist/hooks/useMergedRef.js.map +1 -1
  201. package/dist/hooks/usePrevious.cjs.map +1 -1
  202. package/dist/hooks/usePrevious.js.map +1 -1
  203. package/dist/primitives/Button.cjs.map +1 -1
  204. package/dist/primitives/Button.js.map +1 -1
  205. package/dist/primitives/Collection/components/Root.cjs +9 -16
  206. package/dist/primitives/Collection/components/Root.cjs.map +1 -1
  207. package/dist/primitives/Collection/components/Root.js +9 -16
  208. package/dist/primitives/Collection/components/Root.js.map +1 -1
  209. package/dist/primitives/Listbox2/components/Context.cjs.map +1 -1
  210. package/dist/primitives/Listbox2/components/Context.d.ts +1 -0
  211. package/dist/primitives/Listbox2/components/Context.js.map +1 -1
  212. package/dist/primitives/Listbox2/components/Option.cjs +8 -2
  213. package/dist/primitives/Listbox2/components/Option.cjs.map +1 -1
  214. package/dist/primitives/Listbox2/components/Option.js +8 -2
  215. package/dist/primitives/Listbox2/components/Option.js.map +1 -1
  216. package/dist/primitives/Listbox2/components/Root.cjs +3 -2
  217. package/dist/primitives/Listbox2/components/Root.cjs.map +1 -1
  218. package/dist/primitives/Listbox2/components/Root.js +3 -2
  219. package/dist/primitives/Listbox2/components/Root.js.map +1 -1
  220. package/dist/primitives/Sortable/components/Item.cjs +2 -4
  221. package/dist/primitives/Sortable/components/Item.cjs.map +1 -1
  222. package/dist/primitives/Sortable/components/Item.js +2 -4
  223. package/dist/primitives/Sortable/components/Item.js.map +1 -1
  224. package/dist/primitives/Table/Core/components/Body/Body.cjs +4 -4
  225. package/dist/primitives/Table/Core/components/Body/Body.cjs.map +1 -1
  226. package/dist/primitives/Table/Core/components/Body/Body.js +4 -4
  227. package/dist/primitives/Table/Core/components/Body/Body.js.map +1 -1
  228. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.cjs.map +1 -1
  229. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.js.map +1 -1
  230. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.cjs.map +1 -1
  231. package/dist/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.js.map +1 -1
  232. package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs +22 -16
  233. package/dist/primitives/Table/Core/components/Columns/Cell/util.cjs.map +1 -1
  234. package/dist/primitives/Table/Core/components/Columns/Cell/util.js +22 -16
  235. package/dist/primitives/Table/Core/components/Columns/Cell/util.js.map +1 -1
  236. package/dist/primitives/Table/Core/components/Footer/Summary.cjs.map +1 -1
  237. package/dist/primitives/Table/Core/components/Footer/Summary.js.map +1 -1
  238. package/dist/primitives/Table/Core/components/Header/util.cjs +4 -3
  239. package/dist/primitives/Table/Core/components/Header/util.cjs.map +1 -1
  240. package/dist/primitives/Table/Core/components/Header/util.js +4 -3
  241. package/dist/primitives/Table/Core/components/Header/util.js.map +1 -1
  242. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.cjs +1 -1
  243. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.cjs.map +1 -1
  244. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js +1 -1
  245. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/Filters.js.map +1 -1
  246. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs +4 -2
  247. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.cjs.map +1 -1
  248. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js +4 -2
  249. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/ManageFiltersPopover.js.map +1 -1
  250. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.cjs.map +1 -1
  251. package/dist/primitives/Table/Core/components/Toolbar/components/Filters/components/Filter.js.map +1 -1
  252. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs +1 -1
  253. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.cjs.map +1 -1
  254. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js +1 -1
  255. package/dist/primitives/Table/Core/components/Toolbar/components/Print/Print.js.map +1 -1
  256. package/dist/primitives/Table/Core/features/useTableRef.cjs +7 -0
  257. package/dist/primitives/Table/Core/features/useTableRef.cjs.map +1 -1
  258. package/dist/primitives/Table/Core/features/useTableRef.js +7 -0
  259. package/dist/primitives/Table/Core/features/useTableRef.js.map +1 -1
  260. package/dist/primitives/Table/Core/features/useTableRenderer.cjs +2 -2
  261. package/dist/primitives/Table/Core/features/useTableRenderer.cjs.map +1 -1
  262. package/dist/primitives/Table/Core/features/useTableRenderer.js +2 -2
  263. package/dist/primitives/Table/Core/features/useTableRenderer.js.map +1 -1
  264. package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.cjs +2 -2
  265. package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.cjs.map +1 -1
  266. package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.js +2 -2
  267. package/dist/primitives/Table/Core/features/useTableStyleColumnFreezing.js.map +1 -1
  268. package/dist/primitives/Table/Core/features/useTableStyleGrid.cjs.map +1 -1
  269. package/dist/primitives/Table/Core/features/useTableStyleGrid.js.map +1 -1
  270. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs +2 -4
  271. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.cjs.map +1 -1
  272. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.d.ts +2 -2
  273. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js +2 -4
  274. package/dist/primitives/Table/Core/listeners/useTableRowActiveListener.js.map +1 -1
  275. package/dist/primitives/Table/types.cjs.map +1 -1
  276. package/dist/primitives/Table/types.d.ts +6 -0
  277. package/dist/primitives/Table/types.js.map +1 -1
  278. package/dist/primitives/Table/useTableDataLoader2.cjs +36 -3
  279. package/dist/primitives/Table/useTableDataLoader2.cjs.map +1 -1
  280. package/dist/primitives/Table/useTableDataLoader2.d.ts +2 -1
  281. package/dist/primitives/Table/useTableDataLoader2.js +36 -3
  282. package/dist/primitives/Table/useTableDataLoader2.js.map +1 -1
  283. package/dist/primitives/Table/useTableManager/features/useTableRowActive.cjs +0 -1
  284. package/dist/primitives/Table/useTableManager/features/useTableRowActive.cjs.map +1 -1
  285. package/dist/primitives/Table/useTableManager/features/useTableRowActive.d.ts +1 -1
  286. package/dist/primitives/Table/useTableManager/features/useTableRowActive.js +0 -1
  287. package/dist/primitives/Table/useTableManager/features/useTableRowActive.js.map +1 -1
  288. package/dist/primitives/Table/useTableManager/features/useTableRowClick.cjs +0 -2
  289. package/dist/primitives/Table/useTableManager/features/useTableRowClick.cjs.map +1 -1
  290. package/dist/primitives/Table/useTableManager/features/useTableRowClick.js +0 -2
  291. package/dist/primitives/Table/useTableManager/features/useTableRowClick.js.map +1 -1
  292. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.cjs +0 -1
  293. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.cjs.map +1 -1
  294. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.js +0 -1
  295. package/dist/primitives/Table/useTableManager/features/useTableRowSelection.js.map +1 -1
  296. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.cjs +10 -1
  297. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.cjs.map +1 -1
  298. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.d.ts +3 -2
  299. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.js +10 -1
  300. package/dist/primitives/Table/useTableManager/features/useTableServerLoading.js.map +1 -1
  301. package/dist/primitives/Table/useTableManager/useTableManager.cjs +1 -5
  302. package/dist/primitives/Table/useTableManager/useTableManager.cjs.map +1 -1
  303. package/dist/primitives/Table/useTableManager/useTableManager.js +1 -5
  304. package/dist/primitives/Table/useTableManager/useTableManager.js.map +1 -1
  305. package/dist/primitives/Table/useTableManager/util/dataTypes.cjs.map +1 -1
  306. package/dist/primitives/Table/useTableManager/util/dataTypes.d.ts +3 -3
  307. package/dist/primitives/Table/useTableManager/util/dataTypes.js.map +1 -1
  308. package/dist/primitives/Table/useTableManager/util/filtering.cjs.map +1 -1
  309. package/dist/primitives/Table/useTableManager/util/filtering.js.map +1 -1
  310. package/dist/primitives/Table/useTableManager/util/search.cjs +1 -1
  311. package/dist/primitives/Table/useTableManager/util/search.cjs.map +1 -1
  312. package/dist/primitives/Table/useTableManager/util/search.js +1 -1
  313. package/dist/primitives/Table/useTableManager/util/search.js.map +1 -1
  314. package/dist/primitives/Table/useTableManager/util/setup.cjs +3 -3
  315. package/dist/primitives/Table/useTableManager/util/setup.cjs.map +1 -1
  316. package/dist/primitives/Table/useTableManager/util/setup.js +3 -3
  317. package/dist/primitives/Table/useTableManager/util/setup.js.map +1 -1
  318. package/dist/types.cjs.map +1 -1
  319. package/dist/types.d.ts +1 -1
  320. package/dist/types.js.map +1 -1
  321. package/dist/utils/dataTypes.cjs +4 -4
  322. package/dist/utils/dataTypes.cjs.map +1 -1
  323. package/dist/utils/dataTypes.d.ts +1 -1
  324. package/dist/utils/dataTypes.js +4 -4
  325. package/dist/utils/dataTypes.js.map +1 -1
  326. package/dist/utils/date.cjs +14 -16
  327. package/dist/utils/date.cjs.map +1 -1
  328. package/dist/utils/date.js +14 -16
  329. package/dist/utils/date.js.map +1 -1
  330. package/dist/utils/debounce.cjs.map +1 -1
  331. package/dist/utils/debounce.d.ts +1 -1
  332. package/dist/utils/debounce.js.map +1 -1
  333. package/dist/utils/device.cjs +1 -1
  334. package/dist/utils/device.cjs.map +1 -1
  335. package/dist/utils/device.js +1 -1
  336. package/dist/utils/device.js.map +1 -1
  337. package/dist/utils/dom.cjs +1 -1
  338. package/dist/utils/dom.cjs.map +1 -1
  339. package/dist/utils/dom.d.ts +2 -2
  340. package/dist/utils/dom.js +1 -1
  341. package/dist/utils/dom.js.map +1 -1
  342. package/dist/utils/hooks/useDraggable.cjs.map +1 -1
  343. package/dist/utils/hooks/useDraggable.d.ts +9 -1
  344. package/dist/utils/hooks/useDraggable.js.map +1 -1
  345. package/dist/utils/hooks/useListKeyboardNavigation.cjs +1 -1
  346. package/dist/utils/hooks/useListKeyboardNavigation.cjs.map +1 -1
  347. package/dist/utils/hooks/useListKeyboardNavigation.js +1 -1
  348. package/dist/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  349. package/dist/utils/hooks/useListScrollTo.cjs.map +1 -1
  350. package/dist/utils/hooks/useListScrollTo.d.ts +4 -1
  351. package/dist/utils/hooks/useListScrollTo.js.map +1 -1
  352. package/dist/utils/hooks/useOnClickOutside.cjs.map +1 -1
  353. package/dist/utils/hooks/useOnClickOutside.d.ts +1 -1
  354. package/dist/utils/hooks/useOnClickOutside.js.map +1 -1
  355. package/dist/utils/hooks/useTruncated.cjs.map +1 -1
  356. package/dist/utils/hooks/useTruncated.d.ts +2 -1
  357. package/dist/utils/hooks/useTruncated.js.map +1 -1
  358. package/dist/utils/mergeRefs.cjs.map +1 -1
  359. package/dist/utils/mergeRefs.d.ts +1 -1
  360. package/dist/utils/mergeRefs.js.map +1 -1
  361. package/dist/utils/storyutils.d.ts +1 -3
  362. package/package.json +4 -5
  363. package/plugins/tailwindcss-group-peer.js +1 -1
  364. package/scripts/stylelint-plugin/radius.mjs +2 -2
@@ -11,7 +11,7 @@ const Root = React.forwardRef(function Listbox2(props, ref) {
11
11
  customSelector,
12
12
  disabled = false,
13
13
  id: nativeId,
14
- multiple,
14
+ multiple = false,
15
15
  readOnly = false,
16
16
  setValue,
17
17
  title: _1,
@@ -22,11 +22,12 @@ const Root = React.forwardRef(function Listbox2(props, ref) {
22
22
  const context = React.useMemo(
23
23
  () => ({
24
24
  disabled,
25
+ multiple,
25
26
  readOnly,
26
27
  setValue,
27
28
  value
28
29
  }),
29
- [disabled, readOnly, value]
30
+ [disabled, multiple, readOnly, value]
30
31
  );
31
32
  return /* @__PURE__ */ React.createElement(Context.Listbox2Context.Provider, { value: context }, /* @__PURE__ */ React.createElement("div", { "data-taco": "listbox2" }, /* @__PURE__ */ React.createElement(
32
33
  Root$1.Root,
@@ -1 +1 @@
1
- {"version":3,"file":"Root.cjs","sources":["../../../../src/primitives/Listbox2/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\nimport * as CollectionPrimitive from '@/primitives/Collection/Collection';\n\nimport type { Listbox2Value } from '../types';\n\nimport { Listbox2Context } from './Context';\n\nexport type Listbox2Props = React.HTMLAttributes<HTMLDivElement> & {\n customSelector?: string;\n disabled?: boolean;\n multiple?: boolean;\n readOnly?: boolean;\n setValue: (value: Listbox2Value) => void;\n value?: Listbox2Value;\n};\n\nconst DEFAULT_SELECTOR = '[role=\"option\"]';\n\nexport const Root = React.forwardRef<CollectionPrimitive.CollectionRef, Listbox2Props>(function Listbox2(props, ref) {\n const {\n children,\n customSelector,\n disabled = false,\n id: nativeId,\n multiple,\n readOnly = false,\n setValue,\n title: _1,\n value,\n ...otherProps\n } = props;\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'listbox2-' + useId(nativeId);\n\n const context = React.useMemo(\n () => ({\n disabled,\n readOnly,\n setValue,\n value,\n }),\n [disabled, readOnly, value]\n );\n\n return (\n <Listbox2Context.Provider value={context}>\n <div data-taco=\"listbox2\">\n <CollectionPrimitive.Root\n {...otherProps}\n aria-multiselectable={multiple ? true : undefined}\n id={id}\n querySelector={customSelector ? `${DEFAULT_SELECTOR}, ${customSelector}` : DEFAULT_SELECTOR}\n ref={ref}\n resetOnChange={value}\n role=\"listbox\">\n {children}\n </CollectionPrimitive.Root>\n </div>\n </Listbox2Context.Provider>\n );\n});\n\nexport const createListboxValueSetter =\n (multiple: boolean, setValue: React.Dispatch<React.SetStateAction<Listbox2Value | undefined>>) =>\n (nextValue: Listbox2Value | undefined) => {\n setValue(value => {\n if (nextValue === undefined || Array.isArray(nextValue)) {\n return nextValue;\n }\n\n if (multiple) {\n if (value === undefined) {\n return [nextValue];\n }\n\n if (Array.isArray(value)) {\n if (value.includes(nextValue)) {\n return value.filter(v => v !== nextValue);\n }\n\n return [...value, nextValue];\n }\n\n if (value === nextValue) {\n return [];\n }\n\n return [value, nextValue];\n }\n\n return nextValue;\n });\n };\n"],"names":["useId","Listbox2Context","CollectionPrimitive.Root"],"mappings":";;;;;;AAkBA,MAAM,mBAAmB;AAElB,MAAM,OAAO,MAAM,WAA6D,SAAS,SAAS,OAAO,KAAK;AACjH,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,IAAI;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EAAA,IACH;AAGJ,QAAM,KAAK,cAAcA,MAAAA,MAAM,QAAQ;AAEvC,QAAM,UAAU,MAAM;AAAA,IAClB,OAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,KAAK;AAAA,EAAA;AAG9B,SACI,sBAAA,cAACC,QAAAA,gBAAgB,UAAhB,EAAyB,OAAO,QAAA,GAC7B,sBAAA,cAAC,OAAA,EAAI,aAAU,WAAA,GACX,sBAAA;AAAA,IAACC,OAAAA;AAAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,wBAAsB,WAAW,OAAO;AAAA,MACxC;AAAA,MACA,eAAe,iBAAiB,GAAG,gBAAgB,KAAK,cAAc,KAAK;AAAA,MAC3E;AAAA,MACA,eAAe;AAAA,MACf,MAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;AAEM,MAAM,2BACT,CAAC,UAAmB,aACpB,CAAC,cAAyC;AACtC,WAAS,CAAA,UAAS;AACd,QAAI,cAAc,UAAa,MAAM,QAAQ,SAAS,GAAG;AACrD,aAAO;AAAA,IACX;AAEA,QAAI,UAAU;AACV,UAAI,UAAU,QAAW;AACrB,eAAO,CAAC,SAAS;AAAA,MACrB;AAEA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,YAAI,MAAM,SAAS,SAAS,GAAG;AAC3B,iBAAO,MAAM,OAAO,CAAA,MAAK,MAAM,SAAS;AAAA,QAC5C;AAEA,eAAO,CAAC,GAAG,OAAO,SAAS;AAAA,MAC/B;AAEA,UAAI,UAAU,WAAW;AACrB,eAAO,CAAA;AAAA,MACX;AAEA,aAAO,CAAC,OAAO,SAAS;AAAA,IAC5B;AAEA,WAAO;AAAA,EACX,CAAC;AACL;;;"}
1
+ {"version":3,"file":"Root.cjs","sources":["../../../../src/primitives/Listbox2/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\nimport * as CollectionPrimitive from '@/primitives/Collection/Collection';\n\nimport type { Listbox2Value } from '../types';\n\nimport { Listbox2Context } from './Context';\n\nexport type Listbox2Props = React.HTMLAttributes<HTMLDivElement> & {\n customSelector?: string;\n disabled?: boolean;\n multiple?: boolean;\n readOnly?: boolean;\n setValue: (value: Listbox2Value) => void;\n value?: Listbox2Value;\n};\n\nconst DEFAULT_SELECTOR = '[role=\"option\"]';\n\nexport const Root = React.forwardRef<CollectionPrimitive.CollectionRef, Listbox2Props>(function Listbox2(props, ref) {\n const {\n children,\n customSelector,\n disabled = false,\n id: nativeId,\n multiple = false,\n readOnly = false,\n setValue,\n title: _1,\n value,\n ...otherProps\n } = props;\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'listbox2-' + useId(nativeId);\n\n const context = React.useMemo(\n () => ({\n disabled,\n multiple,\n readOnly,\n setValue,\n value,\n }),\n [disabled, multiple, readOnly, value]\n );\n\n return (\n <Listbox2Context.Provider value={context}>\n <div data-taco=\"listbox2\">\n <CollectionPrimitive.Root\n {...otherProps}\n aria-multiselectable={multiple ? true : undefined}\n id={id}\n querySelector={customSelector ? `${DEFAULT_SELECTOR}, ${customSelector}` : DEFAULT_SELECTOR}\n ref={ref}\n resetOnChange={value}\n role=\"listbox\">\n {children}\n </CollectionPrimitive.Root>\n </div>\n </Listbox2Context.Provider>\n );\n});\n\nexport const createListboxValueSetter =\n (multiple: boolean, setValue: React.Dispatch<React.SetStateAction<Listbox2Value | undefined>>) =>\n (nextValue: Listbox2Value | undefined) => {\n setValue(value => {\n if (nextValue === undefined || Array.isArray(nextValue)) {\n return nextValue;\n }\n\n if (multiple) {\n if (value === undefined) {\n return [nextValue];\n }\n\n if (Array.isArray(value)) {\n if (value.includes(nextValue)) {\n return value.filter(v => v !== nextValue);\n }\n\n return [...value, nextValue];\n }\n\n if (value === nextValue) {\n return [];\n }\n\n return [value, nextValue];\n }\n\n return nextValue;\n });\n };\n"],"names":["useId","Listbox2Context","CollectionPrimitive.Root"],"mappings":";;;;;;AAkBA,MAAM,mBAAmB;AAElB,MAAM,OAAO,MAAM,WAA6D,SAAS,SAAS,OAAO,KAAK;AACjH,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EAAA,IACH;AAGJ,QAAM,KAAK,cAAcA,MAAAA,MAAM,QAAQ;AAEvC,QAAM,UAAU,MAAM;AAAA,IAClB,OAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,UAAU,KAAK;AAAA,EAAA;AAGxC,SACI,sBAAA,cAACC,QAAAA,gBAAgB,UAAhB,EAAyB,OAAO,QAAA,GAC7B,sBAAA,cAAC,OAAA,EAAI,aAAU,WAAA,GACX,sBAAA;AAAA,IAACC,OAAAA;AAAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,wBAAsB,WAAW,OAAO;AAAA,MACxC;AAAA,MACA,eAAe,iBAAiB,GAAG,gBAAgB,KAAK,cAAc,KAAK;AAAA,MAC3E;AAAA,MACA,eAAe;AAAA,MACf,MAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;AAEM,MAAM,2BACT,CAAC,UAAmB,aACpB,CAAC,cAAyC;AACtC,WAAS,CAAA,UAAS;AACd,QAAI,cAAc,UAAa,MAAM,QAAQ,SAAS,GAAG;AACrD,aAAO;AAAA,IACX;AAEA,QAAI,UAAU;AACV,UAAI,UAAU,QAAW;AACrB,eAAO,CAAC,SAAS;AAAA,MACrB;AAEA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,YAAI,MAAM,SAAS,SAAS,GAAG;AAC3B,iBAAO,MAAM,OAAO,CAAA,MAAK,MAAM,SAAS;AAAA,QAC5C;AAEA,eAAO,CAAC,GAAG,OAAO,SAAS;AAAA,MAC/B;AAEA,UAAI,UAAU,WAAW;AACrB,eAAO,CAAA;AAAA,MACX;AAEA,aAAO,CAAC,OAAO,SAAS;AAAA,IAC5B;AAEA,WAAO;AAAA,EACX,CAAC;AACL;;;"}
@@ -9,7 +9,7 @@ const Root = React__default.forwardRef(function Listbox2(props, ref) {
9
9
  customSelector,
10
10
  disabled = false,
11
11
  id: nativeId,
12
- multiple,
12
+ multiple = false,
13
13
  readOnly = false,
14
14
  setValue,
15
15
  title: _1,
@@ -20,11 +20,12 @@ const Root = React__default.forwardRef(function Listbox2(props, ref) {
20
20
  const context = React__default.useMemo(
21
21
  () => ({
22
22
  disabled,
23
+ multiple,
23
24
  readOnly,
24
25
  setValue,
25
26
  value
26
27
  }),
27
- [disabled, readOnly, value]
28
+ [disabled, multiple, readOnly, value]
28
29
  );
29
30
  return /* @__PURE__ */ React__default.createElement(Listbox2Context.Provider, { value: context }, /* @__PURE__ */ React__default.createElement("div", { "data-taco": "listbox2" }, /* @__PURE__ */ React__default.createElement(
30
31
  Root$1,
@@ -1 +1 @@
1
- {"version":3,"file":"Root.js","sources":["../../../../src/primitives/Listbox2/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\nimport * as CollectionPrimitive from '@/primitives/Collection/Collection';\n\nimport type { Listbox2Value } from '../types';\n\nimport { Listbox2Context } from './Context';\n\nexport type Listbox2Props = React.HTMLAttributes<HTMLDivElement> & {\n customSelector?: string;\n disabled?: boolean;\n multiple?: boolean;\n readOnly?: boolean;\n setValue: (value: Listbox2Value) => void;\n value?: Listbox2Value;\n};\n\nconst DEFAULT_SELECTOR = '[role=\"option\"]';\n\nexport const Root = React.forwardRef<CollectionPrimitive.CollectionRef, Listbox2Props>(function Listbox2(props, ref) {\n const {\n children,\n customSelector,\n disabled = false,\n id: nativeId,\n multiple,\n readOnly = false,\n setValue,\n title: _1,\n value,\n ...otherProps\n } = props;\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'listbox2-' + useId(nativeId);\n\n const context = React.useMemo(\n () => ({\n disabled,\n readOnly,\n setValue,\n value,\n }),\n [disabled, readOnly, value]\n );\n\n return (\n <Listbox2Context.Provider value={context}>\n <div data-taco=\"listbox2\">\n <CollectionPrimitive.Root\n {...otherProps}\n aria-multiselectable={multiple ? true : undefined}\n id={id}\n querySelector={customSelector ? `${DEFAULT_SELECTOR}, ${customSelector}` : DEFAULT_SELECTOR}\n ref={ref}\n resetOnChange={value}\n role=\"listbox\">\n {children}\n </CollectionPrimitive.Root>\n </div>\n </Listbox2Context.Provider>\n );\n});\n\nexport const createListboxValueSetter =\n (multiple: boolean, setValue: React.Dispatch<React.SetStateAction<Listbox2Value | undefined>>) =>\n (nextValue: Listbox2Value | undefined) => {\n setValue(value => {\n if (nextValue === undefined || Array.isArray(nextValue)) {\n return nextValue;\n }\n\n if (multiple) {\n if (value === undefined) {\n return [nextValue];\n }\n\n if (Array.isArray(value)) {\n if (value.includes(nextValue)) {\n return value.filter(v => v !== nextValue);\n }\n\n return [...value, nextValue];\n }\n\n if (value === nextValue) {\n return [];\n }\n\n return [value, nextValue];\n }\n\n return nextValue;\n });\n };\n"],"names":["React","CollectionPrimitive.Root"],"mappings":";;;;AAkBA,MAAM,mBAAmB;AAElB,MAAM,OAAOA,eAAM,WAA6D,SAAS,SAAS,OAAO,KAAK;AACjH,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,IAAI;AAAA,IACJ;AAAA,IACA,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EAAA,IACH;AAGJ,QAAM,KAAK,cAAc,MAAM,QAAQ;AAEvC,QAAM,UAAUA,eAAM;AAAA,IAClB,OAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,KAAK;AAAA,EAAA;AAG9B,SACIA,+BAAA,cAAC,gBAAgB,UAAhB,EAAyB,OAAO,QAAA,GAC7BA,+BAAA,cAAC,OAAA,EAAI,aAAU,WAAA,GACXA,+BAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,wBAAsB,WAAW,OAAO;AAAA,MACxC;AAAA,MACA,eAAe,iBAAiB,GAAG,gBAAgB,KAAK,cAAc,KAAK;AAAA,MAC3E;AAAA,MACA,eAAe;AAAA,MACf,MAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;AAEM,MAAM,2BACT,CAAC,UAAmB,aACpB,CAAC,cAAyC;AACtC,WAAS,CAAA,UAAS;AACd,QAAI,cAAc,UAAa,MAAM,QAAQ,SAAS,GAAG;AACrD,aAAO;AAAA,IACX;AAEA,QAAI,UAAU;AACV,UAAI,UAAU,QAAW;AACrB,eAAO,CAAC,SAAS;AAAA,MACrB;AAEA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,YAAI,MAAM,SAAS,SAAS,GAAG;AAC3B,iBAAO,MAAM,OAAO,CAAA,MAAK,MAAM,SAAS;AAAA,QAC5C;AAEA,eAAO,CAAC,GAAG,OAAO,SAAS;AAAA,MAC/B;AAEA,UAAI,UAAU,WAAW;AACrB,eAAO,CAAA;AAAA,MACX;AAEA,aAAO,CAAC,OAAO,SAAS;AAAA,IAC5B;AAEA,WAAO;AAAA,EACX,CAAC;AACL;"}
1
+ {"version":3,"file":"Root.js","sources":["../../../../src/primitives/Listbox2/components/Root.tsx"],"sourcesContent":["import React from 'react';\n\nimport { useId } from '@/hooks/useId';\nimport * as CollectionPrimitive from '@/primitives/Collection/Collection';\n\nimport type { Listbox2Value } from '../types';\n\nimport { Listbox2Context } from './Context';\n\nexport type Listbox2Props = React.HTMLAttributes<HTMLDivElement> & {\n customSelector?: string;\n disabled?: boolean;\n multiple?: boolean;\n readOnly?: boolean;\n setValue: (value: Listbox2Value) => void;\n value?: Listbox2Value;\n};\n\nconst DEFAULT_SELECTOR = '[role=\"option\"]';\n\nexport const Root = React.forwardRef<CollectionPrimitive.CollectionRef, Listbox2Props>(function Listbox2(props, ref) {\n const {\n children,\n customSelector,\n disabled = false,\n id: nativeId,\n multiple = false,\n readOnly = false,\n setValue,\n title: _1,\n value,\n ...otherProps\n } = props;\n // The id name cannot start with a number, otherwise unit tests will fail when trying to querry element with such id.\n // That's why adding prefix.\n const id = 'listbox2-' + useId(nativeId);\n\n const context = React.useMemo(\n () => ({\n disabled,\n multiple,\n readOnly,\n setValue,\n value,\n }),\n [disabled, multiple, readOnly, value]\n );\n\n return (\n <Listbox2Context.Provider value={context}>\n <div data-taco=\"listbox2\">\n <CollectionPrimitive.Root\n {...otherProps}\n aria-multiselectable={multiple ? true : undefined}\n id={id}\n querySelector={customSelector ? `${DEFAULT_SELECTOR}, ${customSelector}` : DEFAULT_SELECTOR}\n ref={ref}\n resetOnChange={value}\n role=\"listbox\">\n {children}\n </CollectionPrimitive.Root>\n </div>\n </Listbox2Context.Provider>\n );\n});\n\nexport const createListboxValueSetter =\n (multiple: boolean, setValue: React.Dispatch<React.SetStateAction<Listbox2Value | undefined>>) =>\n (nextValue: Listbox2Value | undefined) => {\n setValue(value => {\n if (nextValue === undefined || Array.isArray(nextValue)) {\n return nextValue;\n }\n\n if (multiple) {\n if (value === undefined) {\n return [nextValue];\n }\n\n if (Array.isArray(value)) {\n if (value.includes(nextValue)) {\n return value.filter(v => v !== nextValue);\n }\n\n return [...value, nextValue];\n }\n\n if (value === nextValue) {\n return [];\n }\n\n return [value, nextValue];\n }\n\n return nextValue;\n });\n };\n"],"names":["React","CollectionPrimitive.Root"],"mappings":";;;;AAkBA,MAAM,mBAAmB;AAElB,MAAM,OAAOA,eAAM,WAA6D,SAAS,SAAS,OAAO,KAAK;AACjH,QAAM;AAAA,IACF;AAAA,IACA;AAAA,IACA,WAAW;AAAA,IACX,IAAI;AAAA,IACJ,WAAW;AAAA,IACX,WAAW;AAAA,IACX;AAAA,IACA,OAAO;AAAA,IACP;AAAA,IACA,GAAG;AAAA,EAAA,IACH;AAGJ,QAAM,KAAK,cAAc,MAAM,QAAQ;AAEvC,QAAM,UAAUA,eAAM;AAAA,IAClB,OAAO;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,IAEJ,CAAC,UAAU,UAAU,UAAU,KAAK;AAAA,EAAA;AAGxC,SACIA,+BAAA,cAAC,gBAAgB,UAAhB,EAAyB,OAAO,QAAA,GAC7BA,+BAAA,cAAC,OAAA,EAAI,aAAU,WAAA,GACXA,+BAAA;AAAA,IAACC;AAAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ,wBAAsB,WAAW,OAAO;AAAA,MACxC;AAAA,MACA,eAAe,iBAAiB,GAAG,gBAAgB,KAAK,cAAc,KAAK;AAAA,MAC3E;AAAA,MACA,eAAe;AAAA,MACf,MAAK;AAAA,IAAA;AAAA,IACJ;AAAA,EAAA,CAET,CACJ;AAER,CAAC;AAEM,MAAM,2BACT,CAAC,UAAmB,aACpB,CAAC,cAAyC;AACtC,WAAS,CAAA,UAAS;AACd,QAAI,cAAc,UAAa,MAAM,QAAQ,SAAS,GAAG;AACrD,aAAO;AAAA,IACX;AAEA,QAAI,UAAU;AACV,UAAI,UAAU,QAAW;AACrB,eAAO,CAAC,SAAS;AAAA,MACrB;AAEA,UAAI,MAAM,QAAQ,KAAK,GAAG;AACtB,YAAI,MAAM,SAAS,SAAS,GAAG;AAC3B,iBAAO,MAAM,OAAO,CAAA,MAAK,MAAM,SAAS;AAAA,QAC5C;AAEA,eAAO,CAAC,GAAG,OAAO,SAAS;AAAA,MAC/B;AAEA,UAAI,UAAU,WAAW;AACrB,eAAO,CAAA;AAAA,MACX;AAEA,aAAO,CAAC,OAAO,SAAS;AAAA,IAC5B;AAEA,WAAO;AAAA,EACX,CAAC;AACL;"}
@@ -15,10 +15,8 @@ function Item(props) {
15
15
  transition
16
16
  };
17
17
  const onPointerDown = (event) => {
18
- if (event.currentTarget.contains(event.target) && !isFormElement(event.target)) {
19
- if (listeners) {
20
- listeners.onPointerDown?.(event);
21
- }
18
+ if (event.currentTarget.contains(event.target) && !isFormElement(event.target) && listeners) {
19
+ listeners.onPointerDown?.(event);
22
20
  }
23
21
  };
24
22
  const elProps = { ...attributes, ...listeners, onPointerDown, ref: setNodeRef, style };
@@ -1 +1 @@
1
- {"version":3,"file":"Item.cjs","sources":["../../../../src/primitives/Sortable/components/Item.tsx"],"sourcesContent":["import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport React from 'react';\n\nexport type SortableItemId = string | number;\n\nexport type SortableListItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'id'> & {\n disabled?: boolean;\n id: SortableItemId;\n asChild: boolean;\n};\n\nconst isFormElement = (element: HTMLElement) => {\n const formElementNodeNames = ['BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'FIELDSET'];\n\n return formElementNodeNames.includes(element.nodeName);\n};\n\nexport function Item(props: SortableListItemProps) {\n const { asChild, children, disabled = false, id } = props;\n const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ disabled, id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n const onPointerDown = (event: React.PointerEvent) => {\n // allow form components, like checkboxes, to be active\n if (event.currentTarget.contains(event.target as HTMLElement) && !isFormElement(event.target as HTMLElement)) {\n if (listeners) {\n listeners.onPointerDown?.(event);\n }\n }\n };\n\n const elProps = { ...attributes, ...listeners, onPointerDown, ref: setNodeRef, style };\n\n if (asChild) {\n return React.cloneElement(children as React.JSX.Element, elProps);\n }\n\n return <div {...elProps}>{children}</div>;\n}\nItem.displayName = 'SortableListItem';\n"],"names":["useSortable","CSS"],"mappings":";;;;;AAYA,MAAM,gBAAgB,CAAC,YAAyB;AAC5C,QAAM,uBAAuB,CAAC,UAAU,SAAS,YAAY,UAAU,UAAU;AAEjF,SAAO,qBAAqB,SAAS,QAAQ,QAAQ;AACzD;AAEO,SAAS,KAAK,OAA8B;AAC/C,QAAM,EAAE,SAAS,UAAU,WAAW,OAAO,OAAO;AACpD,QAAM,EAAE,YAAY,WAAW,YAAY,WAAW,WAAA,IAAeA,qBAAY,EAAE,UAAU,IAAI;AAEjG,QAAM,QAAQ;AAAA,IACV,WAAWC,UAAAA,IAAI,UAAU,SAAS,SAAS;AAAA,IAC3C;AAAA,EAAA;AAGJ,QAAM,gBAAgB,CAAC,UAA8B;AAEjD,QAAI,MAAM,cAAc,SAAS,MAAM,MAAqB,KAAK,CAAC,cAAc,MAAM,MAAqB,GAAG;AAC1G,UAAI,WAAW;AACX,kBAAU,gBAAgB,KAAK;AAAA,MACnC;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,UAAU,EAAE,GAAG,YAAY,GAAG,WAAW,eAAe,KAAK,YAAY,MAAA;AAE/E,MAAI,SAAS;AACT,WAAO,MAAM,aAAa,UAA+B,OAAO;AAAA,EACpE;AAEA,SAAO,sBAAA,cAAC,OAAA,EAAK,GAAG,QAAA,GAAU,QAAS;AACvC;AACA,KAAK,cAAc;;"}
1
+ {"version":3,"file":"Item.cjs","sources":["../../../../src/primitives/Sortable/components/Item.tsx"],"sourcesContent":["import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport React from 'react';\n\nexport type SortableItemId = string | number;\n\nexport type SortableListItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'id'> & {\n disabled?: boolean;\n id: SortableItemId;\n asChild: boolean;\n};\n\nconst isFormElement = (element: HTMLElement) => {\n const formElementNodeNames = ['BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'FIELDSET'];\n\n return formElementNodeNames.includes(element.nodeName);\n};\n\nexport function Item(props: SortableListItemProps) {\n const { asChild, children, disabled = false, id } = props;\n const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ disabled, id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n const onPointerDown = (event: React.PointerEvent) => {\n // allow form components, like checkboxes, to be active\n if (\n event.currentTarget.contains(event.target as HTMLElement) &&\n !isFormElement(event.target as HTMLElement) &&\n listeners\n ) {\n listeners.onPointerDown?.(event);\n }\n };\n\n const elProps = { ...attributes, ...listeners, onPointerDown, ref: setNodeRef, style };\n\n if (asChild) {\n return React.cloneElement(children as React.JSX.Element, elProps);\n }\n\n return <div {...elProps}>{children}</div>;\n}\nItem.displayName = 'SortableListItem';\n"],"names":["useSortable","CSS"],"mappings":";;;;;AAYA,MAAM,gBAAgB,CAAC,YAAyB;AAC5C,QAAM,uBAAuB,CAAC,UAAU,SAAS,YAAY,UAAU,UAAU;AAEjF,SAAO,qBAAqB,SAAS,QAAQ,QAAQ;AACzD;AAEO,SAAS,KAAK,OAA8B;AAC/C,QAAM,EAAE,SAAS,UAAU,WAAW,OAAO,OAAO;AACpD,QAAM,EAAE,YAAY,WAAW,YAAY,WAAW,WAAA,IAAeA,qBAAY,EAAE,UAAU,IAAI;AAEjG,QAAM,QAAQ;AAAA,IACV,WAAWC,UAAAA,IAAI,UAAU,SAAS,SAAS;AAAA,IAC3C;AAAA,EAAA;AAGJ,QAAM,gBAAgB,CAAC,UAA8B;AAEjD,QACI,MAAM,cAAc,SAAS,MAAM,MAAqB,KACxD,CAAC,cAAc,MAAM,MAAqB,KAC1C,WACF;AACE,gBAAU,gBAAgB,KAAK;AAAA,IACnC;AAAA,EACJ;AAEA,QAAM,UAAU,EAAE,GAAG,YAAY,GAAG,WAAW,eAAe,KAAK,YAAY,MAAA;AAE/E,MAAI,SAAS;AACT,WAAO,MAAM,aAAa,UAA+B,OAAO;AAAA,EACpE;AAEA,SAAO,sBAAA,cAAC,OAAA,EAAK,GAAG,QAAA,GAAU,QAAS;AACvC;AACA,KAAK,cAAc;;"}
@@ -13,10 +13,8 @@ function Item(props) {
13
13
  transition
14
14
  };
15
15
  const onPointerDown = (event) => {
16
- if (event.currentTarget.contains(event.target) && !isFormElement(event.target)) {
17
- if (listeners) {
18
- listeners.onPointerDown?.(event);
19
- }
16
+ if (event.currentTarget.contains(event.target) && !isFormElement(event.target) && listeners) {
17
+ listeners.onPointerDown?.(event);
20
18
  }
21
19
  };
22
20
  const elProps = { ...attributes, ...listeners, onPointerDown, ref: setNodeRef, style };
@@ -1 +1 @@
1
- {"version":3,"file":"Item.js","sources":["../../../../src/primitives/Sortable/components/Item.tsx"],"sourcesContent":["import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport React from 'react';\n\nexport type SortableItemId = string | number;\n\nexport type SortableListItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'id'> & {\n disabled?: boolean;\n id: SortableItemId;\n asChild: boolean;\n};\n\nconst isFormElement = (element: HTMLElement) => {\n const formElementNodeNames = ['BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'FIELDSET'];\n\n return formElementNodeNames.includes(element.nodeName);\n};\n\nexport function Item(props: SortableListItemProps) {\n const { asChild, children, disabled = false, id } = props;\n const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ disabled, id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n const onPointerDown = (event: React.PointerEvent) => {\n // allow form components, like checkboxes, to be active\n if (event.currentTarget.contains(event.target as HTMLElement) && !isFormElement(event.target as HTMLElement)) {\n if (listeners) {\n listeners.onPointerDown?.(event);\n }\n }\n };\n\n const elProps = { ...attributes, ...listeners, onPointerDown, ref: setNodeRef, style };\n\n if (asChild) {\n return React.cloneElement(children as React.JSX.Element, elProps);\n }\n\n return <div {...elProps}>{children}</div>;\n}\nItem.displayName = 'SortableListItem';\n"],"names":["React"],"mappings":";;;AAYA,MAAM,gBAAgB,CAAC,YAAyB;AAC5C,QAAM,uBAAuB,CAAC,UAAU,SAAS,YAAY,UAAU,UAAU;AAEjF,SAAO,qBAAqB,SAAS,QAAQ,QAAQ;AACzD;AAEO,SAAS,KAAK,OAA8B;AAC/C,QAAM,EAAE,SAAS,UAAU,WAAW,OAAO,OAAO;AACpD,QAAM,EAAE,YAAY,WAAW,YAAY,WAAW,WAAA,IAAe,YAAY,EAAE,UAAU,IAAI;AAEjG,QAAM,QAAQ;AAAA,IACV,WAAW,IAAI,UAAU,SAAS,SAAS;AAAA,IAC3C;AAAA,EAAA;AAGJ,QAAM,gBAAgB,CAAC,UAA8B;AAEjD,QAAI,MAAM,cAAc,SAAS,MAAM,MAAqB,KAAK,CAAC,cAAc,MAAM,MAAqB,GAAG;AAC1G,UAAI,WAAW;AACX,kBAAU,gBAAgB,KAAK;AAAA,MACnC;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,UAAU,EAAE,GAAG,YAAY,GAAG,WAAW,eAAe,KAAK,YAAY,MAAA;AAE/E,MAAI,SAAS;AACT,WAAOA,eAAM,aAAa,UAA+B,OAAO;AAAA,EACpE;AAEA,SAAOA,+BAAA,cAAC,OAAA,EAAK,GAAG,QAAA,GAAU,QAAS;AACvC;AACA,KAAK,cAAc;"}
1
+ {"version":3,"file":"Item.js","sources":["../../../../src/primitives/Sortable/components/Item.tsx"],"sourcesContent":["import { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport React from 'react';\n\nexport type SortableItemId = string | number;\n\nexport type SortableListItemProps = Omit<React.HTMLAttributes<HTMLDivElement>, 'id'> & {\n disabled?: boolean;\n id: SortableItemId;\n asChild: boolean;\n};\n\nconst isFormElement = (element: HTMLElement) => {\n const formElementNodeNames = ['BUTTON', 'INPUT', 'TEXTAREA', 'SELECT', 'FIELDSET'];\n\n return formElementNodeNames.includes(element.nodeName);\n};\n\nexport function Item(props: SortableListItemProps) {\n const { asChild, children, disabled = false, id } = props;\n const { attributes, listeners, setNodeRef, transform, transition } = useSortable({ disabled, id });\n\n const style = {\n transform: CSS.Transform.toString(transform),\n transition,\n };\n\n const onPointerDown = (event: React.PointerEvent) => {\n // allow form components, like checkboxes, to be active\n if (\n event.currentTarget.contains(event.target as HTMLElement) &&\n !isFormElement(event.target as HTMLElement) &&\n listeners\n ) {\n listeners.onPointerDown?.(event);\n }\n };\n\n const elProps = { ...attributes, ...listeners, onPointerDown, ref: setNodeRef, style };\n\n if (asChild) {\n return React.cloneElement(children as React.JSX.Element, elProps);\n }\n\n return <div {...elProps}>{children}</div>;\n}\nItem.displayName = 'SortableListItem';\n"],"names":["React"],"mappings":";;;AAYA,MAAM,gBAAgB,CAAC,YAAyB;AAC5C,QAAM,uBAAuB,CAAC,UAAU,SAAS,YAAY,UAAU,UAAU;AAEjF,SAAO,qBAAqB,SAAS,QAAQ,QAAQ;AACzD;AAEO,SAAS,KAAK,OAA8B;AAC/C,QAAM,EAAE,SAAS,UAAU,WAAW,OAAO,OAAO;AACpD,QAAM,EAAE,YAAY,WAAW,YAAY,WAAW,WAAA,IAAe,YAAY,EAAE,UAAU,IAAI;AAEjG,QAAM,QAAQ;AAAA,IACV,WAAW,IAAI,UAAU,SAAS,SAAS;AAAA,IAC3C;AAAA,EAAA;AAGJ,QAAM,gBAAgB,CAAC,UAA8B;AAEjD,QACI,MAAM,cAAc,SAAS,MAAM,MAAqB,KACxD,CAAC,cAAc,MAAM,MAAqB,KAC1C,WACF;AACE,gBAAU,gBAAgB,KAAK;AAAA,IACnC;AAAA,EACJ;AAEA,QAAM,UAAU,EAAE,GAAG,YAAY,GAAG,WAAW,eAAe,KAAK,YAAY,MAAA;AAE/E,MAAI,SAAS;AACT,WAAOA,eAAM,aAAa,UAA+B,OAAO;AAAA,EACpE;AAEA,SAAOA,+BAAA,cAAC,OAAA,EAAK,GAAG,QAAA,GAAU,QAAS;AACvC;AACA,KAAK,cAAc;"}
@@ -15,7 +15,7 @@ function Body(props) {
15
15
  if (event.isDefaultPrevented() || event.isPropagationStopped() || !isEventTriggeredInsideTable) {
16
16
  return;
17
17
  }
18
- if (tableMeta.rowActive.rowActiveIndex !== void 0) {
18
+ if (tableMeta?.rowActive.rowActiveIndex !== void 0) {
19
19
  const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;
20
20
  const reachableRows = rows.getReachableRowCount(table);
21
21
  const isLastRow = tableMeta.rowActive.rowActiveIndex === reachableRows - 1;
@@ -78,14 +78,14 @@ function Body(props) {
78
78
  }
79
79
  const rowIndex = event.target.closest("tr[data-row-id]")?.getAttribute("data-row-index");
80
80
  if (!rowIndex) {
81
- tableMeta.rowActive.setRowHoverIndex(void 0);
81
+ tableMeta?.rowActive.setRowHoverIndex(void 0);
82
82
  return;
83
83
  }
84
- tableMeta.rowActive.setRowHoverIndex(Number(rowIndex));
84
+ tableMeta?.rowActive.setRowHoverIndex(Number(rowIndex));
85
85
  },
86
86
  [ref]
87
87
  );
88
- const handleMouseLeave = React.useCallback(() => tableMeta.rowActive.setRowHoverIndex(void 0), []);
88
+ const handleMouseLeave = React.useCallback(() => tableMeta?.rowActive.setRowHoverIndex(void 0), []);
89
89
  return /* @__PURE__ */ React.createElement(
90
90
  "tbody",
91
91
  {
@@ -1 +1 @@
1
- {"version":3,"file":"Body.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/Body.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { hasFocusableElement } from '@/utils/dom';\nimport { isPressingMetaKey } from '@/utils/keyboard';\n\nimport type { TableRef } from '../../../types';\nimport { getReachableRowCount } from '../../../useTableManager/util/rows';\n\nimport { useAugmentedFocusManager } from './util';\n\ntype BodyProps<TType = unknown> = React.HTMLAttributes<HTMLTableSectionElement> & {\n enableHorizontalArrowKeyNavigation?: boolean;\n scrollToIndex: (index: number) => void;\n table: ReactTable<TType>;\n tableElement: TableRef | null;\n};\n\nexport function Body<TType = unknown>(props: BodyProps<TType>) {\n const { enableHorizontalArrowKeyNavigation = false, scrollToIndex, table, tableElement, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const isEventTriggeredInsideTable = (event.target as HTMLElement)?.closest('tbody') === ref.current; // this prevents the handler from running when a dialog is opened from within the table (unless the table itself is in a dialog).\n\n if (event.isDefaultPrevented() || event.isPropagationStopped() || !isEventTriggeredInsideTable) {\n return;\n }\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;\n\n const reachableRows = getReachableRowCount(table);\n const isLastRow = tableMeta.rowActive.rowActiveIndex === reachableRows - 1;\n\n if (\n event.key === 'Tab' ||\n (enableHorizontalArrowKeyNavigation && (event.key === 'ArrowLeft' || event.key === 'ArrowRight'))\n ) {\n if (event.key === 'Tab' && !hasFocusableElement((event.target as HTMLElement).closest('tr[data-row-id]'))) {\n return;\n }\n\n tableMeta.rowActive.setHoverStatePaused(true);\n\n const isMetaKeyPressed = isPressingMetaKey(event);\n let focusedElement;\n\n switch (event.key) {\n case 'ArrowLeft':\n focusedElement = isMetaKeyPressed ? focusManager.focusFirst() : focusManager.focusPrevious(true);\n break;\n case 'ArrowRight':\n focusedElement = isMetaKeyPressed ? focusManager.focusLast() : focusManager.focusNext(true);\n\n // Scrolls table all the way to the right\n if (isMetaKeyPressed && tableElement) {\n tableElement.scrollLeft = tableElement.scrollWidth;\n }\n\n break;\n default:\n focusedElement = event.shiftKey ? focusManager.focusPrevious() : focusManager.focusNext();\n break;\n }\n\n if (focusedElement) {\n // override default behaviour, since we're handling focus internally now\n event.preventDefault();\n return;\n }\n\n // The code below only executes when focusedElement was undefined/null. This happens only when arrow-left/shift+tab\n // is pressed on the first cell or arrow-right/tab is pressed on the last cell.\n if (event.shiftKey || event.key === 'ArrowLeft') {\n if (!isFirstRow) {\n // there are no previous elements to focus, go up a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const prevIndex = tableMeta.rowActive.rowActiveIndex - 1;\n tableMeta.rowActive.setRowActiveIndex(prevIndex);\n requestAnimationFrame(() => {\n focusManager.focusLast();\n scrollToIndex(prevIndex);\n });\n }\n } else if (!isLastRow) {\n // there are no next elements to focus, go down a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const nextIndex = tableMeta.rowActive.rowActiveIndex + 1;\n tableMeta.rowActive.setRowActiveIndex(nextIndex);\n requestAnimationFrame(() => {\n focusManager.focusFirst();\n scrollToIndex(nextIndex);\n });\n }\n }\n }\n };\n const handleMouseMove = React.useCallback(\n (event: React.MouseEvent<HTMLTableSectionElement>) => {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const currentTable = ref.current?.closest('table');\n const targetTable = event.target.closest('table');\n\n // If we're in a different table context, don't handle the event\n if (targetTable !== currentTable) {\n return;\n }\n\n const rowIndex = event.target.closest('tr[data-row-id]')?.getAttribute('data-row-index');\n\n // Clear hover state if no valid row found, handles expanded section case too\n if (!rowIndex) {\n tableMeta.rowActive.setRowHoverIndex(undefined);\n return;\n }\n\n tableMeta.rowActive.setRowHoverIndex(Number(rowIndex));\n },\n [ref]\n );\n\n // Sometimes this event does not trigger if the mouse leaves the window without leaving boundary of the table\n // this is a browser level bug and there's not much to be done about it\n const handleMouseLeave = React.useCallback(() => tableMeta.rowActive.setRowHoverIndex(undefined), []);\n\n return (\n <tbody\n {...attributes}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handleMouseMove}\n // Prevents menu dropdowns inside the row from being closed straight after being opened, wehn clicked on a menu trigger\n onFocus={e => e.stopPropagation()}\n ref={ref}\n />\n );\n}\n"],"names":["useAugmentedFocusManager","getReachableRowCount","hasFocusableElement","isPressingMetaKey"],"mappings":"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"}
1
+ {"version":3,"file":"Body.cjs","sources":["../../../../../../src/primitives/Table/Core/components/Body/Body.tsx"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { hasFocusableElement } from '@/utils/dom';\nimport { isPressingMetaKey } from '@/utils/keyboard';\n\nimport type { TableRef } from '../../../types';\nimport { getReachableRowCount } from '../../../useTableManager/util/rows';\n\nimport { useAugmentedFocusManager } from './util';\n\ntype BodyProps<TType = unknown> = React.HTMLAttributes<HTMLTableSectionElement> & {\n enableHorizontalArrowKeyNavigation?: boolean;\n scrollToIndex: (index: number) => void;\n table: ReactTable<TType>;\n tableElement: TableRef | null;\n};\n\nexport function Body<TType = unknown>(props: BodyProps<TType>) {\n const { enableHorizontalArrowKeyNavigation = false, scrollToIndex, table, tableElement, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n // this prevents the handler from running when a dialog is opened from within the table (unless the table itself is in a dialog).\n const isEventTriggeredInsideTable = (event.target as HTMLElement)?.closest('tbody') === ref.current;\n\n if (event.isDefaultPrevented() || event.isPropagationStopped() || !isEventTriggeredInsideTable) {\n return;\n }\n\n if (tableMeta?.rowActive.rowActiveIndex !== undefined) {\n const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;\n\n const reachableRows = getReachableRowCount(table);\n const isLastRow = tableMeta.rowActive.rowActiveIndex === reachableRows - 1;\n\n if (\n event.key === 'Tab' ||\n (enableHorizontalArrowKeyNavigation && (event.key === 'ArrowLeft' || event.key === 'ArrowRight'))\n ) {\n if (event.key === 'Tab' && !hasFocusableElement((event.target as HTMLElement).closest('tr[data-row-id]'))) {\n return;\n }\n\n tableMeta.rowActive.setHoverStatePaused(true);\n\n const isMetaKeyPressed = isPressingMetaKey(event);\n let focusedElement;\n\n switch (event.key) {\n case 'ArrowLeft':\n focusedElement = isMetaKeyPressed ? focusManager.focusFirst() : focusManager.focusPrevious(true);\n break;\n case 'ArrowRight':\n focusedElement = isMetaKeyPressed ? focusManager.focusLast() : focusManager.focusNext(true);\n\n // Scrolls table all the way to the right\n if (isMetaKeyPressed && tableElement) {\n tableElement.scrollLeft = tableElement.scrollWidth;\n }\n\n break;\n default:\n focusedElement = event.shiftKey ? focusManager.focusPrevious() : focusManager.focusNext();\n break;\n }\n\n if (focusedElement) {\n // override default behaviour, since we're handling focus internally now\n event.preventDefault();\n return;\n }\n\n // The code below only executes when focusedElement was undefined/null. This happens only when arrow-left/shift+tab\n // is pressed on the first cell or arrow-right/tab is pressed on the last cell.\n if (event.shiftKey || event.key === 'ArrowLeft') {\n if (!isFirstRow) {\n // there are no previous elements to focus, go up a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const prevIndex = tableMeta.rowActive.rowActiveIndex - 1;\n tableMeta.rowActive.setRowActiveIndex(prevIndex);\n requestAnimationFrame(() => {\n focusManager.focusLast();\n scrollToIndex(prevIndex);\n });\n }\n } else if (!isLastRow) {\n // there are no next elements to focus, go down a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const nextIndex = tableMeta.rowActive.rowActiveIndex + 1;\n tableMeta.rowActive.setRowActiveIndex(nextIndex);\n requestAnimationFrame(() => {\n focusManager.focusFirst();\n scrollToIndex(nextIndex);\n });\n }\n }\n }\n };\n const handleMouseMove = React.useCallback(\n (event: React.MouseEvent<HTMLTableSectionElement>) => {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const currentTable = ref.current?.closest('table');\n const targetTable = event.target.closest('table');\n\n // If we're in a different table context, don't handle the event\n if (targetTable !== currentTable) {\n return;\n }\n\n const rowIndex = event.target.closest('tr[data-row-id]')?.getAttribute('data-row-index');\n\n // Clear hover state if no valid row found, handles expanded section case too\n if (!rowIndex) {\n tableMeta?.rowActive.setRowHoverIndex(undefined);\n return;\n }\n\n tableMeta?.rowActive.setRowHoverIndex(Number(rowIndex));\n },\n [ref]\n );\n\n // Sometimes this event does not trigger if the mouse leaves the window without leaving boundary of the table\n // this is a browser level bug and there's not much to be done about it\n const handleMouseLeave = React.useCallback(() => tableMeta?.rowActive.setRowHoverIndex(undefined), []);\n\n return (\n <tbody\n {...attributes}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handleMouseMove}\n // Prevents menu dropdowns inside the row from being closed straight after being opened, wehn clicked on a menu trigger\n onFocus={e => e.stopPropagation()}\n ref={ref}\n />\n );\n}\n"],"names":["useAugmentedFocusManager","getReachableRowCount","hasFocusableElement","isPressingMetaKey"],"mappings":"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"}
@@ -13,7 +13,7 @@ function Body(props) {
13
13
  if (event.isDefaultPrevented() || event.isPropagationStopped() || !isEventTriggeredInsideTable) {
14
14
  return;
15
15
  }
16
- if (tableMeta.rowActive.rowActiveIndex !== void 0) {
16
+ if (tableMeta?.rowActive.rowActiveIndex !== void 0) {
17
17
  const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;
18
18
  const reachableRows = getReachableRowCount(table);
19
19
  const isLastRow = tableMeta.rowActive.rowActiveIndex === reachableRows - 1;
@@ -76,14 +76,14 @@ function Body(props) {
76
76
  }
77
77
  const rowIndex = event.target.closest("tr[data-row-id]")?.getAttribute("data-row-index");
78
78
  if (!rowIndex) {
79
- tableMeta.rowActive.setRowHoverIndex(void 0);
79
+ tableMeta?.rowActive.setRowHoverIndex(void 0);
80
80
  return;
81
81
  }
82
- tableMeta.rowActive.setRowHoverIndex(Number(rowIndex));
82
+ tableMeta?.rowActive.setRowHoverIndex(Number(rowIndex));
83
83
  },
84
84
  [ref]
85
85
  );
86
- const handleMouseLeave = React__default.useCallback(() => tableMeta.rowActive.setRowHoverIndex(void 0), []);
86
+ const handleMouseLeave = React__default.useCallback(() => tableMeta?.rowActive.setRowHoverIndex(void 0), []);
87
87
  return /* @__PURE__ */ React__default.createElement(
88
88
  "tbody",
89
89
  {
@@ -1 +1 @@
1
- {"version":3,"file":"Body.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/Body.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { hasFocusableElement } from '@/utils/dom';\nimport { isPressingMetaKey } from '@/utils/keyboard';\n\nimport type { TableRef } from '../../../types';\nimport { getReachableRowCount } from '../../../useTableManager/util/rows';\n\nimport { useAugmentedFocusManager } from './util';\n\ntype BodyProps<TType = unknown> = React.HTMLAttributes<HTMLTableSectionElement> & {\n enableHorizontalArrowKeyNavigation?: boolean;\n scrollToIndex: (index: number) => void;\n table: ReactTable<TType>;\n tableElement: TableRef | null;\n};\n\nexport function Body<TType = unknown>(props: BodyProps<TType>) {\n const { enableHorizontalArrowKeyNavigation = false, scrollToIndex, table, tableElement, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n const isEventTriggeredInsideTable = (event.target as HTMLElement)?.closest('tbody') === ref.current; // this prevents the handler from running when a dialog is opened from within the table (unless the table itself is in a dialog).\n\n if (event.isDefaultPrevented() || event.isPropagationStopped() || !isEventTriggeredInsideTable) {\n return;\n }\n\n if (tableMeta.rowActive.rowActiveIndex !== undefined) {\n const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;\n\n const reachableRows = getReachableRowCount(table);\n const isLastRow = tableMeta.rowActive.rowActiveIndex === reachableRows - 1;\n\n if (\n event.key === 'Tab' ||\n (enableHorizontalArrowKeyNavigation && (event.key === 'ArrowLeft' || event.key === 'ArrowRight'))\n ) {\n if (event.key === 'Tab' && !hasFocusableElement((event.target as HTMLElement).closest('tr[data-row-id]'))) {\n return;\n }\n\n tableMeta.rowActive.setHoverStatePaused(true);\n\n const isMetaKeyPressed = isPressingMetaKey(event);\n let focusedElement;\n\n switch (event.key) {\n case 'ArrowLeft':\n focusedElement = isMetaKeyPressed ? focusManager.focusFirst() : focusManager.focusPrevious(true);\n break;\n case 'ArrowRight':\n focusedElement = isMetaKeyPressed ? focusManager.focusLast() : focusManager.focusNext(true);\n\n // Scrolls table all the way to the right\n if (isMetaKeyPressed && tableElement) {\n tableElement.scrollLeft = tableElement.scrollWidth;\n }\n\n break;\n default:\n focusedElement = event.shiftKey ? focusManager.focusPrevious() : focusManager.focusNext();\n break;\n }\n\n if (focusedElement) {\n // override default behaviour, since we're handling focus internally now\n event.preventDefault();\n return;\n }\n\n // The code below only executes when focusedElement was undefined/null. This happens only when arrow-left/shift+tab\n // is pressed on the first cell or arrow-right/tab is pressed on the last cell.\n if (event.shiftKey || event.key === 'ArrowLeft') {\n if (!isFirstRow) {\n // there are no previous elements to focus, go up a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const prevIndex = tableMeta.rowActive.rowActiveIndex - 1;\n tableMeta.rowActive.setRowActiveIndex(prevIndex);\n requestAnimationFrame(() => {\n focusManager.focusLast();\n scrollToIndex(prevIndex);\n });\n }\n } else if (!isLastRow) {\n // there are no next elements to focus, go down a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const nextIndex = tableMeta.rowActive.rowActiveIndex + 1;\n tableMeta.rowActive.setRowActiveIndex(nextIndex);\n requestAnimationFrame(() => {\n focusManager.focusFirst();\n scrollToIndex(nextIndex);\n });\n }\n }\n }\n };\n const handleMouseMove = React.useCallback(\n (event: React.MouseEvent<HTMLTableSectionElement>) => {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const currentTable = ref.current?.closest('table');\n const targetTable = event.target.closest('table');\n\n // If we're in a different table context, don't handle the event\n if (targetTable !== currentTable) {\n return;\n }\n\n const rowIndex = event.target.closest('tr[data-row-id]')?.getAttribute('data-row-index');\n\n // Clear hover state if no valid row found, handles expanded section case too\n if (!rowIndex) {\n tableMeta.rowActive.setRowHoverIndex(undefined);\n return;\n }\n\n tableMeta.rowActive.setRowHoverIndex(Number(rowIndex));\n },\n [ref]\n );\n\n // Sometimes this event does not trigger if the mouse leaves the window without leaving boundary of the table\n // this is a browser level bug and there's not much to be done about it\n const handleMouseLeave = React.useCallback(() => tableMeta.rowActive.setRowHoverIndex(undefined), []);\n\n return (\n <tbody\n {...attributes}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handleMouseMove}\n // Prevents menu dropdowns inside the row from being closed straight after being opened, wehn clicked on a menu trigger\n onFocus={e => e.stopPropagation()}\n ref={ref}\n />\n );\n}\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"Body.js","sources":["../../../../../../src/primitives/Table/Core/components/Body/Body.tsx"],"sourcesContent":["import type { Table as ReactTable } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { hasFocusableElement } from '@/utils/dom';\nimport { isPressingMetaKey } from '@/utils/keyboard';\n\nimport type { TableRef } from '../../../types';\nimport { getReachableRowCount } from '../../../useTableManager/util/rows';\n\nimport { useAugmentedFocusManager } from './util';\n\ntype BodyProps<TType = unknown> = React.HTMLAttributes<HTMLTableSectionElement> & {\n enableHorizontalArrowKeyNavigation?: boolean;\n scrollToIndex: (index: number) => void;\n table: ReactTable<TType>;\n tableElement: TableRef | null;\n};\n\nexport function Body<TType = unknown>(props: BodyProps<TType>) {\n const { enableHorizontalArrowKeyNavigation = false, scrollToIndex, table, tableElement, ...attributes } = props;\n const ref = React.useRef<HTMLTableSectionElement>(null);\n const focusManager = useAugmentedFocusManager();\n const tableMeta = table.options.meta;\n\n const handleKeyDown = (event: React.KeyboardEvent) => {\n // this prevents the handler from running when a dialog is opened from within the table (unless the table itself is in a dialog).\n const isEventTriggeredInsideTable = (event.target as HTMLElement)?.closest('tbody') === ref.current;\n\n if (event.isDefaultPrevented() || event.isPropagationStopped() || !isEventTriggeredInsideTable) {\n return;\n }\n\n if (tableMeta?.rowActive.rowActiveIndex !== undefined) {\n const isFirstRow = tableMeta.rowActive.rowActiveIndex === 0;\n\n const reachableRows = getReachableRowCount(table);\n const isLastRow = tableMeta.rowActive.rowActiveIndex === reachableRows - 1;\n\n if (\n event.key === 'Tab' ||\n (enableHorizontalArrowKeyNavigation && (event.key === 'ArrowLeft' || event.key === 'ArrowRight'))\n ) {\n if (event.key === 'Tab' && !hasFocusableElement((event.target as HTMLElement).closest('tr[data-row-id]'))) {\n return;\n }\n\n tableMeta.rowActive.setHoverStatePaused(true);\n\n const isMetaKeyPressed = isPressingMetaKey(event);\n let focusedElement;\n\n switch (event.key) {\n case 'ArrowLeft':\n focusedElement = isMetaKeyPressed ? focusManager.focusFirst() : focusManager.focusPrevious(true);\n break;\n case 'ArrowRight':\n focusedElement = isMetaKeyPressed ? focusManager.focusLast() : focusManager.focusNext(true);\n\n // Scrolls table all the way to the right\n if (isMetaKeyPressed && tableElement) {\n tableElement.scrollLeft = tableElement.scrollWidth;\n }\n\n break;\n default:\n focusedElement = event.shiftKey ? focusManager.focusPrevious() : focusManager.focusNext();\n break;\n }\n\n if (focusedElement) {\n // override default behaviour, since we're handling focus internally now\n event.preventDefault();\n return;\n }\n\n // The code below only executes when focusedElement was undefined/null. This happens only when arrow-left/shift+tab\n // is pressed on the first cell or arrow-right/tab is pressed on the last cell.\n if (event.shiftKey || event.key === 'ArrowLeft') {\n if (!isFirstRow) {\n // there are no previous elements to focus, go up a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const prevIndex = tableMeta.rowActive.rowActiveIndex - 1;\n tableMeta.rowActive.setRowActiveIndex(prevIndex);\n requestAnimationFrame(() => {\n focusManager.focusLast();\n scrollToIndex(prevIndex);\n });\n }\n } else if (!isLastRow) {\n // there are no next elements to focus, go down a row or go outside the table\n // but only if there are actually any focusable elements in the row\n event.preventDefault();\n const nextIndex = tableMeta.rowActive.rowActiveIndex + 1;\n tableMeta.rowActive.setRowActiveIndex(nextIndex);\n requestAnimationFrame(() => {\n focusManager.focusFirst();\n scrollToIndex(nextIndex);\n });\n }\n }\n }\n };\n const handleMouseMove = React.useCallback(\n (event: React.MouseEvent<HTMLTableSectionElement>) => {\n if (!(event.target instanceof HTMLElement)) {\n return;\n }\n\n const currentTable = ref.current?.closest('table');\n const targetTable = event.target.closest('table');\n\n // If we're in a different table context, don't handle the event\n if (targetTable !== currentTable) {\n return;\n }\n\n const rowIndex = event.target.closest('tr[data-row-id]')?.getAttribute('data-row-index');\n\n // Clear hover state if no valid row found, handles expanded section case too\n if (!rowIndex) {\n tableMeta?.rowActive.setRowHoverIndex(undefined);\n return;\n }\n\n tableMeta?.rowActive.setRowHoverIndex(Number(rowIndex));\n },\n [ref]\n );\n\n // Sometimes this event does not trigger if the mouse leaves the window without leaving boundary of the table\n // this is a browser level bug and there's not much to be done about it\n const handleMouseLeave = React.useCallback(() => tableMeta?.rowActive.setRowHoverIndex(undefined), []);\n\n return (\n <tbody\n {...attributes}\n onKeyDown={handleKeyDown}\n onMouseLeave={handleMouseLeave}\n onMouseMove={handleMouseMove}\n // Prevents menu dropdowns inside the row from being closed straight after being opened, wehn clicked on a menu trigger\n onFocus={e => e.stopPropagation()}\n ref={ref}\n />\n );\n}\n"],"names":["React"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"DisplayCell.cjs","sources":["../../../../../../../../src/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.tsx"],"sourcesContent":["import type { ColumnMeta as ReactTableColumnMeta } from '@tanstack/react-table';\nimport { flexRender } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\nimport type { TableCellRendererProps } from '../../../../types';\nimport { getCellAttributes } from '../util';\n\nexport function DisplayCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, index, isHighlighted, ...cellAttributes } = props;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const attributes = getCellAttributes(cell, index, isHighlighted);\n const isTruncated = !!columnMeta.enableTruncate;\n\n let content;\n\n if (isInternalColumn(cell.column.id)) {\n content = flexRender(cell.column.columnDef.cell, cell.getContext());\n } else {\n // using flexRender renders as a react component not a function, and that causes re-render issues for us\n // for example, clicks on buttons in cells no longer works until the row becomes active\n content =\n typeof cell.column.columnDef.cell === 'function' ? cell.column.columnDef.cell(cell.getContext()) : cell.getValue();\n }\n\n return (\n <MemoedDisplayCell {...cellAttributes} {...attributes} cellRef={cellRef} isTruncated={isTruncated}>\n {content ?? columnMeta.emptyState}\n </MemoedDisplayCell>\n );\n}\n\ntype MemoedDisplayCellProps = React.TdHTMLAttributes<HTMLTableCellElement> & {\n cellRef: any;\n isTruncated: boolean;\n};\n\nconst MemoedDisplayCell = React.memo(function MemoedDisplayCell(props: MemoedDisplayCellProps) {\n const { cellRef, children, isTruncated, ...cellAttributes } = props;\n\n return (\n <td {...cellAttributes} ref={cellRef}>\n {isTruncated ? <span className=\"truncate print:overflow-visible print:whitespace-normal\">{children}</span> : children}\n </td>\n );\n});\n"],"names":["getCellAttributes","isInternalColumn","flexRender","MemoedDisplayCell"],"mappings":";;;;;;AAQO,SAAS,YAA6B,OAAsC;AAC/E,QAAM,EAAE,MAAM,SAAS,OAAO,eAAe,GAAG,mBAAmB;AACnE,QAAM,aAAa,KAAK,OAAO,UAAU;AACzC,QAAM,aAAaA,KAAAA,kBAAkB,MAAM,OAAO,aAAa;AAC/D,QAAM,cAAc,CAAC,CAAC,WAAW;AAEjC,MAAI;AAEJ,MAAIC,yBAAiB,KAAK,OAAO,EAAE,GAAG;AAClC,cAAUC,WAAAA,WAAW,KAAK,OAAO,UAAU,MAAM,KAAK,YAAY;AAAA,EACtE,OAAO;AAGH,cACI,OAAO,KAAK,OAAO,UAAU,SAAS,aAAa,KAAK,OAAO,UAAU,KAAK,KAAK,WAAA,CAAY,IAAI,KAAK,SAAA;AAAA,EAChH;AAEA,SACI,sBAAA,cAAC,mBAAA,EAAmB,GAAG,gBAAiB,GAAG,YAAY,SAAkB,YAAA,GACpE,WAAW,WAAW,UAC3B;AAER;AAOA,MAAM,oBAAoB,MAAM,KAAK,SAASC,mBAAkB,OAA+B;AAC3F,QAAM,EAAE,SAAS,UAAU,aAAa,GAAG,mBAAmB;AAE9D,SACI,sBAAA,cAAC,MAAA,EAAI,GAAG,gBAAgB,KAAK,WACxB,cAAc,sBAAA,cAAC,QAAA,EAAK,WAAU,6DAA2D,QAAS,IAAU,QACjH;AAER,CAAC;;"}
1
+ {"version":3,"file":"DisplayCell.cjs","sources":["../../../../../../../../src/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.tsx"],"sourcesContent":["import type { ColumnMeta as ReactTableColumnMeta } from '@tanstack/react-table';\nimport { flexRender } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\nimport type { TableCellRendererProps } from '../../../../types';\nimport { getCellAttributes } from '../util';\n\nexport function DisplayCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, index, isHighlighted, ...cellAttributes } = props;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const attributes = getCellAttributes(cell, index, isHighlighted);\n const isTruncated = !!columnMeta.enableTruncate;\n\n let content;\n\n if (isInternalColumn(cell.column.id)) {\n content = flexRender(cell.column.columnDef.cell, cell.getContext());\n } else {\n // using flexRender renders as a react component not a function, and that causes re-render issues for us\n // for example, clicks on buttons in cells no longer works until the row becomes active\n content =\n typeof cell.column.columnDef.cell === 'function' ? cell.column.columnDef.cell(cell.getContext()) : cell.getValue();\n }\n\n return (\n <MemoedDisplayCell {...cellAttributes} {...attributes} cellRef={cellRef} isTruncated={isTruncated}>\n {content ?? columnMeta.emptyState}\n </MemoedDisplayCell>\n );\n}\n\ntype MemoedDisplayCellProps = React.TdHTMLAttributes<HTMLTableCellElement> & {\n cellRef: React.Ref<HTMLTableCellElement>;\n isTruncated: boolean;\n};\n\nconst MemoedDisplayCell = React.memo(function MemoedDisplayCell(props: MemoedDisplayCellProps) {\n const { cellRef, children, isTruncated, ...cellAttributes } = props;\n\n return (\n <td {...cellAttributes} ref={cellRef}>\n {isTruncated ? <span className=\"truncate print:overflow-visible print:whitespace-normal\">{children}</span> : children}\n </td>\n );\n});\n"],"names":["getCellAttributes","isInternalColumn","flexRender","MemoedDisplayCell"],"mappings":";;;;;;AAQO,SAAS,YAA6B,OAAsC;AAC/E,QAAM,EAAE,MAAM,SAAS,OAAO,eAAe,GAAG,mBAAmB;AACnE,QAAM,aAAa,KAAK,OAAO,UAAU;AACzC,QAAM,aAAaA,KAAAA,kBAAkB,MAAM,OAAO,aAAa;AAC/D,QAAM,cAAc,CAAC,CAAC,WAAW;AAEjC,MAAI;AAEJ,MAAIC,yBAAiB,KAAK,OAAO,EAAE,GAAG;AAClC,cAAUC,WAAAA,WAAW,KAAK,OAAO,UAAU,MAAM,KAAK,YAAY;AAAA,EACtE,OAAO;AAGH,cACI,OAAO,KAAK,OAAO,UAAU,SAAS,aAAa,KAAK,OAAO,UAAU,KAAK,KAAK,WAAA,CAAY,IAAI,KAAK,SAAA;AAAA,EAChH;AAEA,SACI,sBAAA,cAAC,mBAAA,EAAmB,GAAG,gBAAiB,GAAG,YAAY,SAAkB,YAAA,GACpE,WAAW,WAAW,UAC3B;AAER;AAOA,MAAM,oBAAoB,MAAM,KAAK,SAASC,mBAAkB,OAA+B;AAC3F,QAAM,EAAE,SAAS,UAAU,aAAa,GAAG,mBAAmB;AAE9D,SACI,sBAAA,cAAC,MAAA,EAAI,GAAG,gBAAgB,KAAK,WACxB,cAAc,sBAAA,cAAC,QAAA,EAAK,WAAU,6DAA2D,QAAS,IAAU,QACjH;AAER,CAAC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DisplayCell.js","sources":["../../../../../../../../src/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.tsx"],"sourcesContent":["import type { ColumnMeta as ReactTableColumnMeta } from '@tanstack/react-table';\nimport { flexRender } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\nimport type { TableCellRendererProps } from '../../../../types';\nimport { getCellAttributes } from '../util';\n\nexport function DisplayCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, index, isHighlighted, ...cellAttributes } = props;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const attributes = getCellAttributes(cell, index, isHighlighted);\n const isTruncated = !!columnMeta.enableTruncate;\n\n let content;\n\n if (isInternalColumn(cell.column.id)) {\n content = flexRender(cell.column.columnDef.cell, cell.getContext());\n } else {\n // using flexRender renders as a react component not a function, and that causes re-render issues for us\n // for example, clicks on buttons in cells no longer works until the row becomes active\n content =\n typeof cell.column.columnDef.cell === 'function' ? cell.column.columnDef.cell(cell.getContext()) : cell.getValue();\n }\n\n return (\n <MemoedDisplayCell {...cellAttributes} {...attributes} cellRef={cellRef} isTruncated={isTruncated}>\n {content ?? columnMeta.emptyState}\n </MemoedDisplayCell>\n );\n}\n\ntype MemoedDisplayCellProps = React.TdHTMLAttributes<HTMLTableCellElement> & {\n cellRef: any;\n isTruncated: boolean;\n};\n\nconst MemoedDisplayCell = React.memo(function MemoedDisplayCell(props: MemoedDisplayCellProps) {\n const { cellRef, children, isTruncated, ...cellAttributes } = props;\n\n return (\n <td {...cellAttributes} ref={cellRef}>\n {isTruncated ? <span className=\"truncate print:overflow-visible print:whitespace-normal\">{children}</span> : children}\n </td>\n );\n});\n"],"names":["React","MemoedDisplayCell"],"mappings":";;;;AAQO,SAAS,YAA6B,OAAsC;AAC/E,QAAM,EAAE,MAAM,SAAS,OAAO,eAAe,GAAG,mBAAmB;AACnE,QAAM,aAAa,KAAK,OAAO,UAAU;AACzC,QAAM,aAAa,kBAAkB,MAAM,OAAO,aAAa;AAC/D,QAAM,cAAc,CAAC,CAAC,WAAW;AAEjC,MAAI;AAEJ,MAAI,iBAAiB,KAAK,OAAO,EAAE,GAAG;AAClC,cAAU,WAAW,KAAK,OAAO,UAAU,MAAM,KAAK,YAAY;AAAA,EACtE,OAAO;AAGH,cACI,OAAO,KAAK,OAAO,UAAU,SAAS,aAAa,KAAK,OAAO,UAAU,KAAK,KAAK,WAAA,CAAY,IAAI,KAAK,SAAA;AAAA,EAChH;AAEA,SACIA,+BAAA,cAAC,mBAAA,EAAmB,GAAG,gBAAiB,GAAG,YAAY,SAAkB,YAAA,GACpE,WAAW,WAAW,UAC3B;AAER;AAOA,MAAM,oBAAoBA,eAAM,KAAK,SAASC,mBAAkB,OAA+B;AAC3F,QAAM,EAAE,SAAS,UAAU,aAAa,GAAG,mBAAmB;AAE9D,SACID,+BAAA,cAAC,MAAA,EAAI,GAAG,gBAAgB,KAAK,WACxB,cAAcA,+BAAA,cAAC,QAAA,EAAK,WAAU,6DAA2D,QAAS,IAAU,QACjH;AAER,CAAC;"}
1
+ {"version":3,"file":"DisplayCell.js","sources":["../../../../../../../../src/primitives/Table/Core/components/Columns/Cell/BuiltIns/DisplayCell.tsx"],"sourcesContent":["import type { ColumnMeta as ReactTableColumnMeta } from '@tanstack/react-table';\nimport { flexRender } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\nimport type { TableCellRendererProps } from '../../../../types';\nimport { getCellAttributes } from '../util';\n\nexport function DisplayCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, index, isHighlighted, ...cellAttributes } = props;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const attributes = getCellAttributes(cell, index, isHighlighted);\n const isTruncated = !!columnMeta.enableTruncate;\n\n let content;\n\n if (isInternalColumn(cell.column.id)) {\n content = flexRender(cell.column.columnDef.cell, cell.getContext());\n } else {\n // using flexRender renders as a react component not a function, and that causes re-render issues for us\n // for example, clicks on buttons in cells no longer works until the row becomes active\n content =\n typeof cell.column.columnDef.cell === 'function' ? cell.column.columnDef.cell(cell.getContext()) : cell.getValue();\n }\n\n return (\n <MemoedDisplayCell {...cellAttributes} {...attributes} cellRef={cellRef} isTruncated={isTruncated}>\n {content ?? columnMeta.emptyState}\n </MemoedDisplayCell>\n );\n}\n\ntype MemoedDisplayCellProps = React.TdHTMLAttributes<HTMLTableCellElement> & {\n cellRef: React.Ref<HTMLTableCellElement>;\n isTruncated: boolean;\n};\n\nconst MemoedDisplayCell = React.memo(function MemoedDisplayCell(props: MemoedDisplayCellProps) {\n const { cellRef, children, isTruncated, ...cellAttributes } = props;\n\n return (\n <td {...cellAttributes} ref={cellRef}>\n {isTruncated ? <span className=\"truncate print:overflow-visible print:whitespace-normal\">{children}</span> : children}\n </td>\n );\n});\n"],"names":["React","MemoedDisplayCell"],"mappings":";;;;AAQO,SAAS,YAA6B,OAAsC;AAC/E,QAAM,EAAE,MAAM,SAAS,OAAO,eAAe,GAAG,mBAAmB;AACnE,QAAM,aAAa,KAAK,OAAO,UAAU;AACzC,QAAM,aAAa,kBAAkB,MAAM,OAAO,aAAa;AAC/D,QAAM,cAAc,CAAC,CAAC,WAAW;AAEjC,MAAI;AAEJ,MAAI,iBAAiB,KAAK,OAAO,EAAE,GAAG;AAClC,cAAU,WAAW,KAAK,OAAO,UAAU,MAAM,KAAK,YAAY;AAAA,EACtE,OAAO;AAGH,cACI,OAAO,KAAK,OAAO,UAAU,SAAS,aAAa,KAAK,OAAO,UAAU,KAAK,KAAK,WAAA,CAAY,IAAI,KAAK,SAAA;AAAA,EAChH;AAEA,SACIA,+BAAA,cAAC,mBAAA,EAAmB,GAAG,gBAAiB,GAAG,YAAY,SAAkB,YAAA,GACpE,WAAW,WAAW,UAC3B;AAER;AAOA,MAAM,oBAAoBA,eAAM,KAAK,SAASC,mBAAkB,OAA+B;AAC3F,QAAM,EAAE,SAAS,UAAU,aAAa,GAAG,mBAAmB;AAE9D,SACID,+BAAA,cAAC,MAAA,EAAI,GAAG,gBAAgB,KAAK,WACxB,cAAcA,+BAAA,cAAC,QAAA,EAAK,WAAU,6DAA2D,QAAS,IAAU,QACjH;AAER,CAAC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"GroupedCell.cjs","sources":["../../../../../../../../src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableRowActionGroupRenderer } from '../../../../../types';\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\nimport type { TableCellRendererProps } from '../../../../types';\nimport { RowContext } from '../../../Row/RowContext';\nimport { Actions as RowGroupActions } from '../../Internal/Actions';\nimport { getCellAttributes } from '../util';\n\nexport function GroupedCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, index, isHighlighted } = props;\n const { table } = cell.getContext();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const attributes = getCellAttributes(cell, index, isHighlighted);\n\n const { isHovered, rowIndex } = React.useContext(RowContext);\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const canShowActions = isActiveRow || (isHovered && !tableMeta.rowActive.isHoverStatePaused);\n\n // Set colSpan based on the count of visible cells, including '__actions' and non-internal columns, so that\n // rowGroupActions aligns with rowActions.\n const colSpan =\n cell.row.getVisibleCells().filter(c => c.column.id === '__actions' || !isInternalColumn(c.column.id)).length - 1;\n const subRows = cell.getContext().row.subRows.map(row => row.original);\n\n // using flexRender renders as a react component not a function, and that causes re-render issues for us\n // for example, clicks on buttons in cells no longer works until the row becomes active\n const content = typeof cell.column.columnDef.cell === 'function' ? cell.column.columnDef.cell(cell.getContext()) : null;\n\n return (\n <MemoedGroupedCell<TType>\n {...attributes}\n canShowActions={canShowActions}\n cellRef={cellRef}\n colSpan={colSpan}\n rowActions={tableMeta.rowGroups.rowActionsForGroup}\n rowId={cell.row.id}\n subRows={subRows}\n table={table}>\n {content}\n </MemoedGroupedCell>\n );\n}\n\ntype MemoedGroupedCellProps<TType = unknown> = React.TdHTMLAttributes<HTMLTableCellElement> & {\n canShowActions: boolean;\n cellRef: React.RefObject<HTMLTableCellElement | null>;\n colSpan: number;\n rowActions?: TableRowActionGroupRenderer<TType>[];\n rowId: string;\n subRows: TType[];\n table: ReactTable<TType>;\n};\n\nconst MemoedGroupedCell = React.memo(function MemoedGroupedCell<TType = unknown>(props: MemoedGroupedCellProps<TType>) {\n const { canShowActions, cellRef, children, colSpan, rowActions, rowId, subRows, table, ...attributes } = props;\n\n return (\n // pr-1 is needed to align group row actions with row actions in sibling rows, if present\n <td {...attributes} className=\"!pr-1\" ref={cellRef} style={{ gridColumn: `span ${colSpan} / span ${colSpan}` }}>\n <span className=\"grow\">{children}</span>\n {rowActions?.length && canShowActions ? (\n <RowGroupActions<TType>\n actions={rowActions as any}\n actionsLength={4}\n data={subRows}\n isActiveRow\n rowId={rowId}\n table={table}\n />\n ) : null}\n </td>\n );\n}) as <TType = unknown>(props: MemoedGroupedCellProps<TType>) => React.JSX.Element;\n"],"names":["getCellAttributes","RowContext","isInternalColumn","MemoedGroupedCell","RowGroupActions"],"mappings":";;;;;;;AAUO,SAAS,YAA6B,OAAsC;AAC/E,QAAM,EAAE,MAAM,SAAS,OAAO,kBAAkB;AAChD,QAAM,EAAE,MAAA,IAAU,KAAK,WAAA;AACvB,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,aAAaA,KAAAA,kBAAkB,MAAM,OAAO,aAAa;AAE/D,QAAM,EAAE,WAAW,SAAA,IAAa,MAAM,WAAWC,WAAAA,UAAU;AAC3D,QAAM,cAAc,UAAU,UAAU,mBAAmB;AAC3D,QAAM,iBAAiB,eAAgB,aAAa,CAAC,UAAU,UAAU;AAIzE,QAAM,UACF,KAAK,IAAI,kBAAkB,OAAO,OAAK,EAAE,OAAO,OAAO,eAAe,CAACC,QAAAA,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS;AACnH,QAAM,UAAU,KAAK,WAAA,EAAa,IAAI,QAAQ,IAAI,CAAA,QAAO,IAAI,QAAQ;AAIrE,QAAM,UAAU,OAAO,KAAK,OAAO,UAAU,SAAS,aAAa,KAAK,OAAO,UAAU,KAAK,KAAK,WAAA,CAAY,IAAI;AAEnH,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY,UAAU,UAAU;AAAA,MAChC,OAAO,KAAK,IAAI;AAAA,MAChB;AAAA,MACA;AAAA,IAAA;AAAA,IACC;AAAA,EAAA;AAGb;AAYA,MAAM,oBAAoB,MAAM,KAAK,SAASC,mBAAmC,OAAsC;AACnH,QAAM,EAAE,gBAAgB,SAAS,UAAU,SAAS,YAAY,OAAO,SAAS,OAAO,GAAG,WAAA,IAAe;AAEzG;AAAA;AAAA,IAEI,sBAAA,cAAC,MAAA,EAAI,GAAG,YAAY,WAAU,SAAQ,KAAK,SAAS,OAAO,EAAE,YAAY,QAAQ,OAAO,WAAW,OAAO,GAAA,EAAG,GACzG,sBAAA,cAAC,QAAA,EAAK,WAAU,OAAA,GAAQ,QAAS,GAChC,YAAY,UAAU,iBACnB,sBAAA;AAAA,MAACC,QAAAA;AAAAA,MAAA;AAAA,QACG,SAAS;AAAA,QACT,eAAe;AAAA,QACf,MAAM;AAAA,QACN,aAAW;AAAA,QACX;AAAA,QACA;AAAA,MAAA;AAAA,IAAA,IAEJ,IACR;AAAA;AAER,CAAC;;"}
1
+ {"version":3,"file":"GroupedCell.cjs","sources":["../../../../../../../../src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableRowActionGroupRenderer } from '../../../../../types';\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\nimport type { TableCellRendererProps } from '../../../../types';\nimport { RowContext } from '../../../Row/RowContext';\nimport { Actions as RowGroupActions } from '../../Internal/Actions';\nimport { getCellAttributes } from '../util';\n\nexport function GroupedCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, index, isHighlighted } = props;\n const { table } = cell.getContext();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const attributes = getCellAttributes(cell, index, isHighlighted);\n\n const { isHovered, rowIndex } = React.useContext(RowContext);\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const canShowActions = isActiveRow || (isHovered && !tableMeta.rowActive.isHoverStatePaused);\n\n // Set colSpan based on the count of visible cells, including '__actions' and non-internal columns, so that\n // rowGroupActions aligns with rowActions.\n const colSpan =\n cell.row.getVisibleCells().filter(c => c.column.id === '__actions' || !isInternalColumn(c.column.id)).length - 1;\n const subRows = cell.getContext().row.subRows.map(row => row.original);\n\n // using flexRender renders as a react component not a function, and that causes re-render issues for us\n // for example, clicks on buttons in cells no longer works until the row becomes active\n const content = typeof cell.column.columnDef.cell === 'function' ? cell.column.columnDef.cell(cell.getContext()) : null;\n\n return (\n <MemoedGroupedCell<TType>\n {...attributes}\n canShowActions={canShowActions}\n cellRef={cellRef}\n colSpan={colSpan}\n rowActions={tableMeta.rowGroups.rowActionsForGroup}\n rowId={cell.row.id}\n subRows={subRows}\n table={table}>\n {content}\n </MemoedGroupedCell>\n );\n}\n\ntype MemoedGroupedCellProps<TType = unknown> = React.TdHTMLAttributes<HTMLTableCellElement> & {\n canShowActions: boolean;\n cellRef: React.Ref<HTMLTableCellElement>;\n colSpan: number;\n rowActions?: TableRowActionGroupRenderer<TType>[];\n rowId: string;\n subRows: TType[];\n table: ReactTable<TType>;\n};\n\nconst MemoedGroupedCell = React.memo(function MemoedGroupedCell<TType = unknown>(props: MemoedGroupedCellProps<TType>) {\n const { canShowActions, cellRef, children, colSpan, rowActions, rowId, subRows, table, ...attributes } = props;\n\n return (\n // pr-1 is needed to align group row actions with row actions in sibling rows, if present\n <td {...attributes} className=\"!pr-1\" ref={cellRef} style={{ gridColumn: `span ${colSpan} / span ${colSpan}` }}>\n <span className=\"grow\">{children}</span>\n {rowActions?.length && canShowActions ? (\n <RowGroupActions<TType>\n actions={rowActions as any}\n actionsLength={4}\n data={subRows}\n isActiveRow\n rowId={rowId}\n table={table}\n />\n ) : null}\n </td>\n );\n}) as <TType = unknown>(props: MemoedGroupedCellProps<TType>) => React.JSX.Element;\n"],"names":["getCellAttributes","RowContext","isInternalColumn","MemoedGroupedCell","RowGroupActions"],"mappings":";;;;;;;AAUO,SAAS,YAA6B,OAAsC;AAC/E,QAAM,EAAE,MAAM,SAAS,OAAO,kBAAkB;AAChD,QAAM,EAAE,MAAA,IAAU,KAAK,WAAA;AACvB,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,aAAaA,KAAAA,kBAAkB,MAAM,OAAO,aAAa;AAE/D,QAAM,EAAE,WAAW,SAAA,IAAa,MAAM,WAAWC,WAAAA,UAAU;AAC3D,QAAM,cAAc,UAAU,UAAU,mBAAmB;AAC3D,QAAM,iBAAiB,eAAgB,aAAa,CAAC,UAAU,UAAU;AAIzE,QAAM,UACF,KAAK,IAAI,kBAAkB,OAAO,OAAK,EAAE,OAAO,OAAO,eAAe,CAACC,QAAAA,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS;AACnH,QAAM,UAAU,KAAK,WAAA,EAAa,IAAI,QAAQ,IAAI,CAAA,QAAO,IAAI,QAAQ;AAIrE,QAAM,UAAU,OAAO,KAAK,OAAO,UAAU,SAAS,aAAa,KAAK,OAAO,UAAU,KAAK,KAAK,WAAA,CAAY,IAAI;AAEnH,SACI,sBAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY,UAAU,UAAU;AAAA,MAChC,OAAO,KAAK,IAAI;AAAA,MAChB;AAAA,MACA;AAAA,IAAA;AAAA,IACC;AAAA,EAAA;AAGb;AAYA,MAAM,oBAAoB,MAAM,KAAK,SAASC,mBAAmC,OAAsC;AACnH,QAAM,EAAE,gBAAgB,SAAS,UAAU,SAAS,YAAY,OAAO,SAAS,OAAO,GAAG,WAAA,IAAe;AAEzG;AAAA;AAAA,IAEI,sBAAA,cAAC,MAAA,EAAI,GAAG,YAAY,WAAU,SAAQ,KAAK,SAAS,OAAO,EAAE,YAAY,QAAQ,OAAO,WAAW,OAAO,GAAA,EAAG,GACzG,sBAAA,cAAC,QAAA,EAAK,WAAU,OAAA,GAAQ,QAAS,GAChC,YAAY,UAAU,iBACnB,sBAAA;AAAA,MAACC,QAAAA;AAAAA,MAAA;AAAA,QACG,SAAS;AAAA,QACT,eAAe;AAAA,QACf,MAAM;AAAA,QACN,aAAW;AAAA,QACX;AAAA,QACA;AAAA,MAAA;AAAA,IAAA,IAEJ,IACR;AAAA;AAER,CAAC;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"GroupedCell.js","sources":["../../../../../../../../src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableRowActionGroupRenderer } from '../../../../../types';\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\nimport type { TableCellRendererProps } from '../../../../types';\nimport { RowContext } from '../../../Row/RowContext';\nimport { Actions as RowGroupActions } from '../../Internal/Actions';\nimport { getCellAttributes } from '../util';\n\nexport function GroupedCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, index, isHighlighted } = props;\n const { table } = cell.getContext();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const attributes = getCellAttributes(cell, index, isHighlighted);\n\n const { isHovered, rowIndex } = React.useContext(RowContext);\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const canShowActions = isActiveRow || (isHovered && !tableMeta.rowActive.isHoverStatePaused);\n\n // Set colSpan based on the count of visible cells, including '__actions' and non-internal columns, so that\n // rowGroupActions aligns with rowActions.\n const colSpan =\n cell.row.getVisibleCells().filter(c => c.column.id === '__actions' || !isInternalColumn(c.column.id)).length - 1;\n const subRows = cell.getContext().row.subRows.map(row => row.original);\n\n // using flexRender renders as a react component not a function, and that causes re-render issues for us\n // for example, clicks on buttons in cells no longer works until the row becomes active\n const content = typeof cell.column.columnDef.cell === 'function' ? cell.column.columnDef.cell(cell.getContext()) : null;\n\n return (\n <MemoedGroupedCell<TType>\n {...attributes}\n canShowActions={canShowActions}\n cellRef={cellRef}\n colSpan={colSpan}\n rowActions={tableMeta.rowGroups.rowActionsForGroup}\n rowId={cell.row.id}\n subRows={subRows}\n table={table}>\n {content}\n </MemoedGroupedCell>\n );\n}\n\ntype MemoedGroupedCellProps<TType = unknown> = React.TdHTMLAttributes<HTMLTableCellElement> & {\n canShowActions: boolean;\n cellRef: React.RefObject<HTMLTableCellElement | null>;\n colSpan: number;\n rowActions?: TableRowActionGroupRenderer<TType>[];\n rowId: string;\n subRows: TType[];\n table: ReactTable<TType>;\n};\n\nconst MemoedGroupedCell = React.memo(function MemoedGroupedCell<TType = unknown>(props: MemoedGroupedCellProps<TType>) {\n const { canShowActions, cellRef, children, colSpan, rowActions, rowId, subRows, table, ...attributes } = props;\n\n return (\n // pr-1 is needed to align group row actions with row actions in sibling rows, if present\n <td {...attributes} className=\"!pr-1\" ref={cellRef} style={{ gridColumn: `span ${colSpan} / span ${colSpan}` }}>\n <span className=\"grow\">{children}</span>\n {rowActions?.length && canShowActions ? (\n <RowGroupActions<TType>\n actions={rowActions as any}\n actionsLength={4}\n data={subRows}\n isActiveRow\n rowId={rowId}\n table={table}\n />\n ) : null}\n </td>\n );\n}) as <TType = unknown>(props: MemoedGroupedCellProps<TType>) => React.JSX.Element;\n"],"names":["React","MemoedGroupedCell","RowGroupActions"],"mappings":";;;;;AAUO,SAAS,YAA6B,OAAsC;AAC/E,QAAM,EAAE,MAAM,SAAS,OAAO,kBAAkB;AAChD,QAAM,EAAE,MAAA,IAAU,KAAK,WAAA;AACvB,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,aAAa,kBAAkB,MAAM,OAAO,aAAa;AAE/D,QAAM,EAAE,WAAW,SAAA,IAAaA,eAAM,WAAW,UAAU;AAC3D,QAAM,cAAc,UAAU,UAAU,mBAAmB;AAC3D,QAAM,iBAAiB,eAAgB,aAAa,CAAC,UAAU,UAAU;AAIzE,QAAM,UACF,KAAK,IAAI,kBAAkB,OAAO,OAAK,EAAE,OAAO,OAAO,eAAe,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS;AACnH,QAAM,UAAU,KAAK,WAAA,EAAa,IAAI,QAAQ,IAAI,CAAA,QAAO,IAAI,QAAQ;AAIrE,QAAM,UAAU,OAAO,KAAK,OAAO,UAAU,SAAS,aAAa,KAAK,OAAO,UAAU,KAAK,KAAK,WAAA,CAAY,IAAI;AAEnH,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY,UAAU,UAAU;AAAA,MAChC,OAAO,KAAK,IAAI;AAAA,MAChB;AAAA,MACA;AAAA,IAAA;AAAA,IACC;AAAA,EAAA;AAGb;AAYA,MAAM,oBAAoBA,eAAM,KAAK,SAASC,mBAAmC,OAAsC;AACnH,QAAM,EAAE,gBAAgB,SAAS,UAAU,SAAS,YAAY,OAAO,SAAS,OAAO,GAAG,WAAA,IAAe;AAEzG;AAAA;AAAA,IAEID,+BAAA,cAAC,MAAA,EAAI,GAAG,YAAY,WAAU,SAAQ,KAAK,SAAS,OAAO,EAAE,YAAY,QAAQ,OAAO,WAAW,OAAO,GAAA,EAAG,GACzGA,+BAAA,cAAC,QAAA,EAAK,WAAU,OAAA,GAAQ,QAAS,GAChC,YAAY,UAAU,iBACnBA,+BAAA;AAAA,MAACE;AAAAA,MAAA;AAAA,QACG,SAAS;AAAA,QACT,eAAe;AAAA,QACf,MAAM;AAAA,QACN,aAAW;AAAA,QACX;AAAA,QACA;AAAA,MAAA;AAAA,IAAA,IAEJ,IACR;AAAA;AAER,CAAC;"}
1
+ {"version":3,"file":"GroupedCell.js","sources":["../../../../../../../../src/primitives/Table/Core/components/Columns/Cell/BuiltIns/GroupedCell.tsx"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nimport type { TableRowActionGroupRenderer } from '../../../../../types';\nimport { isInternalColumn } from '../../../../../useTableManager/util/columns';\nimport type { TableCellRendererProps } from '../../../../types';\nimport { RowContext } from '../../../Row/RowContext';\nimport { Actions as RowGroupActions } from '../../Internal/Actions';\nimport { getCellAttributes } from '../util';\n\nexport function GroupedCell<TType = unknown>(props: TableCellRendererProps<TType>) {\n const { cell, cellRef, index, isHighlighted } = props;\n const { table } = cell.getContext();\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n const attributes = getCellAttributes(cell, index, isHighlighted);\n\n const { isHovered, rowIndex } = React.useContext(RowContext);\n const isActiveRow = tableMeta.rowActive.rowActiveIndex === rowIndex;\n const canShowActions = isActiveRow || (isHovered && !tableMeta.rowActive.isHoverStatePaused);\n\n // Set colSpan based on the count of visible cells, including '__actions' and non-internal columns, so that\n // rowGroupActions aligns with rowActions.\n const colSpan =\n cell.row.getVisibleCells().filter(c => c.column.id === '__actions' || !isInternalColumn(c.column.id)).length - 1;\n const subRows = cell.getContext().row.subRows.map(row => row.original);\n\n // using flexRender renders as a react component not a function, and that causes re-render issues for us\n // for example, clicks on buttons in cells no longer works until the row becomes active\n const content = typeof cell.column.columnDef.cell === 'function' ? cell.column.columnDef.cell(cell.getContext()) : null;\n\n return (\n <MemoedGroupedCell<TType>\n {...attributes}\n canShowActions={canShowActions}\n cellRef={cellRef}\n colSpan={colSpan}\n rowActions={tableMeta.rowGroups.rowActionsForGroup}\n rowId={cell.row.id}\n subRows={subRows}\n table={table}>\n {content}\n </MemoedGroupedCell>\n );\n}\n\ntype MemoedGroupedCellProps<TType = unknown> = React.TdHTMLAttributes<HTMLTableCellElement> & {\n canShowActions: boolean;\n cellRef: React.Ref<HTMLTableCellElement>;\n colSpan: number;\n rowActions?: TableRowActionGroupRenderer<TType>[];\n rowId: string;\n subRows: TType[];\n table: ReactTable<TType>;\n};\n\nconst MemoedGroupedCell = React.memo(function MemoedGroupedCell<TType = unknown>(props: MemoedGroupedCellProps<TType>) {\n const { canShowActions, cellRef, children, colSpan, rowActions, rowId, subRows, table, ...attributes } = props;\n\n return (\n // pr-1 is needed to align group row actions with row actions in sibling rows, if present\n <td {...attributes} className=\"!pr-1\" ref={cellRef} style={{ gridColumn: `span ${colSpan} / span ${colSpan}` }}>\n <span className=\"grow\">{children}</span>\n {rowActions?.length && canShowActions ? (\n <RowGroupActions<TType>\n actions={rowActions as any}\n actionsLength={4}\n data={subRows}\n isActiveRow\n rowId={rowId}\n table={table}\n />\n ) : null}\n </td>\n );\n}) as <TType = unknown>(props: MemoedGroupedCellProps<TType>) => React.JSX.Element;\n"],"names":["React","MemoedGroupedCell","RowGroupActions"],"mappings":";;;;;AAUO,SAAS,YAA6B,OAAsC;AAC/E,QAAM,EAAE,MAAM,SAAS,OAAO,kBAAkB;AAChD,QAAM,EAAE,MAAA,IAAU,KAAK,WAAA;AACvB,QAAM,YAAY,MAAM,QAAQ;AAChC,QAAM,aAAa,kBAAkB,MAAM,OAAO,aAAa;AAE/D,QAAM,EAAE,WAAW,SAAA,IAAaA,eAAM,WAAW,UAAU;AAC3D,QAAM,cAAc,UAAU,UAAU,mBAAmB;AAC3D,QAAM,iBAAiB,eAAgB,aAAa,CAAC,UAAU,UAAU;AAIzE,QAAM,UACF,KAAK,IAAI,kBAAkB,OAAO,OAAK,EAAE,OAAO,OAAO,eAAe,CAAC,iBAAiB,EAAE,OAAO,EAAE,CAAC,EAAE,SAAS;AACnH,QAAM,UAAU,KAAK,WAAA,EAAa,IAAI,QAAQ,IAAI,CAAA,QAAO,IAAI,QAAQ;AAIrE,QAAM,UAAU,OAAO,KAAK,OAAO,UAAU,SAAS,aAAa,KAAK,OAAO,UAAU,KAAK,KAAK,WAAA,CAAY,IAAI;AAEnH,SACIA,+BAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACI,GAAG;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA,YAAY,UAAU,UAAU;AAAA,MAChC,OAAO,KAAK,IAAI;AAAA,MAChB;AAAA,MACA;AAAA,IAAA;AAAA,IACC;AAAA,EAAA;AAGb;AAYA,MAAM,oBAAoBA,eAAM,KAAK,SAASC,mBAAmC,OAAsC;AACnH,QAAM,EAAE,gBAAgB,SAAS,UAAU,SAAS,YAAY,OAAO,SAAS,OAAO,GAAG,WAAA,IAAe;AAEzG;AAAA;AAAA,IAEID,+BAAA,cAAC,MAAA,EAAI,GAAG,YAAY,WAAU,SAAQ,KAAK,SAAS,OAAO,EAAE,YAAY,QAAQ,OAAO,WAAW,OAAO,GAAA,EAAG,GACzGA,+BAAA,cAAC,QAAA,EAAK,WAAU,OAAA,GAAQ,QAAS,GAChC,YAAY,UAAU,iBACnBA,+BAAA;AAAA,MAACE;AAAAA,MAAA;AAAA,QACG,SAAS;AAAA,QACT,eAAe;AAAA,QACf,MAAM;AAAA,QACN,aAAW;AAAA,QACX;AAAA,QACA;AAAA,MAAA;AAAA,IAAA,IAEJ,IACR;AAAA;AAER,CAAC;"}
@@ -53,23 +53,29 @@ function useSearchHighlighting(cell, cellIndex, ref) {
53
53
  tableMeta.search.currentHighlightColumnIndex
54
54
  ]);
55
55
  React.useEffect(() => {
56
- if (ref.current && isHighlighted === "current") {
57
- ref.current.scrollIntoView({ block: "nearest", inline: "nearest" });
58
- setTimeout(() => {
59
- if (ref.current) {
60
- const tableEl = ref.current.closest('table[data-taco^="table"]');
61
- setTimeout(() => {
62
- const pinnedColumns = tableEl?.querySelectorAll('thead tr:last-child th[data-cell-pinned="left"]');
63
- if (pinnedColumns?.length) {
64
- const lastFrozenRect = pinnedColumns.item(pinnedColumns.length - 1)?.getBoundingClientRect();
65
- if (lastFrozenRect && cell.column.getStart() < lastFrozenRect.right) {
66
- tableEl?.scrollTo(cell.column.getStart() - lastFrozenRect.right, tableEl.scrollTop);
67
- }
68
- }
69
- }, 1);
70
- }
71
- }, 1);
56
+ if (!ref.current || isHighlighted !== "current") {
57
+ return;
72
58
  }
59
+ ref.current.scrollIntoView({ block: "nearest", inline: "nearest" });
60
+ let innerId;
61
+ const outerId = setTimeout(() => {
62
+ if (ref.current) {
63
+ const tableEl = ref.current.closest('table[data-taco^="table"]');
64
+ innerId = setTimeout(() => {
65
+ const pinnedColumns = tableEl?.querySelectorAll('thead tr:last-child th[data-cell-pinned="left"]');
66
+ if (pinnedColumns?.length) {
67
+ const lastFrozenRect = pinnedColumns.item(pinnedColumns.length - 1)?.getBoundingClientRect();
68
+ if (lastFrozenRect && cell.column.getStart() < lastFrozenRect.right) {
69
+ tableEl?.scrollTo(cell.column.getStart() - lastFrozenRect.right, tableEl.scrollTop);
70
+ }
71
+ }
72
+ }, 1);
73
+ }
74
+ }, 1);
75
+ return () => {
76
+ clearTimeout(outerId);
77
+ clearTimeout(innerId);
78
+ };
73
79
  }, [isHighlighted]);
74
80
  return isHighlighted;
75
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"util.cjs","sources":["../../../../../../../src/primitives/Table/Core/components/Columns/Cell/util.ts"],"sourcesContent":["import type {\n Cell as ReactTableCell,\n ColumnMeta as ReactTableColumnMeta,\n TableMeta as ReactTableMeta,\n} from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport { isCellHighlighted, isInternalColumn } from '../../../../useTableManager/util/columns';\nimport { RowContext } from '../../Row/RowContext';\n\nexport type DisplayCellProps<TType = unknown> = {\n index: number;\n cell: ReactTableCell<TType, unknown>;\n};\n\nexport function getCellAttributes<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n index: number,\n isHighlighted: true | 'current' | undefined\n) {\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const isPinned = cell.column.getIsPinned();\n\n // be careful adding new properties here, any objects will break cell memoisation (e.g. the style attribute)\n return {\n 'data-cell-align': columnMeta?.align,\n 'data-cell-highlighted': isHighlighted,\n 'data-cell-id': cell.column.id,\n 'data-cell-index': index,\n 'data-cell-pinned': isPinned ? true : undefined,\n 'data-cell-truncate': columnMeta.enableTruncate ? true : undefined,\n className: typeof columnMeta.className === 'function' ? columnMeta.className(cell.row.original) : columnMeta.className,\n };\n}\n\nexport function useSearchHighlighting<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n cellIndex: number,\n ref: React.RefObject<HTMLTableCellElement | null>\n) {\n const localization = useLocalization();\n const { rowIndex } = React.useContext(RowContext);\n const context = cell.getContext();\n const tableMeta = context.table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n\n const isHighlighted: 'current' | boolean | undefined = React.useMemo(() => {\n if (\n !cell.column.columnDef.enableGlobalFilter ||\n isInternalColumn(cell.column.id) ||\n cell.getIsAggregated() ||\n cell.getIsPlaceholder()\n ) {\n return undefined;\n }\n\n let isHighlighted = false;\n\n if (context.table.getState().globalFilter) {\n isHighlighted = isCellHighlighted(\n context.table.getState().globalFilter,\n cell.getValue(),\n cell.row.original,\n columnMeta.dataType,\n columnMeta.dataTypeOptions,\n localization\n );\n }\n\n if (!isHighlighted || tableMeta.search.currentHighlightColumnIndex === undefined) {\n return undefined;\n }\n\n const [rowActiveIndex, currentColumnIndex] =\n tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex] ?? [];\n\n if (rowActiveIndex === rowIndex && currentColumnIndex === cellIndex) {\n return 'current';\n }\n\n return true;\n }, [\n cell.getValue(),\n context.table.getState().globalFilter,\n tableMeta.search.highlightedColumnIndexes.length,\n tableMeta.search.currentHighlightColumnIndex,\n ]);\n\n React.useEffect(() => {\n if (ref.current && isHighlighted === 'current') {\n ref.current.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n\n setTimeout(() => {\n if (ref.current) {\n const tableEl = ref.current.closest('table[data-taco^=\"table\"]');\n\n setTimeout(() => {\n const pinnedColumns = tableEl?.querySelectorAll('thead tr:last-child th[data-cell-pinned=\"left\"]');\n\n if (pinnedColumns?.length) {\n const lastFrozenRect = pinnedColumns.item(pinnedColumns.length - 1)?.getBoundingClientRect();\n\n if (lastFrozenRect && cell.column.getStart() < lastFrozenRect.right) {\n tableEl?.scrollTo(cell.column.getStart() - lastFrozenRect.right, tableEl.scrollTop);\n }\n }\n }, 1);\n }\n }, 1);\n }\n }, [isHighlighted]);\n\n return isHighlighted;\n}\n\nexport function getCurrentRowCellElement(index: number, tableEl: HTMLElement) {\n const cellSelector = `[data-current=\"true\"] [data-column-index=\"${index}\"`;\n return tableEl.querySelector(cellSelector);\n}\n\nexport function scrollColumnIntoView(columnIndex: number, frozenColumnIndex: number, column: HTMLElement, tableEl: HTMLElement) {\n if (frozenColumnIndex !== undefined && columnIndex > frozenColumnIndex) {\n const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, tableEl);\n const highlightRef = column?.getBoundingClientRect();\n const lastFrozenRect = lastFrozenColumnElement?.getBoundingClientRect();\n\n // offset the width of frozen columns so that the column being scrolled to is not hidden behind them\n if (highlightRef && lastFrozenRect && highlightRef.left < lastFrozenRect.left + lastFrozenRect.width) {\n const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;\n tableEl?.scrollTo(highlightRef.left - pinnedColumnsWidth, tableEl.scrollTop);\n }\n } else {\n column.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n}\n"],"names":["useLocalization","RowContext","isInternalColumn","isHighlighted","isCellHighlighted"],"mappings":";;;;;;AAiBO,SAAS,kBACZ,MACA,OACA,eACF;AACE,QAAM,aAAa,KAAK,OAAO,UAAU;AACzC,QAAM,WAAW,KAAK,OAAO,YAAA;AAG7B,SAAO;AAAA,IACH,mBAAmB,YAAY;AAAA,IAC/B,yBAAyB;AAAA,IACzB,gBAAgB,KAAK,OAAO;AAAA,IAC5B,mBAAmB;AAAA,IACnB,oBAAoB,WAAW,OAAO;AAAA,IACtC,sBAAsB,WAAW,iBAAiB,OAAO;AAAA,IACzD,WAAW,OAAO,WAAW,cAAc,aAAa,WAAW,UAAU,KAAK,IAAI,QAAQ,IAAI,WAAW;AAAA,EAAA;AAErH;AAEO,SAAS,sBACZ,MACA,WACA,KACF;AACE,QAAM,eAAeA,aAAAA,gBAAA;AACrB,QAAM,EAAE,SAAA,IAAa,MAAM,WAAWC,WAAAA,UAAU;AAChD,QAAM,UAAU,KAAK,WAAA;AACrB,QAAM,YAAY,QAAQ,MAAM,QAAQ;AACxC,QAAM,aAAa,KAAK,OAAO,UAAU;AAEzC,QAAM,gBAAiD,MAAM,QAAQ,MAAM;AACvE,QACI,CAAC,KAAK,OAAO,UAAU,sBACvBC,QAAAA,iBAAiB,KAAK,OAAO,EAAE,KAC/B,KAAK,gBAAA,KACL,KAAK,oBACP;AACE,aAAO;AAAA,IACX;AAEA,QAAIC,iBAAgB;AAEpB,QAAI,QAAQ,MAAM,SAAA,EAAW,cAAc;AACvCA,uBAAgBC,QAAAA;AAAAA,QACZ,QAAQ,MAAM,SAAA,EAAW;AAAA,QACzB,KAAK,SAAA;AAAA,QACL,KAAK,IAAI;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,QACX;AAAA,MAAA;AAAA,IAER;AAEA,QAAI,CAACD,kBAAiB,UAAU,OAAO,gCAAgC,QAAW;AAC9E,aAAO;AAAA,IACX;AAEA,UAAM,CAAC,gBAAgB,kBAAkB,IACrC,UAAU,OAAO,yBAAyB,UAAU,OAAO,2BAA2B,KAAK,CAAA;AAE/F,QAAI,mBAAmB,YAAY,uBAAuB,WAAW;AACjE,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX,GAAG;AAAA,IACC,KAAK,SAAA;AAAA,IACL,QAAQ,MAAM,SAAA,EAAW;AAAA,IACzB,UAAU,OAAO,yBAAyB;AAAA,IAC1C,UAAU,OAAO;AAAA,EAAA,CACpB;AAED,QAAM,UAAU,MAAM;AAClB,QAAI,IAAI,WAAW,kBAAkB,WAAW;AAC5C,UAAI,QAAQ,eAAe,EAAE,OAAO,WAAW,QAAQ,WAAW;AAElE,iBAAW,MAAM;AACb,YAAI,IAAI,SAAS;AACb,gBAAM,UAAU,IAAI,QAAQ,QAAQ,2BAA2B;AAE/D,qBAAW,MAAM;AACb,kBAAM,gBAAgB,SAAS,iBAAiB,iDAAiD;AAEjG,gBAAI,eAAe,QAAQ;AACvB,oBAAM,iBAAiB,cAAc,KAAK,cAAc,SAAS,CAAC,GAAG,sBAAA;AAErE,kBAAI,kBAAkB,KAAK,OAAO,SAAA,IAAa,eAAe,OAAO;AACjE,yBAAS,SAAS,KAAK,OAAO,SAAA,IAAa,eAAe,OAAO,QAAQ,SAAS;AAAA,cACtF;AAAA,YACJ;AAAA,UACJ,GAAG,CAAC;AAAA,QACR;AAAA,MACJ,GAAG,CAAC;AAAA,IACR;AAAA,EACJ,GAAG,CAAC,aAAa,CAAC;AAElB,SAAO;AACX;;;"}
1
+ {"version":3,"file":"util.cjs","sources":["../../../../../../../src/primitives/Table/Core/components/Columns/Cell/util.ts"],"sourcesContent":["import type {\n Cell as ReactTableCell,\n ColumnMeta as ReactTableColumnMeta,\n TableMeta as ReactTableMeta,\n} from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport { isCellHighlighted, isInternalColumn } from '../../../../useTableManager/util/columns';\nimport { RowContext } from '../../Row/RowContext';\n\nexport type DisplayCellProps<TType = unknown> = {\n index: number;\n cell: ReactTableCell<TType, unknown>;\n};\n\nexport function getCellAttributes<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n index: number,\n isHighlighted: true | 'current' | undefined\n) {\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const isPinned = cell.column.getIsPinned();\n\n // be careful adding new properties here, any objects will break cell memoisation (e.g. the style attribute)\n return {\n 'data-cell-align': columnMeta?.align,\n 'data-cell-highlighted': isHighlighted,\n 'data-cell-id': cell.column.id,\n 'data-cell-index': index,\n 'data-cell-pinned': isPinned ? true : undefined,\n 'data-cell-truncate': columnMeta.enableTruncate ? true : undefined,\n className: typeof columnMeta.className === 'function' ? columnMeta.className(cell.row.original) : columnMeta.className,\n };\n}\n\nexport function useSearchHighlighting<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n cellIndex: number,\n ref: React.RefObject<HTMLTableCellElement | null>\n) {\n const localization = useLocalization();\n const { rowIndex } = React.useContext(RowContext);\n const context = cell.getContext();\n const tableMeta = context.table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n\n const isHighlighted: 'current' | boolean | undefined = React.useMemo(() => {\n if (\n !cell.column.columnDef.enableGlobalFilter ||\n isInternalColumn(cell.column.id) ||\n cell.getIsAggregated() ||\n cell.getIsPlaceholder()\n ) {\n return undefined;\n }\n\n let isHighlighted = false;\n\n if (context.table.getState().globalFilter) {\n isHighlighted = isCellHighlighted(\n context.table.getState().globalFilter,\n cell.getValue(),\n cell.row.original,\n columnMeta.dataType,\n columnMeta.dataTypeOptions,\n localization\n );\n }\n\n if (!isHighlighted || tableMeta.search.currentHighlightColumnIndex === undefined) {\n return undefined;\n }\n\n const [rowActiveIndex, currentColumnIndex] =\n tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex] ?? [];\n\n if (rowActiveIndex === rowIndex && currentColumnIndex === cellIndex) {\n return 'current';\n }\n\n return true;\n }, [\n cell.getValue(),\n context.table.getState().globalFilter,\n tableMeta.search.highlightedColumnIndexes.length,\n tableMeta.search.currentHighlightColumnIndex,\n ]);\n\n React.useEffect(() => {\n if (!ref.current || isHighlighted !== 'current') {\n return;\n }\n\n ref.current.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n\n let innerId: ReturnType<typeof setTimeout>;\n\n const outerId = setTimeout(() => {\n if (ref.current) {\n const tableEl = ref.current.closest('table[data-taco^=\"table\"]');\n\n innerId = setTimeout(() => {\n const pinnedColumns = tableEl?.querySelectorAll('thead tr:last-child th[data-cell-pinned=\"left\"]');\n\n if (pinnedColumns?.length) {\n const lastFrozenRect = pinnedColumns.item(pinnedColumns.length - 1)?.getBoundingClientRect();\n\n if (lastFrozenRect && cell.column.getStart() < lastFrozenRect.right) {\n tableEl?.scrollTo(cell.column.getStart() - lastFrozenRect.right, tableEl.scrollTop);\n }\n }\n }, 1);\n }\n }, 1);\n\n return () => {\n clearTimeout(outerId);\n clearTimeout(innerId);\n };\n }, [isHighlighted]);\n\n return isHighlighted;\n}\n\nexport function getCurrentRowCellElement(index: number, tableEl: HTMLElement) {\n const cellSelector = `[data-current=\"true\"] [data-column-index=\"${index}\"`;\n return tableEl.querySelector(cellSelector);\n}\n\nexport function scrollColumnIntoView(columnIndex: number, frozenColumnIndex: number, column: HTMLElement, tableEl: HTMLElement) {\n if (frozenColumnIndex !== undefined && columnIndex > frozenColumnIndex) {\n const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, tableEl);\n const highlightRef = column?.getBoundingClientRect();\n const lastFrozenRect = lastFrozenColumnElement?.getBoundingClientRect();\n\n // offset the width of frozen columns so that the column being scrolled to is not hidden behind them\n if (highlightRef && lastFrozenRect && highlightRef.left < lastFrozenRect.left + lastFrozenRect.width) {\n const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;\n tableEl?.scrollTo(highlightRef.left - pinnedColumnsWidth, tableEl.scrollTop);\n }\n } else {\n column.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n}\n"],"names":["useLocalization","RowContext","isInternalColumn","isHighlighted","isCellHighlighted"],"mappings":";;;;;;AAiBO,SAAS,kBACZ,MACA,OACA,eACF;AACE,QAAM,aAAa,KAAK,OAAO,UAAU;AACzC,QAAM,WAAW,KAAK,OAAO,YAAA;AAG7B,SAAO;AAAA,IACH,mBAAmB,YAAY;AAAA,IAC/B,yBAAyB;AAAA,IACzB,gBAAgB,KAAK,OAAO;AAAA,IAC5B,mBAAmB;AAAA,IACnB,oBAAoB,WAAW,OAAO;AAAA,IACtC,sBAAsB,WAAW,iBAAiB,OAAO;AAAA,IACzD,WAAW,OAAO,WAAW,cAAc,aAAa,WAAW,UAAU,KAAK,IAAI,QAAQ,IAAI,WAAW;AAAA,EAAA;AAErH;AAEO,SAAS,sBACZ,MACA,WACA,KACF;AACE,QAAM,eAAeA,aAAAA,gBAAA;AACrB,QAAM,EAAE,SAAA,IAAa,MAAM,WAAWC,WAAAA,UAAU;AAChD,QAAM,UAAU,KAAK,WAAA;AACrB,QAAM,YAAY,QAAQ,MAAM,QAAQ;AACxC,QAAM,aAAa,KAAK,OAAO,UAAU;AAEzC,QAAM,gBAAiD,MAAM,QAAQ,MAAM;AACvE,QACI,CAAC,KAAK,OAAO,UAAU,sBACvBC,QAAAA,iBAAiB,KAAK,OAAO,EAAE,KAC/B,KAAK,gBAAA,KACL,KAAK,oBACP;AACE,aAAO;AAAA,IACX;AAEA,QAAIC,iBAAgB;AAEpB,QAAI,QAAQ,MAAM,SAAA,EAAW,cAAc;AACvCA,uBAAgBC,QAAAA;AAAAA,QACZ,QAAQ,MAAM,SAAA,EAAW;AAAA,QACzB,KAAK,SAAA;AAAA,QACL,KAAK,IAAI;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,QACX;AAAA,MAAA;AAAA,IAER;AAEA,QAAI,CAACD,kBAAiB,UAAU,OAAO,gCAAgC,QAAW;AAC9E,aAAO;AAAA,IACX;AAEA,UAAM,CAAC,gBAAgB,kBAAkB,IACrC,UAAU,OAAO,yBAAyB,UAAU,OAAO,2BAA2B,KAAK,CAAA;AAE/F,QAAI,mBAAmB,YAAY,uBAAuB,WAAW;AACjE,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX,GAAG;AAAA,IACC,KAAK,SAAA;AAAA,IACL,QAAQ,MAAM,SAAA,EAAW;AAAA,IACzB,UAAU,OAAO,yBAAyB;AAAA,IAC1C,UAAU,OAAO;AAAA,EAAA,CACpB;AAED,QAAM,UAAU,MAAM;AAClB,QAAI,CAAC,IAAI,WAAW,kBAAkB,WAAW;AAC7C;AAAA,IACJ;AAEA,QAAI,QAAQ,eAAe,EAAE,OAAO,WAAW,QAAQ,WAAW;AAElE,QAAI;AAEJ,UAAM,UAAU,WAAW,MAAM;AAC7B,UAAI,IAAI,SAAS;AACb,cAAM,UAAU,IAAI,QAAQ,QAAQ,2BAA2B;AAE/D,kBAAU,WAAW,MAAM;AACvB,gBAAM,gBAAgB,SAAS,iBAAiB,iDAAiD;AAEjG,cAAI,eAAe,QAAQ;AACvB,kBAAM,iBAAiB,cAAc,KAAK,cAAc,SAAS,CAAC,GAAG,sBAAA;AAErE,gBAAI,kBAAkB,KAAK,OAAO,SAAA,IAAa,eAAe,OAAO;AACjE,uBAAS,SAAS,KAAK,OAAO,SAAA,IAAa,eAAe,OAAO,QAAQ,SAAS;AAAA,YACtF;AAAA,UACJ;AAAA,QACJ,GAAG,CAAC;AAAA,MACR;AAAA,IACJ,GAAG,CAAC;AAEJ,WAAO,MAAM;AACT,mBAAa,OAAO;AACpB,mBAAa,OAAO;AAAA,IACxB;AAAA,EACJ,GAAG,CAAC,aAAa,CAAC;AAElB,SAAO;AACX;;;"}
@@ -51,23 +51,29 @@ function useSearchHighlighting(cell, cellIndex, ref) {
51
51
  tableMeta.search.currentHighlightColumnIndex
52
52
  ]);
53
53
  React__default.useEffect(() => {
54
- if (ref.current && isHighlighted === "current") {
55
- ref.current.scrollIntoView({ block: "nearest", inline: "nearest" });
56
- setTimeout(() => {
57
- if (ref.current) {
58
- const tableEl = ref.current.closest('table[data-taco^="table"]');
59
- setTimeout(() => {
60
- const pinnedColumns = tableEl?.querySelectorAll('thead tr:last-child th[data-cell-pinned="left"]');
61
- if (pinnedColumns?.length) {
62
- const lastFrozenRect = pinnedColumns.item(pinnedColumns.length - 1)?.getBoundingClientRect();
63
- if (lastFrozenRect && cell.column.getStart() < lastFrozenRect.right) {
64
- tableEl?.scrollTo(cell.column.getStart() - lastFrozenRect.right, tableEl.scrollTop);
65
- }
66
- }
67
- }, 1);
68
- }
69
- }, 1);
54
+ if (!ref.current || isHighlighted !== "current") {
55
+ return;
70
56
  }
57
+ ref.current.scrollIntoView({ block: "nearest", inline: "nearest" });
58
+ let innerId;
59
+ const outerId = setTimeout(() => {
60
+ if (ref.current) {
61
+ const tableEl = ref.current.closest('table[data-taco^="table"]');
62
+ innerId = setTimeout(() => {
63
+ const pinnedColumns = tableEl?.querySelectorAll('thead tr:last-child th[data-cell-pinned="left"]');
64
+ if (pinnedColumns?.length) {
65
+ const lastFrozenRect = pinnedColumns.item(pinnedColumns.length - 1)?.getBoundingClientRect();
66
+ if (lastFrozenRect && cell.column.getStart() < lastFrozenRect.right) {
67
+ tableEl?.scrollTo(cell.column.getStart() - lastFrozenRect.right, tableEl.scrollTop);
68
+ }
69
+ }
70
+ }, 1);
71
+ }
72
+ }, 1);
73
+ return () => {
74
+ clearTimeout(outerId);
75
+ clearTimeout(innerId);
76
+ };
71
77
  }, [isHighlighted]);
72
78
  return isHighlighted;
73
79
  }
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../../../../../../src/primitives/Table/Core/components/Columns/Cell/util.ts"],"sourcesContent":["import type {\n Cell as ReactTableCell,\n ColumnMeta as ReactTableColumnMeta,\n TableMeta as ReactTableMeta,\n} from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport { isCellHighlighted, isInternalColumn } from '../../../../useTableManager/util/columns';\nimport { RowContext } from '../../Row/RowContext';\n\nexport type DisplayCellProps<TType = unknown> = {\n index: number;\n cell: ReactTableCell<TType, unknown>;\n};\n\nexport function getCellAttributes<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n index: number,\n isHighlighted: true | 'current' | undefined\n) {\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const isPinned = cell.column.getIsPinned();\n\n // be careful adding new properties here, any objects will break cell memoisation (e.g. the style attribute)\n return {\n 'data-cell-align': columnMeta?.align,\n 'data-cell-highlighted': isHighlighted,\n 'data-cell-id': cell.column.id,\n 'data-cell-index': index,\n 'data-cell-pinned': isPinned ? true : undefined,\n 'data-cell-truncate': columnMeta.enableTruncate ? true : undefined,\n className: typeof columnMeta.className === 'function' ? columnMeta.className(cell.row.original) : columnMeta.className,\n };\n}\n\nexport function useSearchHighlighting<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n cellIndex: number,\n ref: React.RefObject<HTMLTableCellElement | null>\n) {\n const localization = useLocalization();\n const { rowIndex } = React.useContext(RowContext);\n const context = cell.getContext();\n const tableMeta = context.table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n\n const isHighlighted: 'current' | boolean | undefined = React.useMemo(() => {\n if (\n !cell.column.columnDef.enableGlobalFilter ||\n isInternalColumn(cell.column.id) ||\n cell.getIsAggregated() ||\n cell.getIsPlaceholder()\n ) {\n return undefined;\n }\n\n let isHighlighted = false;\n\n if (context.table.getState().globalFilter) {\n isHighlighted = isCellHighlighted(\n context.table.getState().globalFilter,\n cell.getValue(),\n cell.row.original,\n columnMeta.dataType,\n columnMeta.dataTypeOptions,\n localization\n );\n }\n\n if (!isHighlighted || tableMeta.search.currentHighlightColumnIndex === undefined) {\n return undefined;\n }\n\n const [rowActiveIndex, currentColumnIndex] =\n tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex] ?? [];\n\n if (rowActiveIndex === rowIndex && currentColumnIndex === cellIndex) {\n return 'current';\n }\n\n return true;\n }, [\n cell.getValue(),\n context.table.getState().globalFilter,\n tableMeta.search.highlightedColumnIndexes.length,\n tableMeta.search.currentHighlightColumnIndex,\n ]);\n\n React.useEffect(() => {\n if (ref.current && isHighlighted === 'current') {\n ref.current.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n\n setTimeout(() => {\n if (ref.current) {\n const tableEl = ref.current.closest('table[data-taco^=\"table\"]');\n\n setTimeout(() => {\n const pinnedColumns = tableEl?.querySelectorAll('thead tr:last-child th[data-cell-pinned=\"left\"]');\n\n if (pinnedColumns?.length) {\n const lastFrozenRect = pinnedColumns.item(pinnedColumns.length - 1)?.getBoundingClientRect();\n\n if (lastFrozenRect && cell.column.getStart() < lastFrozenRect.right) {\n tableEl?.scrollTo(cell.column.getStart() - lastFrozenRect.right, tableEl.scrollTop);\n }\n }\n }, 1);\n }\n }, 1);\n }\n }, [isHighlighted]);\n\n return isHighlighted;\n}\n\nexport function getCurrentRowCellElement(index: number, tableEl: HTMLElement) {\n const cellSelector = `[data-current=\"true\"] [data-column-index=\"${index}\"`;\n return tableEl.querySelector(cellSelector);\n}\n\nexport function scrollColumnIntoView(columnIndex: number, frozenColumnIndex: number, column: HTMLElement, tableEl: HTMLElement) {\n if (frozenColumnIndex !== undefined && columnIndex > frozenColumnIndex) {\n const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, tableEl);\n const highlightRef = column?.getBoundingClientRect();\n const lastFrozenRect = lastFrozenColumnElement?.getBoundingClientRect();\n\n // offset the width of frozen columns so that the column being scrolled to is not hidden behind them\n if (highlightRef && lastFrozenRect && highlightRef.left < lastFrozenRect.left + lastFrozenRect.width) {\n const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;\n tableEl?.scrollTo(highlightRef.left - pinnedColumnsWidth, tableEl.scrollTop);\n }\n } else {\n column.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n}\n"],"names":["React","isHighlighted"],"mappings":";;;;AAiBO,SAAS,kBACZ,MACA,OACA,eACF;AACE,QAAM,aAAa,KAAK,OAAO,UAAU;AACzC,QAAM,WAAW,KAAK,OAAO,YAAA;AAG7B,SAAO;AAAA,IACH,mBAAmB,YAAY;AAAA,IAC/B,yBAAyB;AAAA,IACzB,gBAAgB,KAAK,OAAO;AAAA,IAC5B,mBAAmB;AAAA,IACnB,oBAAoB,WAAW,OAAO;AAAA,IACtC,sBAAsB,WAAW,iBAAiB,OAAO;AAAA,IACzD,WAAW,OAAO,WAAW,cAAc,aAAa,WAAW,UAAU,KAAK,IAAI,QAAQ,IAAI,WAAW;AAAA,EAAA;AAErH;AAEO,SAAS,sBACZ,MACA,WACA,KACF;AACE,QAAM,eAAe,gBAAA;AACrB,QAAM,EAAE,SAAA,IAAaA,eAAM,WAAW,UAAU;AAChD,QAAM,UAAU,KAAK,WAAA;AACrB,QAAM,YAAY,QAAQ,MAAM,QAAQ;AACxC,QAAM,aAAa,KAAK,OAAO,UAAU;AAEzC,QAAM,gBAAiDA,eAAM,QAAQ,MAAM;AACvE,QACI,CAAC,KAAK,OAAO,UAAU,sBACvB,iBAAiB,KAAK,OAAO,EAAE,KAC/B,KAAK,gBAAA,KACL,KAAK,oBACP;AACE,aAAO;AAAA,IACX;AAEA,QAAIC,iBAAgB;AAEpB,QAAI,QAAQ,MAAM,SAAA,EAAW,cAAc;AACvCA,uBAAgB;AAAA,QACZ,QAAQ,MAAM,SAAA,EAAW;AAAA,QACzB,KAAK,SAAA;AAAA,QACL,KAAK,IAAI;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,QACX;AAAA,MAAA;AAAA,IAER;AAEA,QAAI,CAACA,kBAAiB,UAAU,OAAO,gCAAgC,QAAW;AAC9E,aAAO;AAAA,IACX;AAEA,UAAM,CAAC,gBAAgB,kBAAkB,IACrC,UAAU,OAAO,yBAAyB,UAAU,OAAO,2BAA2B,KAAK,CAAA;AAE/F,QAAI,mBAAmB,YAAY,uBAAuB,WAAW;AACjE,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX,GAAG;AAAA,IACC,KAAK,SAAA;AAAA,IACL,QAAQ,MAAM,SAAA,EAAW;AAAA,IACzB,UAAU,OAAO,yBAAyB;AAAA,IAC1C,UAAU,OAAO;AAAA,EAAA,CACpB;AAEDD,iBAAM,UAAU,MAAM;AAClB,QAAI,IAAI,WAAW,kBAAkB,WAAW;AAC5C,UAAI,QAAQ,eAAe,EAAE,OAAO,WAAW,QAAQ,WAAW;AAElE,iBAAW,MAAM;AACb,YAAI,IAAI,SAAS;AACb,gBAAM,UAAU,IAAI,QAAQ,QAAQ,2BAA2B;AAE/D,qBAAW,MAAM;AACb,kBAAM,gBAAgB,SAAS,iBAAiB,iDAAiD;AAEjG,gBAAI,eAAe,QAAQ;AACvB,oBAAM,iBAAiB,cAAc,KAAK,cAAc,SAAS,CAAC,GAAG,sBAAA;AAErE,kBAAI,kBAAkB,KAAK,OAAO,SAAA,IAAa,eAAe,OAAO;AACjE,yBAAS,SAAS,KAAK,OAAO,SAAA,IAAa,eAAe,OAAO,QAAQ,SAAS;AAAA,cACtF;AAAA,YACJ;AAAA,UACJ,GAAG,CAAC;AAAA,QACR;AAAA,MACJ,GAAG,CAAC;AAAA,IACR;AAAA,EACJ,GAAG,CAAC,aAAa,CAAC;AAElB,SAAO;AACX;"}
1
+ {"version":3,"file":"util.js","sources":["../../../../../../../src/primitives/Table/Core/components/Columns/Cell/util.ts"],"sourcesContent":["import type {\n Cell as ReactTableCell,\n ColumnMeta as ReactTableColumnMeta,\n TableMeta as ReactTableMeta,\n} from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport { isCellHighlighted, isInternalColumn } from '../../../../useTableManager/util/columns';\nimport { RowContext } from '../../Row/RowContext';\n\nexport type DisplayCellProps<TType = unknown> = {\n index: number;\n cell: ReactTableCell<TType, unknown>;\n};\n\nexport function getCellAttributes<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n index: number,\n isHighlighted: true | 'current' | undefined\n) {\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n const isPinned = cell.column.getIsPinned();\n\n // be careful adding new properties here, any objects will break cell memoisation (e.g. the style attribute)\n return {\n 'data-cell-align': columnMeta?.align,\n 'data-cell-highlighted': isHighlighted,\n 'data-cell-id': cell.column.id,\n 'data-cell-index': index,\n 'data-cell-pinned': isPinned ? true : undefined,\n 'data-cell-truncate': columnMeta.enableTruncate ? true : undefined,\n className: typeof columnMeta.className === 'function' ? columnMeta.className(cell.row.original) : columnMeta.className,\n };\n}\n\nexport function useSearchHighlighting<TType = unknown>(\n cell: ReactTableCell<TType, unknown>,\n cellIndex: number,\n ref: React.RefObject<HTMLTableCellElement | null>\n) {\n const localization = useLocalization();\n const { rowIndex } = React.useContext(RowContext);\n const context = cell.getContext();\n const tableMeta = context.table.options.meta as ReactTableMeta<TType>;\n const columnMeta = cell.column.columnDef.meta as ReactTableColumnMeta<TType, unknown>;\n\n const isHighlighted: 'current' | boolean | undefined = React.useMemo(() => {\n if (\n !cell.column.columnDef.enableGlobalFilter ||\n isInternalColumn(cell.column.id) ||\n cell.getIsAggregated() ||\n cell.getIsPlaceholder()\n ) {\n return undefined;\n }\n\n let isHighlighted = false;\n\n if (context.table.getState().globalFilter) {\n isHighlighted = isCellHighlighted(\n context.table.getState().globalFilter,\n cell.getValue(),\n cell.row.original,\n columnMeta.dataType,\n columnMeta.dataTypeOptions,\n localization\n );\n }\n\n if (!isHighlighted || tableMeta.search.currentHighlightColumnIndex === undefined) {\n return undefined;\n }\n\n const [rowActiveIndex, currentColumnIndex] =\n tableMeta.search.highlightedColumnIndexes[tableMeta.search.currentHighlightColumnIndex] ?? [];\n\n if (rowActiveIndex === rowIndex && currentColumnIndex === cellIndex) {\n return 'current';\n }\n\n return true;\n }, [\n cell.getValue(),\n context.table.getState().globalFilter,\n tableMeta.search.highlightedColumnIndexes.length,\n tableMeta.search.currentHighlightColumnIndex,\n ]);\n\n React.useEffect(() => {\n if (!ref.current || isHighlighted !== 'current') {\n return;\n }\n\n ref.current.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n\n let innerId: ReturnType<typeof setTimeout>;\n\n const outerId = setTimeout(() => {\n if (ref.current) {\n const tableEl = ref.current.closest('table[data-taco^=\"table\"]');\n\n innerId = setTimeout(() => {\n const pinnedColumns = tableEl?.querySelectorAll('thead tr:last-child th[data-cell-pinned=\"left\"]');\n\n if (pinnedColumns?.length) {\n const lastFrozenRect = pinnedColumns.item(pinnedColumns.length - 1)?.getBoundingClientRect();\n\n if (lastFrozenRect && cell.column.getStart() < lastFrozenRect.right) {\n tableEl?.scrollTo(cell.column.getStart() - lastFrozenRect.right, tableEl.scrollTop);\n }\n }\n }, 1);\n }\n }, 1);\n\n return () => {\n clearTimeout(outerId);\n clearTimeout(innerId);\n };\n }, [isHighlighted]);\n\n return isHighlighted;\n}\n\nexport function getCurrentRowCellElement(index: number, tableEl: HTMLElement) {\n const cellSelector = `[data-current=\"true\"] [data-column-index=\"${index}\"`;\n return tableEl.querySelector(cellSelector);\n}\n\nexport function scrollColumnIntoView(columnIndex: number, frozenColumnIndex: number, column: HTMLElement, tableEl: HTMLElement) {\n if (frozenColumnIndex !== undefined && columnIndex > frozenColumnIndex) {\n const lastFrozenColumnElement = getCurrentRowCellElement(frozenColumnIndex, tableEl);\n const highlightRef = column?.getBoundingClientRect();\n const lastFrozenRect = lastFrozenColumnElement?.getBoundingClientRect();\n\n // offset the width of frozen columns so that the column being scrolled to is not hidden behind them\n if (highlightRef && lastFrozenRect && highlightRef.left < lastFrozenRect.left + lastFrozenRect.width) {\n const pinnedColumnsWidth = lastFrozenRect.left + lastFrozenRect.width;\n tableEl?.scrollTo(highlightRef.left - pinnedColumnsWidth, tableEl.scrollTop);\n }\n } else {\n column.scrollIntoView({ block: 'nearest', inline: 'nearest' });\n }\n}\n"],"names":["React","isHighlighted"],"mappings":";;;;AAiBO,SAAS,kBACZ,MACA,OACA,eACF;AACE,QAAM,aAAa,KAAK,OAAO,UAAU;AACzC,QAAM,WAAW,KAAK,OAAO,YAAA;AAG7B,SAAO;AAAA,IACH,mBAAmB,YAAY;AAAA,IAC/B,yBAAyB;AAAA,IACzB,gBAAgB,KAAK,OAAO;AAAA,IAC5B,mBAAmB;AAAA,IACnB,oBAAoB,WAAW,OAAO;AAAA,IACtC,sBAAsB,WAAW,iBAAiB,OAAO;AAAA,IACzD,WAAW,OAAO,WAAW,cAAc,aAAa,WAAW,UAAU,KAAK,IAAI,QAAQ,IAAI,WAAW;AAAA,EAAA;AAErH;AAEO,SAAS,sBACZ,MACA,WACA,KACF;AACE,QAAM,eAAe,gBAAA;AACrB,QAAM,EAAE,SAAA,IAAaA,eAAM,WAAW,UAAU;AAChD,QAAM,UAAU,KAAK,WAAA;AACrB,QAAM,YAAY,QAAQ,MAAM,QAAQ;AACxC,QAAM,aAAa,KAAK,OAAO,UAAU;AAEzC,QAAM,gBAAiDA,eAAM,QAAQ,MAAM;AACvE,QACI,CAAC,KAAK,OAAO,UAAU,sBACvB,iBAAiB,KAAK,OAAO,EAAE,KAC/B,KAAK,gBAAA,KACL,KAAK,oBACP;AACE,aAAO;AAAA,IACX;AAEA,QAAIC,iBAAgB;AAEpB,QAAI,QAAQ,MAAM,SAAA,EAAW,cAAc;AACvCA,uBAAgB;AAAA,QACZ,QAAQ,MAAM,SAAA,EAAW;AAAA,QACzB,KAAK,SAAA;AAAA,QACL,KAAK,IAAI;AAAA,QACT,WAAW;AAAA,QACX,WAAW;AAAA,QACX;AAAA,MAAA;AAAA,IAER;AAEA,QAAI,CAACA,kBAAiB,UAAU,OAAO,gCAAgC,QAAW;AAC9E,aAAO;AAAA,IACX;AAEA,UAAM,CAAC,gBAAgB,kBAAkB,IACrC,UAAU,OAAO,yBAAyB,UAAU,OAAO,2BAA2B,KAAK,CAAA;AAE/F,QAAI,mBAAmB,YAAY,uBAAuB,WAAW;AACjE,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX,GAAG;AAAA,IACC,KAAK,SAAA;AAAA,IACL,QAAQ,MAAM,SAAA,EAAW;AAAA,IACzB,UAAU,OAAO,yBAAyB;AAAA,IAC1C,UAAU,OAAO;AAAA,EAAA,CACpB;AAEDD,iBAAM,UAAU,MAAM;AAClB,QAAI,CAAC,IAAI,WAAW,kBAAkB,WAAW;AAC7C;AAAA,IACJ;AAEA,QAAI,QAAQ,eAAe,EAAE,OAAO,WAAW,QAAQ,WAAW;AAElE,QAAI;AAEJ,UAAM,UAAU,WAAW,MAAM;AAC7B,UAAI,IAAI,SAAS;AACb,cAAM,UAAU,IAAI,QAAQ,QAAQ,2BAA2B;AAE/D,kBAAU,WAAW,MAAM;AACvB,gBAAM,gBAAgB,SAAS,iBAAiB,iDAAiD;AAEjG,cAAI,eAAe,QAAQ;AACvB,kBAAM,iBAAiB,cAAc,KAAK,cAAc,SAAS,CAAC,GAAG,sBAAA;AAErE,gBAAI,kBAAkB,KAAK,OAAO,SAAA,IAAa,eAAe,OAAO;AACjE,uBAAS,SAAS,KAAK,OAAO,SAAA,IAAa,eAAe,OAAO,QAAQ,SAAS;AAAA,YACtF;AAAA,UACJ;AAAA,QACJ,GAAG,CAAC;AAAA,MACR;AAAA,IACJ,GAAG,CAAC;AAEJ,WAAO,MAAM;AACT,mBAAa,OAAO;AACpB,mBAAa,OAAO;AAAA,IACxB;AAAA,EACJ,GAAG,CAAC,aAAa,CAAC;AAElB,SAAO;AACX;"}