@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
@@ -1 +1 @@
1
- {"version":3,"file":"useTableRowClick.cjs","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableRowClick.ts"],"sourcesContent":["import React from 'react';\n\nimport type { TableRowClickHandler } from '../../types';\n\nexport function useTableRowClick<TType = unknown>(\n isEnabled: boolean | ((row: TType) => boolean) = false,\n onRowClick?: TableRowClickHandler<TType>\n) {\n const isRowClickEnabled = React.useCallback(\n (row: TType) => {\n return typeof isEnabled === 'boolean' ? isEnabled : isEnabled(row);\n },\n [isEnabled]\n );\n\n const handleKeyDown = React.useCallback(\n function (event: KeyboardEvent, rowData: TType) {\n if (!isRowClickEnabled(rowData) || typeof onRowClick !== 'function' || event.defaultPrevented) {\n return;\n }\n\n if (rowData && event.key === 'Enter') {\n event.preventDefault();\n onRowClick(rowData);\n return;\n }\n },\n [isEnabled, onRowClick]\n ) as <TType = unknown>(event: KeyboardEvent, rowData: TType) => void;\n\n const handleClick = React.useCallback(\n function (event: React.MouseEvent<HTMLTableRowElement>, rowData: TType) {\n if (!isRowClickEnabled(rowData) || typeof onRowClick !== 'function' || event.defaultPrevented) {\n return;\n }\n\n event.preventDefault();\n onRowClick(rowData);\n return;\n },\n [isEnabled, onRowClick]\n );\n\n return {\n isEnabled: isRowClickEnabled,\n handleClick,\n handleKeyDown,\n };\n}\n"],"names":[],"mappings":";;;AAIO,SAAS,iBACZ,YAAiD,OACjD,YACF;AACE,QAAM,oBAAoB,MAAM;AAAA,IAC5B,CAAC,QAAe;AACZ,aAAO,OAAO,cAAc,YAAY,YAAY,UAAU,GAAG;AAAA,IACrE;AAAA,IACA,CAAC,SAAS;AAAA,EAAA;AAGd,QAAM,gBAAgB,MAAM;AAAA,IACxB,SAAU,OAAsB,SAAgB;AAC5C,UAAI,CAAC,kBAAkB,OAAO,KAAK,OAAO,eAAe,cAAc,MAAM,kBAAkB;AAC3F;AAAA,MACJ;AAEA,UAAI,WAAW,MAAM,QAAQ,SAAS;AAClC,cAAM,eAAA;AACN,mBAAW,OAAO;AAClB;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,CAAC,WAAW,UAAU;AAAA,EAAA;AAG1B,QAAM,cAAc,MAAM;AAAA,IACtB,SAAU,OAA8C,SAAgB;AACpE,UAAI,CAAC,kBAAkB,OAAO,KAAK,OAAO,eAAe,cAAc,MAAM,kBAAkB;AAC3F;AAAA,MACJ;AAEA,YAAM,eAAA;AACN,iBAAW,OAAO;AAClB;AAAA,IACJ;AAAA,IACA,CAAC,WAAW,UAAU;AAAA,EAAA;AAG1B,SAAO;AAAA,IACH,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EAAA;AAER;;"}
1
+ {"version":3,"file":"useTableRowClick.cjs","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableRowClick.ts"],"sourcesContent":["import React from 'react';\n\nimport type { TableRowClickHandler } from '../../types';\n\nexport function useTableRowClick<TType = unknown>(\n isEnabled: boolean | ((row: TType) => boolean) = false,\n onRowClick?: TableRowClickHandler<TType>\n) {\n const isRowClickEnabled = React.useCallback(\n (row: TType) => {\n return typeof isEnabled === 'boolean' ? isEnabled : isEnabled(row);\n },\n [isEnabled]\n );\n\n const handleKeyDown = React.useCallback(\n function (event: KeyboardEvent, rowData: TType) {\n if (!isRowClickEnabled(rowData) || typeof onRowClick !== 'function' || event.defaultPrevented) {\n return;\n }\n\n if (rowData && event.key === 'Enter') {\n event.preventDefault();\n onRowClick(rowData);\n }\n },\n [isEnabled, onRowClick]\n ) as <TType = unknown>(event: KeyboardEvent, rowData: TType) => void;\n\n const handleClick = React.useCallback(\n function (event: React.MouseEvent<HTMLTableRowElement>, rowData: TType) {\n if (!isRowClickEnabled(rowData) || typeof onRowClick !== 'function' || event.defaultPrevented) {\n return;\n }\n\n event.preventDefault();\n onRowClick(rowData);\n },\n [isEnabled, onRowClick]\n );\n\n return {\n isEnabled: isRowClickEnabled,\n handleClick,\n handleKeyDown,\n };\n}\n"],"names":[],"mappings":";;;AAIO,SAAS,iBACZ,YAAiD,OACjD,YACF;AACE,QAAM,oBAAoB,MAAM;AAAA,IAC5B,CAAC,QAAe;AACZ,aAAO,OAAO,cAAc,YAAY,YAAY,UAAU,GAAG;AAAA,IACrE;AAAA,IACA,CAAC,SAAS;AAAA,EAAA;AAGd,QAAM,gBAAgB,MAAM;AAAA,IACxB,SAAU,OAAsB,SAAgB;AAC5C,UAAI,CAAC,kBAAkB,OAAO,KAAK,OAAO,eAAe,cAAc,MAAM,kBAAkB;AAC3F;AAAA,MACJ;AAEA,UAAI,WAAW,MAAM,QAAQ,SAAS;AAClC,cAAM,eAAA;AACN,mBAAW,OAAO;AAAA,MACtB;AAAA,IACJ;AAAA,IACA,CAAC,WAAW,UAAU;AAAA,EAAA;AAG1B,QAAM,cAAc,MAAM;AAAA,IACtB,SAAU,OAA8C,SAAgB;AACpE,UAAI,CAAC,kBAAkB,OAAO,KAAK,OAAO,eAAe,cAAc,MAAM,kBAAkB;AAC3F;AAAA,MACJ;AAEA,YAAM,eAAA;AACN,iBAAW,OAAO;AAAA,IACtB;AAAA,IACA,CAAC,WAAW,UAAU;AAAA,EAAA;AAG1B,SAAO;AAAA,IACH,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EAAA;AAER;;"}
@@ -14,7 +14,6 @@ function useTableRowClick(isEnabled = false, onRowClick) {
14
14
  if (rowData && event.key === "Enter") {
15
15
  event.preventDefault();
16
16
  onRowClick(rowData);
17
- return;
18
17
  }
19
18
  },
20
19
  [isEnabled, onRowClick]
@@ -26,7 +25,6 @@ function useTableRowClick(isEnabled = false, onRowClick) {
26
25
  }
27
26
  event.preventDefault();
28
27
  onRowClick(rowData);
29
- return;
30
28
  },
31
29
  [isEnabled, onRowClick]
32
30
  );
@@ -1 +1 @@
1
- {"version":3,"file":"useTableRowClick.js","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableRowClick.ts"],"sourcesContent":["import React from 'react';\n\nimport type { TableRowClickHandler } from '../../types';\n\nexport function useTableRowClick<TType = unknown>(\n isEnabled: boolean | ((row: TType) => boolean) = false,\n onRowClick?: TableRowClickHandler<TType>\n) {\n const isRowClickEnabled = React.useCallback(\n (row: TType) => {\n return typeof isEnabled === 'boolean' ? isEnabled : isEnabled(row);\n },\n [isEnabled]\n );\n\n const handleKeyDown = React.useCallback(\n function (event: KeyboardEvent, rowData: TType) {\n if (!isRowClickEnabled(rowData) || typeof onRowClick !== 'function' || event.defaultPrevented) {\n return;\n }\n\n if (rowData && event.key === 'Enter') {\n event.preventDefault();\n onRowClick(rowData);\n return;\n }\n },\n [isEnabled, onRowClick]\n ) as <TType = unknown>(event: KeyboardEvent, rowData: TType) => void;\n\n const handleClick = React.useCallback(\n function (event: React.MouseEvent<HTMLTableRowElement>, rowData: TType) {\n if (!isRowClickEnabled(rowData) || typeof onRowClick !== 'function' || event.defaultPrevented) {\n return;\n }\n\n event.preventDefault();\n onRowClick(rowData);\n return;\n },\n [isEnabled, onRowClick]\n );\n\n return {\n isEnabled: isRowClickEnabled,\n handleClick,\n handleKeyDown,\n };\n}\n"],"names":["React"],"mappings":";AAIO,SAAS,iBACZ,YAAiD,OACjD,YACF;AACE,QAAM,oBAAoBA,eAAM;AAAA,IAC5B,CAAC,QAAe;AACZ,aAAO,OAAO,cAAc,YAAY,YAAY,UAAU,GAAG;AAAA,IACrE;AAAA,IACA,CAAC,SAAS;AAAA,EAAA;AAGd,QAAM,gBAAgBA,eAAM;AAAA,IACxB,SAAU,OAAsB,SAAgB;AAC5C,UAAI,CAAC,kBAAkB,OAAO,KAAK,OAAO,eAAe,cAAc,MAAM,kBAAkB;AAC3F;AAAA,MACJ;AAEA,UAAI,WAAW,MAAM,QAAQ,SAAS;AAClC,cAAM,eAAA;AACN,mBAAW,OAAO;AAClB;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,CAAC,WAAW,UAAU;AAAA,EAAA;AAG1B,QAAM,cAAcA,eAAM;AAAA,IACtB,SAAU,OAA8C,SAAgB;AACpE,UAAI,CAAC,kBAAkB,OAAO,KAAK,OAAO,eAAe,cAAc,MAAM,kBAAkB;AAC3F;AAAA,MACJ;AAEA,YAAM,eAAA;AACN,iBAAW,OAAO;AAClB;AAAA,IACJ;AAAA,IACA,CAAC,WAAW,UAAU;AAAA,EAAA;AAG1B,SAAO;AAAA,IACH,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EAAA;AAER;"}
1
+ {"version":3,"file":"useTableRowClick.js","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableRowClick.ts"],"sourcesContent":["import React from 'react';\n\nimport type { TableRowClickHandler } from '../../types';\n\nexport function useTableRowClick<TType = unknown>(\n isEnabled: boolean | ((row: TType) => boolean) = false,\n onRowClick?: TableRowClickHandler<TType>\n) {\n const isRowClickEnabled = React.useCallback(\n (row: TType) => {\n return typeof isEnabled === 'boolean' ? isEnabled : isEnabled(row);\n },\n [isEnabled]\n );\n\n const handleKeyDown = React.useCallback(\n function (event: KeyboardEvent, rowData: TType) {\n if (!isRowClickEnabled(rowData) || typeof onRowClick !== 'function' || event.defaultPrevented) {\n return;\n }\n\n if (rowData && event.key === 'Enter') {\n event.preventDefault();\n onRowClick(rowData);\n }\n },\n [isEnabled, onRowClick]\n ) as <TType = unknown>(event: KeyboardEvent, rowData: TType) => void;\n\n const handleClick = React.useCallback(\n function (event: React.MouseEvent<HTMLTableRowElement>, rowData: TType) {\n if (!isRowClickEnabled(rowData) || typeof onRowClick !== 'function' || event.defaultPrevented) {\n return;\n }\n\n event.preventDefault();\n onRowClick(rowData);\n },\n [isEnabled, onRowClick]\n );\n\n return {\n isEnabled: isRowClickEnabled,\n handleClick,\n handleKeyDown,\n };\n}\n"],"names":["React"],"mappings":";AAIO,SAAS,iBACZ,YAAiD,OACjD,YACF;AACE,QAAM,oBAAoBA,eAAM;AAAA,IAC5B,CAAC,QAAe;AACZ,aAAO,OAAO,cAAc,YAAY,YAAY,UAAU,GAAG;AAAA,IACrE;AAAA,IACA,CAAC,SAAS;AAAA,EAAA;AAGd,QAAM,gBAAgBA,eAAM;AAAA,IACxB,SAAU,OAAsB,SAAgB;AAC5C,UAAI,CAAC,kBAAkB,OAAO,KAAK,OAAO,eAAe,cAAc,MAAM,kBAAkB;AAC3F;AAAA,MACJ;AAEA,UAAI,WAAW,MAAM,QAAQ,SAAS;AAClC,cAAM,eAAA;AACN,mBAAW,OAAO;AAAA,MACtB;AAAA,IACJ;AAAA,IACA,CAAC,WAAW,UAAU;AAAA,EAAA;AAG1B,QAAM,cAAcA,eAAM;AAAA,IACtB,SAAU,OAA8C,SAAgB;AACpE,UAAI,CAAC,kBAAkB,OAAO,KAAK,OAAO,eAAe,cAAc,MAAM,kBAAkB;AAC3F;AAAA,MACJ;AAEA,YAAM,eAAA;AACN,iBAAW,OAAO;AAAA,IACtB;AAAA,IACA,CAAC,WAAW,UAAU;AAAA,EAAA;AAG1B,SAAO;AAAA,IACH,WAAW;AAAA,IACX;AAAA,IACA;AAAA,EAAA;AAER;"}
@@ -22,7 +22,6 @@ function useTableRowSelection(isEnabled = false, controlledSelectedRows) {
22
22
  if ((event.ctrlKey || event.metaKey) && event.key === "a" && !["INPUT", "TEXTAREA"].includes(event.target?.tagName)) {
23
23
  event.preventDefault();
24
24
  table.toggleAllRowsSelected();
25
- return;
26
25
  }
27
26
  },
28
27
  [isEnabled]
@@ -1 +1 @@
1
- {"version":3,"file":"useTableRowSelection.cjs","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableRowSelection.ts"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nexport function useTableRowSelection(isEnabled = false, controlledSelectedRows?: Record<string, boolean>) {\n const lastSelectedRowIndex = React.useRef<number | undefined>(undefined);\n const isControlled = isEnabled && controlledSelectedRows !== undefined;\n\n const onKeyDown = React.useCallback(\n <TType = unknown>(event: KeyboardEvent, table: ReactTable<TType>) => {\n if (!isEnabled || !table.options.enableRowSelection || event.defaultPrevented) {\n return;\n }\n\n const rows = table.getRowModel().rows;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (event.key === ' ') {\n event.preventDefault();\n const rowActiveIndex = tableMeta.rowActive.rowActiveIndex;\n\n if (rowActiveIndex !== undefined && rows[rowActiveIndex]?.getCanSelect()) {\n rows[rowActiveIndex]?.toggleSelected();\n }\n\n return;\n }\n if (\n (event.ctrlKey || event.metaKey) &&\n event.key === 'a' &&\n !['INPUT', 'TEXTAREA'].includes((event.target as Element)?.tagName)\n ) {\n event.preventDefault();\n table.toggleAllRowsSelected();\n return;\n }\n },\n [isEnabled]\n ) as <TType = unknown>(event: KeyboardEvent, table: ReactTable<TType>) => void;\n\n return {\n isEnabled,\n isControlled,\n controlledSelectedRows,\n handleKeyDown: isEnabled ? onKeyDown : () => undefined,\n lastSelectedRowIndex,\n };\n}\n"],"names":[],"mappings":";;;AAGO,SAAS,qBAAqB,YAAY,OAAO,wBAAkD;AACtG,QAAM,uBAAuB,MAAM,OAA2B,MAAS;AACvE,QAAM,eAAe,aAAa,2BAA2B;AAE7D,QAAM,YAAY,MAAM;AAAA,IACpB,CAAkB,OAAsB,UAA6B;AACjE,UAAI,CAAC,aAAa,CAAC,MAAM,QAAQ,sBAAsB,MAAM,kBAAkB;AAC3E;AAAA,MACJ;AAEA,YAAM,OAAO,MAAM,YAAA,EAAc;AACjC,YAAM,YAAY,MAAM,QAAQ;AAEhC,UAAI,MAAM,QAAQ,KAAK;AACnB,cAAM,eAAA;AACN,cAAM,iBAAiB,UAAU,UAAU;AAE3C,YAAI,mBAAmB,UAAa,KAAK,cAAc,GAAG,gBAAgB;AACtE,eAAK,cAAc,GAAG,eAAA;AAAA,QAC1B;AAEA;AAAA,MACJ;AACA,WACK,MAAM,WAAW,MAAM,YACxB,MAAM,QAAQ,OACd,CAAC,CAAC,SAAS,UAAU,EAAE,SAAU,MAAM,QAAoB,OAAO,GACpE;AACE,cAAM,eAAA;AACN,cAAM,sBAAA;AACN;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,CAAC,SAAS;AAAA,EAAA;AAGd,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,YAAY,YAAY,MAAM;AAAA,IAC7C;AAAA,EAAA;AAER;;"}
1
+ {"version":3,"file":"useTableRowSelection.cjs","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableRowSelection.ts"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nexport function useTableRowSelection(isEnabled = false, controlledSelectedRows?: Record<string, boolean>) {\n const lastSelectedRowIndex = React.useRef<number | undefined>(undefined);\n const isControlled = isEnabled && controlledSelectedRows !== undefined;\n\n const onKeyDown = React.useCallback(\n <TType = unknown>(event: KeyboardEvent, table: ReactTable<TType>) => {\n if (!isEnabled || !table.options.enableRowSelection || event.defaultPrevented) {\n return;\n }\n\n const rows = table.getRowModel().rows;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (event.key === ' ') {\n event.preventDefault();\n const rowActiveIndex = tableMeta.rowActive.rowActiveIndex;\n\n if (rowActiveIndex !== undefined && rows[rowActiveIndex]?.getCanSelect()) {\n rows[rowActiveIndex]?.toggleSelected();\n }\n\n return;\n }\n if (\n (event.ctrlKey || event.metaKey) &&\n event.key === 'a' &&\n !['INPUT', 'TEXTAREA'].includes((event.target as Element)?.tagName)\n ) {\n event.preventDefault();\n table.toggleAllRowsSelected();\n }\n },\n [isEnabled]\n ) as <TType = unknown>(event: KeyboardEvent, table: ReactTable<TType>) => void;\n\n return {\n isEnabled,\n isControlled,\n controlledSelectedRows,\n handleKeyDown: isEnabled ? onKeyDown : () => undefined,\n lastSelectedRowIndex,\n };\n}\n"],"names":[],"mappings":";;;AAGO,SAAS,qBAAqB,YAAY,OAAO,wBAAkD;AACtG,QAAM,uBAAuB,MAAM,OAA2B,MAAS;AACvE,QAAM,eAAe,aAAa,2BAA2B;AAE7D,QAAM,YAAY,MAAM;AAAA,IACpB,CAAkB,OAAsB,UAA6B;AACjE,UAAI,CAAC,aAAa,CAAC,MAAM,QAAQ,sBAAsB,MAAM,kBAAkB;AAC3E;AAAA,MACJ;AAEA,YAAM,OAAO,MAAM,YAAA,EAAc;AACjC,YAAM,YAAY,MAAM,QAAQ;AAEhC,UAAI,MAAM,QAAQ,KAAK;AACnB,cAAM,eAAA;AACN,cAAM,iBAAiB,UAAU,UAAU;AAE3C,YAAI,mBAAmB,UAAa,KAAK,cAAc,GAAG,gBAAgB;AACtE,eAAK,cAAc,GAAG,eAAA;AAAA,QAC1B;AAEA;AAAA,MACJ;AACA,WACK,MAAM,WAAW,MAAM,YACxB,MAAM,QAAQ,OACd,CAAC,CAAC,SAAS,UAAU,EAAE,SAAU,MAAM,QAAoB,OAAO,GACpE;AACE,cAAM,eAAA;AACN,cAAM,sBAAA;AAAA,MACV;AAAA,IACJ;AAAA,IACA,CAAC,SAAS;AAAA,EAAA;AAGd,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,YAAY,YAAY,MAAM;AAAA,IAC7C;AAAA,EAAA;AAER;;"}
@@ -20,7 +20,6 @@ function useTableRowSelection(isEnabled = false, controlledSelectedRows) {
20
20
  if ((event.ctrlKey || event.metaKey) && event.key === "a" && !["INPUT", "TEXTAREA"].includes(event.target?.tagName)) {
21
21
  event.preventDefault();
22
22
  table.toggleAllRowsSelected();
23
- return;
24
23
  }
25
24
  },
26
25
  [isEnabled]
@@ -1 +1 @@
1
- {"version":3,"file":"useTableRowSelection.js","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableRowSelection.ts"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nexport function useTableRowSelection(isEnabled = false, controlledSelectedRows?: Record<string, boolean>) {\n const lastSelectedRowIndex = React.useRef<number | undefined>(undefined);\n const isControlled = isEnabled && controlledSelectedRows !== undefined;\n\n const onKeyDown = React.useCallback(\n <TType = unknown>(event: KeyboardEvent, table: ReactTable<TType>) => {\n if (!isEnabled || !table.options.enableRowSelection || event.defaultPrevented) {\n return;\n }\n\n const rows = table.getRowModel().rows;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (event.key === ' ') {\n event.preventDefault();\n const rowActiveIndex = tableMeta.rowActive.rowActiveIndex;\n\n if (rowActiveIndex !== undefined && rows[rowActiveIndex]?.getCanSelect()) {\n rows[rowActiveIndex]?.toggleSelected();\n }\n\n return;\n }\n if (\n (event.ctrlKey || event.metaKey) &&\n event.key === 'a' &&\n !['INPUT', 'TEXTAREA'].includes((event.target as Element)?.tagName)\n ) {\n event.preventDefault();\n table.toggleAllRowsSelected();\n return;\n }\n },\n [isEnabled]\n ) as <TType = unknown>(event: KeyboardEvent, table: ReactTable<TType>) => void;\n\n return {\n isEnabled,\n isControlled,\n controlledSelectedRows,\n handleKeyDown: isEnabled ? onKeyDown : () => undefined,\n lastSelectedRowIndex,\n };\n}\n"],"names":["React"],"mappings":";AAGO,SAAS,qBAAqB,YAAY,OAAO,wBAAkD;AACtG,QAAM,uBAAuBA,eAAM,OAA2B,MAAS;AACvE,QAAM,eAAe,aAAa,2BAA2B;AAE7D,QAAM,YAAYA,eAAM;AAAA,IACpB,CAAkB,OAAsB,UAA6B;AACjE,UAAI,CAAC,aAAa,CAAC,MAAM,QAAQ,sBAAsB,MAAM,kBAAkB;AAC3E;AAAA,MACJ;AAEA,YAAM,OAAO,MAAM,YAAA,EAAc;AACjC,YAAM,YAAY,MAAM,QAAQ;AAEhC,UAAI,MAAM,QAAQ,KAAK;AACnB,cAAM,eAAA;AACN,cAAM,iBAAiB,UAAU,UAAU;AAE3C,YAAI,mBAAmB,UAAa,KAAK,cAAc,GAAG,gBAAgB;AACtE,eAAK,cAAc,GAAG,eAAA;AAAA,QAC1B;AAEA;AAAA,MACJ;AACA,WACK,MAAM,WAAW,MAAM,YACxB,MAAM,QAAQ,OACd,CAAC,CAAC,SAAS,UAAU,EAAE,SAAU,MAAM,QAAoB,OAAO,GACpE;AACE,cAAM,eAAA;AACN,cAAM,sBAAA;AACN;AAAA,MACJ;AAAA,IACJ;AAAA,IACA,CAAC,SAAS;AAAA,EAAA;AAGd,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,YAAY,YAAY,MAAM;AAAA,IAC7C;AAAA,EAAA;AAER;"}
1
+ {"version":3,"file":"useTableRowSelection.js","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableRowSelection.ts"],"sourcesContent":["import type { Table as ReactTable, TableMeta as ReactTableMeta } from '@tanstack/react-table';\nimport React from 'react';\n\nexport function useTableRowSelection(isEnabled = false, controlledSelectedRows?: Record<string, boolean>) {\n const lastSelectedRowIndex = React.useRef<number | undefined>(undefined);\n const isControlled = isEnabled && controlledSelectedRows !== undefined;\n\n const onKeyDown = React.useCallback(\n <TType = unknown>(event: KeyboardEvent, table: ReactTable<TType>) => {\n if (!isEnabled || !table.options.enableRowSelection || event.defaultPrevented) {\n return;\n }\n\n const rows = table.getRowModel().rows;\n const tableMeta = table.options.meta as ReactTableMeta<TType>;\n\n if (event.key === ' ') {\n event.preventDefault();\n const rowActiveIndex = tableMeta.rowActive.rowActiveIndex;\n\n if (rowActiveIndex !== undefined && rows[rowActiveIndex]?.getCanSelect()) {\n rows[rowActiveIndex]?.toggleSelected();\n }\n\n return;\n }\n if (\n (event.ctrlKey || event.metaKey) &&\n event.key === 'a' &&\n !['INPUT', 'TEXTAREA'].includes((event.target as Element)?.tagName)\n ) {\n event.preventDefault();\n table.toggleAllRowsSelected();\n }\n },\n [isEnabled]\n ) as <TType = unknown>(event: KeyboardEvent, table: ReactTable<TType>) => void;\n\n return {\n isEnabled,\n isControlled,\n controlledSelectedRows,\n handleKeyDown: isEnabled ? onKeyDown : () => undefined,\n lastSelectedRowIndex,\n };\n}\n"],"names":["React"],"mappings":";AAGO,SAAS,qBAAqB,YAAY,OAAO,wBAAkD;AACtG,QAAM,uBAAuBA,eAAM,OAA2B,MAAS;AACvE,QAAM,eAAe,aAAa,2BAA2B;AAE7D,QAAM,YAAYA,eAAM;AAAA,IACpB,CAAkB,OAAsB,UAA6B;AACjE,UAAI,CAAC,aAAa,CAAC,MAAM,QAAQ,sBAAsB,MAAM,kBAAkB;AAC3E;AAAA,MACJ;AAEA,YAAM,OAAO,MAAM,YAAA,EAAc;AACjC,YAAM,YAAY,MAAM,QAAQ;AAEhC,UAAI,MAAM,QAAQ,KAAK;AACnB,cAAM,eAAA;AACN,cAAM,iBAAiB,UAAU,UAAU;AAE3C,YAAI,mBAAmB,UAAa,KAAK,cAAc,GAAG,gBAAgB;AACtE,eAAK,cAAc,GAAG,eAAA;AAAA,QAC1B;AAEA;AAAA,MACJ;AACA,WACK,MAAM,WAAW,MAAM,YACxB,MAAM,QAAQ,OACd,CAAC,CAAC,SAAS,UAAU,EAAE,SAAU,MAAM,QAAoB,OAAO,GACpE;AACE,cAAM,eAAA;AACN,cAAM,sBAAA;AAAA,MACV;AAAA,IACJ;AAAA,IACA,CAAC,SAAS;AAAA,EAAA;AAGd,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA,eAAe,YAAY,YAAY,MAAM;AAAA,IAC7C;AAAA,EAAA;AAER;"}
@@ -2,7 +2,7 @@
2
2
  Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" });
3
3
  const React = require("react");
4
4
  const useTableDataLoader = require("../../useTableDataLoader.cjs");
5
- function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize = useTableDataLoader.DEFAULT_PAGE_SIZE, _experimentalDataLoader2 = false) {
5
+ function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize = useTableDataLoader.DEFAULT_PAGE_SIZE, resetPagination, _experimentalDataLoader2 = false) {
6
6
  const isEnabled = !!loadPage && !!loadAll;
7
7
  const [isReady, setReady] = React.useState(false);
8
8
  const [loading, setLoading] = React.useState(false);
@@ -15,6 +15,7 @@ function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize
15
15
  let _loadPage;
16
16
  let _loadAll;
17
17
  let _loadAllIfNeeded;
18
+ let _resetPagination;
18
19
  if (typeof loadPage === "function") {
19
20
  _loadPage = async (...args) => {
20
21
  if (typeof loadPage === "function") {
@@ -38,6 +39,13 @@ function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize
38
39
  }
39
40
  };
40
41
  }
42
+ if (typeof resetPagination === "function") {
43
+ const reset = resetPagination;
44
+ _resetPagination = async () => {
45
+ await reset();
46
+ setReady(true);
47
+ };
48
+ }
41
49
  const pageCount = Math.ceil(length / pageSize);
42
50
  return {
43
51
  pages,
@@ -49,6 +57,7 @@ function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize
49
57
  loading,
50
58
  pageSize,
51
59
  pageCount,
60
+ resetPagination: _resetPagination,
52
61
  _experimentalDataLoader2
53
62
  };
54
63
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useTableServerLoading.cjs","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableServerLoading.ts"],"sourcesContent":["import React from 'react';\n\nimport type { TableServerLoadAllHandler, TableServerLoadPageHandler } from '../../types';\nimport { DEFAULT_PAGE_SIZE } from '../../useTableDataLoader';\n\nexport function useTableServerLoading<TType = unknown>(\n length: number,\n data: TType[],\n loadPage?: TableServerLoadPageHandler,\n loadAll?: TableServerLoadAllHandler,\n pages?: number[],\n pageSize = DEFAULT_PAGE_SIZE,\n _experimentalDataLoader2 = false\n) {\n const isEnabled = !!loadPage && !!loadAll;\n const [isReady, setReady] = React.useState(false);\n const [loading, setLoading] = React.useState<boolean>(false);\n\n const hasLoadedAll = React.useMemo(() => {\n if (data.length !== length || !!data.some?.(x => x === undefined)) {\n return false;\n }\n\n return true;\n }, [data, length]);\n\n let _loadPage: TableServerLoadPageHandler | undefined;\n let _loadAll: TableServerLoadAllHandler | undefined;\n let _loadAllIfNeeded: TableServerLoadAllHandler | undefined;\n\n if (typeof loadPage === 'function') {\n _loadPage = async (...args) => {\n if (typeof loadPage === 'function') {\n await loadPage(...args);\n setReady(true);\n }\n };\n }\n\n if (typeof loadAll === 'function') {\n _loadAll = async (...args) => {\n if (typeof loadAll === 'function') {\n setLoading(true);\n await loadAll(...args);\n setLoading(false);\n setReady(true);\n }\n };\n\n _loadAllIfNeeded = async (...args) => {\n if (!hasLoadedAll) {\n await _loadAll?.(...args);\n }\n };\n }\n\n const pageCount = Math.ceil(length / pageSize);\n\n return {\n pages,\n isEnabled,\n isReady,\n loadPage: _loadPage,\n loadAll: _loadAll,\n loadAllIfNeeded: _loadAllIfNeeded,\n loading,\n pageSize,\n pageCount,\n _experimentalDataLoader2,\n };\n}\n"],"names":["DEFAULT_PAGE_SIZE"],"mappings":";;;;AAKO,SAAS,sBACZ,QACA,MACA,UACA,SACA,OACA,WAAWA,mBAAAA,mBACX,2BAA2B,OAC7B;AACE,QAAM,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC;AAClC,QAAM,CAAC,SAAS,QAAQ,IAAI,MAAM,SAAS,KAAK;AAChD,QAAM,CAAC,SAAS,UAAU,IAAI,MAAM,SAAkB,KAAK;AAE3D,QAAM,eAAe,MAAM,QAAQ,MAAM;AACrC,QAAI,KAAK,WAAW,UAAU,CAAC,CAAC,KAAK,OAAO,CAAA,MAAK,MAAM,MAAS,GAAG;AAC/D,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX,GAAG,CAAC,MAAM,MAAM,CAAC;AAEjB,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,MAAI,OAAO,aAAa,YAAY;AAChC,gBAAY,UAAU,SAAS;AAC3B,UAAI,OAAO,aAAa,YAAY;AAChC,cAAM,SAAS,GAAG,IAAI;AACtB,iBAAS,IAAI;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,OAAO,YAAY,YAAY;AAC/B,eAAW,UAAU,SAAS;AAC1B,UAAI,OAAO,YAAY,YAAY;AAC/B,mBAAW,IAAI;AACf,cAAM,QAAQ,GAAG,IAAI;AACrB,mBAAW,KAAK;AAChB,iBAAS,IAAI;AAAA,MACjB;AAAA,IACJ;AAEA,uBAAmB,UAAU,SAAS;AAClC,UAAI,CAAC,cAAc;AACf,cAAM,WAAW,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,YAAY,KAAK,KAAK,SAAS,QAAQ;AAE7C,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;;"}
1
+ {"version":3,"file":"useTableServerLoading.cjs","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableServerLoading.ts"],"sourcesContent":["import React from 'react';\n\nimport type { TableServerLoadAllHandler, TableServerLoadPageHandler, TableServerResetPaginationHandler } from '../../types';\nimport { DEFAULT_PAGE_SIZE } from '../../useTableDataLoader';\n\nexport function useTableServerLoading<TType = unknown>(\n length: number,\n data: TType[],\n loadPage?: TableServerLoadPageHandler,\n loadAll?: TableServerLoadAllHandler,\n pages?: number[],\n pageSize = DEFAULT_PAGE_SIZE,\n resetPagination?: TableServerResetPaginationHandler,\n _experimentalDataLoader2 = false\n) {\n const isEnabled = !!loadPage && !!loadAll;\n const [isReady, setReady] = React.useState(false);\n const [loading, setLoading] = React.useState<boolean>(false);\n\n const hasLoadedAll = React.useMemo(() => {\n if (data.length !== length || !!data.some?.(x => x === undefined)) {\n return false;\n }\n\n return true;\n }, [data, length]);\n\n let _loadPage: TableServerLoadPageHandler | undefined;\n let _loadAll: TableServerLoadAllHandler | undefined;\n let _loadAllIfNeeded: TableServerLoadAllHandler | undefined;\n let _resetPagination: TableServerResetPaginationHandler | undefined;\n\n if (typeof loadPage === 'function') {\n _loadPage = async (...args) => {\n if (typeof loadPage === 'function') {\n await loadPage(...args);\n setReady(true);\n }\n };\n }\n\n if (typeof loadAll === 'function') {\n _loadAll = async (...args) => {\n if (typeof loadAll === 'function') {\n setLoading(true);\n await loadAll(...args);\n setLoading(false);\n setReady(true);\n }\n };\n\n _loadAllIfNeeded = async (...args) => {\n if (!hasLoadedAll) {\n await _loadAll?.(...args);\n }\n };\n }\n\n if (typeof resetPagination === 'function') {\n const reset = resetPagination;\n _resetPagination = async () => {\n await reset();\n setReady(true);\n };\n }\n\n const pageCount = Math.ceil(length / pageSize);\n\n return {\n pages,\n isEnabled,\n isReady,\n loadPage: _loadPage,\n loadAll: _loadAll,\n loadAllIfNeeded: _loadAllIfNeeded,\n loading,\n pageSize,\n pageCount,\n resetPagination: _resetPagination,\n _experimentalDataLoader2,\n };\n}\n"],"names":["DEFAULT_PAGE_SIZE"],"mappings":";;;;AAKO,SAAS,sBACZ,QACA,MACA,UACA,SACA,OACA,WAAWA,mBAAAA,mBACX,iBACA,2BAA2B,OAC7B;AACE,QAAM,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC;AAClC,QAAM,CAAC,SAAS,QAAQ,IAAI,MAAM,SAAS,KAAK;AAChD,QAAM,CAAC,SAAS,UAAU,IAAI,MAAM,SAAkB,KAAK;AAE3D,QAAM,eAAe,MAAM,QAAQ,MAAM;AACrC,QAAI,KAAK,WAAW,UAAU,CAAC,CAAC,KAAK,OAAO,CAAA,MAAK,MAAM,MAAS,GAAG;AAC/D,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX,GAAG,CAAC,MAAM,MAAM,CAAC;AAEjB,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,MAAI,OAAO,aAAa,YAAY;AAChC,gBAAY,UAAU,SAAS;AAC3B,UAAI,OAAO,aAAa,YAAY;AAChC,cAAM,SAAS,GAAG,IAAI;AACtB,iBAAS,IAAI;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,OAAO,YAAY,YAAY;AAC/B,eAAW,UAAU,SAAS;AAC1B,UAAI,OAAO,YAAY,YAAY;AAC/B,mBAAW,IAAI;AACf,cAAM,QAAQ,GAAG,IAAI;AACrB,mBAAW,KAAK;AAChB,iBAAS,IAAI;AAAA,MACjB;AAAA,IACJ;AAEA,uBAAmB,UAAU,SAAS;AAClC,UAAI,CAAC,cAAc;AACf,cAAM,WAAW,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAAA,EACJ;AAEC,MAAI,OAAO,oBAAoB,YAAY;AACxC,UAAM,QAAQ;AACd,uBAAmB,YAAY;AAC3B,YAAM,MAAA;AACN,eAAS,IAAI;AAAA,IACjB;AAAA,EACJ;AAEA,QAAM,YAAY,KAAK,KAAK,SAAS,QAAQ;AAE7C,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,EAAA;AAER;;"}
@@ -1,5 +1,5 @@
1
- import { TableServerLoadAllHandler, TableServerLoadPageHandler } from '../../types';
2
- export declare function useTableServerLoading<TType = unknown>(length: number, data: TType[], loadPage?: TableServerLoadPageHandler, loadAll?: TableServerLoadAllHandler, pages?: number[], pageSize?: number, _experimentalDataLoader2?: boolean): {
1
+ import { TableServerLoadAllHandler, TableServerLoadPageHandler, TableServerResetPaginationHandler } from '../../types';
2
+ export declare function useTableServerLoading<TType = unknown>(length: number, data: TType[], loadPage?: TableServerLoadPageHandler, loadAll?: TableServerLoadAllHandler, pages?: number[], pageSize?: number, resetPagination?: TableServerResetPaginationHandler, _experimentalDataLoader2?: boolean): {
3
3
  pages: number[] | undefined;
4
4
  isEnabled: boolean;
5
5
  isReady: boolean;
@@ -9,5 +9,6 @@ export declare function useTableServerLoading<TType = unknown>(length: number, d
9
9
  loading: boolean;
10
10
  pageSize: number;
11
11
  pageCount: number;
12
+ resetPagination: TableServerResetPaginationHandler | undefined;
12
13
  _experimentalDataLoader2: boolean;
13
14
  };
@@ -1,6 +1,6 @@
1
1
  import React__default from "react";
2
2
  import { DEFAULT_PAGE_SIZE } from "../../useTableDataLoader.js";
3
- function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize = DEFAULT_PAGE_SIZE, _experimentalDataLoader2 = false) {
3
+ function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize = DEFAULT_PAGE_SIZE, resetPagination, _experimentalDataLoader2 = false) {
4
4
  const isEnabled = !!loadPage && !!loadAll;
5
5
  const [isReady, setReady] = React__default.useState(false);
6
6
  const [loading, setLoading] = React__default.useState(false);
@@ -13,6 +13,7 @@ function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize
13
13
  let _loadPage;
14
14
  let _loadAll;
15
15
  let _loadAllIfNeeded;
16
+ let _resetPagination;
16
17
  if (typeof loadPage === "function") {
17
18
  _loadPage = async (...args) => {
18
19
  if (typeof loadPage === "function") {
@@ -36,6 +37,13 @@ function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize
36
37
  }
37
38
  };
38
39
  }
40
+ if (typeof resetPagination === "function") {
41
+ const reset = resetPagination;
42
+ _resetPagination = async () => {
43
+ await reset();
44
+ setReady(true);
45
+ };
46
+ }
39
47
  const pageCount = Math.ceil(length / pageSize);
40
48
  return {
41
49
  pages,
@@ -47,6 +55,7 @@ function useTableServerLoading(length, data, loadPage, loadAll, pages, pageSize
47
55
  loading,
48
56
  pageSize,
49
57
  pageCount,
58
+ resetPagination: _resetPagination,
50
59
  _experimentalDataLoader2
51
60
  };
52
61
  }
@@ -1 +1 @@
1
- {"version":3,"file":"useTableServerLoading.js","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableServerLoading.ts"],"sourcesContent":["import React from 'react';\n\nimport type { TableServerLoadAllHandler, TableServerLoadPageHandler } from '../../types';\nimport { DEFAULT_PAGE_SIZE } from '../../useTableDataLoader';\n\nexport function useTableServerLoading<TType = unknown>(\n length: number,\n data: TType[],\n loadPage?: TableServerLoadPageHandler,\n loadAll?: TableServerLoadAllHandler,\n pages?: number[],\n pageSize = DEFAULT_PAGE_SIZE,\n _experimentalDataLoader2 = false\n) {\n const isEnabled = !!loadPage && !!loadAll;\n const [isReady, setReady] = React.useState(false);\n const [loading, setLoading] = React.useState<boolean>(false);\n\n const hasLoadedAll = React.useMemo(() => {\n if (data.length !== length || !!data.some?.(x => x === undefined)) {\n return false;\n }\n\n return true;\n }, [data, length]);\n\n let _loadPage: TableServerLoadPageHandler | undefined;\n let _loadAll: TableServerLoadAllHandler | undefined;\n let _loadAllIfNeeded: TableServerLoadAllHandler | undefined;\n\n if (typeof loadPage === 'function') {\n _loadPage = async (...args) => {\n if (typeof loadPage === 'function') {\n await loadPage(...args);\n setReady(true);\n }\n };\n }\n\n if (typeof loadAll === 'function') {\n _loadAll = async (...args) => {\n if (typeof loadAll === 'function') {\n setLoading(true);\n await loadAll(...args);\n setLoading(false);\n setReady(true);\n }\n };\n\n _loadAllIfNeeded = async (...args) => {\n if (!hasLoadedAll) {\n await _loadAll?.(...args);\n }\n };\n }\n\n const pageCount = Math.ceil(length / pageSize);\n\n return {\n pages,\n isEnabled,\n isReady,\n loadPage: _loadPage,\n loadAll: _loadAll,\n loadAllIfNeeded: _loadAllIfNeeded,\n loading,\n pageSize,\n pageCount,\n _experimentalDataLoader2,\n };\n}\n"],"names":["React"],"mappings":";;AAKO,SAAS,sBACZ,QACA,MACA,UACA,SACA,OACA,WAAW,mBACX,2BAA2B,OAC7B;AACE,QAAM,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC;AAClC,QAAM,CAAC,SAAS,QAAQ,IAAIA,eAAM,SAAS,KAAK;AAChD,QAAM,CAAC,SAAS,UAAU,IAAIA,eAAM,SAAkB,KAAK;AAE3D,QAAM,eAAeA,eAAM,QAAQ,MAAM;AACrC,QAAI,KAAK,WAAW,UAAU,CAAC,CAAC,KAAK,OAAO,CAAA,MAAK,MAAM,MAAS,GAAG;AAC/D,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX,GAAG,CAAC,MAAM,MAAM,CAAC;AAEjB,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,MAAI,OAAO,aAAa,YAAY;AAChC,gBAAY,UAAU,SAAS;AAC3B,UAAI,OAAO,aAAa,YAAY;AAChC,cAAM,SAAS,GAAG,IAAI;AACtB,iBAAS,IAAI;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,OAAO,YAAY,YAAY;AAC/B,eAAW,UAAU,SAAS;AAC1B,UAAI,OAAO,YAAY,YAAY;AAC/B,mBAAW,IAAI;AACf,cAAM,QAAQ,GAAG,IAAI;AACrB,mBAAW,KAAK;AAChB,iBAAS,IAAI;AAAA,MACjB;AAAA,IACJ;AAEA,uBAAmB,UAAU,SAAS;AAClC,UAAI,CAAC,cAAc;AACf,cAAM,WAAW,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAAA,EACJ;AAEA,QAAM,YAAY,KAAK,KAAK,SAAS,QAAQ;AAE7C,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAER;"}
1
+ {"version":3,"file":"useTableServerLoading.js","sources":["../../../../../src/primitives/Table/useTableManager/features/useTableServerLoading.ts"],"sourcesContent":["import React from 'react';\n\nimport type { TableServerLoadAllHandler, TableServerLoadPageHandler, TableServerResetPaginationHandler } from '../../types';\nimport { DEFAULT_PAGE_SIZE } from '../../useTableDataLoader';\n\nexport function useTableServerLoading<TType = unknown>(\n length: number,\n data: TType[],\n loadPage?: TableServerLoadPageHandler,\n loadAll?: TableServerLoadAllHandler,\n pages?: number[],\n pageSize = DEFAULT_PAGE_SIZE,\n resetPagination?: TableServerResetPaginationHandler,\n _experimentalDataLoader2 = false\n) {\n const isEnabled = !!loadPage && !!loadAll;\n const [isReady, setReady] = React.useState(false);\n const [loading, setLoading] = React.useState<boolean>(false);\n\n const hasLoadedAll = React.useMemo(() => {\n if (data.length !== length || !!data.some?.(x => x === undefined)) {\n return false;\n }\n\n return true;\n }, [data, length]);\n\n let _loadPage: TableServerLoadPageHandler | undefined;\n let _loadAll: TableServerLoadAllHandler | undefined;\n let _loadAllIfNeeded: TableServerLoadAllHandler | undefined;\n let _resetPagination: TableServerResetPaginationHandler | undefined;\n\n if (typeof loadPage === 'function') {\n _loadPage = async (...args) => {\n if (typeof loadPage === 'function') {\n await loadPage(...args);\n setReady(true);\n }\n };\n }\n\n if (typeof loadAll === 'function') {\n _loadAll = async (...args) => {\n if (typeof loadAll === 'function') {\n setLoading(true);\n await loadAll(...args);\n setLoading(false);\n setReady(true);\n }\n };\n\n _loadAllIfNeeded = async (...args) => {\n if (!hasLoadedAll) {\n await _loadAll?.(...args);\n }\n };\n }\n\n if (typeof resetPagination === 'function') {\n const reset = resetPagination;\n _resetPagination = async () => {\n await reset();\n setReady(true);\n };\n }\n\n const pageCount = Math.ceil(length / pageSize);\n\n return {\n pages,\n isEnabled,\n isReady,\n loadPage: _loadPage,\n loadAll: _loadAll,\n loadAllIfNeeded: _loadAllIfNeeded,\n loading,\n pageSize,\n pageCount,\n resetPagination: _resetPagination,\n _experimentalDataLoader2,\n };\n}\n"],"names":["React"],"mappings":";;AAKO,SAAS,sBACZ,QACA,MACA,UACA,SACA,OACA,WAAW,mBACX,iBACA,2BAA2B,OAC7B;AACE,QAAM,YAAY,CAAC,CAAC,YAAY,CAAC,CAAC;AAClC,QAAM,CAAC,SAAS,QAAQ,IAAIA,eAAM,SAAS,KAAK;AAChD,QAAM,CAAC,SAAS,UAAU,IAAIA,eAAM,SAAkB,KAAK;AAE3D,QAAM,eAAeA,eAAM,QAAQ,MAAM;AACrC,QAAI,KAAK,WAAW,UAAU,CAAC,CAAC,KAAK,OAAO,CAAA,MAAK,MAAM,MAAS,GAAG;AAC/D,aAAO;AAAA,IACX;AAEA,WAAO;AAAA,EACX,GAAG,CAAC,MAAM,MAAM,CAAC;AAEjB,MAAI;AACJ,MAAI;AACJ,MAAI;AACJ,MAAI;AAEJ,MAAI,OAAO,aAAa,YAAY;AAChC,gBAAY,UAAU,SAAS;AAC3B,UAAI,OAAO,aAAa,YAAY;AAChC,cAAM,SAAS,GAAG,IAAI;AACtB,iBAAS,IAAI;AAAA,MACjB;AAAA,IACJ;AAAA,EACJ;AAEA,MAAI,OAAO,YAAY,YAAY;AAC/B,eAAW,UAAU,SAAS;AAC1B,UAAI,OAAO,YAAY,YAAY;AAC/B,mBAAW,IAAI;AACf,cAAM,QAAQ,GAAG,IAAI;AACrB,mBAAW,KAAK;AAChB,iBAAS,IAAI;AAAA,MACjB;AAAA,IACJ;AAEA,uBAAmB,UAAU,SAAS;AAClC,UAAI,CAAC,cAAc;AACf,cAAM,WAAW,GAAG,IAAI;AAAA,MAC5B;AAAA,IACJ;AAAA,EACJ;AAEC,MAAI,OAAO,oBAAoB,YAAY;AACxC,UAAM,QAAQ;AACd,uBAAmB,YAAY;AAC3B,YAAM,MAAA;AACN,eAAS,IAAI;AAAA,IACjB;AAAA,EACJ;AAEA,QAAM,YAAY,KAAK,KAAK,SAAS,QAAQ;AAE7C,SAAO;AAAA,IACH;AAAA,IACA;AAAA,IACA;AAAA,IACA,UAAU;AAAA,IACV,SAAS;AAAA,IACT,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA;AAAA,IACA,iBAAiB;AAAA,IACjB;AAAA,EAAA;AAER;"}
@@ -86,6 +86,7 @@ function useTableManager(props, ref, meta, internalColumns) {
86
86
  props.loadAll,
87
87
  props.pages,
88
88
  props.pageSize,
89
+ props.resetPagination,
89
90
  props._experimentalDataLoader2
90
91
  );
91
92
  const { columns, ...defaultState } = setup.mapTableChildrenToColumns(
@@ -131,19 +132,14 @@ function useTableManager(props, ref, meta, internalColumns) {
131
132
  onEvent: props.onEvent,
132
133
  printing,
133
134
  rowActions,
134
- // no other way around ReturnType<typeof X> not supporting generics
135
135
  rowActive,
136
136
  rowClick,
137
- // no other way around ReturnType<typeof X> not supporting generics
138
137
  rowDrag,
139
138
  rowDrop,
140
- // no other way around ReturnType<typeof X> not supporting generics
141
139
  rowExpansion,
142
- // no other way around ReturnType<typeof X> not supporting generics
143
140
  rowIdentityAccessor: props.rowIdentityAccessor,
144
141
  rowGoto,
145
142
  rowGroups,
146
- // no other way around ReturnType<typeof X> not supporting generics
147
143
  rowHeight,
148
144
  rowSelection,
149
145
  search,
@@ -1 +1 @@
1
- {"version":3,"file":"useTableManager.cjs","sources":["../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import type { TableMeta as ReactTableMeta, RowData } from '@tanstack/react-table';\nimport { useReactTable, getCoreRowModel } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport type {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnDataTypeOptions,\n TableColumnMenu,\n TableColumnRendererControl,\n TableEventHandler,\n TableFilterComparator,\n TableProps,\n TableRef,\n} from '../types';\n\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowActiveListener } from './listeners/useTableRowActiveListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport type { useTableManagerInternalColumns } from './types';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n // oxlint-disable-next-line typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n onEvent: TableEventHandler;\n printing: ReturnType<typeof useTablePrinting>;\n rowActions: ReturnType<typeof useTableRowActions>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityAccessor: keyof TData;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n // oxlint-disable-next-line no-unused-vars, typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n dataTypeOptions?: TableColumnDataTypeOptions;\n defaultWidth?: number;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n tooltip?: string;\n }\n}\n\n// Placed this array outside the hook to avoid creating a new array reference on each hook re-render\nconst DEFAULT_EMPTY_ARRAY: unknown[] = [];\n\nexport function useTableManager<TType = unknown, TMeta = object>(\n props: TableProps<TType>,\n ref: React.RefObject<TableRef>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const localization = useLocalization();\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings,\n props.enableSaveSettingsLocally\n );\n\n // ensure data is always valid\n const data = props.data ?? DEFAULT_EMPTY_ARRAY;\n const length = props.length ?? data.length;\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId, props.onPrint);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex, ref);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag && !meta?.editing?.isEditing, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(\n options.enableRowExpansion,\n options.enableRowExpansionAll,\n props.rowExpansionRenderer\n );\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const controlledSelectedRows = React.useMemo(() => {\n if (props.selectedRows === undefined) {\n return undefined;\n }\n\n return Object.fromEntries(props.selectedRows.map(id => [String(id), true]));\n }, [props.selectedRows]);\n const rowSelection = useTableRowSelection(!!options.enableRowSelection, controlledSelectedRows);\n const search = useTableSearch(\n options.enableSearch,\n props.onChangeSearch,\n settings.excludeUnmatchedRecordsInSearch,\n props._experimentalDataLoader2\n );\n const server = useTableServerLoading(\n length,\n data,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\n props._experimentalDataLoader2\n );\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(\n props,\n settings,\n options,\n internalColumns,\n localization\n );\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props, localization),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // controlled row selection state\n ...(rowSelection.isControlled && rowSelection.controlledSelectedRows\n ? {\n state: {\n rowSelection: rowSelection.controlledSelectedRows,\n },\n onRowSelectionChange: (updaterOrValue: any) => {\n if (!props.onRowSelect) return;\n\n // TanStack Table passes an updater function, not the value directly\n const newSelection =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(rowSelection.controlledSelectedRows ?? {})\n : updaterOrValue;\n\n // Since getRowId is configured with rowIdentityAccessor, we can trust the IDs match.\n // Map selected IDs back to row objects (filtering out undefined for DataLoader v1).\n const selectedIds = Object.keys(newSelection).filter(id => newSelection[id]);\n const selectedRows = data\n .filter((row): row is TType => row !== undefined)\n .filter(row => newSelection[String(row[props.rowIdentityAccessor as keyof TType])]);\n\n props.onRowSelect(selectedRows, selectedIds);\n },\n }\n : {}),\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n onEvent: props.onEvent,\n printing,\n rowActions: rowActions as any, // no other way around ReturnType<typeof X> not supporting generics\n rowActive,\n rowClick: rowClick as any, // no other way around ReturnType<typeof X> not supporting generics\n rowDrag,\n rowDrop: rowDrop as any, // no other way around ReturnType<typeof X> not supporting generics\n rowExpansion: rowExpansion as any, // no other way around ReturnType<typeof X> not supporting generics\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups: rowGroups as any, // no other way around ReturnType<typeof X> not supporting generics\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance, length);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowActiveListener(instance, props.onRowActive);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, ref, props.shortcuts, props.enableLocalKeyboardShortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n meta: (instance.options.meta ?? {}) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n"],"names":["useLocalization","getTableFeaturePreset","useTableSettings","useTableColumnFreezing","useTableColumnOrdering","useTableFontSize","useTableFooter","useTablePrinting","useTableRowActive","useTableRowActions","useTableRowClick","useTableRowDrag","useTableRowDrop","useTableRowExpansion","useTableRowGoto","useTableRowGroups","useTableRowHeight","useTableRowSelection","useTableSearch","useTableServerLoading","mapTableChildrenToColumns","useReactTableInitialState","useReactTable","getCoreRowModel","configureReactTableOptions","useTableDataListener","useTableFilterListener","useTableFontSizeListener","useTableRowActiveListener","useTableRowHeightListener","useTableRowSelectionListener","useTableSearchListener","useTableServerLoadingListener","useTableSettingsListener","useTableShortcutsListener","useTableSortingListener"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6GA,MAAM,sBAAiC,CAAA;AAEhC,SAAS,gBACZ,OACA,KACA,MACA,iBACF;AACE,QAAM,eAAeA,aAAAA,gBAAA;AAErB,QAAM,SAAS,MAAM,GAAG,QAAQ,KAAK,GAAG;AAExC,QAAM,UAAUC,QAAAA,sBAAsB,KAAK;AAG3C,QAAM,CAAC,UAAU,WAAW,IAAIC,iBAAAA;AAAAA,IAC5B,QAAQ;AAAA,IACR;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAIV,QAAM,OAAO,MAAM,QAAQ;AAC3B,QAAM,SAAS,MAAM,UAAU,KAAK;AAGpC,QAAM,iBAAiBC,uBAAAA,uBAAuB,QAAQ,oBAAoB;AAC1E,QAAM,iBAAiBC,uBAAAA,uBAAuB,QAAQ,oBAAoB;AAC1E,QAAM,WAAWC,iBAAAA,iBAAiB,QAAQ,gBAAgB,SAAS,QAAQ;AAC3E,QAAM,SAASC,eAAAA,eAAe,QAAQ,YAAY;AAClD,QAAM,WAAWC,iBAAAA,iBAAiB,QAAQ,gBAAgB,QAAQ,MAAM,OAAO;AAC/E,QAAM,YAAYC,kBAAAA,kBAAkB,QAAQ,iBAAiB,MAAM,uBAAuB,GAAG;AAC7F,QAAM,aAAaC,mBAAAA,mBAA0B,QAAQ,kBAAkB,MAAM,YAAY,MAAM,gBAAgB;AAC/G,QAAM,WAAWC,iBAAAA,iBAAwB,QAAQ,gBAAgB,MAAM,UAAU;AACjF,QAAM,UAAUC,gCAAuB,QAAQ,iBAAiB,CAAC,MAAM,SAAS,WAAW,MAAM,SAAS;AAC1G,QAAM,UAAUC,gBAAAA,gBAAuB,QAAQ,eAAe,MAAM,SAAS;AAC7E,QAAM,eAAeC,qBAAAA;AAAAA,IACjB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAEV,QAAM,UAAUC,gBAAAA,gBAAgB,QAAQ,eAAe,MAAM,SAAS;AACtE,QAAM,YAAYC,kBAAAA,kBAAkB,MAAM,kBAAkB;AAC5D,QAAM,YAAYC,kBAAAA,kBAAkB,QAAQ,iBAAiB,SAAS,SAAS;AAC/E,QAAM,yBAAyB,MAAM,QAAQ,MAAM;AAC/C,QAAI,MAAM,iBAAiB,QAAW;AAClC,aAAO;AAAA,IACX;AAEA,WAAO,OAAO,YAAY,MAAM,aAAa,IAAI,CAAA,OAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAAA,EAC9E,GAAG,CAAC,MAAM,YAAY,CAAC;AACvB,QAAM,eAAeC,qBAAAA,qBAAqB,CAAC,CAAC,QAAQ,oBAAoB,sBAAsB;AAC9F,QAAM,SAASC,eAAAA;AAAAA,IACX,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,EAAA;AAEV,QAAM,SAASC,sBAAAA;AAAAA,IACX;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAKV,QAAM,EAAE,SAAS,GAAG,aAAA,IAAiBC,MAAAA;AAAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAIJ,QAAM,eAAeC,MAAAA,0BAAiC,OAAO,SAAS,UAAU,YAAY;AAG5F,QAAM,WAAWC,WAAAA,cAAqB;AAAA,IAClC;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA,iBAAiBC,WAAAA,gBAAA;AAAA;AAAA,IAEjB,GAAGC,iCAAkC,SAAS,OAAO,YAAY;AAAA;AAAA,IAEjE,oBAAoB,OAAO;AAAA;AAAA,IAE3B,GAAI,aAAa,gBAAgB,aAAa,yBACxC;AAAA,MACI,OAAO;AAAA,QACH,cAAc,aAAa;AAAA,MAAA;AAAA,MAE/B,sBAAsB,CAAC,mBAAwB;AAC3C,YAAI,CAAC,MAAM,YAAa;AAGxB,cAAM,eACF,OAAO,mBAAmB,aACpB,eAAe,aAAa,0BAA0B,CAAA,CAAE,IACxD;AAIV,cAAM,cAAc,OAAO,KAAK,YAAY,EAAE,OAAO,CAAA,OAAM,aAAa,EAAE,CAAC;AAC3E,cAAM,eAAe,KAChB,OAAO,CAAC,QAAsB,QAAQ,MAAS,EAC/C,OAAO,CAAA,QAAO,aAAa,OAAO,IAAI,MAAM,mBAAkC,CAAC,CAAC,CAAC;AAEtF,cAAM,YAAY,cAAc,WAAW;AAAA,MAC/C;AAAA,IAAA,IAEJ,CAAA;AAAA;AAAA,IAEN,MAAM;AAAA;AAAA,MAEF,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,MAAM;AAAA,MACf;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA;AAAA,MACA;AAAA;AAAA,MACA,qBAAqB,MAAM;AAAA,MAC3B;AAAA,MACA;AAAA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACJ,CACH;AAGDC,uBAAAA,qBAAqB,UAAU,MAAM;AACrCC,gDAAuB,UAAU,MAAM,cAAc;AACrDC,2BAAAA,yBAAyB,QAAQ;AACjCC,sDAA0B,UAAU,MAAM,WAAW;AACrDC,4BAAAA,0BAA0B,QAAQ;AAClCC,4DAA6B,UAAU,MAAM,WAAW;AACxDC,yBAAAA,uBAAuB,QAAQ;AAC/BC,8DAA8B,UAAU,OAAO,QAAQ;AACvDC,2BAAAA,yBAAyB,UAAU,WAAW;AAC9CC,4BAAAA,0BAA0B,UAAU,KAAK,MAAM,WAAW,MAAM,4BAA4B;AAC5FC,kDAAwB,UAAU,MAAM,YAAY;AAEpD,SAAO;AAAA,IACH,IAAI;AAAA,IACJ;AAAA,IACA,MAAO,SAAS,QAAQ,QAAQ,CAAA;AAAA,IAChC,OAAO,SAAS,SAAA;AAAA,EAAS;AAEjC;;"}
1
+ {"version":3,"file":"useTableManager.cjs","sources":["../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import type { TableMeta as ReactTableMeta, RowData } from '@tanstack/react-table';\nimport { useReactTable, getCoreRowModel } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport type {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnDataTypeOptions,\n TableColumnMenu,\n TableColumnRendererControl,\n TableEventHandler,\n TableFilterComparator,\n TableProps,\n TableRef,\n} from '../types';\n\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowActiveListener } from './listeners/useTableRowActiveListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport type { useTableManagerInternalColumns } from './types';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n // oxlint-disable-next-line typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n onEvent: TableEventHandler;\n printing: ReturnType<typeof useTablePrinting>;\n rowActions: ReturnType<typeof useTableRowActions>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityAccessor: keyof TData;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n // oxlint-disable-next-line no-unused-vars, typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n dataTypeOptions?: TableColumnDataTypeOptions;\n defaultWidth?: number;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n tooltip?: string;\n }\n}\n\n// Placed this array outside the hook to avoid creating a new array reference on each hook re-render\nconst DEFAULT_EMPTY_ARRAY: unknown[] = [];\n\nexport function useTableManager<TType = unknown, TMeta = object>(\n props: TableProps<TType>,\n ref: React.RefObject<TableRef>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const localization = useLocalization();\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings,\n props.enableSaveSettingsLocally\n );\n\n // ensure data is always valid\n const data = props.data ?? DEFAULT_EMPTY_ARRAY;\n const length = props.length ?? data.length;\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId, props.onPrint);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex, ref);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag && !meta?.editing?.isEditing, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(\n options.enableRowExpansion,\n options.enableRowExpansionAll,\n props.rowExpansionRenderer\n );\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const controlledSelectedRows = React.useMemo(() => {\n if (props.selectedRows === undefined) {\n return undefined;\n }\n\n return Object.fromEntries(props.selectedRows.map(id => [String(id), true]));\n }, [props.selectedRows]);\n const rowSelection = useTableRowSelection(!!options.enableRowSelection, controlledSelectedRows);\n const search = useTableSearch(\n options.enableSearch,\n props.onChangeSearch,\n settings.excludeUnmatchedRecordsInSearch,\n props._experimentalDataLoader2\n );\n const server = useTableServerLoading(\n length,\n data,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\n props.resetPagination,\n props._experimentalDataLoader2\n );\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(\n props,\n settings,\n options,\n internalColumns,\n localization\n );\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props, localization),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // controlled row selection state\n ...(rowSelection.isControlled && rowSelection.controlledSelectedRows\n ? {\n state: {\n rowSelection: rowSelection.controlledSelectedRows,\n },\n onRowSelectionChange: (updaterOrValue: any) => {\n if (!props.onRowSelect) return;\n\n // TanStack Table passes an updater function, not the value directly\n const newSelection =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(rowSelection.controlledSelectedRows ?? {})\n : updaterOrValue;\n\n // Since getRowId is configured with rowIdentityAccessor, we can trust the IDs match.\n // Map selected IDs back to row objects (filtering out undefined for DataLoader v1).\n const selectedIds = Object.keys(newSelection).filter(id => newSelection[id]);\n const selectedRows = data\n .filter((row): row is TType => row !== undefined)\n .filter(row => newSelection[String(row[props.rowIdentityAccessor as keyof TType])]);\n\n props.onRowSelect(selectedRows, selectedIds);\n },\n }\n : {}),\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n onEvent: props.onEvent,\n printing,\n rowActions,\n rowActive,\n rowClick,\n rowDrag,\n rowDrop,\n rowExpansion,\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups,\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance, length);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowActiveListener(instance, props.onRowActive);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, ref, props.shortcuts, props.enableLocalKeyboardShortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n meta: (instance.options.meta ?? {}) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n"],"names":["useLocalization","getTableFeaturePreset","useTableSettings","useTableColumnFreezing","useTableColumnOrdering","useTableFontSize","useTableFooter","useTablePrinting","useTableRowActive","useTableRowActions","useTableRowClick","useTableRowDrag","useTableRowDrop","useTableRowExpansion","useTableRowGoto","useTableRowGroups","useTableRowHeight","useTableRowSelection","useTableSearch","useTableServerLoading","mapTableChildrenToColumns","useReactTableInitialState","useReactTable","getCoreRowModel","configureReactTableOptions","useTableDataListener","useTableFilterListener","useTableFontSizeListener","useTableRowActiveListener","useTableRowHeightListener","useTableRowSelectionListener","useTableSearchListener","useTableServerLoadingListener","useTableSettingsListener","useTableShortcutsListener","useTableSortingListener"],"mappings":"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"}
@@ -84,6 +84,7 @@ function useTableManager(props, ref, meta, internalColumns) {
84
84
  props.loadAll,
85
85
  props.pages,
86
86
  props.pageSize,
87
+ props.resetPagination,
87
88
  props._experimentalDataLoader2
88
89
  );
89
90
  const { columns, ...defaultState } = mapTableChildrenToColumns(
@@ -129,19 +130,14 @@ function useTableManager(props, ref, meta, internalColumns) {
129
130
  onEvent: props.onEvent,
130
131
  printing,
131
132
  rowActions,
132
- // no other way around ReturnType<typeof X> not supporting generics
133
133
  rowActive,
134
134
  rowClick,
135
- // no other way around ReturnType<typeof X> not supporting generics
136
135
  rowDrag,
137
136
  rowDrop,
138
- // no other way around ReturnType<typeof X> not supporting generics
139
137
  rowExpansion,
140
- // no other way around ReturnType<typeof X> not supporting generics
141
138
  rowIdentityAccessor: props.rowIdentityAccessor,
142
139
  rowGoto,
143
140
  rowGroups,
144
- // no other way around ReturnType<typeof X> not supporting generics
145
141
  rowHeight,
146
142
  rowSelection,
147
143
  search,
@@ -1 +1 @@
1
- {"version":3,"file":"useTableManager.js","sources":["../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import type { TableMeta as ReactTableMeta, RowData } from '@tanstack/react-table';\nimport { useReactTable, getCoreRowModel } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport type {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnDataTypeOptions,\n TableColumnMenu,\n TableColumnRendererControl,\n TableEventHandler,\n TableFilterComparator,\n TableProps,\n TableRef,\n} from '../types';\n\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowActiveListener } from './listeners/useTableRowActiveListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport type { useTableManagerInternalColumns } from './types';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n // oxlint-disable-next-line typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n onEvent: TableEventHandler;\n printing: ReturnType<typeof useTablePrinting>;\n rowActions: ReturnType<typeof useTableRowActions>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityAccessor: keyof TData;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n // oxlint-disable-next-line no-unused-vars, typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n dataTypeOptions?: TableColumnDataTypeOptions;\n defaultWidth?: number;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n tooltip?: string;\n }\n}\n\n// Placed this array outside the hook to avoid creating a new array reference on each hook re-render\nconst DEFAULT_EMPTY_ARRAY: unknown[] = [];\n\nexport function useTableManager<TType = unknown, TMeta = object>(\n props: TableProps<TType>,\n ref: React.RefObject<TableRef>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const localization = useLocalization();\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings,\n props.enableSaveSettingsLocally\n );\n\n // ensure data is always valid\n const data = props.data ?? DEFAULT_EMPTY_ARRAY;\n const length = props.length ?? data.length;\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId, props.onPrint);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex, ref);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag && !meta?.editing?.isEditing, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(\n options.enableRowExpansion,\n options.enableRowExpansionAll,\n props.rowExpansionRenderer\n );\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const controlledSelectedRows = React.useMemo(() => {\n if (props.selectedRows === undefined) {\n return undefined;\n }\n\n return Object.fromEntries(props.selectedRows.map(id => [String(id), true]));\n }, [props.selectedRows]);\n const rowSelection = useTableRowSelection(!!options.enableRowSelection, controlledSelectedRows);\n const search = useTableSearch(\n options.enableSearch,\n props.onChangeSearch,\n settings.excludeUnmatchedRecordsInSearch,\n props._experimentalDataLoader2\n );\n const server = useTableServerLoading(\n length,\n data,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\n props._experimentalDataLoader2\n );\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(\n props,\n settings,\n options,\n internalColumns,\n localization\n );\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props, localization),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // controlled row selection state\n ...(rowSelection.isControlled && rowSelection.controlledSelectedRows\n ? {\n state: {\n rowSelection: rowSelection.controlledSelectedRows,\n },\n onRowSelectionChange: (updaterOrValue: any) => {\n if (!props.onRowSelect) return;\n\n // TanStack Table passes an updater function, not the value directly\n const newSelection =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(rowSelection.controlledSelectedRows ?? {})\n : updaterOrValue;\n\n // Since getRowId is configured with rowIdentityAccessor, we can trust the IDs match.\n // Map selected IDs back to row objects (filtering out undefined for DataLoader v1).\n const selectedIds = Object.keys(newSelection).filter(id => newSelection[id]);\n const selectedRows = data\n .filter((row): row is TType => row !== undefined)\n .filter(row => newSelection[String(row[props.rowIdentityAccessor as keyof TType])]);\n\n props.onRowSelect(selectedRows, selectedIds);\n },\n }\n : {}),\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n onEvent: props.onEvent,\n printing,\n rowActions: rowActions as any, // no other way around ReturnType<typeof X> not supporting generics\n rowActive,\n rowClick: rowClick as any, // no other way around ReturnType<typeof X> not supporting generics\n rowDrag,\n rowDrop: rowDrop as any, // no other way around ReturnType<typeof X> not supporting generics\n rowExpansion: rowExpansion as any, // no other way around ReturnType<typeof X> not supporting generics\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups: rowGroups as any, // no other way around ReturnType<typeof X> not supporting generics\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance, length);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowActiveListener(instance, props.onRowActive);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, ref, props.shortcuts, props.enableLocalKeyboardShortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n meta: (instance.options.meta ?? {}) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n"],"names":["React"],"mappings":"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"}
1
+ {"version":3,"file":"useTableManager.js","sources":["../../../../src/primitives/Table/useTableManager/useTableManager.ts"],"sourcesContent":["import type { TableMeta as ReactTableMeta, RowData } from '@tanstack/react-table';\nimport { useReactTable, getCoreRowModel } from '@tanstack/react-table';\nimport React from 'react';\n\nimport { useLocalization } from '@/components';\n\nimport type {\n TableColumnAlignment,\n TableColumnClassNameHandler,\n TableColumnDataType,\n TableColumnDataTypeOptions,\n TableColumnMenu,\n TableColumnRendererControl,\n TableEventHandler,\n TableFilterComparator,\n TableProps,\n TableRef,\n} from '../types';\n\nimport { useTableColumnFreezing } from './features/useTableColumnFreezing';\nimport { useTableColumnOrdering } from './features/useTableColumnOrdering';\nimport { useTableFontSize } from './features/useTableFontSize';\nimport { useTableFooter } from './features/useTableFooter';\nimport { useTablePrinting } from './features/useTablePrinting';\nimport { useTableRowActions } from './features/useTableRowActions';\nimport { useTableRowActive } from './features/useTableRowActive';\nimport { useTableRowClick } from './features/useTableRowClick';\nimport { useTableRowDrag } from './features/useTableRowDrag';\nimport { useTableRowDrop } from './features/useTableRowDrop';\nimport { useTableRowExpansion } from './features/useTableRowExpansion';\nimport { useTableRowGoto } from './features/useTableRowGoto';\nimport { useTableRowGroups } from './features/useTableRowGroups';\nimport { useTableRowHeight } from './features/useTableRowHeight';\nimport { useTableRowSelection } from './features/useTableRowSelection';\nimport { useTableSearch } from './features/useTableSearch';\nimport { useTableServerLoading } from './features/useTableServerLoading';\nimport { useTableSettings } from './features/useTableSettings';\nimport { useTableDataListener } from './listeners/useTableDataListener';\nimport { useTableFilterListener } from './listeners/useTableFilterListener';\nimport { useTableFontSizeListener } from './listeners/useTableFontSizeListener';\nimport { useTableRowActiveListener } from './listeners/useTableRowActiveListener';\nimport { useTableRowHeightListener } from './listeners/useTableRowHeightListener';\nimport { useTableRowSelectionListener } from './listeners/useTableRowSelectionListener';\nimport { useTableSearchListener } from './listeners/useTableSearchListener';\nimport { useTableServerLoadingListener } from './listeners/useTableServerLoadingListener';\nimport { useTableSettingsListener } from './listeners/useTableSettingsListener';\nimport { useTableShortcutsListener } from './listeners/useTableShortcutsListener';\nimport { useTableSortingListener } from './listeners/useTableSortingListener';\nimport type { useTableManagerInternalColumns } from './types';\nimport { getTableFeaturePreset } from './util/presets';\nimport { useReactTableInitialState, configureReactTableOptions, mapTableChildrenToColumns } from './util/setup';\n\n/*\n EDITING THIS FILE? READ ME FIRST!\n\n This is a shared, common hook for multiple tables. It's feature set is specifically chosen to support features\n common across those tables. If you are adding a new feature or changing an existing one, before writing any code\n in this file ask yourself the question - is this specific to a given table, or is it common to all of them.\n If you are unsure, ask your team first.\n*/\n\ndeclare module '@tanstack/table-core' {\n // oxlint-disable-next-line typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface TableMeta<TData extends RowData> {\n columnFreezing: ReturnType<typeof useTableColumnFreezing>;\n columnOrdering: ReturnType<typeof useTableColumnOrdering>;\n fontSize: ReturnType<typeof useTableFontSize>;\n footer: ReturnType<typeof useTableFooter>;\n length: number;\n onEvent: TableEventHandler;\n printing: ReturnType<typeof useTablePrinting>;\n rowActions: ReturnType<typeof useTableRowActions>;\n rowActive: ReturnType<typeof useTableRowActive>;\n rowClick: ReturnType<typeof useTableRowClick>;\n rowDrag: ReturnType<typeof useTableRowDrag>;\n rowDrop: ReturnType<typeof useTableRowDrop>;\n rowExpansion: ReturnType<typeof useTableRowExpansion>;\n rowGoto: ReturnType<typeof useTableRowGoto>;\n rowGroups: ReturnType<typeof useTableRowGroups>;\n rowHeight: ReturnType<typeof useTableRowHeight>;\n rowIdentityAccessor: keyof TData;\n rowSelection: ReturnType<typeof useTableRowSelection>;\n search: ReturnType<typeof useTableSearch>;\n server: ReturnType<typeof useTableServerLoading>;\n }\n\n // oxlint-disable-next-line no-unused-vars, typescript/consistent-type-definitions -- module augmentation requires interface (declaration merging)\n interface ColumnMeta<TData extends RowData, TValue> {\n align?: TableColumnAlignment;\n className?: TableColumnClassNameHandler<TData>;\n control?: TableColumnRendererControl<TData>;\n dataType?: TableColumnDataType;\n dataTypeOptions?: TableColumnDataTypeOptions;\n defaultWidth?: number;\n emptyState?: React.ReactNode;\n enableEditing?: boolean;\n enableOrdering?: boolean;\n enablePrinting?: boolean;\n enableSearch?: boolean;\n enableTruncate?: boolean;\n filters?: TableFilterComparator[];\n header: string;\n headerClassName?: string;\n menu?: TableColumnMenu;\n tooltip?: string;\n }\n}\n\n// Placed this array outside the hook to avoid creating a new array reference on each hook re-render\nconst DEFAULT_EMPTY_ARRAY: unknown[] = [];\n\nexport function useTableManager<TType = unknown, TMeta = object>(\n props: TableProps<TType>,\n ref: React.RefObject<TableRef>,\n meta?: Partial<ReactTableMeta<TType>> & TMeta,\n internalColumns?: useTableManagerInternalColumns<TType>\n) {\n const localization = useLocalization();\n // CSS.escape would be best here, but it doesn't seem to work very well\n const safeId = props.id.replace('.', '_');\n // configure table options, merging props with presets\n const options = getTableFeaturePreset(props);\n\n // load any persisted table settings and merge them with any defaults\n const [settings, setSettings] = useTableSettings(\n options.enableSaveSettings,\n safeId,\n props.defaultSettings,\n props.onChangeSettings,\n props.enableSaveSettingsLocally\n );\n\n // ensure data is always valid\n const data = props.data ?? DEFAULT_EMPTY_ARRAY;\n const length = props.length ?? data.length;\n\n // configure common custom features\n const columnFreezing = useTableColumnFreezing(options.enableColumnFreezing);\n const columnOrdering = useTableColumnOrdering(options.enableColumnOrdering);\n const fontSize = useTableFontSize(options.enableFontSize, settings.fontSize);\n const footer = useTableFooter(options.enableFooter);\n const printing = useTablePrinting(options.enablePrinting, safeId, props.onPrint);\n const rowActive = useTableRowActive(options.enableRowActive, props.defaultRowActiveIndex, ref);\n const rowActions = useTableRowActions<TType>(options.enableRowActions, props.rowActions, props.rowActionsLength);\n const rowClick = useTableRowClick<TType>(options.enableRowClick, props.onRowClick);\n const rowDrag = useTableRowDrag<TType>(options.enableRowDrag && !meta?.editing?.isEditing, props.onRowDrag);\n const rowDrop = useTableRowDrop<TType>(options.enableRowDrop, props.onRowDrop);\n const rowExpansion = useTableRowExpansion<TType>(\n options.enableRowExpansion,\n options.enableRowExpansionAll,\n props.rowExpansionRenderer\n );\n const rowGoto = useTableRowGoto(options.enableRowGoto, props.onRowGoto);\n const rowGroups = useTableRowGroups(props.rowActionsForGroup);\n const rowHeight = useTableRowHeight(options.enableRowHeight, settings.rowHeight);\n const controlledSelectedRows = React.useMemo(() => {\n if (props.selectedRows === undefined) {\n return undefined;\n }\n\n return Object.fromEntries(props.selectedRows.map(id => [String(id), true]));\n }, [props.selectedRows]);\n const rowSelection = useTableRowSelection(!!options.enableRowSelection, controlledSelectedRows);\n const search = useTableSearch(\n options.enableSearch,\n props.onChangeSearch,\n settings.excludeUnmatchedRecordsInSearch,\n props._experimentalDataLoader2\n );\n const server = useTableServerLoading(\n length,\n data,\n props.loadPage,\n props.loadAll,\n props.pages,\n props.pageSize,\n props.resetPagination,\n props._experimentalDataLoader2\n );\n\n // TODO: memoise\n // convert jsx column components into valid table columns\n const { columns, ...defaultState } = mapTableChildrenToColumns<TType>(\n props,\n settings,\n options,\n internalColumns,\n localization\n );\n\n // configure initial table state\n const initialState = useReactTableInitialState<TType>(props, columns, settings, defaultState);\n\n // create a react-table instance\n const instance = useReactTable<TType>({\n data,\n columns,\n // configure initial table state\n initialState,\n getCoreRowModel: getCoreRowModel<TType>(),\n // configure react-table built-in features\n ...configureReactTableOptions<TType>(options, props, localization),\n // settings that can be toggled by the user, and therefore require our own state\n enableGlobalFilter: search.enableGlobalFilter,\n // controlled row selection state\n ...(rowSelection.isControlled && rowSelection.controlledSelectedRows\n ? {\n state: {\n rowSelection: rowSelection.controlledSelectedRows,\n },\n onRowSelectionChange: (updaterOrValue: any) => {\n if (!props.onRowSelect) return;\n\n // TanStack Table passes an updater function, not the value directly\n const newSelection =\n typeof updaterOrValue === 'function'\n ? updaterOrValue(rowSelection.controlledSelectedRows ?? {})\n : updaterOrValue;\n\n // Since getRowId is configured with rowIdentityAccessor, we can trust the IDs match.\n // Map selected IDs back to row objects (filtering out undefined for DataLoader v1).\n const selectedIds = Object.keys(newSelection).filter(id => newSelection[id]);\n const selectedRows = data\n .filter((row): row is TType => row !== undefined)\n .filter(row => newSelection[String(row[props.rowIdentityAccessor as keyof TType])]);\n\n props.onRowSelect(selectedRows, selectedIds);\n },\n }\n : {}),\n // custom context\n meta: {\n // spread features from specific implementations\n ...meta,\n columnFreezing,\n columnOrdering,\n fontSize,\n footer,\n length,\n onEvent: props.onEvent,\n printing,\n rowActions,\n rowActive,\n rowClick,\n rowDrag,\n rowDrop,\n rowExpansion,\n rowIdentityAccessor: props.rowIdentityAccessor,\n rowGoto,\n rowGroups,\n rowHeight,\n rowSelection,\n search,\n server,\n } as ReactTableMeta<TType> & TMeta,\n });\n\n // state listeners - we have these so that we don't have to control state outside the table\n useTableDataListener(instance, length);\n useTableFilterListener(instance, props.onChangeFilter);\n useTableFontSizeListener(instance);\n useTableRowActiveListener(instance, props.onRowActive);\n useTableRowHeightListener(instance);\n useTableRowSelectionListener(instance, props.onRowSelect);\n useTableSearchListener(instance);\n useTableServerLoadingListener(instance, server.loadPage);\n useTableSettingsListener(instance, setSettings);\n useTableShortcutsListener(instance, ref, props.shortcuts, props.enableLocalKeyboardShortcuts);\n useTableSortingListener(instance, props.onChangeSort);\n\n return {\n id: safeId,\n instance,\n meta: (instance.options.meta ?? {}) as ReactTableMeta<TType> & TMeta,\n state: instance.getState(),\n };\n}\n"],"names":["React"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA6GA,MAAM,sBAAiC,CAAA;AAEhC,SAAS,gBACZ,OACA,KACA,MACA,iBACF;AACE,QAAM,eAAe,gBAAA;AAErB,QAAM,SAAS,MAAM,GAAG,QAAQ,KAAK,GAAG;AAExC,QAAM,UAAU,sBAAsB,KAAK;AAG3C,QAAM,CAAC,UAAU,WAAW,IAAI;AAAA,IAC5B,QAAQ;AAAA,IACR;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAIV,QAAM,OAAO,MAAM,QAAQ;AAC3B,QAAM,SAAS,MAAM,UAAU,KAAK;AAGpC,QAAM,iBAAiB,uBAAuB,QAAQ,oBAAoB;AAC1E,QAAM,iBAAiB,uBAAuB,QAAQ,oBAAoB;AAC1E,QAAM,WAAW,iBAAiB,QAAQ,gBAAgB,SAAS,QAAQ;AAC3E,QAAM,SAAS,eAAe,QAAQ,YAAY;AAClD,QAAM,WAAW,iBAAiB,QAAQ,gBAAgB,QAAQ,MAAM,OAAO;AAC/E,QAAM,YAAY,kBAAkB,QAAQ,iBAAiB,MAAM,uBAAuB,GAAG;AAC7F,QAAM,aAAa,mBAA0B,QAAQ,kBAAkB,MAAM,YAAY,MAAM,gBAAgB;AAC/G,QAAM,WAAW,iBAAwB,QAAQ,gBAAgB,MAAM,UAAU;AACjF,QAAM,UAAU,gBAAuB,QAAQ,iBAAiB,CAAC,MAAM,SAAS,WAAW,MAAM,SAAS;AAC1G,QAAM,UAAU,gBAAuB,QAAQ,eAAe,MAAM,SAAS;AAC7E,QAAM,eAAe;AAAA,IACjB,QAAQ;AAAA,IACR,QAAQ;AAAA,IACR,MAAM;AAAA,EAAA;AAEV,QAAM,UAAU,gBAAgB,QAAQ,eAAe,MAAM,SAAS;AACtE,QAAM,YAAY,kBAAkB,MAAM,kBAAkB;AAC5D,QAAM,YAAY,kBAAkB,QAAQ,iBAAiB,SAAS,SAAS;AAC/E,QAAM,yBAAyBA,eAAM,QAAQ,MAAM;AAC/C,QAAI,MAAM,iBAAiB,QAAW;AAClC,aAAO;AAAA,IACX;AAEA,WAAO,OAAO,YAAY,MAAM,aAAa,IAAI,CAAA,OAAM,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC;AAAA,EAC9E,GAAG,CAAC,MAAM,YAAY,CAAC;AACvB,QAAM,eAAe,qBAAqB,CAAC,CAAC,QAAQ,oBAAoB,sBAAsB;AAC9F,QAAM,SAAS;AAAA,IACX,QAAQ;AAAA,IACR,MAAM;AAAA,IACN,SAAS;AAAA,IACT,MAAM;AAAA,EAAA;AAEV,QAAM,SAAS;AAAA,IACX;AAAA,IACA;AAAA,IACA,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,IACN,MAAM;AAAA,EAAA;AAKV,QAAM,EAAE,SAAS,GAAG,aAAA,IAAiB;AAAA,IACjC;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAIJ,QAAM,eAAe,0BAAiC,OAAO,SAAS,UAAU,YAAY;AAG5F,QAAM,WAAW,cAAqB;AAAA,IAClC;AAAA,IACA;AAAA;AAAA,IAEA;AAAA,IACA,iBAAiB,gBAAA;AAAA;AAAA,IAEjB,GAAG,2BAAkC,SAAS,OAAO,YAAY;AAAA;AAAA,IAEjE,oBAAoB,OAAO;AAAA;AAAA,IAE3B,GAAI,aAAa,gBAAgB,aAAa,yBACxC;AAAA,MACI,OAAO;AAAA,QACH,cAAc,aAAa;AAAA,MAAA;AAAA,MAE/B,sBAAsB,CAAC,mBAAwB;AAC3C,YAAI,CAAC,MAAM,YAAa;AAGxB,cAAM,eACF,OAAO,mBAAmB,aACpB,eAAe,aAAa,0BAA0B,CAAA,CAAE,IACxD;AAIV,cAAM,cAAc,OAAO,KAAK,YAAY,EAAE,OAAO,CAAA,OAAM,aAAa,EAAE,CAAC;AAC3E,cAAM,eAAe,KAChB,OAAO,CAAC,QAAsB,QAAQ,MAAS,EAC/C,OAAO,CAAA,QAAO,aAAa,OAAO,IAAI,MAAM,mBAAkC,CAAC,CAAC,CAAC;AAEtF,cAAM,YAAY,cAAc,WAAW;AAAA,MAC/C;AAAA,IAAA,IAEJ,CAAA;AAAA;AAAA,IAEN,MAAM;AAAA;AAAA,MAEF,GAAG;AAAA,MACH;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,SAAS,MAAM;AAAA,MACf;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,qBAAqB,MAAM;AAAA,MAC3B;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,IAAA;AAAA,EACJ,CACH;AAGD,uBAAqB,UAAU,MAAM;AACrC,yBAAuB,UAAU,MAAM,cAAc;AACrD,2BAAyB,QAAQ;AACjC,4BAA0B,UAAU,MAAM,WAAW;AACrD,4BAA0B,QAAQ;AAClC,+BAA6B,UAAU,MAAM,WAAW;AACxD,yBAAuB,QAAQ;AAC/B,gCAA8B,UAAU,OAAO,QAAQ;AACvD,2BAAyB,UAAU,WAAW;AAC9C,4BAA0B,UAAU,KAAK,MAAM,WAAW,MAAM,4BAA4B;AAC5F,0BAAwB,UAAU,MAAM,YAAY;AAEpD,SAAO;AAAA,IACH,IAAI;AAAA,IACJ;AAAA,IACA,MAAO,SAAS,QAAQ,QAAQ,CAAA;AAAA,IAChC,OAAO,SAAS,SAAA;AAAA,EAAS;AAEjC;"}
@@ -1 +1 @@
1
- {"version":3,"file":"dataTypes.cjs","sources":["../../../../../src/primitives/Table/useTableManager/util/dataTypes.ts"],"sourcesContent":["import type { SortingFnOption as ReactTableSortingFnOption } from '@tanstack/react-table';\n\nimport type { Localization } from '@/components';\nimport { DateTimeDataType, NumericDataType } from '@/utils/dataTypes';\n\nimport type {\n TableColumnAlignment,\n TableColumnDataType,\n TableColumnDataTypeOptionsHandler,\n TableColumnDataTypeOptions,\n} from '../../types';\nimport { TableFilterComparator } from '../../types';\n\nexport type TableDataTypeDisplayValueOptions = {\n dataTypeOptions?: TableColumnDataTypeOptionsHandler;\n localization: Localization;\n};\nexport type TableDataType<TType = unknown, TValue = any> = {\n align: TableColumnAlignment;\n sortingFn: ReactTableSortingFnOption<TType>;\n filterComparators: TableFilterComparator[];\n getDisplayValue?: (value: TValue, row: TType, options?: TableDataTypeDisplayValueOptions) => string | string[];\n parse?: (value: string, locale: string) => TValue | undefined;\n};\n\nconst dataTypes: Record<TableColumnDataType | 'auto', TableDataType> = {\n auto: {\n align: 'left',\n sortingFn: 'auto',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n // base\n text: {\n align: 'left',\n sortingFn: 'alphanumeric',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n boolean: {\n align: 'left',\n sortingFn: 'basic',\n filterComparators: [TableFilterComparator.IsEqualTo, TableFilterComparator.IsNotEqualTo],\n },\n // dates\n date: createDatetimeDataType({\n day: '2-digit',\n month: '2-digit',\n year: '2-digit',\n }),\n time: createDatetimeDataType({\n hour: '2-digit',\n minute: '2-digit',\n }),\n datetime: createDatetimeDataType({\n day: '2-digit',\n month: '2-digit',\n year: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n }),\n // numbers\n number: createNumberDataType('left'),\n amount: createNumberDataType('right', { decimals: 2, useGrouping: true }),\n percentage: createNumberDataType('right', { useGrouping: true, percent: true }),\n};\n\nfunction createDatetimeDataType<TType = unknown>(defaultOptions: Intl.DateTimeFormatOptions): TableDataType<TType, Date> {\n return {\n align: 'left',\n sortingFn: 'datetime',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: (value: string | Date, _: TType, options?: TableDataTypeDisplayValueOptions) => {\n if (value === undefined) {\n return '';\n }\n\n return DateTimeDataType.format(value, options?.localization.locale, defaultOptions);\n },\n parse: (value: string, locale: string) => DateTimeDataType.parse(value, locale),\n };\n}\n\nfunction createNumberDataType<TType = unknown>(\n align: TableColumnAlignment,\n defaultOptions?: TableColumnDataTypeOptions & { percent?: boolean }\n): TableDataType<TType, number> {\n return {\n align,\n sortingFn: 'basic',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: <TType = unknown>(value: number, row: TType, options?: TableDataTypeDisplayValueOptions) => {\n const dataTypeOptions =\n typeof options?.dataTypeOptions === 'function' ? options?.dataTypeOptions(row) : options?.dataTypeOptions;\n\n const numberFormatOptions: Intl.NumberFormatOptions = {\n // format\n useGrouping: dataTypeOptions?.useGrouping ?? defaultOptions?.useGrouping ?? false,\n // decimals\n minimumFractionDigits: dataTypeOptions?.decimals ?? defaultOptions?.decimals,\n maximumFractionDigits: dataTypeOptions?.decimals ?? defaultOptions?.decimals,\n };\n\n // percent\n if (defaultOptions?.percent) {\n numberFormatOptions.style = 'percent';\n } else if (dataTypeOptions?.currency) {\n // currency\n numberFormatOptions.style = 'currency';\n numberFormatOptions.currency = dataTypeOptions.currency;\n numberFormatOptions.currencyDisplay = 'code';\n }\n\n const localisedValue = NumericDataType.format(value, options?.localization.locale, numberFormatOptions);\n const localisedValueWithoutThousandsSeperator = NumericDataType.format(value, options?.localization.locale, {\n ...numberFormatOptions,\n useGrouping: false,\n });\n\n return [localisedValue, localisedValueWithoutThousandsSeperator];\n },\n parse: (value: string, locale: string) => NumericDataType.parse(value, locale),\n };\n}\n\nexport function getDataTypeProperties<TType = unknown>(dataType: TableColumnDataType | undefined): TableDataType<TType> {\n return (dataTypes[dataType ?? 'text'] ?? dataTypes.text) as TableDataType<TType>;\n}\n"],"names":["TableFilterComparator","DateTimeDataType","NumericDataType"],"mappings":"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"}
1
+ {"version":3,"file":"dataTypes.cjs","sources":["../../../../../src/primitives/Table/useTableManager/util/dataTypes.ts"],"sourcesContent":["import type { SortingFnOption as ReactTableSortingFnOption } from '@tanstack/react-table';\n\nimport type { Localization } from '@/components';\nimport { DateTimeDataType, NumericDataType } from '@/utils/dataTypes';\n\nimport type {\n TableColumnAlignment,\n TableColumnDataType,\n TableColumnDataTypeOptionsHandler,\n TableColumnDataTypeOptions,\n} from '../../types';\nimport { TableFilterComparator } from '../../types';\n\nexport type TableDataTypeDisplayValueOptions = {\n dataTypeOptions?: TableColumnDataTypeOptionsHandler;\n localization: Localization;\n};\nexport type TableDataType<TType = unknown, TValue = unknown> = {\n align: TableColumnAlignment;\n sortingFn: ReactTableSortingFnOption<TType>;\n filterComparators: TableFilterComparator[];\n // method syntax (not property-arrow) so TValue is bivariant, letting Date/number entries fit the heterogeneous record below\n getDisplayValue?(value: TValue, row: TType, options?: TableDataTypeDisplayValueOptions): string | string[];\n parse?(value: string, locale: string): TValue | undefined;\n};\n\nconst dataTypes: Record<TableColumnDataType | 'auto', TableDataType> = {\n auto: {\n align: 'left',\n sortingFn: 'auto',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n // base\n text: {\n align: 'left',\n sortingFn: 'alphanumeric',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n boolean: {\n align: 'left',\n sortingFn: 'basic',\n filterComparators: [TableFilterComparator.IsEqualTo, TableFilterComparator.IsNotEqualTo],\n },\n // dates\n date: createDatetimeDataType({\n day: '2-digit',\n month: '2-digit',\n year: '2-digit',\n }),\n time: createDatetimeDataType({\n hour: '2-digit',\n minute: '2-digit',\n }),\n datetime: createDatetimeDataType({\n day: '2-digit',\n month: '2-digit',\n year: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n }),\n // numbers\n number: createNumberDataType('left'),\n amount: createNumberDataType('right', { decimals: 2, useGrouping: true }),\n percentage: createNumberDataType('right', { useGrouping: true, percent: true }),\n};\n\nfunction createDatetimeDataType<TType = unknown>(defaultOptions: Intl.DateTimeFormatOptions): TableDataType<TType, Date> {\n return {\n align: 'left',\n sortingFn: 'datetime',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: (value: string | Date, _: TType, options?: TableDataTypeDisplayValueOptions) => {\n if (value === undefined) {\n return '';\n }\n\n return DateTimeDataType.format(value, options?.localization.locale, defaultOptions);\n },\n parse: (value: string, locale: string) => DateTimeDataType.parse(value, locale),\n };\n}\n\nfunction createNumberDataType<TType = unknown>(\n align: TableColumnAlignment,\n defaultOptions?: TableColumnDataTypeOptions & { percent?: boolean }\n): TableDataType<TType, number> {\n return {\n align,\n sortingFn: 'basic',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: <TType = unknown>(value: number, row: TType, options?: TableDataTypeDisplayValueOptions) => {\n const dataTypeOptions =\n typeof options?.dataTypeOptions === 'function' ? options?.dataTypeOptions(row) : options?.dataTypeOptions;\n\n const numberFormatOptions: Intl.NumberFormatOptions = {\n // format\n useGrouping: dataTypeOptions?.useGrouping ?? defaultOptions?.useGrouping ?? false,\n // decimals\n minimumFractionDigits: dataTypeOptions?.decimals ?? defaultOptions?.decimals,\n maximumFractionDigits: dataTypeOptions?.decimals ?? defaultOptions?.decimals,\n };\n\n // percent\n if (defaultOptions?.percent) {\n numberFormatOptions.style = 'percent';\n } else if (dataTypeOptions?.currency) {\n // currency\n numberFormatOptions.style = 'currency';\n numberFormatOptions.currency = dataTypeOptions.currency;\n numberFormatOptions.currencyDisplay = 'code';\n }\n\n const localisedValue = NumericDataType.format(value, options?.localization.locale, numberFormatOptions);\n const localisedValueWithoutThousandsSeperator = NumericDataType.format(value, options?.localization.locale, {\n ...numberFormatOptions,\n useGrouping: false,\n });\n\n return [localisedValue, localisedValueWithoutThousandsSeperator];\n },\n parse: (value: string, locale: string) => NumericDataType.parse(value, locale),\n };\n}\n\nexport function getDataTypeProperties<TType = unknown>(dataType: TableColumnDataType | undefined): TableDataType<TType> {\n return (dataTypes[dataType ?? 'text'] ?? dataTypes.text) as TableDataType<TType>;\n}\n"],"names":["TableFilterComparator","DateTimeDataType","NumericDataType"],"mappings":"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"}
@@ -5,11 +5,11 @@ export type TableDataTypeDisplayValueOptions = {
5
5
  dataTypeOptions?: TableColumnDataTypeOptionsHandler;
6
6
  localization: Localization;
7
7
  };
8
- export type TableDataType<TType = unknown, TValue = any> = {
8
+ export type TableDataType<TType = unknown, TValue = unknown> = {
9
9
  align: TableColumnAlignment;
10
10
  sortingFn: ReactTableSortingFnOption<TType>;
11
11
  filterComparators: TableFilterComparator[];
12
- getDisplayValue?: (value: TValue, row: TType, options?: TableDataTypeDisplayValueOptions) => string | string[];
13
- parse?: (value: string, locale: string) => TValue | undefined;
12
+ getDisplayValue?(value: TValue, row: TType, options?: TableDataTypeDisplayValueOptions): string | string[];
13
+ parse?(value: string, locale: string): TValue | undefined;
14
14
  };
15
15
  export declare function getDataTypeProperties<TType = unknown>(dataType: TableColumnDataType | undefined): TableDataType<TType>;
@@ -1 +1 @@
1
- {"version":3,"file":"dataTypes.js","sources":["../../../../../src/primitives/Table/useTableManager/util/dataTypes.ts"],"sourcesContent":["import type { SortingFnOption as ReactTableSortingFnOption } from '@tanstack/react-table';\n\nimport type { Localization } from '@/components';\nimport { DateTimeDataType, NumericDataType } from '@/utils/dataTypes';\n\nimport type {\n TableColumnAlignment,\n TableColumnDataType,\n TableColumnDataTypeOptionsHandler,\n TableColumnDataTypeOptions,\n} from '../../types';\nimport { TableFilterComparator } from '../../types';\n\nexport type TableDataTypeDisplayValueOptions = {\n dataTypeOptions?: TableColumnDataTypeOptionsHandler;\n localization: Localization;\n};\nexport type TableDataType<TType = unknown, TValue = any> = {\n align: TableColumnAlignment;\n sortingFn: ReactTableSortingFnOption<TType>;\n filterComparators: TableFilterComparator[];\n getDisplayValue?: (value: TValue, row: TType, options?: TableDataTypeDisplayValueOptions) => string | string[];\n parse?: (value: string, locale: string) => TValue | undefined;\n};\n\nconst dataTypes: Record<TableColumnDataType | 'auto', TableDataType> = {\n auto: {\n align: 'left',\n sortingFn: 'auto',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n // base\n text: {\n align: 'left',\n sortingFn: 'alphanumeric',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n boolean: {\n align: 'left',\n sortingFn: 'basic',\n filterComparators: [TableFilterComparator.IsEqualTo, TableFilterComparator.IsNotEqualTo],\n },\n // dates\n date: createDatetimeDataType({\n day: '2-digit',\n month: '2-digit',\n year: '2-digit',\n }),\n time: createDatetimeDataType({\n hour: '2-digit',\n minute: '2-digit',\n }),\n datetime: createDatetimeDataType({\n day: '2-digit',\n month: '2-digit',\n year: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n }),\n // numbers\n number: createNumberDataType('left'),\n amount: createNumberDataType('right', { decimals: 2, useGrouping: true }),\n percentage: createNumberDataType('right', { useGrouping: true, percent: true }),\n};\n\nfunction createDatetimeDataType<TType = unknown>(defaultOptions: Intl.DateTimeFormatOptions): TableDataType<TType, Date> {\n return {\n align: 'left',\n sortingFn: 'datetime',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: (value: string | Date, _: TType, options?: TableDataTypeDisplayValueOptions) => {\n if (value === undefined) {\n return '';\n }\n\n return DateTimeDataType.format(value, options?.localization.locale, defaultOptions);\n },\n parse: (value: string, locale: string) => DateTimeDataType.parse(value, locale),\n };\n}\n\nfunction createNumberDataType<TType = unknown>(\n align: TableColumnAlignment,\n defaultOptions?: TableColumnDataTypeOptions & { percent?: boolean }\n): TableDataType<TType, number> {\n return {\n align,\n sortingFn: 'basic',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: <TType = unknown>(value: number, row: TType, options?: TableDataTypeDisplayValueOptions) => {\n const dataTypeOptions =\n typeof options?.dataTypeOptions === 'function' ? options?.dataTypeOptions(row) : options?.dataTypeOptions;\n\n const numberFormatOptions: Intl.NumberFormatOptions = {\n // format\n useGrouping: dataTypeOptions?.useGrouping ?? defaultOptions?.useGrouping ?? false,\n // decimals\n minimumFractionDigits: dataTypeOptions?.decimals ?? defaultOptions?.decimals,\n maximumFractionDigits: dataTypeOptions?.decimals ?? defaultOptions?.decimals,\n };\n\n // percent\n if (defaultOptions?.percent) {\n numberFormatOptions.style = 'percent';\n } else if (dataTypeOptions?.currency) {\n // currency\n numberFormatOptions.style = 'currency';\n numberFormatOptions.currency = dataTypeOptions.currency;\n numberFormatOptions.currencyDisplay = 'code';\n }\n\n const localisedValue = NumericDataType.format(value, options?.localization.locale, numberFormatOptions);\n const localisedValueWithoutThousandsSeperator = NumericDataType.format(value, options?.localization.locale, {\n ...numberFormatOptions,\n useGrouping: false,\n });\n\n return [localisedValue, localisedValueWithoutThousandsSeperator];\n },\n parse: (value: string, locale: string) => NumericDataType.parse(value, locale),\n };\n}\n\nexport function getDataTypeProperties<TType = unknown>(dataType: TableColumnDataType | undefined): TableDataType<TType> {\n return (dataTypes[dataType ?? 'text'] ?? dataTypes.text) as TableDataType<TType>;\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dataTypes.js","sources":["../../../../../src/primitives/Table/useTableManager/util/dataTypes.ts"],"sourcesContent":["import type { SortingFnOption as ReactTableSortingFnOption } from '@tanstack/react-table';\n\nimport type { Localization } from '@/components';\nimport { DateTimeDataType, NumericDataType } from '@/utils/dataTypes';\n\nimport type {\n TableColumnAlignment,\n TableColumnDataType,\n TableColumnDataTypeOptionsHandler,\n TableColumnDataTypeOptions,\n} from '../../types';\nimport { TableFilterComparator } from '../../types';\n\nexport type TableDataTypeDisplayValueOptions = {\n dataTypeOptions?: TableColumnDataTypeOptionsHandler;\n localization: Localization;\n};\nexport type TableDataType<TType = unknown, TValue = unknown> = {\n align: TableColumnAlignment;\n sortingFn: ReactTableSortingFnOption<TType>;\n filterComparators: TableFilterComparator[];\n // method syntax (not property-arrow) so TValue is bivariant, letting Date/number entries fit the heterogeneous record below\n getDisplayValue?(value: TValue, row: TType, options?: TableDataTypeDisplayValueOptions): string | string[];\n parse?(value: string, locale: string): TValue | undefined;\n};\n\nconst dataTypes: Record<TableColumnDataType | 'auto', TableDataType> = {\n auto: {\n align: 'left',\n sortingFn: 'auto',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n // base\n text: {\n align: 'left',\n sortingFn: 'alphanumeric',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n },\n boolean: {\n align: 'left',\n sortingFn: 'basic',\n filterComparators: [TableFilterComparator.IsEqualTo, TableFilterComparator.IsNotEqualTo],\n },\n // dates\n date: createDatetimeDataType({\n day: '2-digit',\n month: '2-digit',\n year: '2-digit',\n }),\n time: createDatetimeDataType({\n hour: '2-digit',\n minute: '2-digit',\n }),\n datetime: createDatetimeDataType({\n day: '2-digit',\n month: '2-digit',\n year: '2-digit',\n hour: '2-digit',\n minute: '2-digit',\n }),\n // numbers\n number: createNumberDataType('left'),\n amount: createNumberDataType('right', { decimals: 2, useGrouping: true }),\n percentage: createNumberDataType('right', { useGrouping: true, percent: true }),\n};\n\nfunction createDatetimeDataType<TType = unknown>(defaultOptions: Intl.DateTimeFormatOptions): TableDataType<TType, Date> {\n return {\n align: 'left',\n sortingFn: 'datetime',\n filterComparators: [\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: (value: string | Date, _: TType, options?: TableDataTypeDisplayValueOptions) => {\n if (value === undefined) {\n return '';\n }\n\n return DateTimeDataType.format(value, options?.localization.locale, defaultOptions);\n },\n parse: (value: string, locale: string) => DateTimeDataType.parse(value, locale),\n };\n}\n\nfunction createNumberDataType<TType = unknown>(\n align: TableColumnAlignment,\n defaultOptions?: TableColumnDataTypeOptions & { percent?: boolean }\n): TableDataType<TType, number> {\n return {\n align,\n sortingFn: 'basic',\n filterComparators: [\n TableFilterComparator.Contains,\n TableFilterComparator.DoesNotContain,\n TableFilterComparator.IsEqualTo,\n TableFilterComparator.IsNotEqualTo,\n TableFilterComparator.IsGreaterThan,\n TableFilterComparator.IsLessThan,\n TableFilterComparator.IsGreaterThanOrEqualTo,\n TableFilterComparator.IsLessThanOrEqualTo,\n TableFilterComparator.IsBetween,\n TableFilterComparator.IsEmpty,\n TableFilterComparator.IsNotEmpty,\n ],\n getDisplayValue: <TType = unknown>(value: number, row: TType, options?: TableDataTypeDisplayValueOptions) => {\n const dataTypeOptions =\n typeof options?.dataTypeOptions === 'function' ? options?.dataTypeOptions(row) : options?.dataTypeOptions;\n\n const numberFormatOptions: Intl.NumberFormatOptions = {\n // format\n useGrouping: dataTypeOptions?.useGrouping ?? defaultOptions?.useGrouping ?? false,\n // decimals\n minimumFractionDigits: dataTypeOptions?.decimals ?? defaultOptions?.decimals,\n maximumFractionDigits: dataTypeOptions?.decimals ?? defaultOptions?.decimals,\n };\n\n // percent\n if (defaultOptions?.percent) {\n numberFormatOptions.style = 'percent';\n } else if (dataTypeOptions?.currency) {\n // currency\n numberFormatOptions.style = 'currency';\n numberFormatOptions.currency = dataTypeOptions.currency;\n numberFormatOptions.currencyDisplay = 'code';\n }\n\n const localisedValue = NumericDataType.format(value, options?.localization.locale, numberFormatOptions);\n const localisedValueWithoutThousandsSeperator = NumericDataType.format(value, options?.localization.locale, {\n ...numberFormatOptions,\n useGrouping: false,\n });\n\n return [localisedValue, localisedValueWithoutThousandsSeperator];\n },\n parse: (value: string, locale: string) => NumericDataType.parse(value, locale),\n };\n}\n\nexport function getDataTypeProperties<TType = unknown>(dataType: TableColumnDataType | undefined): TableDataType<TType> {\n return (dataTypes[dataType ?? 'text'] ?? dataTypes.text) as TableDataType<TType>;\n}\n"],"names":[],"mappings":"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"}