@hitachivantara/uikit-react-core 5.80.1 → 5.81.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 (587) hide show
  1. package/dist/cjs/Accordion/Accordion.cjs +5 -5
  2. package/dist/cjs/ActionBar/ActionBar.cjs +4 -3
  3. package/dist/cjs/ActionsGeneric/ActionsGeneric.cjs +3 -2
  4. package/dist/cjs/AppSwitcher/AppSwitcher.cjs +3 -2
  5. package/dist/cjs/Avatar/Avatar.cjs +1 -1
  6. package/dist/cjs/AvatarGroup/AvatarGroup.cjs +1 -1
  7. package/dist/cjs/Badge/Badge.cjs +1 -1
  8. package/dist/cjs/Banner/Banner.cjs +3 -2
  9. package/dist/cjs/Banner/BannerContent/BannerContent.cjs +1 -1
  10. package/dist/cjs/BaseCheckBox/BaseCheckBox.cjs +1 -1
  11. package/dist/cjs/BaseDropdown/BaseDropdown.cjs +83 -166
  12. package/dist/cjs/BaseDropdown/BaseDropdown.styles.cjs +2 -2
  13. package/dist/cjs/BaseDropdown/BaseDropdownPanel.cjs +80 -0
  14. package/dist/cjs/BaseDropdown/{BaseDropdownContext/BaseDropdownContext.cjs → context.cjs} +2 -2
  15. package/dist/cjs/BaseInput/BaseInput.cjs +5 -3
  16. package/dist/cjs/BaseRadio/BaseRadio.cjs +1 -1
  17. package/dist/cjs/BaseSwitch/BaseSwitch.cjs +1 -1
  18. package/dist/cjs/BreadCrumb/BreadCrumb.cjs +3 -3
  19. package/dist/cjs/BulkActions/BulkActions.cjs +4 -2
  20. package/dist/cjs/BulkActions/BulkActions.styles.cjs +1 -3
  21. package/dist/cjs/Button/Button.styles.cjs +6 -2
  22. package/dist/cjs/Card/Card.cjs +3 -2
  23. package/dist/cjs/Carousel/Carousel.cjs +3 -2
  24. package/dist/cjs/Carousel/CarouselThumbnails.cjs +1 -1
  25. package/dist/cjs/CheckBox/CheckBox.cjs +1 -1
  26. package/dist/cjs/CheckBoxGroup/CheckBoxGroup.cjs +1 -1
  27. package/dist/cjs/ColorPicker/ColorPicker.cjs +1 -1
  28. package/dist/cjs/Container/Container.cjs +1 -1
  29. package/dist/cjs/DatePicker/DatePicker.cjs +1 -1
  30. package/dist/cjs/Drawer/Drawer.cjs +4 -2
  31. package/dist/cjs/DropDownMenu/DropDownMenu.cjs +24 -30
  32. package/dist/cjs/DropDownMenu/DropDownMenu.styles.cjs +15 -2
  33. package/dist/cjs/Dropdown/List/List.cjs +6 -5
  34. package/dist/cjs/DropdownButton/DropdownButton.cjs +1 -1
  35. package/dist/cjs/EmptyState/EmptyState.cjs +4 -3
  36. package/dist/cjs/FilterGroup/FilterContent/FilterContent.cjs +1 -1
  37. package/dist/cjs/FilterGroup/FilterGroup.cjs +1 -1
  38. package/dist/cjs/Footer/Footer.cjs +4 -2
  39. package/dist/cjs/GlobalActions/GlobalActions.cjs +4 -2
  40. package/dist/cjs/Grid/Grid.cjs +1 -1
  41. package/dist/cjs/Header/Actions/Actions.cjs +1 -1
  42. package/dist/cjs/Header/Brand/Brand.cjs +1 -1
  43. package/dist/cjs/Header/Header.cjs +4 -2
  44. package/dist/cjs/Header/Navigation/Navigation.cjs +1 -1
  45. package/dist/cjs/Input/Input.cjs +1 -1
  46. package/dist/cjs/ListContainer/ListContainer.cjs +1 -1
  47. package/dist/cjs/ListContainer/ListItem/ListItem.cjs +1 -1
  48. package/dist/cjs/Loading/Loading.cjs +4 -2
  49. package/dist/cjs/LoadingContainer/LoadingContainer.cjs +4 -3
  50. package/dist/cjs/Login/Login.cjs +4 -4
  51. package/dist/cjs/MultiButton/MultiButton.cjs +3 -4
  52. package/dist/cjs/MultiButton/MultiButton.styles.cjs +48 -109
  53. package/dist/cjs/Pagination/Pagination.cjs +3 -3
  54. package/dist/cjs/Pagination/Pagination.styles.cjs +1 -1
  55. package/dist/cjs/Panel/Panel.cjs +1 -1
  56. package/dist/cjs/Panel/Panel.styles.cjs +2 -1
  57. package/dist/cjs/Radio/Radio.cjs +1 -1
  58. package/dist/cjs/RadioGroup/RadioGroup.cjs +1 -1
  59. package/dist/cjs/Section/Section.cjs +26 -31
  60. package/dist/cjs/Section/Section.styles.cjs +12 -8
  61. package/dist/cjs/Select/OptionGroup.cjs +1 -1
  62. package/dist/cjs/SelectionList/SelectionList.cjs +1 -1
  63. package/dist/cjs/Snackbar/Snackbar.cjs +27 -24
  64. package/dist/cjs/Switch/Switch.cjs +1 -1
  65. package/dist/cjs/Tab/Tab.cjs +4 -2
  66. package/dist/cjs/Table/Table.cjs +1 -1
  67. package/dist/cjs/Table/TableCell/TableCell.cjs +2 -2
  68. package/dist/cjs/Table/TableCell/TableCell.styles.cjs +2 -5
  69. package/dist/cjs/Table/TableHeader/TableHeader.cjs +43 -51
  70. package/dist/cjs/Table/TableHeader/TableHeader.styles.cjs +18 -20
  71. package/dist/cjs/Table/TableRow/TableRow.styles.cjs +7 -15
  72. package/dist/cjs/TableSection/TableSection.cjs +1 -1
  73. package/dist/cjs/TableSection/TableSection.styles.cjs +16 -14
  74. package/dist/cjs/Tabs/Tabs.cjs +5 -3
  75. package/dist/cjs/Tag/Tag.cjs +1 -1
  76. package/dist/cjs/TagsInput/TagsInput.cjs +1 -1
  77. package/dist/cjs/TextArea/TextArea.cjs +1 -1
  78. package/dist/cjs/TimePicker/Placeholder.cjs +1 -1
  79. package/dist/cjs/TimePicker/TimePicker.cjs +1 -1
  80. package/dist/cjs/ToggleButton/ToggleButton.cjs +1 -1
  81. package/dist/cjs/Tooltip/Tooltip.cjs +1 -1
  82. package/dist/cjs/TreeView/TreeItem/DefaultContent.cjs +1 -1
  83. package/dist/cjs/TreeView/TreeItem/TreeItem.cjs +1 -1
  84. package/dist/cjs/VerticalNavigation/TreeView/TreeView.cjs +1 -1
  85. package/dist/cjs/VerticalNavigation/VerticalNavigation.cjs +1 -1
  86. package/dist/cjs/utils/helpers.cjs +2 -2
  87. package/dist/esm/Accordion/Accordion.js +6 -6
  88. package/dist/esm/Accordion/Accordion.js.map +1 -1
  89. package/dist/esm/Accordion/Accordion.styles.js.map +1 -1
  90. package/dist/esm/ActionBar/ActionBar.js +4 -3
  91. package/dist/esm/ActionBar/ActionBar.js.map +1 -1
  92. package/dist/esm/ActionBar/ActionBar.styles.js.map +1 -1
  93. package/dist/esm/ActionsGeneric/ActionsGeneric.js +4 -3
  94. package/dist/esm/ActionsGeneric/ActionsGeneric.js.map +1 -1
  95. package/dist/esm/ActionsGeneric/ActionsGeneric.styles.js.map +1 -1
  96. package/dist/esm/AppSwitcher/Action/Action.js.map +1 -1
  97. package/dist/esm/AppSwitcher/Action/Action.styles.js.map +1 -1
  98. package/dist/esm/AppSwitcher/AppSwitcher.js +4 -3
  99. package/dist/esm/AppSwitcher/AppSwitcher.js.map +1 -1
  100. package/dist/esm/AppSwitcher/AppSwitcher.styles.js.map +1 -1
  101. package/dist/esm/Avatar/Avatar.js +1 -1
  102. package/dist/esm/Avatar/Avatar.js.map +1 -1
  103. package/dist/esm/Avatar/Avatar.styles.js.map +1 -1
  104. package/dist/esm/AvatarGroup/AvatarGroup.js +1 -1
  105. package/dist/esm/AvatarGroup/AvatarGroup.js.map +1 -1
  106. package/dist/esm/AvatarGroup/AvatarGroup.styles.js.map +1 -1
  107. package/dist/esm/Badge/Badge.js +1 -1
  108. package/dist/esm/Badge/Badge.js.map +1 -1
  109. package/dist/esm/Badge/Badge.styles.js.map +1 -1
  110. package/dist/esm/Banner/Banner.js +4 -3
  111. package/dist/esm/Banner/Banner.js.map +1 -1
  112. package/dist/esm/Banner/Banner.styles.js.map +1 -1
  113. package/dist/esm/Banner/BannerContent/ActionContainer/ActionContainer.js.map +1 -1
  114. package/dist/esm/Banner/BannerContent/ActionContainer/ActionContainer.styles.js.map +1 -1
  115. package/dist/esm/Banner/BannerContent/BannerContent.js +1 -1
  116. package/dist/esm/Banner/BannerContent/BannerContent.js.map +1 -1
  117. package/dist/esm/Banner/BannerContent/BannerContent.styles.js.map +1 -1
  118. package/dist/esm/Banner/BannerContent/MessageContainer/MessageContainer.js.map +1 -1
  119. package/dist/esm/Banner/BannerContent/MessageContainer/MessageContainer.styles.js.map +1 -1
  120. package/dist/esm/BaseCheckBox/BaseCheckBox.js +1 -1
  121. package/dist/esm/BaseCheckBox/BaseCheckBox.js.map +1 -1
  122. package/dist/esm/BaseCheckBox/BaseCheckBox.styles.js.map +1 -1
  123. package/dist/esm/BaseCheckBox/icons.js.map +1 -1
  124. package/dist/esm/BaseDropdown/BaseDropdown.js +83 -164
  125. package/dist/esm/BaseDropdown/BaseDropdown.js.map +1 -1
  126. package/dist/esm/BaseDropdown/BaseDropdown.styles.js +2 -2
  127. package/dist/esm/BaseDropdown/BaseDropdown.styles.js.map +1 -1
  128. package/dist/esm/BaseDropdown/BaseDropdownPanel.js +80 -0
  129. package/dist/esm/BaseDropdown/BaseDropdownPanel.js.map +1 -0
  130. package/dist/esm/BaseDropdown/{BaseDropdownContext/BaseDropdownContext.js → context.js} +1 -1
  131. package/dist/esm/BaseDropdown/context.js.map +1 -0
  132. package/dist/esm/BaseInput/BaseInput.js +6 -4
  133. package/dist/esm/BaseInput/BaseInput.js.map +1 -1
  134. package/dist/esm/BaseInput/BaseInput.styles.js.map +1 -1
  135. package/dist/esm/BaseInput/validations.js.map +1 -1
  136. package/dist/esm/BaseRadio/BaseRadio.js +1 -1
  137. package/dist/esm/BaseRadio/BaseRadio.js.map +1 -1
  138. package/dist/esm/BaseRadio/BaseRadio.styles.js.map +1 -1
  139. package/dist/esm/BaseRadio/icons.js.map +1 -1
  140. package/dist/esm/BaseSwitch/BaseSwitch.js +1 -1
  141. package/dist/esm/BaseSwitch/BaseSwitch.js.map +1 -1
  142. package/dist/esm/BaseSwitch/BaseSwitch.styles.js.map +1 -1
  143. package/dist/esm/BreadCrumb/BreadCrumb.js +4 -4
  144. package/dist/esm/BreadCrumb/BreadCrumb.js.map +1 -1
  145. package/dist/esm/BreadCrumb/BreadCrumb.styles.js.map +1 -1
  146. package/dist/esm/BreadCrumb/Page/Page.js.map +1 -1
  147. package/dist/esm/BreadCrumb/Page/Page.styles.js.map +1 -1
  148. package/dist/esm/BreadCrumb/PathElement/PathElement.js.map +1 -1
  149. package/dist/esm/BreadCrumb/PathElement/PathElement.styles.js.map +1 -1
  150. package/dist/esm/BreadCrumb/utils.js.map +1 -1
  151. package/dist/esm/BulkActions/BulkActions.js +4 -2
  152. package/dist/esm/BulkActions/BulkActions.js.map +1 -1
  153. package/dist/esm/BulkActions/BulkActions.styles.js +1 -3
  154. package/dist/esm/BulkActions/BulkActions.styles.js.map +1 -1
  155. package/dist/esm/Button/Button.js.map +1 -1
  156. package/dist/esm/Button/Button.styles.js +6 -2
  157. package/dist/esm/Button/Button.styles.js.map +1 -1
  158. package/dist/esm/ButtonBase/ButtonBase.js.map +1 -1
  159. package/dist/esm/ButtonBase/ButtonBase.styles.js.map +1 -1
  160. package/dist/esm/Calendar/Calendar.js.map +1 -1
  161. package/dist/esm/Calendar/Calendar.styles.js.map +1 -1
  162. package/dist/esm/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  163. package/dist/esm/Calendar/CalendarHeader/CalendarHeader.styles.js.map +1 -1
  164. package/dist/esm/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js.map +1 -1
  165. package/dist/esm/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.styles.js.map +1 -1
  166. package/dist/esm/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
  167. package/dist/esm/Calendar/CalendarNavigation/MonthSelector/MonthSelector.styles.js.map +1 -1
  168. package/dist/esm/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
  169. package/dist/esm/Calendar/CalendarNavigation/Navigation/Navigation.styles.js.map +1 -1
  170. package/dist/esm/Calendar/SingleCalendar/CalendarCell.js.map +1 -1
  171. package/dist/esm/Calendar/SingleCalendar/CalendarCell.styles.js.map +1 -1
  172. package/dist/esm/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  173. package/dist/esm/Calendar/SingleCalendar/SingleCalendar.styles.js.map +1 -1
  174. package/dist/esm/Calendar/model.js.map +1 -1
  175. package/dist/esm/Calendar/utils.js.map +1 -1
  176. package/dist/esm/Card/Card.js +3 -2
  177. package/dist/esm/Card/Card.js.map +1 -1
  178. package/dist/esm/Card/Card.styles.js.map +1 -1
  179. package/dist/esm/Card/Content/Content.js.map +1 -1
  180. package/dist/esm/Card/Content/Content.styles.js.map +1 -1
  181. package/dist/esm/Card/Header/Header.js.map +1 -1
  182. package/dist/esm/Card/Header/Header.styles.js.map +1 -1
  183. package/dist/esm/Card/Media/Media.js.map +1 -1
  184. package/dist/esm/Card/Media/Media.styles.js.map +1 -1
  185. package/dist/esm/Carousel/Carousel.js +4 -3
  186. package/dist/esm/Carousel/Carousel.js.map +1 -1
  187. package/dist/esm/Carousel/Carousel.styles.js.map +1 -1
  188. package/dist/esm/Carousel/CarouselControls.js.map +1 -1
  189. package/dist/esm/Carousel/CarouselSlide/CarouselSlide.js.map +1 -1
  190. package/dist/esm/Carousel/CarouselSlide/CarouselSlide.styles.js.map +1 -1
  191. package/dist/esm/Carousel/CarouselThumbnails.js +1 -1
  192. package/dist/esm/Carousel/CarouselThumbnails.js.map +1 -1
  193. package/dist/esm/CheckBox/CheckBox.js +1 -1
  194. package/dist/esm/CheckBox/CheckBox.js.map +1 -1
  195. package/dist/esm/CheckBox/CheckBox.styles.js.map +1 -1
  196. package/dist/esm/CheckBoxGroup/CheckBoxGroup.js +1 -1
  197. package/dist/esm/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  198. package/dist/esm/CheckBoxGroup/CheckBoxGroup.styles.js.map +1 -1
  199. package/dist/esm/ColorPicker/ColorPicker.js +1 -1
  200. package/dist/esm/ColorPicker/ColorPicker.js.map +1 -1
  201. package/dist/esm/ColorPicker/ColorPicker.styles.js.map +1 -1
  202. package/dist/esm/ColorPicker/Fields/Fields.js.map +1 -1
  203. package/dist/esm/ColorPicker/Fields/Fields.styles.js.map +1 -1
  204. package/dist/esm/ColorPicker/Picker/Picker.js.map +1 -1
  205. package/dist/esm/ColorPicker/Picker/Picker.styles.js.map +1 -1
  206. package/dist/esm/ColorPicker/PresetColors/PresetColors.js.map +1 -1
  207. package/dist/esm/ColorPicker/PresetColors/PresetColors.styles.js.map +1 -1
  208. package/dist/esm/ColorPicker/SavedColors/SavedColors.js.map +1 -1
  209. package/dist/esm/ColorPicker/SavedColors/SavedColors.styles.js.map +1 -1
  210. package/dist/esm/Container/Container.js +1 -1
  211. package/dist/esm/Container/Container.js.map +1 -1
  212. package/dist/esm/Container/Container.styles.js.map +1 -1
  213. package/dist/esm/Controls/Controls.js.map +1 -1
  214. package/dist/esm/Controls/Controls.styles.js.map +1 -1
  215. package/dist/esm/Controls/LeftControl/LeftControl.js.map +1 -1
  216. package/dist/esm/Controls/RightControl/RightControl.js.map +1 -1
  217. package/dist/esm/Controls/context/ControlsContext.js.map +1 -1
  218. package/dist/esm/DatePicker/DatePicker.js +1 -1
  219. package/dist/esm/DatePicker/DatePicker.js.map +1 -1
  220. package/dist/esm/DatePicker/DatePicker.styles.js.map +1 -1
  221. package/dist/esm/DatePicker/useVisibleDate.js.map +1 -1
  222. package/dist/esm/DatePicker/utils.js.map +1 -1
  223. package/dist/esm/Dialog/Actions/Actions.js.map +1 -1
  224. package/dist/esm/Dialog/Actions/Actions.styles.js.map +1 -1
  225. package/dist/esm/Dialog/Content/Content.js.map +1 -1
  226. package/dist/esm/Dialog/Content/Content.styles.js.map +1 -1
  227. package/dist/esm/Dialog/Dialog.js.map +1 -1
  228. package/dist/esm/Dialog/Dialog.styles.js.map +1 -1
  229. package/dist/esm/Dialog/Title/Title.js.map +1 -1
  230. package/dist/esm/Dialog/Title/Title.styles.js.map +1 -1
  231. package/dist/esm/Dialog/context.js.map +1 -1
  232. package/dist/esm/DotPagination/DotPagination.js.map +1 -1
  233. package/dist/esm/DotPagination/DotPagination.styles.js.map +1 -1
  234. package/dist/esm/Drawer/Drawer.js +4 -2
  235. package/dist/esm/Drawer/Drawer.js.map +1 -1
  236. package/dist/esm/Drawer/Drawer.styles.js.map +1 -1
  237. package/dist/esm/DropDownMenu/DropDownMenu.js +23 -29
  238. package/dist/esm/DropDownMenu/DropDownMenu.js.map +1 -1
  239. package/dist/esm/DropDownMenu/DropDownMenu.styles.js +15 -2
  240. package/dist/esm/DropDownMenu/DropDownMenu.styles.js.map +1 -1
  241. package/dist/esm/Dropdown/Dropdown.js.map +1 -1
  242. package/dist/esm/Dropdown/Dropdown.styles.js.map +1 -1
  243. package/dist/esm/Dropdown/List/List.js +6 -5
  244. package/dist/esm/Dropdown/List/List.js.map +1 -1
  245. package/dist/esm/Dropdown/List/List.styles.js.map +1 -1
  246. package/dist/esm/Dropdown/utils.js.map +1 -1
  247. package/dist/esm/DropdownButton/DropdownButton.js +1 -1
  248. package/dist/esm/DropdownButton/DropdownButton.js.map +1 -1
  249. package/dist/esm/DropdownButton/DropdownButton.styles.js.map +1 -1
  250. package/dist/esm/EmptyState/EmptyState.js +4 -3
  251. package/dist/esm/EmptyState/EmptyState.js.map +1 -1
  252. package/dist/esm/EmptyState/EmptyState.styles.js.map +1 -1
  253. package/dist/esm/FileUploader/DropZone/DropZone.js.map +1 -1
  254. package/dist/esm/FileUploader/DropZone/DropZone.styles.js.map +1 -1
  255. package/dist/esm/FileUploader/File/File.js.map +1 -1
  256. package/dist/esm/FileUploader/File/File.styles.js.map +1 -1
  257. package/dist/esm/FileUploader/FileList/FileList.js.map +1 -1
  258. package/dist/esm/FileUploader/FileList/FileList.styles.js.map +1 -1
  259. package/dist/esm/FileUploader/FileUploader.js.map +1 -1
  260. package/dist/esm/FileUploader/Preview/Preview.js.map +1 -1
  261. package/dist/esm/FileUploader/Preview/Preview.styles.js.map +1 -1
  262. package/dist/esm/FileUploader/utils.js.map +1 -1
  263. package/dist/esm/FilterGroup/Counter/Counter.js.map +1 -1
  264. package/dist/esm/FilterGroup/Counter/Counter.styles.js.map +1 -1
  265. package/dist/esm/FilterGroup/FilterContent/FilterContent.js +1 -1
  266. package/dist/esm/FilterGroup/FilterContent/FilterContent.js.map +1 -1
  267. package/dist/esm/FilterGroup/FilterContent/FilterContent.styles.js.map +1 -1
  268. package/dist/esm/FilterGroup/FilterGroup.js +1 -1
  269. package/dist/esm/FilterGroup/FilterGroup.js.map +1 -1
  270. package/dist/esm/FilterGroup/FilterGroup.styles.js.map +1 -1
  271. package/dist/esm/FilterGroup/FilterGroupContext.js.map +1 -1
  272. package/dist/esm/FilterGroup/LeftPanel/LeftPanel.js.map +1 -1
  273. package/dist/esm/FilterGroup/LeftPanel/LeftPanel.styles.js.map +1 -1
  274. package/dist/esm/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  275. package/dist/esm/FilterGroup/RightPanel/RightPanel.styles.js.map +1 -1
  276. package/dist/esm/Focus/Focus.js.map +1 -1
  277. package/dist/esm/Focus/Focus.styles.js.map +1 -1
  278. package/dist/esm/Focus/utils.js.map +1 -1
  279. package/dist/esm/Footer/Footer.js +4 -2
  280. package/dist/esm/Footer/Footer.js.map +1 -1
  281. package/dist/esm/Footer/Footer.styles.js.map +1 -1
  282. package/dist/esm/Forms/Adornment/Adornment.js.map +1 -1
  283. package/dist/esm/Forms/Adornment/Adornment.styles.js.map +1 -1
  284. package/dist/esm/Forms/CharCounter/CharCounter.js.map +1 -1
  285. package/dist/esm/Forms/FormElement/FormElement.js.map +1 -1
  286. package/dist/esm/Forms/FormElement/FormElement.styles.js.map +1 -1
  287. package/dist/esm/Forms/FormElement/context/FormElementContext.js.map +1 -1
  288. package/dist/esm/Forms/FormElement/context/FormElementDescriptorsContext.js.map +1 -1
  289. package/dist/esm/Forms/FormElement/utils/FormUtils.js.map +1 -1
  290. package/dist/esm/Forms/InfoMessage/InfoMessage.js.map +1 -1
  291. package/dist/esm/Forms/Label/Label.js.map +1 -1
  292. package/dist/esm/Forms/Suggestions/Suggestions.js.map +1 -1
  293. package/dist/esm/Forms/Suggestions/Suggestions.styles.js.map +1 -1
  294. package/dist/esm/Forms/WarningText/WarningText.js.map +1 -1
  295. package/dist/esm/GlobalActions/GlobalActions.js +4 -2
  296. package/dist/esm/GlobalActions/GlobalActions.js.map +1 -1
  297. package/dist/esm/GlobalActions/GlobalActions.styles.js.map +1 -1
  298. package/dist/esm/Grid/Grid.js +1 -1
  299. package/dist/esm/Grid/Grid.js.map +1 -1
  300. package/dist/esm/Grid/Grid.styles.js.map +1 -1
  301. package/dist/esm/Header/Actions/Actions.js +1 -1
  302. package/dist/esm/Header/Actions/Actions.js.map +1 -1
  303. package/dist/esm/Header/Actions/Actions.styles.js.map +1 -1
  304. package/dist/esm/Header/Brand/Brand.js +1 -1
  305. package/dist/esm/Header/Brand/Brand.js.map +1 -1
  306. package/dist/esm/Header/Brand/Brand.styles.js.map +1 -1
  307. package/dist/esm/Header/Header.js +4 -2
  308. package/dist/esm/Header/Header.js.map +1 -1
  309. package/dist/esm/Header/Header.styles.js.map +1 -1
  310. package/dist/esm/Header/Navigation/MenuBar/Bar.js.map +1 -1
  311. package/dist/esm/Header/Navigation/MenuBar/Bar.styles.js.map +1 -1
  312. package/dist/esm/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  313. package/dist/esm/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  314. package/dist/esm/Header/Navigation/MenuItem/MenuItem.styles.js.map +1 -1
  315. package/dist/esm/Header/Navigation/Navigation.js +1 -1
  316. package/dist/esm/Header/Navigation/Navigation.js.map +1 -1
  317. package/dist/esm/Header/Navigation/Navigation.styles.js.map +1 -1
  318. package/dist/esm/Header/Navigation/useSelectionPath.js.map +1 -1
  319. package/dist/esm/Header/Navigation/utils/FocusContext.js.map +1 -1
  320. package/dist/esm/IconButton/IconButton.js.map +1 -1
  321. package/dist/esm/InlineEditor/InlineEditor.js.map +1 -1
  322. package/dist/esm/InlineEditor/InlineEditor.styles.js.map +1 -1
  323. package/dist/esm/Input/Input.js +1 -1
  324. package/dist/esm/Input/Input.js.map +1 -1
  325. package/dist/esm/Input/Input.styles.js.map +1 -1
  326. package/dist/esm/Kpi/Kpi.js.map +1 -1
  327. package/dist/esm/Link/Link.js.map +1 -1
  328. package/dist/esm/Link/Link.styles.js.map +1 -1
  329. package/dist/esm/List/List.js.map +1 -1
  330. package/dist/esm/List/List.styles.js.map +1 -1
  331. package/dist/esm/List/utils.js.map +1 -1
  332. package/dist/esm/ListContainer/ListContainer.js +1 -1
  333. package/dist/esm/ListContainer/ListContainer.js.map +1 -1
  334. package/dist/esm/ListContainer/ListContainer.styles.js.map +1 -1
  335. package/dist/esm/ListContainer/ListContext/ListContext.js.map +1 -1
  336. package/dist/esm/ListContainer/ListItem/ListItem.js +1 -1
  337. package/dist/esm/ListContainer/ListItem/ListItem.js.map +1 -1
  338. package/dist/esm/ListContainer/ListItem/ListItem.styles.js.map +1 -1
  339. package/dist/esm/Loading/Loading.js +4 -2
  340. package/dist/esm/Loading/Loading.js.map +1 -1
  341. package/dist/esm/Loading/Loading.styles.js.map +1 -1
  342. package/dist/esm/LoadingContainer/LoadingContainer.js +4 -3
  343. package/dist/esm/LoadingContainer/LoadingContainer.js.map +1 -1
  344. package/dist/esm/LoadingContainer/LoadingContainer.styles.js.map +1 -1
  345. package/dist/esm/Login/Login.js +4 -4
  346. package/dist/esm/Login/Login.js.map +1 -1
  347. package/dist/esm/Login/Login.styles.js.map +1 -1
  348. package/dist/esm/MultiButton/MultiButton.js +3 -4
  349. package/dist/esm/MultiButton/MultiButton.js.map +1 -1
  350. package/dist/esm/MultiButton/MultiButton.styles.js +48 -109
  351. package/dist/esm/MultiButton/MultiButton.styles.js.map +1 -1
  352. package/dist/esm/OverflowTooltip/OverflowTooltip.js.map +1 -1
  353. package/dist/esm/OverflowTooltip/OverflowTooltip.styles.js.map +1 -1
  354. package/dist/esm/Pagination/Pagination.js +4 -4
  355. package/dist/esm/Pagination/Pagination.js.map +1 -1
  356. package/dist/esm/Pagination/Pagination.styles.js +1 -1
  357. package/dist/esm/Pagination/Pagination.styles.js.map +1 -1
  358. package/dist/esm/Pagination/Select.js.map +1 -1
  359. package/dist/esm/Pagination/Select.styles.js.map +1 -1
  360. package/dist/esm/Panel/Panel.js +1 -1
  361. package/dist/esm/Panel/Panel.js.map +1 -1
  362. package/dist/esm/Panel/Panel.styles.js +2 -1
  363. package/dist/esm/Panel/Panel.styles.js.map +1 -1
  364. package/dist/esm/ProgressBar/ProgressBar.js.map +1 -1
  365. package/dist/esm/ProgressBar/ProgressBar.styles.js.map +1 -1
  366. package/dist/esm/QueryBuilder/ConfirmationDialog/ConfirmationDialog.js.map +1 -1
  367. package/dist/esm/QueryBuilder/ConfirmationDialog/ConfirmationDialog.styles.js.map +1 -1
  368. package/dist/esm/QueryBuilder/Context.js.map +1 -1
  369. package/dist/esm/QueryBuilder/QueryBuilder.js.map +1 -1
  370. package/dist/esm/QueryBuilder/QueryBuilder.styles.js.map +1 -1
  371. package/dist/esm/QueryBuilder/Rule/Attribute/Attribute.js.map +1 -1
  372. package/dist/esm/QueryBuilder/Rule/Operator/Operator.js.map +1 -1
  373. package/dist/esm/QueryBuilder/Rule/Rule.js.map +1 -1
  374. package/dist/esm/QueryBuilder/Rule/Rule.styles.js.map +1 -1
  375. package/dist/esm/QueryBuilder/Rule/Value/BooleanValue/BooleanValue.js.map +1 -1
  376. package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.js.map +1 -1
  377. package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/DateTimeValue.styles.js.map +1 -1
  378. package/dist/esm/QueryBuilder/Rule/Value/DateTimeValue/utils.js.map +1 -1
  379. package/dist/esm/QueryBuilder/Rule/Value/EmptyValue/EmptyValue.js.map +1 -1
  380. package/dist/esm/QueryBuilder/Rule/Value/NumericValue/Numeric.styles.js.map +1 -1
  381. package/dist/esm/QueryBuilder/Rule/Value/NumericValue/NumericValue.js.map +1 -1
  382. package/dist/esm/QueryBuilder/Rule/Value/TextValue/TextValue.js.map +1 -1
  383. package/dist/esm/QueryBuilder/Rule/Value/TextValue/TextValue.styles.js.map +1 -1
  384. package/dist/esm/QueryBuilder/Rule/Value/Value.js.map +1 -1
  385. package/dist/esm/QueryBuilder/RuleGroup/RuleGroup.js.map +1 -1
  386. package/dist/esm/QueryBuilder/utils/index.js.map +1 -1
  387. package/dist/esm/QueryBuilder/utils/reducer.js.map +1 -1
  388. package/dist/esm/Radio/Radio.js +1 -1
  389. package/dist/esm/Radio/Radio.js.map +1 -1
  390. package/dist/esm/Radio/Radio.styles.js.map +1 -1
  391. package/dist/esm/RadioGroup/RadioGroup.js +1 -1
  392. package/dist/esm/RadioGroup/RadioGroup.js.map +1 -1
  393. package/dist/esm/RadioGroup/RadioGroup.styles.js.map +1 -1
  394. package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
  395. package/dist/esm/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js.map +1 -1
  396. package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  397. package/dist/esm/ScrollTo/Horizontal/ScrollToHorizontal.styles.js.map +1 -1
  398. package/dist/esm/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  399. package/dist/esm/ScrollTo/Vertical/ScrollToVertical.styles.js.map +1 -1
  400. package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
  401. package/dist/esm/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.styles.js.map +1 -1
  402. package/dist/esm/ScrollTo/useScrollTo.js.map +1 -1
  403. package/dist/esm/ScrollTo/utils.js.map +1 -1
  404. package/dist/esm/Section/Section.js +26 -31
  405. package/dist/esm/Section/Section.js.map +1 -1
  406. package/dist/esm/Section/Section.styles.js +12 -8
  407. package/dist/esm/Section/Section.styles.js.map +1 -1
  408. package/dist/esm/Select/Option.js.map +1 -1
  409. package/dist/esm/Select/OptionGroup.js +1 -1
  410. package/dist/esm/Select/OptionGroup.js.map +1 -1
  411. package/dist/esm/Select/Select.js.map +1 -1
  412. package/dist/esm/Select/Select.styles.js.map +1 -1
  413. package/dist/esm/SelectionList/SelectionList.js +1 -1
  414. package/dist/esm/SelectionList/SelectionList.js.map +1 -1
  415. package/dist/esm/SelectionList/SelectionList.styles.js.map +1 -1
  416. package/dist/esm/SimpleGrid/SimpleGrid.js.map +1 -1
  417. package/dist/esm/SimpleGrid/SimpleGrid.styles.js.map +1 -1
  418. package/dist/esm/Skeleton/Skeleton.js.map +1 -1
  419. package/dist/esm/Skeleton/Skeleton.styles.js.map +1 -1
  420. package/dist/esm/Slider/Slider.js.map +1 -1
  421. package/dist/esm/Slider/Slider.styles.js.map +1 -1
  422. package/dist/esm/Slider/SliderInput/SliderInput.js.map +1 -1
  423. package/dist/esm/Slider/base.js.map +1 -1
  424. package/dist/esm/Slider/utils.js.map +1 -1
  425. package/dist/esm/Snackbar/Snackbar.js +28 -25
  426. package/dist/esm/Snackbar/Snackbar.js.map +1 -1
  427. package/dist/esm/Snackbar/Snackbar.styles.js.map +1 -1
  428. package/dist/esm/Snackbar/SnackbarContent/SnackbarContent.js.map +1 -1
  429. package/dist/esm/Snackbar/SnackbarContent/SnackbarContent.styles.js.map +1 -1
  430. package/dist/esm/SnackbarProvider/SnackbarProvider.js.map +1 -1
  431. package/dist/esm/SnackbarProvider/SnackbarProvider.styles.js.map +1 -1
  432. package/dist/esm/Stack/Stack.js.map +1 -1
  433. package/dist/esm/Stack/Stack.styles.js.map +1 -1
  434. package/dist/esm/Switch/Switch.js +1 -1
  435. package/dist/esm/Switch/Switch.js.map +1 -1
  436. package/dist/esm/Switch/Switch.styles.js.map +1 -1
  437. package/dist/esm/Tab/Tab.js +4 -2
  438. package/dist/esm/Tab/Tab.js.map +1 -1
  439. package/dist/esm/Tab/Tab.styles.js.map +1 -1
  440. package/dist/esm/Table/Table.js +1 -1
  441. package/dist/esm/Table/Table.js.map +1 -1
  442. package/dist/esm/Table/Table.styles.js.map +1 -1
  443. package/dist/esm/Table/TableBody/TableBody.js.map +1 -1
  444. package/dist/esm/Table/TableCell/TableCell.js +2 -2
  445. package/dist/esm/Table/TableCell/TableCell.js.map +1 -1
  446. package/dist/esm/Table/TableCell/TableCell.styles.js +2 -5
  447. package/dist/esm/Table/TableCell/TableCell.styles.js.map +1 -1
  448. package/dist/esm/Table/TableContainer/TableContainer.js.map +1 -1
  449. package/dist/esm/Table/TableContainer/TableContainer.styles.js.map +1 -1
  450. package/dist/esm/Table/TableHead/TableHead.js.map +1 -1
  451. package/dist/esm/Table/TableHeader/TableHeader.js +47 -54
  452. package/dist/esm/Table/TableHeader/TableHeader.js.map +1 -1
  453. package/dist/esm/Table/TableHeader/TableHeader.styles.js +18 -20
  454. package/dist/esm/Table/TableHeader/TableHeader.styles.js.map +1 -1
  455. package/dist/esm/Table/TableHeader/utils.js.map +1 -1
  456. package/dist/esm/Table/TableRow/TableRow.js.map +1 -1
  457. package/dist/esm/Table/TableRow/TableRow.styles.js +7 -15
  458. package/dist/esm/Table/TableRow/TableRow.styles.js.map +1 -1
  459. package/dist/esm/Table/hooks/useBulkActions.js.map +1 -1
  460. package/dist/esm/Table/hooks/useFilters.js.map +1 -1
  461. package/dist/esm/Table/hooks/useGlobalFilter.js.map +1 -1
  462. package/dist/esm/Table/hooks/useHeaderGroups.js.map +1 -1
  463. package/dist/esm/Table/hooks/usePagination.js.map +1 -1
  464. package/dist/esm/Table/hooks/useResizeColumns.js.map +1 -1
  465. package/dist/esm/Table/hooks/useRowExpand.js.map +1 -1
  466. package/dist/esm/Table/hooks/useRowSelection.js.map +1 -1
  467. package/dist/esm/Table/hooks/useRowState.js.map +1 -1
  468. package/dist/esm/Table/hooks/useSortBy.js.map +1 -1
  469. package/dist/esm/Table/hooks/useSticky.js.map +1 -1
  470. package/dist/esm/Table/hooks/useTable.js.map +1 -1
  471. package/dist/esm/Table/hooks/useTableStyles.js.map +1 -1
  472. package/dist/esm/Table/renderers/DateColumnCell/DateColumnCell.js.map +1 -1
  473. package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.js.map +1 -1
  474. package/dist/esm/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.js.map +1 -1
  475. package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.js.map +1 -1
  476. package/dist/esm/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.js.map +1 -1
  477. package/dist/esm/Table/renderers/renderers.js.map +1 -1
  478. package/dist/esm/Table/utils/fallbacks.js.map +1 -1
  479. package/dist/esm/Table/utils/utils.js.map +1 -1
  480. package/dist/esm/TableSection/TableSection.js +1 -1
  481. package/dist/esm/TableSection/TableSection.js.map +1 -1
  482. package/dist/esm/TableSection/TableSection.styles.js +16 -14
  483. package/dist/esm/TableSection/TableSection.styles.js.map +1 -1
  484. package/dist/esm/Tabs/Tabs.js +5 -3
  485. package/dist/esm/Tabs/Tabs.js.map +1 -1
  486. package/dist/esm/Tabs/Tabs.styles.js.map +1 -1
  487. package/dist/esm/Tag/Tag.js +1 -1
  488. package/dist/esm/Tag/Tag.js.map +1 -1
  489. package/dist/esm/Tag/Tag.styles.js.map +1 -1
  490. package/dist/esm/TagsInput/TagsInput.js +1 -1
  491. package/dist/esm/TagsInput/TagsInput.js.map +1 -1
  492. package/dist/esm/TagsInput/TagsInput.styles.js.map +1 -1
  493. package/dist/esm/TextArea/TextArea.js +1 -1
  494. package/dist/esm/TextArea/TextArea.js.map +1 -1
  495. package/dist/esm/TimeAgo/TimeAgo.js.map +1 -1
  496. package/dist/esm/TimeAgo/TimeAgo.styles.js.map +1 -1
  497. package/dist/esm/TimeAgo/formatUtils.js.map +1 -1
  498. package/dist/esm/TimeAgo/useTimeAgo.js.map +1 -1
  499. package/dist/esm/TimePicker/Placeholder.js +1 -1
  500. package/dist/esm/TimePicker/Placeholder.js.map +1 -1
  501. package/dist/esm/TimePicker/TimePicker.js +1 -1
  502. package/dist/esm/TimePicker/TimePicker.js.map +1 -1
  503. package/dist/esm/TimePicker/TimePicker.styles.js.map +1 -1
  504. package/dist/esm/TimePicker/Unit/Unit.js.map +1 -1
  505. package/dist/esm/TimePicker/Unit/Unit.styles.js.map +1 -1
  506. package/dist/esm/ToggleButton/ToggleButton.js +1 -1
  507. package/dist/esm/ToggleButton/ToggleButton.js.map +1 -1
  508. package/dist/esm/Tooltip/Tooltip.js +1 -1
  509. package/dist/esm/Tooltip/Tooltip.js.map +1 -1
  510. package/dist/esm/Tooltip/Tooltip.styles.js.map +1 -1
  511. package/dist/esm/TreeView/TreeItem/DefaultContent.js +1 -1
  512. package/dist/esm/TreeView/TreeItem/DefaultContent.js.map +1 -1
  513. package/dist/esm/TreeView/TreeItem/TreeItem.js +1 -1
  514. package/dist/esm/TreeView/TreeItem/TreeItem.js.map +1 -1
  515. package/dist/esm/TreeView/TreeItem/TreeItem.styles.js.map +1 -1
  516. package/dist/esm/TreeView/TreeItem/useHvTreeItem.js.map +1 -1
  517. package/dist/esm/TreeView/TreeView.js.map +1 -1
  518. package/dist/esm/TreeView/TreeView.styles.js.map +1 -1
  519. package/dist/esm/TreeView/internals/DescendantProvider.js.map +1 -1
  520. package/dist/esm/TreeView/internals/TreeViewProvider.js.map +1 -1
  521. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewContextValueBuilder.js.map +1 -1
  522. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewExpansion.js.map +1 -1
  523. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewFocus.js.map +1 -1
  524. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewKeyboardNavigation.js.map +1 -1
  525. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewNodes.js.map +1 -1
  526. package/dist/esm/TreeView/internals/hooks/plugins/useTreeViewSelection.js.map +1 -1
  527. package/dist/esm/TreeView/internals/hooks/useInstanceEventHandler.js.map +1 -1
  528. package/dist/esm/TreeView/internals/hooks/useTreeView.js.map +1 -1
  529. package/dist/esm/TreeView/internals/hooks/useTreeViewInstanceEvents.js.map +1 -1
  530. package/dist/esm/TreeView/internals/hooks/useTreeViewModels.js.map +1 -1
  531. package/dist/esm/TreeView/internals/hooks/utils.js.map +1 -1
  532. package/dist/esm/TreeView/internals/utils/EventManager.js.map +1 -1
  533. package/dist/esm/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.js.map +1 -1
  534. package/dist/esm/TreeView/internals/utils/TimerBasedCleanupTracking.js.map +1 -1
  535. package/dist/esm/Typography/Typography.js.map +1 -1
  536. package/dist/esm/Typography/Typography.styles.js.map +1 -1
  537. package/dist/esm/VerticalNavigation/Actions/Action.js.map +1 -1
  538. package/dist/esm/VerticalNavigation/Actions/Action.styles.js.map +1 -1
  539. package/dist/esm/VerticalNavigation/Actions/Actions.js.map +1 -1
  540. package/dist/esm/VerticalNavigation/Actions/Actions.styles.js.map +1 -1
  541. package/dist/esm/VerticalNavigation/Header/Header.js.map +1 -1
  542. package/dist/esm/VerticalNavigation/Header/Header.styles.js.map +1 -1
  543. package/dist/esm/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  544. package/dist/esm/VerticalNavigation/Navigation/Navigation.styles.js.map +1 -1
  545. package/dist/esm/VerticalNavigation/NavigationPopup/NavigationPopup.styles.js.map +1 -1
  546. package/dist/esm/VerticalNavigation/NavigationPopup/NavigationPopupContainer.js.map +1 -1
  547. package/dist/esm/VerticalNavigation/NavigationSlider/NavigationSlider.js.map +1 -1
  548. package/dist/esm/VerticalNavigation/NavigationSlider/NavigationSlider.styles.js.map +1 -1
  549. package/dist/esm/VerticalNavigation/NavigationSlider/utils.js.map +1 -1
  550. package/dist/esm/VerticalNavigation/TreeView/TreeView.js +1 -1
  551. package/dist/esm/VerticalNavigation/TreeView/TreeView.js.map +1 -1
  552. package/dist/esm/VerticalNavigation/TreeView/TreeView.styles.js.map +1 -1
  553. package/dist/esm/VerticalNavigation/TreeView/TreeViewContext.js.map +1 -1
  554. package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  555. package/dist/esm/VerticalNavigation/TreeView/TreeViewItem.styles.js.map +1 -1
  556. package/dist/esm/VerticalNavigation/VerticalNavigation.js +1 -1
  557. package/dist/esm/VerticalNavigation/VerticalNavigation.js.map +1 -1
  558. package/dist/esm/VerticalNavigation/VerticalNavigation.styles.js.map +1 -1
  559. package/dist/esm/VerticalNavigation/VerticalNavigationContext.js.map +1 -1
  560. package/dist/esm/hocs/withTooltip.js.map +1 -1
  561. package/dist/esm/hooks/useClickOutside.js.map +1 -1
  562. package/dist/esm/hooks/useComputation.js.map +1 -1
  563. package/dist/esm/hooks/useControlled.js.map +1 -1
  564. package/dist/esm/hooks/useExpandable.js.map +1 -1
  565. package/dist/esm/hooks/useForkRef.js.map +1 -1
  566. package/dist/esm/hooks/useImageLoaded.js.map +1 -1
  567. package/dist/esm/hooks/useIsMounted.js.map +1 -1
  568. package/dist/esm/hooks/useUniqueId.js.map +1 -1
  569. package/dist/esm/hooks/useWidth.js.map +1 -1
  570. package/dist/esm/providers/Provider.js.map +1 -1
  571. package/dist/esm/providers/ThemeProvider.js.map +1 -1
  572. package/dist/esm/utils/Random.js.map +1 -1
  573. package/dist/esm/utils/browser.js.map +1 -1
  574. package/dist/esm/utils/deepMerge.js.map +1 -1
  575. package/dist/esm/utils/document.js.map +1 -1
  576. package/dist/esm/utils/focusableElementFinder.js.map +1 -1
  577. package/dist/esm/utils/helpers.js +2 -2
  578. package/dist/esm/utils/helpers.js.map +1 -1
  579. package/dist/esm/utils/iconVariant.js.map +1 -1
  580. package/dist/esm/utils/multiSelectionEventHandler.js.map +1 -1
  581. package/dist/esm/utils/sizes.js.map +1 -1
  582. package/dist/esm/utils/theme.js.map +1 -1
  583. package/dist/esm/utils/useSavedState.js.map +1 -1
  584. package/dist/esm/utils/wrapperTooltip.js.map +1 -1
  585. package/dist/types/index.d.ts +44 -42
  586. package/package.json +6 -6
  587. package/dist/esm/BaseDropdown/BaseDropdownContext/BaseDropdownContext.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"useResizeColumns.js","sources":["../../../../src/Table/hooks/useResizeColumns.ts"],"sourcesContent":["import { ensurePluginOrder, Hooks } from \"react-table\";\n\n// #region ##### TYPES #####\n\n// getHeaderProps:\nexport interface UseHvResizeColumnProps {\n resizable?: boolean;\n resizing?: boolean;\n resizerProps?: React.HTMLAttributes<HTMLDivElement>;\n}\n\n// getCellProps:\nexport interface UseHvResizeTableCellProps {\n resizable?: boolean;\n resizing?: boolean;\n}\n\nexport type UseHvResizeColumnsProps = (<\n D extends object = Record<string, unknown>,\n>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// props target: <table><thead><tr><th>\nconst getHeaderPropsHook = (props: any, { column }: any) => {\n const resizerProps: NonNullable<UseHvResizeColumnProps[\"resizerProps\"]> =\n column.getResizerProps?.() || {};\n\n resizerProps.onClick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n const nextProps = {\n resizable: column.canResize,\n resizing: column.isResizing,\n resizerProps,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props: any, { cell }: any) => {\n const nextProps: UseHvResizeTableCellProps = {\n resizable: cell.column.canResize,\n resizing: cell.column.isResizing,\n };\n\n return [props, nextProps];\n};\n\nconst useInstanceHook = (instance: any) => {\n ensurePluginOrder(\n instance.plugins,\n [\"useResizeColumns\"],\n \"useHvResizeColumns\",\n );\n};\n\nconst useResizeColumns: UseHvResizeColumnsProps = (hooks) => {\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n\n hooks.useInstance.push(useInstanceHook);\n};\n\nuseResizeColumns.pluginName = \"useHvResizeColumns\";\n\nexport default useResizeColumns;\n"],"names":[],"mappings":";AA0BA,MAAM,qBAAqB,CAAC,OAAY,EAAE,aAAkB;AAC1D,QAAM,eACJ,OAAO,kBAAkB,KAAK,CAAA;AAEnB,eAAA,UAAU,CAAC,MAAM;AAC5B,MAAE,eAAe;AACjB,MAAE,gBAAgB;AAAA,EAAA;AAGpB,QAAM,YAAY;AAAA,IAChB,WAAW,OAAO;AAAA,IAClB,UAAU,OAAO;AAAA,IACjB;AAAA,EAAA;AAGK,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGA,MAAM,mBAAmB,CAAC,OAAY,EAAE,WAAgB;AACtD,QAAM,YAAuC;AAAA,IAC3C,WAAW,KAAK,OAAO;AAAA,IACvB,UAAU,KAAK,OAAO;AAAA,EAAA;AAGjB,SAAA,CAAC,OAAO,SAAS;AAC1B;AAEA,MAAM,kBAAkB,CAAC,aAAkB;AACzC;AAAA,IACE,SAAS;AAAA,IACT,CAAC,kBAAkB;AAAA,IACnB;AAAA,EAAA;AAEJ;AAEM,MAAA,mBAA4C,CAAC,UAAU;AAErD,QAAA,eAAe,KAAK,kBAAkB;AAEtC,QAAA,aAAa,KAAK,gBAAgB;AAElC,QAAA,YAAY,KAAK,eAAe;AACxC;AAEA,iBAAiB,aAAa;"}
1
+ {"version":3,"file":"useResizeColumns.js","sources":["../../../../src/Table/hooks/useResizeColumns.ts"],"sourcesContent":["import { ensurePluginOrder, Hooks } from \"react-table\";\n\n// #region ##### TYPES #####\n\n// getHeaderProps:\nexport interface UseHvResizeColumnProps {\n resizable?: boolean;\n resizing?: boolean;\n resizerProps?: React.HTMLAttributes<HTMLDivElement>;\n}\n\n// getCellProps:\nexport interface UseHvResizeTableCellProps {\n resizable?: boolean;\n resizing?: boolean;\n}\n\nexport type UseHvResizeColumnsProps = (<\n D extends object = Record<string, unknown>,\n>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// props target: <table><thead><tr><th>\nconst getHeaderPropsHook = (props: any, { column }: any) => {\n const resizerProps: NonNullable<UseHvResizeColumnProps[\"resizerProps\"]> =\n column.getResizerProps?.() || {};\n\n resizerProps.onClick = (e) => {\n e.preventDefault();\n e.stopPropagation();\n };\n\n const nextProps = {\n resizable: column.canResize,\n resizing: column.isResizing,\n resizerProps,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props: any, { cell }: any) => {\n const nextProps: UseHvResizeTableCellProps = {\n resizable: cell.column.canResize,\n resizing: cell.column.isResizing,\n };\n\n return [props, nextProps];\n};\n\nconst useInstanceHook = (instance: any) => {\n ensurePluginOrder(\n instance.plugins,\n [\"useResizeColumns\"],\n \"useHvResizeColumns\",\n );\n};\n\nconst useResizeColumns: UseHvResizeColumnsProps = (hooks) => {\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n\n hooks.useInstance.push(useInstanceHook);\n};\n\nuseResizeColumns.pluginName = \"useHvResizeColumns\";\n\nexport default useResizeColumns;\n"],"names":[],"mappings":";AA0BA,MAAM,qBAAqB,CAAC,OAAY,EAAE,aAAkB;AAC1D,QAAM,eACJ,OAAO,kBAAkB,KAAK,CAAC;AAEpB,eAAA,UAAU,CAAC,MAAM;AAC5B,MAAE,eAAe;AACjB,MAAE,gBAAgB;AAAA,EACpB;AAEA,QAAM,YAAY;AAAA,IAChB,WAAW,OAAO;AAAA,IAClB,UAAU,OAAO;AAAA,IACjB;AAAA,EACF;AAEO,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGA,MAAM,mBAAmB,CAAC,OAAY,EAAE,WAAgB;AACtD,QAAM,YAAuC;AAAA,IAC3C,WAAW,KAAK,OAAO;AAAA,IACvB,UAAU,KAAK,OAAO;AAAA,EACxB;AAEO,SAAA,CAAC,OAAO,SAAS;AAC1B;AAEA,MAAM,kBAAkB,CAAC,aAAkB;AACzC;AAAA,IACE,SAAS;AAAA,IACT,CAAC,kBAAkB;AAAA,IACnB;AAAA,EACF;AACF;AAEM,MAAA,mBAA4C,CAAC,UAAU;AAErD,QAAA,eAAe,KAAK,kBAAkB;AAEtC,QAAA,aAAa,KAAK,gBAAgB;AAElC,QAAA,YAAY,KAAK,eAAe;AACxC;AAEA,iBAAiB,aAAa;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRowExpand.js","sources":["../../../../src/Table/hooks/useRowExpand.tsx"],"sourcesContent":["import {\n Hooks,\n TableExpandedToggleProps,\n UseExpandedRowProps,\n} from \"react-table\";\nimport { DropDownXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvButton } from \"../../Button\";\nimport { useLabels } from \"../../hooks/useLabels\";\nimport { HvTypography } from \"../../Typography\";\nimport type { HvCellProps } from \"./useTable\";\n\n// #region ##### TYPES #####\n\nexport interface UseHvRowExpandTableRowProps {\n expanded?: boolean;\n}\n\nexport type UseHvRowExpandTableOptions = {\n disableCreateExpandButton?: boolean;\n};\n\nexport interface UseHvRowExpandRowToggleProps extends TableExpandedToggleProps {\n onClick?: React.MouseEventHandler<unknown>;\n}\n\nexport interface UseHvRowExpandRowInstance<\n D extends object = Record<string, unknown>,\n> extends UseExpandedRowProps<D> {\n getToggleRowExpandedProps: (\n props?: Partial<TableExpandedToggleProps>,\n ) => UseHvRowExpandRowToggleProps;\n}\n\nexport type UseRowExpandProps = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\nconst DEFAULT_LABELS = {\n expandRowButtonAriaLabel: \"Expand this row\",\n collapseRowButtonAriaLabel: \"Collapse this row\",\n};\n\nexport const CellWithExpandButton = ({\n row,\n cell,\n labels: labelsProp,\n}: HvCellProps<any>) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const rowProps = row.getToggleRowExpandedProps?.();\n\n return (\n <>\n <HvButton\n icon\n aria-label={\n row.isExpanded\n ? labels.collapseRowButtonAriaLabel\n : labels.expandRowButtonAriaLabel\n }\n aria-expanded={row.isExpanded}\n onClick={rowProps?.onClick}\n >\n <DropDownXS style={{ rotate: row.isExpanded ? \"180deg\" : undefined }} />\n </HvButton>\n {cell?.value && (\n <HvTypography variant=\"label\" component=\"span\">\n {cell.value}\n </HvTypography>\n )}\n </>\n );\n};\n\nconst visibleColumnsHook = (columns: any, { instance }: any) => {\n if (instance.disableCreateExpandButton) {\n return columns;\n }\n\n // add a button to first data column, unless it has a custom renderer\n // if so, add an extra column instead\n const firstDataColumnIndex = columns.findIndex(\n (c: any) => c.id?.indexOf(\"_hv_\") !== 0,\n );\n\n if (firstDataColumnIndex !== -1) {\n const firstDataColumn = columns[firstDataColumnIndex];\n\n if (firstDataColumn.Cell == null) {\n firstDataColumn.Cell = CellWithExpandButton;\n firstDataColumn.variant = \"expand\";\n\n return columns;\n }\n }\n\n const expandColumn = {\n id: \"_hv_expand\",\n variant: \"none\",\n\n width: 32,\n\n // this will only work when using useHvTableSticky\n // but ensures it stays left of any sticky column\n sticky: \"left\",\n\n Cell: CellWithExpandButton,\n };\n\n const columnsCopy = [...columns];\n columnsCopy.splice(\n firstDataColumnIndex !== -1 ? firstDataColumnIndex : 0,\n 0,\n expandColumn,\n );\n\n return columnsCopy;\n};\n\nconst getRowPropsHook = (props: any, { row }: any) => {\n const nextProps: UseHvRowExpandTableRowProps = {\n expanded: row.isExpanded,\n };\n\n return [props, nextProps];\n};\n\nconst useRowExpand: UseRowExpandProps = (hooks) => {\n hooks.visibleColumns.push(visibleColumnsHook);\n hooks.getRowProps.push(getRowPropsHook);\n};\nuseRowExpand.pluginName = \"useHvRowExpand\";\n\nexport default useRowExpand;\n"],"names":[],"mappings":";;;;;AAwCA,MAAM,iBAAiB;AAAA,EACrB,0BAA0B;AAAA,EAC1B,4BAA4B;AAC9B;AAEO,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA,QAAQ;AACV,MAAwB;AAChB,QAAA,SAAS,UAAU,gBAAgB,UAAU;AAC7C,QAAA,WAAW,IAAI;AAErB,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAI;AAAA,QACJ,cACE,IAAI,aACA,OAAO,6BACP,OAAO;AAAA,QAEb,iBAAe,IAAI;AAAA,QACnB,SAAS,UAAU;AAAA,QAEnB,UAAA,oBAAC,cAAW,OAAO,EAAE,QAAQ,IAAI,aAAa,WAAW,OAAa,EAAA,CAAA;AAAA,MAAA;AAAA,IACxE;AAAA,IACC,MAAM,SACJ,oBAAA,cAAA,EAAa,SAAQ,SAAQ,WAAU,QACrC,UAAA,KAAK,MACR,CAAA;AAAA,EAEJ,EAAA,CAAA;AAEJ;AAEA,MAAM,qBAAqB,CAAC,SAAc,EAAE,eAAoB;AAC9D,MAAI,SAAS,2BAA2B;AAC/B,WAAA;AAAA,EACT;AAIA,QAAM,uBAAuB,QAAQ;AAAA,IACnC,CAAC,MAAW,EAAE,IAAI,QAAQ,MAAM,MAAM;AAAA,EAAA;AAGxC,MAAI,yBAAyB,IAAI;AACzB,UAAA,kBAAkB,QAAQ,oBAAoB;AAEhD,QAAA,gBAAgB,QAAQ,MAAM;AAChC,sBAAgB,OAAO;AACvB,sBAAgB,UAAU;AAEnB,aAAA;AAAA,IACT;AAAA,EACF;AAEA,QAAM,eAAe;AAAA,IACnB,IAAI;AAAA,IACJ,SAAS;AAAA,IAET,OAAO;AAAA;AAAA;AAAA,IAIP,QAAQ;AAAA,IAER,MAAM;AAAA,EAAA;AAGF,QAAA,cAAc,CAAC,GAAG,OAAO;AACnB,cAAA;AAAA,IACV,yBAAyB,KAAK,uBAAuB;AAAA,IACrD;AAAA,IACA;AAAA,EAAA;AAGK,SAAA;AACT;AAEA,MAAM,kBAAkB,CAAC,OAAY,EAAE,UAAe;AACpD,QAAM,YAAyC;AAAA,IAC7C,UAAU,IAAI;AAAA,EAAA;AAGT,SAAA,CAAC,OAAO,SAAS;AAC1B;AAEM,MAAA,eAAkC,CAAC,UAAU;AAC3C,QAAA,eAAe,KAAK,kBAAkB;AACtC,QAAA,YAAY,KAAK,eAAe;AACxC;AACA,aAAa,aAAa;"}
1
+ {"version":3,"file":"useRowExpand.js","sources":["../../../../src/Table/hooks/useRowExpand.tsx"],"sourcesContent":["import {\n Hooks,\n TableExpandedToggleProps,\n UseExpandedRowProps,\n} from \"react-table\";\nimport { DropDownXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvButton } from \"../../Button\";\nimport { useLabels } from \"../../hooks/useLabels\";\nimport { HvTypography } from \"../../Typography\";\nimport type { HvCellProps } from \"./useTable\";\n\n// #region ##### TYPES #####\n\nexport interface UseHvRowExpandTableRowProps {\n expanded?: boolean;\n}\n\nexport type UseHvRowExpandTableOptions = {\n disableCreateExpandButton?: boolean;\n};\n\nexport interface UseHvRowExpandRowToggleProps extends TableExpandedToggleProps {\n onClick?: React.MouseEventHandler<unknown>;\n}\n\nexport interface UseHvRowExpandRowInstance<\n D extends object = Record<string, unknown>,\n> extends UseExpandedRowProps<D> {\n getToggleRowExpandedProps: (\n props?: Partial<TableExpandedToggleProps>,\n ) => UseHvRowExpandRowToggleProps;\n}\n\nexport type UseRowExpandProps = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\nconst DEFAULT_LABELS = {\n expandRowButtonAriaLabel: \"Expand this row\",\n collapseRowButtonAriaLabel: \"Collapse this row\",\n};\n\nexport const CellWithExpandButton = ({\n row,\n cell,\n labels: labelsProp,\n}: HvCellProps<any>) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n const rowProps = row.getToggleRowExpandedProps?.();\n\n return (\n <>\n <HvButton\n icon\n aria-label={\n row.isExpanded\n ? labels.collapseRowButtonAriaLabel\n : labels.expandRowButtonAriaLabel\n }\n aria-expanded={row.isExpanded}\n onClick={rowProps?.onClick}\n >\n <DropDownXS style={{ rotate: row.isExpanded ? \"180deg\" : undefined }} />\n </HvButton>\n {cell?.value && (\n <HvTypography variant=\"label\" component=\"span\">\n {cell.value}\n </HvTypography>\n )}\n </>\n );\n};\n\nconst visibleColumnsHook = (columns: any, { instance }: any) => {\n if (instance.disableCreateExpandButton) {\n return columns;\n }\n\n // add a button to first data column, unless it has a custom renderer\n // if so, add an extra column instead\n const firstDataColumnIndex = columns.findIndex(\n (c: any) => c.id?.indexOf(\"_hv_\") !== 0,\n );\n\n if (firstDataColumnIndex !== -1) {\n const firstDataColumn = columns[firstDataColumnIndex];\n\n if (firstDataColumn.Cell == null) {\n firstDataColumn.Cell = CellWithExpandButton;\n firstDataColumn.variant = \"expand\";\n\n return columns;\n }\n }\n\n const expandColumn = {\n id: \"_hv_expand\",\n variant: \"none\",\n\n width: 32,\n\n // this will only work when using useHvTableSticky\n // but ensures it stays left of any sticky column\n sticky: \"left\",\n\n Cell: CellWithExpandButton,\n };\n\n const columnsCopy = [...columns];\n columnsCopy.splice(\n firstDataColumnIndex !== -1 ? firstDataColumnIndex : 0,\n 0,\n expandColumn,\n );\n\n return columnsCopy;\n};\n\nconst getRowPropsHook = (props: any, { row }: any) => {\n const nextProps: UseHvRowExpandTableRowProps = {\n expanded: row.isExpanded,\n };\n\n return [props, nextProps];\n};\n\nconst useRowExpand: UseRowExpandProps = (hooks) => {\n hooks.visibleColumns.push(visibleColumnsHook);\n hooks.getRowProps.push(getRowPropsHook);\n};\nuseRowExpand.pluginName = \"useHvRowExpand\";\n\nexport default useRowExpand;\n"],"names":[],"mappings":";;;;;AAwCA,MAAM,iBAAiB;AAAA,EACrB,0BAA0B;AAAA,EAC1B,4BAA4B;AAC9B;AAEO,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA,QAAQ;AACV,MAAwB;AAChB,QAAA,SAAS,UAAU,gBAAgB,UAAU;AAC7C,QAAA,WAAW,IAAI,4BAA4B;AAEjD,SAEI,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,MAAI;AAAA,QACJ,cACE,IAAI,aACA,OAAO,6BACP,OAAO;AAAA,QAEb,iBAAe,IAAI;AAAA,QACnB,SAAS,UAAU;AAAA,QAEnB,UAAA,oBAAC,cAAW,OAAO,EAAE,QAAQ,IAAI,aAAa,WAAW,OAAA,EAAa,CAAA;AAAA,MAAA;AAAA,IACxE;AAAA,IACC,MAAM,SACJ,oBAAA,cAAA,EAAa,SAAQ,SAAQ,WAAU,QACrC,UAAA,KAAK,MACR,CAAA;AAAA,EAAA,GAEJ;AAEJ;AAEA,MAAM,qBAAqB,CAAC,SAAc,EAAE,eAAoB;AAC9D,MAAI,SAAS,2BAA2B;AAC/B,WAAA;AAAA,EAAA;AAKT,QAAM,uBAAuB,QAAQ;AAAA,IACnC,CAAC,MAAW,EAAE,IAAI,QAAQ,MAAM,MAAM;AAAA,EACxC;AAEA,MAAI,yBAAyB,IAAI;AACzB,UAAA,kBAAkB,QAAQ,oBAAoB;AAEhD,QAAA,gBAAgB,QAAQ,MAAM;AAChC,sBAAgB,OAAO;AACvB,sBAAgB,UAAU;AAEnB,aAAA;AAAA,IAAA;AAAA,EACT;AAGF,QAAM,eAAe;AAAA,IACnB,IAAI;AAAA,IACJ,SAAS;AAAA,IAET,OAAO;AAAA;AAAA;AAAA,IAIP,QAAQ;AAAA,IAER,MAAM;AAAA,EACR;AAEM,QAAA,cAAc,CAAC,GAAG,OAAO;AACnB,cAAA;AAAA,IACV,yBAAyB,KAAK,uBAAuB;AAAA,IACrD;AAAA,IACA;AAAA,EACF;AAEO,SAAA;AACT;AAEA,MAAM,kBAAkB,CAAC,OAAY,EAAE,UAAe;AACpD,QAAM,YAAyC;AAAA,IAC7C,UAAU,IAAI;AAAA,EAChB;AAEO,SAAA,CAAC,OAAO,SAAS;AAC1B;AAEM,MAAA,eAAkC,CAAC,UAAU;AAC3C,QAAA,eAAe,KAAK,kBAAkB;AACtC,QAAA,YAAY,KAAK,eAAe;AACxC;AACA,aAAa,aAAa;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRowSelection.js","sources":["../../../../src/Table/hooks/useRowSelection.tsx"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport {\n actions,\n ensurePluginOrder,\n Hooks,\n IdType,\n makePropGetter,\n PropGetter,\n Row,\n useGetLatest,\n useMountedLayoutEffect,\n} from \"react-table\";\n\nimport { HvCheckBox } from \"../../CheckBox\";\nimport { useLabels } from \"../../hooks/useLabels\";\n\n// #region ##### TYPES #####\n\n// getRowProps:\nexport interface UseHvRowSelectionTableRowProps {\n selected?: boolean;\n}\n\n// getRowProps:\nexport interface UseHvRowSelectionTableColumnProps {\n \"aria-hidden\"?: boolean;\n}\n\nexport interface UseHvRowSelectionRowCheckboxProps {\n onChange?: (e: React.ChangeEvent, checked?: boolean) => void;\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n}\n\nexport interface UseHvRowSelectionBulkCheckboxProps {\n onChange?: (e: React.ChangeEvent, checked?: boolean) => void;\n checked?: boolean;\n indeterminate?: boolean;\n}\n\nexport type UseHvRowSelectionTableOptions = Partial<{\n autoResetSelectedRows: boolean;\n autoResetLockedSelectionRows: boolean;\n selectSubRows: boolean;\n manualRowSelectedKey: string;\n applyToggleAllRowsSelectedToPrefilteredRows: boolean;\n}>;\n\nexport interface UseHvRowSelectionHooks<D extends object> {\n getToggleRowSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionRowCheckboxProps>\n >;\n getToggleAllRowsSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionBulkCheckboxProps>\n >;\n getToggleAllPageRowsSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionBulkCheckboxProps>\n >;\n}\n\nexport interface UseHvRowSelectionState<D extends object> {\n selectedRowIds: Record<IdType<D>, boolean>;\n lockedSelectionRowIds: Record<IdType<D>, boolean>;\n}\n\nexport interface UseHvRowSelectionTableInstance<D extends object> {\n toggleRowSelected: (rowId: IdType<D>, set?: boolean) => void;\n toggleAllRowsSelected: (value?: boolean) => void;\n toggleAllPageRowsSelected: (value?: boolean) => void;\n getToggleAllRowsSelectedProps: (\n props?: Partial<UseHvRowSelectionBulkCheckboxProps>,\n ) => UseHvRowSelectionBulkCheckboxProps;\n getToggleAllPageRowsSelectedProps: (\n props?: Partial<UseHvRowSelectionBulkCheckboxProps>,\n ) => UseHvRowSelectionBulkCheckboxProps;\n\n isNoRowsSelected: boolean;\n isNoPageRowsSelected: boolean;\n isAllRowsSelected: boolean;\n isAllPageRowsSelected: boolean;\n isAllSelectableRowsSelected: boolean;\n isAllSelectablePageRowsSelected: boolean;\n isAllSelectableRowsUnselected: boolean;\n isAllSelectablePageRowsUnselected: boolean;\n\n selectedFlatRows: Array<Row<D>>;\n}\n\nexport interface UseHvRowSelectionRowInstance {\n isSelected: boolean;\n isSomeSelected: boolean;\n isSelectionLocked: boolean;\n toggleRowLockedSelection: (set?: boolean) => void;\n toggleRowSelected: (set?: boolean) => void;\n getToggleRowSelectedProps: (\n props?: Partial<UseHvRowSelectionRowCheckboxProps>,\n ) => UseHvRowSelectionRowCheckboxProps;\n}\n\nexport type UseRowSelectionProps = (<\n D extends object = Record<string, unknown>,\n>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// Actions\nactions.resetSelectedRows = \"resetSelectedRows\";\nactions.toggleAllRowsSelected = \"toggleAllRowsSelected\";\nactions.toggleRowSelected = \"toggleRowSelected\";\nactions.toggleAllPageRowsSelected = \"toggleAllPageRowsSelected\";\n\nactions.resetLockedSelectionRows = \"resetLockedSelectionRows\";\nactions.toggleRowLockedSelection = \"toggleRowLockedSelection\";\n\nconst DEFAULT_LABELS = {\n selectRowCheckBoxAriaLabel: \"Select this row\",\n};\n\nconst hideHeaderVariants = [\"checkbox\", \"actions\"];\n\nexport const CellWithCheckBox = ({ row, labels: labelsProp }: any) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const { onChange, checked, disabled, indeterminate } =\n row.getToggleRowSelectedProps();\n\n return (\n <HvCheckBox\n onChange={onChange}\n checked={checked}\n disabled={disabled}\n indeterminate={indeterminate}\n aria-label={labels.selectRowCheckBoxAriaLabel}\n />\n );\n};\n\nconst visibleColumnsHook = (columns: any) => {\n const selectionColumn = {\n id: \"_hv_selection\",\n variant: \"checkbox\",\n\n width: 32,\n\n // this will only work when using useHvTableSticky\n // but ensures it stays left of any sticky column\n sticky: \"left\",\n\n Cell: CellWithCheckBox,\n };\n\n return [selectionColumn, ...columns];\n};\n\nconst getHeaderPropsHook = (props: any, { column }: any) => {\n const nextProps: UseHvRowSelectionTableColumnProps = {};\n\n if (hideHeaderVariants.includes(column.variant)) {\n nextProps[\"aria-hidden\"] = true;\n }\n return [props, nextProps];\n};\n\nconst getRowPropsHook = (props: any, { row }: any) => {\n const nextProps: UseHvRowSelectionTableRowProps = {\n selected: row.isSelected,\n };\n\n return [props, nextProps];\n};\n\nexport const defaultGetToggleRowSelectedProps = (props: any, meta: any) => {\n const { instance, row } = meta;\n const { manualRowSelectedKey = \"isSelected\" } = instance;\n let checked = false;\n\n if (row.original?.[manualRowSelectedKey]) {\n checked = true;\n } else {\n checked = row.isSelected;\n }\n\n return [\n props,\n {\n onChange: (e: any, check: any) => {\n row.toggleRowSelected(check ?? e?.target?.checked);\n },\n disabled: row.isSelectionLocked,\n checked,\n indeterminate: row.isSomeSelected,\n },\n ];\n};\n\nexport const defaultGetToggleAllRowsSelectedProps = (\n props: any,\n { instance }: any,\n) => [\n props,\n {\n onChange: (e: any) => {\n instance.toggleAllRowsSelected(e.target.checked);\n },\n checked: instance.isAllRowsSelected,\n indeterminate: Boolean(\n !instance.isAllRowsSelected &&\n Object.keys(instance.state.selectedRowIds).length,\n ),\n },\n];\n\nexport const defaultGetToggleAllPageRowsSelectedProps = (\n props: any,\n { instance }: any,\n) => [\n props,\n {\n onChange(e: any) {\n instance.toggleAllPageRowsSelected(e.target.checked);\n },\n checked: instance.isAllPageRowsSelected,\n indeterminate: Boolean(\n !instance.isAllPageRowsSelected &&\n instance.page.some(({ id }: any) => instance.state.selectedRowIds[id]),\n ),\n },\n];\n\nexport function reducer(\n state: any,\n action: any,\n previousState: any,\n instance: any,\n) {\n if (action.type === actions.init) {\n return {\n selectedRowIds: {},\n lockedSelectionRowIds: {},\n ...state,\n };\n }\n\n if (action.type === actions.resetSelectedRows) {\n return {\n ...state,\n selectedRowIds: instance.initialState.selectedRowIds || {},\n };\n }\n\n if (action.type === actions.toggleAllRowsSelected) {\n const { value: setSelected } = action;\n const {\n isAllRowsSelected,\n rowsById,\n initialRowsById,\n nonGroupedRowsById = rowsById,\n applyToggleAllRowsSelectedToPrefilteredRows,\n } = instance;\n\n const rowsToSelect = applyToggleAllRowsSelectedToPrefilteredRows\n ? initialRowsById\n : nonGroupedRowsById;\n\n const selectAll =\n typeof setSelected !== \"undefined\" ? setSelected : !isAllRowsSelected;\n\n // Only remove/add the rows that are visible on the screen\n // Leave all the other rows that are selected alone.\n const selectedRowIds = { ...state.selectedRowIds };\n\n if (selectAll) {\n Object.keys(rowsToSelect).forEach((rowId) => {\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n if (!isSelectionLocked) {\n selectedRowIds[rowId] = true;\n }\n });\n } else {\n Object.keys(rowsToSelect).forEach((rowId) => {\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n if (!isSelectionLocked) {\n delete selectedRowIds[rowId];\n }\n });\n }\n\n return {\n ...state,\n selectedRowIds,\n };\n }\n\n if (action.type === actions.toggleRowSelected) {\n const { id, value: setSelected } = action;\n const isSelectionLocked = state.lockedSelectionRowIds[id];\n if (isSelectionLocked) {\n return state;\n }\n\n const { rowsById, selectSubRows = true, getSubRows } = instance;\n const isSelected = state.selectedRowIds[id];\n const shouldExist =\n typeof setSelected !== \"undefined\" ? setSelected : !isSelected;\n\n if (isSelected === shouldExist) {\n return state;\n }\n\n const newSelectedRowIds = { ...state.selectedRowIds };\n\n const handleRowById = (rowId: any) => {\n const row = rowsById[rowId];\n\n if (!row.isGrouped) {\n if (shouldExist) {\n newSelectedRowIds[rowId] = true;\n } else {\n delete newSelectedRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow: any) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n handleRowById(id);\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n };\n }\n\n if (action.type === actions.toggleAllPageRowsSelected) {\n const { value: setSelected } = action;\n const {\n page,\n rowsById,\n selectSubRows = true,\n isAllPageRowsSelected,\n getSubRows,\n } = instance;\n\n const selectAll =\n typeof setSelected !== \"undefined\" ? setSelected : !isAllPageRowsSelected;\n const newSelectedRowIds = { ...state.selectedRowIds };\n\n const handleRowById = (rowId: any) => {\n const row = rowsById[rowId];\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n\n if (!isSelectionLocked && !row.isGrouped) {\n if (selectAll) {\n newSelectedRowIds[rowId] = true;\n } else {\n delete newSelectedRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow: any) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n page.forEach((row: any) => handleRowById(row.id));\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n };\n }\n\n if (action.type === actions.resetLockedSelectionRows) {\n return {\n ...state,\n lockedSelectionRowIds: instance.initialState.lockedSelectionRowIds || {},\n };\n }\n\n if (action.type === actions.toggleRowLockedSelection) {\n const { id, value: setLockedSelection } = action;\n const { rowsById, selectSubRows = true, getSubRows } = instance;\n const isLockedSelection = state.lockedSelectionRowIds[id];\n const shouldExist =\n typeof setLockedSelection !== \"undefined\"\n ? setLockedSelection\n : !isLockedSelection;\n\n if (isLockedSelection === shouldExist) {\n return state;\n }\n\n const newLockedSelectionRowIds = { ...state.lockedSelectionRowIds };\n\n const handleRowById = (rowId: any) => {\n const row = rowsById[rowId];\n\n if (!row.isGrouped) {\n if (shouldExist) {\n newLockedSelectionRowIds[rowId] = true;\n } else {\n delete newLockedSelectionRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow: any) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n handleRowById(id);\n\n return {\n ...state,\n lockedSelectionRowIds: newLockedSelectionRowIds,\n };\n }\n\n return state;\n}\n\nfunction getRowIsSelected(row: any, selectedRowIds: any, getSubRows: any) {\n if (selectedRowIds[row.id]) {\n return true;\n }\n\n const subRows = getSubRows(row);\n\n if (subRows?.length) {\n let allChildrenSelected = true;\n let someSelected = false;\n\n subRows.forEach((subRow: any) => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n\n if (getRowIsSelected(subRow, selectedRowIds, getSubRows)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n });\n\n if (allChildrenSelected) {\n return true;\n }\n\n if (someSelected) {\n return null;\n }\n }\n\n return false;\n}\n\nexport function useInstance(instance: any) {\n const {\n data,\n rows,\n getHooks,\n plugins,\n rowsById,\n initialRowsById,\n nonGroupedRowsById = rowsById,\n autoResetSelectedRows = true,\n autoResetLockedSelectionRows = true,\n state: { selectedRowIds, lockedSelectionRowIds },\n selectSubRows = true,\n dispatch,\n page,\n getSubRows,\n applyToggleAllRowsSelectedToPrefilteredRows,\n } = instance;\n\n ensurePluginOrder(\n plugins,\n [\"useFilters\", \"useGroupBy\", \"useSortBy\", \"useExpanded\", \"usePagination\"],\n \"useHvRowSelection\",\n );\n\n const rowsToSelect = applyToggleAllRowsSelectedToPrefilteredRows\n ? initialRowsById\n : nonGroupedRowsById;\n\n const selectedFlatRows = useMemo(() => {\n const selectedRows: any[] = [];\n\n rows.forEach((row: any) => {\n const isSelected = selectSubRows\n ? getRowIsSelected(row, selectedRowIds, getSubRows)\n : !!selectedRowIds[row.id];\n row.isSelected = !!isSelected;\n row.isSomeSelected = isSelected === null;\n\n if (isSelected) {\n selectedRows.push(row);\n }\n });\n\n return selectedRows;\n }, [rows, selectSubRows, selectedRowIds, getSubRows]);\n\n const existsLockedRows = !!Object.keys(lockedSelectionRowIds).length;\n\n const isNoRowsSelected = !(\n Object.keys(rowsToSelect).length && selectedFlatRows.length\n );\n\n let isNoPageRowsSelected;\n let isAllRowsSelected;\n let isAllPageRowsSelected;\n\n let isAllSelectableRowsUnselected;\n let isAllSelectablePageRowsUnselected;\n let isAllSelectableRowsSelected;\n let isAllSelectablePageRowsSelected;\n\n if (isNoRowsSelected) {\n isAllRowsSelected = false;\n isAllPageRowsSelected = false;\n\n isAllSelectableRowsSelected =\n existsLockedRows &&\n !Object.keys(rowsToSelect).some((id) => !lockedSelectionRowIds[id]);\n isAllSelectablePageRowsSelected = isAllSelectableRowsSelected;\n\n isAllSelectableRowsUnselected = isAllSelectableRowsSelected;\n isAllSelectablePageRowsUnselected = isAllSelectableRowsSelected;\n\n isNoPageRowsSelected = true;\n } else {\n isAllRowsSelected = !Object.keys(rowsToSelect).some(\n (id) => !selectedRowIds[id],\n );\n\n if (isAllRowsSelected) {\n isAllSelectableRowsSelected = true;\n isAllSelectablePageRowsSelected = true;\n\n isAllSelectableRowsUnselected =\n existsLockedRows &&\n Object.keys(rowsToSelect).filter((id) => !lockedSelectionRowIds[id])\n .length === 0;\n isAllSelectablePageRowsUnselected = isAllSelectableRowsUnselected;\n\n isNoPageRowsSelected = false;\n isAllPageRowsSelected = true;\n } else {\n isAllSelectableRowsSelected =\n existsLockedRows &&\n !Object.keys(rowsToSelect)\n .filter((id) => !lockedSelectionRowIds[id])\n .some((id) => !selectedRowIds[id]);\n\n isAllSelectableRowsUnselected =\n !existsLockedRows ||\n !Object.keys(rowsToSelect)\n .filter((id) => !lockedSelectionRowIds[id])\n .some((id) => selectedRowIds[id]);\n\n isAllPageRowsSelected = !(\n page?.length && page.some(({ id }: any) => !selectedRowIds[id])\n );\n\n if (isAllPageRowsSelected) {\n isAllSelectablePageRowsSelected = true;\n\n isAllSelectablePageRowsUnselected =\n existsLockedRows &&\n page &&\n page.length &&\n page.filter(({ id }: any) => !lockedSelectionRowIds[id]).length === 0;\n\n isNoPageRowsSelected = false;\n } else {\n isAllSelectablePageRowsSelected =\n existsLockedRows &&\n !(\n page?.length &&\n page\n .filter(({ id }: any) => !lockedSelectionRowIds[id])\n .some(({ id }: any) => !selectedRowIds[id])\n );\n\n isAllSelectablePageRowsUnselected =\n !existsLockedRows ||\n !(\n page?.length &&\n page\n .filter(({ id }: any) => !lockedSelectionRowIds[id])\n .some(({ id }: any) => selectedRowIds[id])\n );\n\n isNoPageRowsSelected = !(\n page?.length && page.some(({ id }: any) => selectedRowIds[id])\n );\n }\n }\n }\n\n const getAutoResetSelectedRows = useGetLatest(autoResetSelectedRows);\n\n const getAutoResetLockedSelectionRows = useGetLatest(\n autoResetLockedSelectionRows,\n );\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSelectedRows()) {\n dispatch({ type: actions.resetSelectedRows });\n }\n if (getAutoResetLockedSelectionRows()) {\n dispatch({ type: actions.resetLockedSelectionRows });\n }\n }, [dispatch, data]);\n\n const toggleAllRowsSelected = useCallback(\n (value: any) => dispatch({ type: actions.toggleAllRowsSelected, value }),\n [dispatch],\n );\n\n const toggleAllPageRowsSelected = useCallback(\n (value: any) =>\n dispatch({ type: actions.toggleAllPageRowsSelected, value }),\n [dispatch],\n );\n\n const toggleRowSelected = useCallback(\n (id: any, value: any) =>\n dispatch({ type: actions.toggleRowSelected, id, value }),\n [dispatch],\n );\n\n const getInstance = useGetLatest(instance);\n\n const getToggleAllRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllRowsSelectedProps,\n {\n instance: getInstance(),\n },\n );\n\n const getToggleAllPageRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllPageRowsSelectedProps,\n { instance: getInstance() },\n );\n\n const toggleRowLockedSelection = useCallback(\n (id: any, value: any) =>\n dispatch({ type: actions.toggleRowLockedSelection, id, value }),\n [dispatch],\n );\n\n Object.assign(instance, {\n selectedFlatRows,\n isNoRowsSelected,\n isNoPageRowsSelected,\n isAllRowsSelected,\n isAllPageRowsSelected,\n isAllSelectableRowsSelected,\n isAllSelectablePageRowsSelected,\n isAllSelectableRowsUnselected,\n isAllSelectablePageRowsUnselected,\n toggleRowSelected,\n toggleAllRowsSelected,\n getToggleAllRowsSelectedProps,\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n toggleRowLockedSelection,\n });\n}\n\nexport function prepareRow(row: any, { instance }: any) {\n row.toggleRowSelected = (set: any) => instance.toggleRowSelected(row.id, set);\n row.getToggleRowSelectedProps = makePropGetter(\n instance.getHooks().getToggleRowSelectedProps,\n {\n instance,\n row,\n },\n );\n\n row.toggleRowLockedSelection = (set: any) =>\n instance.toggleRowLockedSelection(row.id, set);\n row.isSelectionLocked =\n instance.state?.lockedSelectionRowIds?.[row.id] || false;\n}\n\nconst useRowSelection: UseRowSelectionProps = (hooks) => {\n hooks.visibleColumns.push(visibleColumnsHook);\n\n hooks.getRowProps.push(getRowPropsHook);\n\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n\n hooks.getToggleRowSelectedProps = [defaultGetToggleRowSelectedProps];\n hooks.getToggleAllRowsSelectedProps = [defaultGetToggleAllRowsSelectedProps];\n hooks.getToggleAllPageRowsSelectedProps = [\n defaultGetToggleAllPageRowsSelectedProps,\n ];\n\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow);\n};\n\nuseRowSelection.pluginName = \"useHvRowSelection\";\n\nexport default useRowSelection;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useRowSelection.js","sources":["../../../../src/Table/hooks/useRowSelection.tsx"],"sourcesContent":["import { useCallback, useMemo } from \"react\";\nimport {\n actions,\n ensurePluginOrder,\n Hooks,\n IdType,\n makePropGetter,\n PropGetter,\n Row,\n useGetLatest,\n useMountedLayoutEffect,\n} from \"react-table\";\n\nimport { HvCheckBox } from \"../../CheckBox\";\nimport { useLabels } from \"../../hooks/useLabels\";\n\n// #region ##### TYPES #####\n\n// getRowProps:\nexport interface UseHvRowSelectionTableRowProps {\n selected?: boolean;\n}\n\n// getRowProps:\nexport interface UseHvRowSelectionTableColumnProps {\n \"aria-hidden\"?: boolean;\n}\n\nexport interface UseHvRowSelectionRowCheckboxProps {\n onChange?: (e: React.ChangeEvent, checked?: boolean) => void;\n checked?: boolean;\n disabled?: boolean;\n indeterminate?: boolean;\n}\n\nexport interface UseHvRowSelectionBulkCheckboxProps {\n onChange?: (e: React.ChangeEvent, checked?: boolean) => void;\n checked?: boolean;\n indeterminate?: boolean;\n}\n\nexport type UseHvRowSelectionTableOptions = Partial<{\n autoResetSelectedRows: boolean;\n autoResetLockedSelectionRows: boolean;\n selectSubRows: boolean;\n manualRowSelectedKey: string;\n applyToggleAllRowsSelectedToPrefilteredRows: boolean;\n}>;\n\nexport interface UseHvRowSelectionHooks<D extends object> {\n getToggleRowSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionRowCheckboxProps>\n >;\n getToggleAllRowsSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionBulkCheckboxProps>\n >;\n getToggleAllPageRowsSelectedProps: Array<\n PropGetter<D, UseHvRowSelectionBulkCheckboxProps>\n >;\n}\n\nexport interface UseHvRowSelectionState<D extends object> {\n selectedRowIds: Record<IdType<D>, boolean>;\n lockedSelectionRowIds: Record<IdType<D>, boolean>;\n}\n\nexport interface UseHvRowSelectionTableInstance<D extends object> {\n toggleRowSelected: (rowId: IdType<D>, set?: boolean) => void;\n toggleAllRowsSelected: (value?: boolean) => void;\n toggleAllPageRowsSelected: (value?: boolean) => void;\n getToggleAllRowsSelectedProps: (\n props?: Partial<UseHvRowSelectionBulkCheckboxProps>,\n ) => UseHvRowSelectionBulkCheckboxProps;\n getToggleAllPageRowsSelectedProps: (\n props?: Partial<UseHvRowSelectionBulkCheckboxProps>,\n ) => UseHvRowSelectionBulkCheckboxProps;\n\n isNoRowsSelected: boolean;\n isNoPageRowsSelected: boolean;\n isAllRowsSelected: boolean;\n isAllPageRowsSelected: boolean;\n isAllSelectableRowsSelected: boolean;\n isAllSelectablePageRowsSelected: boolean;\n isAllSelectableRowsUnselected: boolean;\n isAllSelectablePageRowsUnselected: boolean;\n\n selectedFlatRows: Array<Row<D>>;\n}\n\nexport interface UseHvRowSelectionRowInstance {\n isSelected: boolean;\n isSomeSelected: boolean;\n isSelectionLocked: boolean;\n toggleRowLockedSelection: (set?: boolean) => void;\n toggleRowSelected: (set?: boolean) => void;\n getToggleRowSelectedProps: (\n props?: Partial<UseHvRowSelectionRowCheckboxProps>,\n ) => UseHvRowSelectionRowCheckboxProps;\n}\n\nexport type UseRowSelectionProps = (<\n D extends object = Record<string, unknown>,\n>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// Actions\nactions.resetSelectedRows = \"resetSelectedRows\";\nactions.toggleAllRowsSelected = \"toggleAllRowsSelected\";\nactions.toggleRowSelected = \"toggleRowSelected\";\nactions.toggleAllPageRowsSelected = \"toggleAllPageRowsSelected\";\n\nactions.resetLockedSelectionRows = \"resetLockedSelectionRows\";\nactions.toggleRowLockedSelection = \"toggleRowLockedSelection\";\n\nconst DEFAULT_LABELS = {\n selectRowCheckBoxAriaLabel: \"Select this row\",\n};\n\nconst hideHeaderVariants = [\"checkbox\", \"actions\"];\n\nexport const CellWithCheckBox = ({ row, labels: labelsProp }: any) => {\n const labels = useLabels(DEFAULT_LABELS, labelsProp);\n\n const { onChange, checked, disabled, indeterminate } =\n row.getToggleRowSelectedProps();\n\n return (\n <HvCheckBox\n onChange={onChange}\n checked={checked}\n disabled={disabled}\n indeterminate={indeterminate}\n aria-label={labels.selectRowCheckBoxAriaLabel}\n />\n );\n};\n\nconst visibleColumnsHook = (columns: any) => {\n const selectionColumn = {\n id: \"_hv_selection\",\n variant: \"checkbox\",\n\n width: 32,\n\n // this will only work when using useHvTableSticky\n // but ensures it stays left of any sticky column\n sticky: \"left\",\n\n Cell: CellWithCheckBox,\n };\n\n return [selectionColumn, ...columns];\n};\n\nconst getHeaderPropsHook = (props: any, { column }: any) => {\n const nextProps: UseHvRowSelectionTableColumnProps = {};\n\n if (hideHeaderVariants.includes(column.variant)) {\n nextProps[\"aria-hidden\"] = true;\n }\n return [props, nextProps];\n};\n\nconst getRowPropsHook = (props: any, { row }: any) => {\n const nextProps: UseHvRowSelectionTableRowProps = {\n selected: row.isSelected,\n };\n\n return [props, nextProps];\n};\n\nexport const defaultGetToggleRowSelectedProps = (props: any, meta: any) => {\n const { instance, row } = meta;\n const { manualRowSelectedKey = \"isSelected\" } = instance;\n let checked = false;\n\n if (row.original?.[manualRowSelectedKey]) {\n checked = true;\n } else {\n checked = row.isSelected;\n }\n\n return [\n props,\n {\n onChange: (e: any, check: any) => {\n row.toggleRowSelected(check ?? e?.target?.checked);\n },\n disabled: row.isSelectionLocked,\n checked,\n indeterminate: row.isSomeSelected,\n },\n ];\n};\n\nexport const defaultGetToggleAllRowsSelectedProps = (\n props: any,\n { instance }: any,\n) => [\n props,\n {\n onChange: (e: any) => {\n instance.toggleAllRowsSelected(e.target.checked);\n },\n checked: instance.isAllRowsSelected,\n indeterminate: Boolean(\n !instance.isAllRowsSelected &&\n Object.keys(instance.state.selectedRowIds).length,\n ),\n },\n];\n\nexport const defaultGetToggleAllPageRowsSelectedProps = (\n props: any,\n { instance }: any,\n) => [\n props,\n {\n onChange(e: any) {\n instance.toggleAllPageRowsSelected(e.target.checked);\n },\n checked: instance.isAllPageRowsSelected,\n indeterminate: Boolean(\n !instance.isAllPageRowsSelected &&\n instance.page.some(({ id }: any) => instance.state.selectedRowIds[id]),\n ),\n },\n];\n\nexport function reducer(\n state: any,\n action: any,\n previousState: any,\n instance: any,\n) {\n if (action.type === actions.init) {\n return {\n selectedRowIds: {},\n lockedSelectionRowIds: {},\n ...state,\n };\n }\n\n if (action.type === actions.resetSelectedRows) {\n return {\n ...state,\n selectedRowIds: instance.initialState.selectedRowIds || {},\n };\n }\n\n if (action.type === actions.toggleAllRowsSelected) {\n const { value: setSelected } = action;\n const {\n isAllRowsSelected,\n rowsById,\n initialRowsById,\n nonGroupedRowsById = rowsById,\n applyToggleAllRowsSelectedToPrefilteredRows,\n } = instance;\n\n const rowsToSelect = applyToggleAllRowsSelectedToPrefilteredRows\n ? initialRowsById\n : nonGroupedRowsById;\n\n const selectAll =\n typeof setSelected !== \"undefined\" ? setSelected : !isAllRowsSelected;\n\n // Only remove/add the rows that are visible on the screen\n // Leave all the other rows that are selected alone.\n const selectedRowIds = { ...state.selectedRowIds };\n\n if (selectAll) {\n Object.keys(rowsToSelect).forEach((rowId) => {\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n if (!isSelectionLocked) {\n selectedRowIds[rowId] = true;\n }\n });\n } else {\n Object.keys(rowsToSelect).forEach((rowId) => {\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n if (!isSelectionLocked) {\n delete selectedRowIds[rowId];\n }\n });\n }\n\n return {\n ...state,\n selectedRowIds,\n };\n }\n\n if (action.type === actions.toggleRowSelected) {\n const { id, value: setSelected } = action;\n const isSelectionLocked = state.lockedSelectionRowIds[id];\n if (isSelectionLocked) {\n return state;\n }\n\n const { rowsById, selectSubRows = true, getSubRows } = instance;\n const isSelected = state.selectedRowIds[id];\n const shouldExist =\n typeof setSelected !== \"undefined\" ? setSelected : !isSelected;\n\n if (isSelected === shouldExist) {\n return state;\n }\n\n const newSelectedRowIds = { ...state.selectedRowIds };\n\n const handleRowById = (rowId: any) => {\n const row = rowsById[rowId];\n\n if (!row.isGrouped) {\n if (shouldExist) {\n newSelectedRowIds[rowId] = true;\n } else {\n delete newSelectedRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow: any) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n handleRowById(id);\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n };\n }\n\n if (action.type === actions.toggleAllPageRowsSelected) {\n const { value: setSelected } = action;\n const {\n page,\n rowsById,\n selectSubRows = true,\n isAllPageRowsSelected,\n getSubRows,\n } = instance;\n\n const selectAll =\n typeof setSelected !== \"undefined\" ? setSelected : !isAllPageRowsSelected;\n const newSelectedRowIds = { ...state.selectedRowIds };\n\n const handleRowById = (rowId: any) => {\n const row = rowsById[rowId];\n const isSelectionLocked = state.lockedSelectionRowIds[rowId];\n\n if (!isSelectionLocked && !row.isGrouped) {\n if (selectAll) {\n newSelectedRowIds[rowId] = true;\n } else {\n delete newSelectedRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow: any) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n page.forEach((row: any) => handleRowById(row.id));\n\n return {\n ...state,\n selectedRowIds: newSelectedRowIds,\n };\n }\n\n if (action.type === actions.resetLockedSelectionRows) {\n return {\n ...state,\n lockedSelectionRowIds: instance.initialState.lockedSelectionRowIds || {},\n };\n }\n\n if (action.type === actions.toggleRowLockedSelection) {\n const { id, value: setLockedSelection } = action;\n const { rowsById, selectSubRows = true, getSubRows } = instance;\n const isLockedSelection = state.lockedSelectionRowIds[id];\n const shouldExist =\n typeof setLockedSelection !== \"undefined\"\n ? setLockedSelection\n : !isLockedSelection;\n\n if (isLockedSelection === shouldExist) {\n return state;\n }\n\n const newLockedSelectionRowIds = { ...state.lockedSelectionRowIds };\n\n const handleRowById = (rowId: any) => {\n const row = rowsById[rowId];\n\n if (!row.isGrouped) {\n if (shouldExist) {\n newLockedSelectionRowIds[rowId] = true;\n } else {\n delete newLockedSelectionRowIds[rowId];\n }\n }\n\n if (selectSubRows && getSubRows(row)) {\n getSubRows(row).forEach((subrow: any) => {\n handleRowById(subrow.id);\n });\n }\n };\n\n handleRowById(id);\n\n return {\n ...state,\n lockedSelectionRowIds: newLockedSelectionRowIds,\n };\n }\n\n return state;\n}\n\nfunction getRowIsSelected(row: any, selectedRowIds: any, getSubRows: any) {\n if (selectedRowIds[row.id]) {\n return true;\n }\n\n const subRows = getSubRows(row);\n\n if (subRows?.length) {\n let allChildrenSelected = true;\n let someSelected = false;\n\n subRows.forEach((subRow: any) => {\n // Bail out early if we know both of these\n if (someSelected && !allChildrenSelected) {\n return;\n }\n\n if (getRowIsSelected(subRow, selectedRowIds, getSubRows)) {\n someSelected = true;\n } else {\n allChildrenSelected = false;\n }\n });\n\n if (allChildrenSelected) {\n return true;\n }\n\n if (someSelected) {\n return null;\n }\n }\n\n return false;\n}\n\nexport function useInstance(instance: any) {\n const {\n data,\n rows,\n getHooks,\n plugins,\n rowsById,\n initialRowsById,\n nonGroupedRowsById = rowsById,\n autoResetSelectedRows = true,\n autoResetLockedSelectionRows = true,\n state: { selectedRowIds, lockedSelectionRowIds },\n selectSubRows = true,\n dispatch,\n page,\n getSubRows,\n applyToggleAllRowsSelectedToPrefilteredRows,\n } = instance;\n\n ensurePluginOrder(\n plugins,\n [\"useFilters\", \"useGroupBy\", \"useSortBy\", \"useExpanded\", \"usePagination\"],\n \"useHvRowSelection\",\n );\n\n const rowsToSelect = applyToggleAllRowsSelectedToPrefilteredRows\n ? initialRowsById\n : nonGroupedRowsById;\n\n const selectedFlatRows = useMemo(() => {\n const selectedRows: any[] = [];\n\n rows.forEach((row: any) => {\n const isSelected = selectSubRows\n ? getRowIsSelected(row, selectedRowIds, getSubRows)\n : !!selectedRowIds[row.id];\n row.isSelected = !!isSelected;\n row.isSomeSelected = isSelected === null;\n\n if (isSelected) {\n selectedRows.push(row);\n }\n });\n\n return selectedRows;\n }, [rows, selectSubRows, selectedRowIds, getSubRows]);\n\n const existsLockedRows = !!Object.keys(lockedSelectionRowIds).length;\n\n const isNoRowsSelected = !(\n Object.keys(rowsToSelect).length && selectedFlatRows.length\n );\n\n let isNoPageRowsSelected;\n let isAllRowsSelected;\n let isAllPageRowsSelected;\n\n let isAllSelectableRowsUnselected;\n let isAllSelectablePageRowsUnselected;\n let isAllSelectableRowsSelected;\n let isAllSelectablePageRowsSelected;\n\n if (isNoRowsSelected) {\n isAllRowsSelected = false;\n isAllPageRowsSelected = false;\n\n isAllSelectableRowsSelected =\n existsLockedRows &&\n !Object.keys(rowsToSelect).some((id) => !lockedSelectionRowIds[id]);\n isAllSelectablePageRowsSelected = isAllSelectableRowsSelected;\n\n isAllSelectableRowsUnselected = isAllSelectableRowsSelected;\n isAllSelectablePageRowsUnselected = isAllSelectableRowsSelected;\n\n isNoPageRowsSelected = true;\n } else {\n isAllRowsSelected = !Object.keys(rowsToSelect).some(\n (id) => !selectedRowIds[id],\n );\n\n if (isAllRowsSelected) {\n isAllSelectableRowsSelected = true;\n isAllSelectablePageRowsSelected = true;\n\n isAllSelectableRowsUnselected =\n existsLockedRows &&\n Object.keys(rowsToSelect).filter((id) => !lockedSelectionRowIds[id])\n .length === 0;\n isAllSelectablePageRowsUnselected = isAllSelectableRowsUnselected;\n\n isNoPageRowsSelected = false;\n isAllPageRowsSelected = true;\n } else {\n isAllSelectableRowsSelected =\n existsLockedRows &&\n !Object.keys(rowsToSelect)\n .filter((id) => !lockedSelectionRowIds[id])\n .some((id) => !selectedRowIds[id]);\n\n isAllSelectableRowsUnselected =\n !existsLockedRows ||\n !Object.keys(rowsToSelect)\n .filter((id) => !lockedSelectionRowIds[id])\n .some((id) => selectedRowIds[id]);\n\n isAllPageRowsSelected = !(\n page?.length && page.some(({ id }: any) => !selectedRowIds[id])\n );\n\n if (isAllPageRowsSelected) {\n isAllSelectablePageRowsSelected = true;\n\n isAllSelectablePageRowsUnselected =\n existsLockedRows &&\n page &&\n page.length &&\n page.filter(({ id }: any) => !lockedSelectionRowIds[id]).length === 0;\n\n isNoPageRowsSelected = false;\n } else {\n isAllSelectablePageRowsSelected =\n existsLockedRows &&\n !(\n page?.length &&\n page\n .filter(({ id }: any) => !lockedSelectionRowIds[id])\n .some(({ id }: any) => !selectedRowIds[id])\n );\n\n isAllSelectablePageRowsUnselected =\n !existsLockedRows ||\n !(\n page?.length &&\n page\n .filter(({ id }: any) => !lockedSelectionRowIds[id])\n .some(({ id }: any) => selectedRowIds[id])\n );\n\n isNoPageRowsSelected = !(\n page?.length && page.some(({ id }: any) => selectedRowIds[id])\n );\n }\n }\n }\n\n const getAutoResetSelectedRows = useGetLatest(autoResetSelectedRows);\n\n const getAutoResetLockedSelectionRows = useGetLatest(\n autoResetLockedSelectionRows,\n );\n\n useMountedLayoutEffect(() => {\n if (getAutoResetSelectedRows()) {\n dispatch({ type: actions.resetSelectedRows });\n }\n if (getAutoResetLockedSelectionRows()) {\n dispatch({ type: actions.resetLockedSelectionRows });\n }\n }, [dispatch, data]);\n\n const toggleAllRowsSelected = useCallback(\n (value: any) => dispatch({ type: actions.toggleAllRowsSelected, value }),\n [dispatch],\n );\n\n const toggleAllPageRowsSelected = useCallback(\n (value: any) =>\n dispatch({ type: actions.toggleAllPageRowsSelected, value }),\n [dispatch],\n );\n\n const toggleRowSelected = useCallback(\n (id: any, value: any) =>\n dispatch({ type: actions.toggleRowSelected, id, value }),\n [dispatch],\n );\n\n const getInstance = useGetLatest(instance);\n\n const getToggleAllRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllRowsSelectedProps,\n {\n instance: getInstance(),\n },\n );\n\n const getToggleAllPageRowsSelectedProps = makePropGetter(\n getHooks().getToggleAllPageRowsSelectedProps,\n { instance: getInstance() },\n );\n\n const toggleRowLockedSelection = useCallback(\n (id: any, value: any) =>\n dispatch({ type: actions.toggleRowLockedSelection, id, value }),\n [dispatch],\n );\n\n Object.assign(instance, {\n selectedFlatRows,\n isNoRowsSelected,\n isNoPageRowsSelected,\n isAllRowsSelected,\n isAllPageRowsSelected,\n isAllSelectableRowsSelected,\n isAllSelectablePageRowsSelected,\n isAllSelectableRowsUnselected,\n isAllSelectablePageRowsUnselected,\n toggleRowSelected,\n toggleAllRowsSelected,\n getToggleAllRowsSelectedProps,\n getToggleAllPageRowsSelectedProps,\n toggleAllPageRowsSelected,\n toggleRowLockedSelection,\n });\n}\n\nexport function prepareRow(row: any, { instance }: any) {\n row.toggleRowSelected = (set: any) => instance.toggleRowSelected(row.id, set);\n row.getToggleRowSelectedProps = makePropGetter(\n instance.getHooks().getToggleRowSelectedProps,\n {\n instance,\n row,\n },\n );\n\n row.toggleRowLockedSelection = (set: any) =>\n instance.toggleRowLockedSelection(row.id, set);\n row.isSelectionLocked =\n instance.state?.lockedSelectionRowIds?.[row.id] || false;\n}\n\nconst useRowSelection: UseRowSelectionProps = (hooks) => {\n hooks.visibleColumns.push(visibleColumnsHook);\n\n hooks.getRowProps.push(getRowPropsHook);\n\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n\n hooks.getToggleRowSelectedProps = [defaultGetToggleRowSelectedProps];\n hooks.getToggleAllRowsSelectedProps = [defaultGetToggleAllRowsSelectedProps];\n hooks.getToggleAllPageRowsSelectedProps = [\n defaultGetToggleAllPageRowsSelectedProps,\n ];\n\n hooks.stateReducers.push(reducer);\n hooks.useInstance.push(useInstance);\n hooks.prepareRow.push(prepareRow);\n};\n\nuseRowSelection.pluginName = \"useHvRowSelection\";\n\nexport default useRowSelection;\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useRowState.js","sources":["../../../../src/Table/hooks/useRowState.ts"],"sourcesContent":["import { Hooks, useRowState } from \"react-table\";\n\n// #region ##### TYPES #####\n\nexport type UseRowStateProps = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\nconst useHvRowState = useRowState.bind({});\n(useHvRowState.pluginName as string) = \"useHvRowState\";\n\nexport default useHvRowState;\n"],"names":[],"mappings":";AAUA,MAAM,gBAAgB,YAAY,KAAK,EAAE;AACxC,cAAc,aAAwB;"}
1
+ {"version":3,"file":"useRowState.js","sources":["../../../../src/Table/hooks/useRowState.ts"],"sourcesContent":["import { Hooks, useRowState } from \"react-table\";\n\n// #region ##### TYPES #####\n\nexport type UseRowStateProps = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\nconst useHvRowState = useRowState.bind({});\n(useHvRowState.pluginName as string) = \"useHvRowState\";\n\nexport default useHvRowState;\n"],"names":[],"mappings":";AAUA,MAAM,gBAAgB,YAAY,KAAK,CAAE,CAAA;AACxC,cAAc,aAAwB;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSortBy.js","sources":["../../../../src/Table/hooks/useSortBy.ts"],"sourcesContent":["import { ensurePluginOrder, Hooks } from \"react-table\";\n\n// #region ##### TYPES #####\n\n// getHeaderProps:\nexport interface UseHvSortByColumnProps {\n sortable?: boolean;\n sorted?: boolean;\n sortDirection?: \"descending\" | \"ascending\";\n onClick?: (e: React.MouseEvent<HTMLTableCellElement>) => void;\n}\n\n// getCellProps:\nexport interface UseHvSortByTableCellProps {\n sorted?: boolean;\n}\n\nexport type UseHvSortByProps = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// props target: <table><thead><tr><th>\nconst getHeaderPropsHook = (props: any, { instance, column }: any) => {\n const { isMultiSortEvent = (e: any) => e.shiftKey } = instance;\n\n const sortDirection = column.isSortedDesc ? \"descending\" : \"ascending\";\n\n const nextProps: UseHvSortByColumnProps = {\n sortable: column.canSort,\n sorted: column.isSorted,\n sortDirection: column.isSorted ? sortDirection : undefined,\n\n onClick: column.canSort\n ? (e) => {\n e.persist();\n column.toggleSortBy(\n undefined,\n !instance.disableMultiSort && isMultiSortEvent(e),\n );\n }\n : undefined,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props: any, { cell }: any) => {\n const nextProps: UseHvSortByTableCellProps = {\n sorted: cell.column.isSorted,\n };\n\n return [props, nextProps];\n};\n\nconst useInstanceHook = (instance: any) => {\n ensurePluginOrder(instance.plugins, [\"useSortBy\"], \"useHvSortBy\");\n};\n\nconst useSortBy: UseHvSortByProps = (hooks) => {\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n\n hooks.useInstance.push(useInstanceHook);\n};\n\nuseSortBy.pluginName = \"useHvSortBy\";\n\nexport default useSortBy;\n"],"names":[],"mappings":";AAwBA,MAAM,qBAAqB,CAAC,OAAY,EAAE,UAAU,aAAkB;AACpE,QAAM,EAAE,mBAAmB,CAAC,MAAW,EAAE,SAAa,IAAA;AAEhD,QAAA,gBAAgB,OAAO,eAAe,eAAe;AAE3D,QAAM,YAAoC;AAAA,IACxC,UAAU,OAAO;AAAA,IACjB,QAAQ,OAAO;AAAA,IACf,eAAe,OAAO,WAAW,gBAAgB;AAAA,IAEjD,SAAS,OAAO,UACZ,CAAC,MAAM;AACL,QAAE,QAAQ;AACH,aAAA;AAAA,QACL;AAAA,QACA,CAAC,SAAS,oBAAoB,iBAAiB,CAAC;AAAA,MAAA;AAAA,IAGpD,IAAA;AAAA,EAAA;AAGC,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGA,MAAM,mBAAmB,CAAC,OAAY,EAAE,WAAgB;AACtD,QAAM,YAAuC;AAAA,IAC3C,QAAQ,KAAK,OAAO;AAAA,EAAA;AAGf,SAAA,CAAC,OAAO,SAAS;AAC1B;AAEA,MAAM,kBAAkB,CAAC,aAAkB;AACzC,oBAAkB,SAAS,SAAS,CAAC,WAAW,GAAG,aAAa;AAClE;AAEM,MAAA,YAA8B,CAAC,UAAU;AAEvC,QAAA,eAAe,KAAK,kBAAkB;AAEtC,QAAA,aAAa,KAAK,gBAAgB;AAElC,QAAA,YAAY,KAAK,eAAe;AACxC;AAEA,UAAU,aAAa;"}
1
+ {"version":3,"file":"useSortBy.js","sources":["../../../../src/Table/hooks/useSortBy.ts"],"sourcesContent":["import { ensurePluginOrder, Hooks } from \"react-table\";\n\n// #region ##### TYPES #####\n\n// getHeaderProps:\nexport interface UseHvSortByColumnProps {\n sortable?: boolean;\n sorted?: boolean;\n sortDirection?: \"descending\" | \"ascending\";\n onClick?: (e: React.MouseEvent<HTMLTableCellElement>) => void;\n}\n\n// getCellProps:\nexport interface UseHvSortByTableCellProps {\n sorted?: boolean;\n}\n\nexport type UseHvSortByProps = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// props target: <table><thead><tr><th>\nconst getHeaderPropsHook = (props: any, { instance, column }: any) => {\n const { isMultiSortEvent = (e: any) => e.shiftKey } = instance;\n\n const sortDirection = column.isSortedDesc ? \"descending\" : \"ascending\";\n\n const nextProps: UseHvSortByColumnProps = {\n sortable: column.canSort,\n sorted: column.isSorted,\n sortDirection: column.isSorted ? sortDirection : undefined,\n\n onClick: column.canSort\n ? (e) => {\n e.persist();\n column.toggleSortBy(\n undefined,\n !instance.disableMultiSort && isMultiSortEvent(e),\n );\n }\n : undefined,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props: any, { cell }: any) => {\n const nextProps: UseHvSortByTableCellProps = {\n sorted: cell.column.isSorted,\n };\n\n return [props, nextProps];\n};\n\nconst useInstanceHook = (instance: any) => {\n ensurePluginOrder(instance.plugins, [\"useSortBy\"], \"useHvSortBy\");\n};\n\nconst useSortBy: UseHvSortByProps = (hooks) => {\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n\n hooks.useInstance.push(useInstanceHook);\n};\n\nuseSortBy.pluginName = \"useHvSortBy\";\n\nexport default useSortBy;\n"],"names":[],"mappings":";AAwBA,MAAM,qBAAqB,CAAC,OAAY,EAAE,UAAU,aAAkB;AACpE,QAAM,EAAE,mBAAmB,CAAC,MAAW,EAAE,SAAa,IAAA;AAEhD,QAAA,gBAAgB,OAAO,eAAe,eAAe;AAE3D,QAAM,YAAoC;AAAA,IACxC,UAAU,OAAO;AAAA,IACjB,QAAQ,OAAO;AAAA,IACf,eAAe,OAAO,WAAW,gBAAgB;AAAA,IAEjD,SAAS,OAAO,UACZ,CAAC,MAAM;AACL,QAAE,QAAQ;AACH,aAAA;AAAA,QACL;AAAA,QACA,CAAC,SAAS,oBAAoB,iBAAiB,CAAC;AAAA,MAClD;AAAA,IAAA,IAEF;AAAA,EACN;AAEO,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGA,MAAM,mBAAmB,CAAC,OAAY,EAAE,WAAgB;AACtD,QAAM,YAAuC;AAAA,IAC3C,QAAQ,KAAK,OAAO;AAAA,EACtB;AAEO,SAAA,CAAC,OAAO,SAAS;AAC1B;AAEA,MAAM,kBAAkB,CAAC,aAAkB;AACzC,oBAAkB,SAAS,SAAS,CAAC,WAAW,GAAG,aAAa;AAClE;AAEM,MAAA,YAA8B,CAAC,UAAU;AAEvC,QAAA,eAAe,KAAK,kBAAkB;AAEtC,QAAA,aAAa,KAAK,gBAAgB;AAElC,QAAA,YAAY,KAAK,eAAe;AACxC;AAEA,UAAU,aAAa;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useSticky.js","sources":["../../../../src/Table/hooks/useSticky.ts"],"sourcesContent":["import {\n Hooks,\n makePropGetter,\n PropGetter,\n TableCommonProps,\n useGetLatest,\n} from \"react-table\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\n// #region ##### TYPES #####\n\nexport interface UseHvTableStickyTableHeadProps extends TableCommonProps {\n stickyHeader?: boolean;\n}\n\nexport type HvTableHeadPropGetter<D extends object> = PropGetter<\n D,\n UseHvTableStickyTableHeadProps\n>;\n\nexport type UseHvTableStickyTableOptions = {\n stickyHeader?: boolean;\n stickyColumns?: boolean;\n};\n\nexport interface UseHvTableStickyHooks<D extends object> {\n getTableHeadProps: Array<HvTableHeadPropGetter<D>>;\n}\n\nexport interface UseHvTableStickyTableInstance<D extends object> {\n getTableHeadProps: (\n propGetter?: HvTableHeadPropGetter<D>,\n ) => UseHvTableStickyTableHeadProps;\n\n totalRight?: number;\n hasStickyColumns?: boolean;\n}\n\n// props target: <table>\nexport interface UseHvTableStickyTableProps {\n stickyHeader?: boolean;\n stickyColumns?: boolean;\n}\n\n// props target: <table><thead><tr><th>\nexport interface UseHvTableStickyColumnProps {\n stickyColumn?: boolean;\n stickyColumnMostLeft?: boolean;\n stickyColumnLeastRight?: boolean;\n}\n\n// props target: <table><tbody><tr><td>\nexport interface UseHvTableStickyCellProps {\n stickyColumn?: boolean;\n stickyColumnMostLeft?: boolean;\n stickyColumnLeastRight?: boolean;\n}\n\nexport type UseHvTableSticky = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\nconst isSticky = (value: any) => /left|right/i.test(value);\n\nconst getStickyValue = ({ sticky, parent }: any) => {\n if (isSticky(sticky)) {\n return sticky;\n }\n\n if (parent != null) {\n // check if parent is sticky\n sticky = getStickyValue(parent);\n if (isSticky(sticky)) {\n return sticky;\n }\n\n const { columns } = parent;\n // check if any column in the same group is sticky\n if (columns?.length > 0) {\n sticky = columns?.find((col: any) => col.sticky != null)?.sticky;\n if (isSticky(sticky)) {\n return sticky;\n }\n }\n }\n\n return undefined;\n};\n\nconst updateColumnAndParent = (column: any, props: any) => {\n Object.assign(column, props);\n\n if (column.parent != null) {\n updateColumnAndParent(column.parent, props);\n }\n};\n\nconst visibleColumnsHook = (columns: any, { instance }: any) => {\n const toTheLeft: any[] = [];\n const toTheRight: any[] = [];\n const others: any[] = [];\n\n columns.forEach((column: any) => {\n const sticky = getStickyValue(column)?.toLowerCase();\n\n updateColumnAndParent(column, { sticky });\n\n if (sticky === \"left\") {\n toTheLeft.push(column);\n } else if (sticky === \"right\") {\n toTheRight.push(column);\n } else {\n others.push(column);\n }\n });\n\n if (others.length > 0) {\n const [firstNotSticky] = others;\n updateColumnAndParent(firstNotSticky, { isFirstNotSticky: true });\n\n const lastNotSticky = others[others.length - 1];\n updateColumnAndParent(lastNotSticky, { isLastNotSticky: true });\n }\n\n const hasLeftSticky = toTheLeft.length > 0;\n if (hasLeftSticky) {\n const lastLeftSticky = toTheLeft[toTheLeft.length - 1];\n\n updateColumnAndParent(lastLeftSticky, { isLastLeftSticky: true });\n }\n\n const hasRightSticky = toTheRight.length > 0;\n if (hasRightSticky) {\n const [firstRightSticky] = toTheRight;\n\n updateColumnAndParent(firstRightSticky, { isFirstRightSticky: true });\n }\n\n instance.hasStickyColumns = hasLeftSticky || hasRightSticky;\n\n return [...toTheLeft, ...others, ...toTheRight];\n};\n\nconst calculateHeaderWidthsToTheRight = (headers: any, right = 0) => {\n if (!headers?.length) {\n return;\n }\n\n for (let i = headers.length - 1; i !== -1; i -= 1) {\n const header = headers[i];\n\n header.totalRight = right;\n\n const { headers: subHeaders } = header;\n if (subHeaders?.length > 0) {\n calculateHeaderWidthsToTheRight(subHeaders, right);\n }\n\n if (header.isVisible) {\n right += header.totalWidth;\n }\n }\n};\n\nconst useInstanceHook = (instance: any) => {\n calculateHeaderWidthsToTheRight(instance.headers);\n\n const getInstance = useGetLatest(instance);\n instance.getTableHeadProps = makePropGetter(\n instance.getHooks().getTableHeadProps,\n {\n instance: getInstance(),\n },\n );\n};\n\nconst getRowProps = () => ({\n style: {\n display: \"flex\",\n flex: \"1 0 auto\",\n },\n});\n\nconst getCellProps = (header: any, isHeaderCell: boolean) => {\n const props: UseHvTableStickyCellProps & { style: React.CSSProperties } = {\n style: {\n display: \"inline-flex\",\n flex: `${header.totalWidth} ${header.totalMinWidth} auto`,\n alignItems: isHeaderCell ? \"start\" : \"center\",\n justifyContent: header.align,\n\n width: `${header.totalWidth}px`,\n minWidth: `${header.totalMinWidth}px`,\n ...(isHeaderCell && { backgroundColor: theme.colors.atmo2 }),\n },\n };\n\n if (header.sticky != null) {\n props.stickyColumn = true;\n\n const margin =\n header.sticky === \"left\" ? header.totalLeft : header.totalRight;\n\n // @ts-ignore\n props.style[header.sticky] = `${margin}px`;\n\n if (header.isLastLeftSticky) {\n props.stickyColumnMostLeft = true;\n }\n\n if (header.isFirstRightSticky) {\n props.stickyColumnLeastRight = true;\n }\n } else {\n if (header.isFirstNotSticky) {\n props.style.borderLeft = 0;\n }\n\n if (header.isLastNotSticky) {\n props.style.borderRight = 0;\n }\n }\n\n return props;\n};\n\n/*\n * STICKY POSITION MANAGEMENT\n * <thead>: sticky if stickyHeader: true\n * <tr>: never sticky\n * <th>: sticky only if that particular column is sticky (left or right)\n */\n\n/*\n * We need to hide the last non sticky column right border, to avoid issues with double borders.\n *\n * This could be done with css, using the `:has()` selector:\n * - \".not-sticky:has(+ .first-right-sticky)\": { border-right: 0 }\n *\n * Until the `:has()` selector is supported by modern browsers,\n * that at the moment is just a proposal https://developer.mozilla.org/en-US/docs/Web/CSS/:has,\n * we need to override the last not sticky column \"borderRight\" here.\n */\n\n// props target: <table>\nconst getTablePropsHook = (props: any, { instance }: any) => {\n const nextProps: UseHvTableStickyTableProps = {\n stickyHeader: instance.stickyHeader,\n stickyColumns: instance.hasStickyColumns,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><thead>\nexport const getTableHeadPropsHook = (props: any, { instance }: any) => {\n const nextProps = {\n stickyHeader: instance.stickyHeader,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr>\nexport const getHeaderGroupPropsHook = (props: any, { instance }: any) => {\n const nextProps = instance.hasStickyColumns ? getRowProps() : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr><th>\nconst getHeaderPropsHook = (props: any, { instance, column }: any) => {\n const nextProps = instance.hasStickyColumns ? getCellProps(column, true) : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr>\nconst getRowPropsHook = (props: any, { instance }: any) => {\n const nextProps = instance.hasStickyColumns ? getRowProps() : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props: any, { instance, cell }: any) => {\n const nextProps: UseHvTableStickyCellProps = instance.hasStickyColumns\n ? getCellProps(cell.column, false)\n : {};\n\n return [props, nextProps];\n};\n\nconst useSticky: UseHvTableSticky = (hooks) => {\n hooks.visibleColumns.push(visibleColumnsHook);\n hooks.useInstance.push(useInstanceHook);\n\n // props target: <table>\n hooks.getTableProps.push(getTablePropsHook);\n // props target: <table><thead>\n hooks.getTableHeadProps = [getTableHeadPropsHook];\n // props target: <table><thead><tr>\n hooks.getHeaderGroupProps.push(getHeaderGroupPropsHook);\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n // props target: <table><tbody><tr>\n hooks.getRowProps.push(getRowPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n};\n\nuseSticky.pluginName = \"useHvTableSticky\";\n\nexport default useSticky;\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"useSticky.js","sources":["../../../../src/Table/hooks/useSticky.ts"],"sourcesContent":["import {\n Hooks,\n makePropGetter,\n PropGetter,\n TableCommonProps,\n useGetLatest,\n} from \"react-table\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\n// #region ##### TYPES #####\n\nexport interface UseHvTableStickyTableHeadProps extends TableCommonProps {\n stickyHeader?: boolean;\n}\n\nexport type HvTableHeadPropGetter<D extends object> = PropGetter<\n D,\n UseHvTableStickyTableHeadProps\n>;\n\nexport type UseHvTableStickyTableOptions = {\n stickyHeader?: boolean;\n stickyColumns?: boolean;\n};\n\nexport interface UseHvTableStickyHooks<D extends object> {\n getTableHeadProps: Array<HvTableHeadPropGetter<D>>;\n}\n\nexport interface UseHvTableStickyTableInstance<D extends object> {\n getTableHeadProps: (\n propGetter?: HvTableHeadPropGetter<D>,\n ) => UseHvTableStickyTableHeadProps;\n\n totalRight?: number;\n hasStickyColumns?: boolean;\n}\n\n// props target: <table>\nexport interface UseHvTableStickyTableProps {\n stickyHeader?: boolean;\n stickyColumns?: boolean;\n}\n\n// props target: <table><thead><tr><th>\nexport interface UseHvTableStickyColumnProps {\n stickyColumn?: boolean;\n stickyColumnMostLeft?: boolean;\n stickyColumnLeastRight?: boolean;\n}\n\n// props target: <table><tbody><tr><td>\nexport interface UseHvTableStickyCellProps {\n stickyColumn?: boolean;\n stickyColumnMostLeft?: boolean;\n stickyColumnLeastRight?: boolean;\n}\n\nexport type UseHvTableSticky = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\nconst isSticky = (value: any) => /left|right/i.test(value);\n\nconst getStickyValue = ({ sticky, parent }: any) => {\n if (isSticky(sticky)) {\n return sticky;\n }\n\n if (parent != null) {\n // check if parent is sticky\n sticky = getStickyValue(parent);\n if (isSticky(sticky)) {\n return sticky;\n }\n\n const { columns } = parent;\n // check if any column in the same group is sticky\n if (columns?.length > 0) {\n sticky = columns?.find((col: any) => col.sticky != null)?.sticky;\n if (isSticky(sticky)) {\n return sticky;\n }\n }\n }\n\n return undefined;\n};\n\nconst updateColumnAndParent = (column: any, props: any) => {\n Object.assign(column, props);\n\n if (column.parent != null) {\n updateColumnAndParent(column.parent, props);\n }\n};\n\nconst visibleColumnsHook = (columns: any, { instance }: any) => {\n const toTheLeft: any[] = [];\n const toTheRight: any[] = [];\n const others: any[] = [];\n\n columns.forEach((column: any) => {\n const sticky = getStickyValue(column)?.toLowerCase();\n\n updateColumnAndParent(column, { sticky });\n\n if (sticky === \"left\") {\n toTheLeft.push(column);\n } else if (sticky === \"right\") {\n toTheRight.push(column);\n } else {\n others.push(column);\n }\n });\n\n if (others.length > 0) {\n const [firstNotSticky] = others;\n updateColumnAndParent(firstNotSticky, { isFirstNotSticky: true });\n\n const lastNotSticky = others[others.length - 1];\n updateColumnAndParent(lastNotSticky, { isLastNotSticky: true });\n }\n\n const hasLeftSticky = toTheLeft.length > 0;\n if (hasLeftSticky) {\n const lastLeftSticky = toTheLeft[toTheLeft.length - 1];\n\n updateColumnAndParent(lastLeftSticky, { isLastLeftSticky: true });\n }\n\n const hasRightSticky = toTheRight.length > 0;\n if (hasRightSticky) {\n const [firstRightSticky] = toTheRight;\n\n updateColumnAndParent(firstRightSticky, { isFirstRightSticky: true });\n }\n\n instance.hasStickyColumns = hasLeftSticky || hasRightSticky;\n\n return [...toTheLeft, ...others, ...toTheRight];\n};\n\nconst calculateHeaderWidthsToTheRight = (headers: any, right = 0) => {\n if (!headers?.length) {\n return;\n }\n\n for (let i = headers.length - 1; i !== -1; i -= 1) {\n const header = headers[i];\n\n header.totalRight = right;\n\n const { headers: subHeaders } = header;\n if (subHeaders?.length > 0) {\n calculateHeaderWidthsToTheRight(subHeaders, right);\n }\n\n if (header.isVisible) {\n right += header.totalWidth;\n }\n }\n};\n\nconst useInstanceHook = (instance: any) => {\n calculateHeaderWidthsToTheRight(instance.headers);\n\n const getInstance = useGetLatest(instance);\n instance.getTableHeadProps = makePropGetter(\n instance.getHooks().getTableHeadProps,\n {\n instance: getInstance(),\n },\n );\n};\n\nconst getRowProps = () => ({\n style: {\n display: \"flex\",\n flex: \"1 0 auto\",\n },\n});\n\nconst getCellProps = (header: any, isHeaderCell: boolean) => {\n const props: UseHvTableStickyCellProps & { style: React.CSSProperties } = {\n style: {\n display: \"inline-flex\",\n flex: `${header.totalWidth} ${header.totalMinWidth} auto`,\n alignItems: isHeaderCell ? \"start\" : \"center\",\n justifyContent: header.align,\n\n width: `${header.totalWidth}px`,\n minWidth: `${header.totalMinWidth}px`,\n ...(isHeaderCell && { backgroundColor: theme.colors.atmo2 }),\n },\n };\n\n if (header.sticky != null) {\n props.stickyColumn = true;\n\n const margin =\n header.sticky === \"left\" ? header.totalLeft : header.totalRight;\n\n // @ts-ignore\n props.style[header.sticky] = `${margin}px`;\n\n if (header.isLastLeftSticky) {\n props.stickyColumnMostLeft = true;\n }\n\n if (header.isFirstRightSticky) {\n props.stickyColumnLeastRight = true;\n }\n } else {\n if (header.isFirstNotSticky) {\n props.style.borderLeft = 0;\n }\n\n if (header.isLastNotSticky) {\n props.style.borderRight = 0;\n }\n }\n\n return props;\n};\n\n/*\n * STICKY POSITION MANAGEMENT\n * <thead>: sticky if stickyHeader: true\n * <tr>: never sticky\n * <th>: sticky only if that particular column is sticky (left or right)\n */\n\n/*\n * We need to hide the last non sticky column right border, to avoid issues with double borders.\n *\n * This could be done with css, using the `:has()` selector:\n * - \".not-sticky:has(+ .first-right-sticky)\": { border-right: 0 }\n *\n * Until the `:has()` selector is supported by modern browsers,\n * that at the moment is just a proposal https://developer.mozilla.org/en-US/docs/Web/CSS/:has,\n * we need to override the last not sticky column \"borderRight\" here.\n */\n\n// props target: <table>\nconst getTablePropsHook = (props: any, { instance }: any) => {\n const nextProps: UseHvTableStickyTableProps = {\n stickyHeader: instance.stickyHeader,\n stickyColumns: instance.hasStickyColumns,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><thead>\nexport const getTableHeadPropsHook = (props: any, { instance }: any) => {\n const nextProps = {\n stickyHeader: instance.stickyHeader,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr>\nexport const getHeaderGroupPropsHook = (props: any, { instance }: any) => {\n const nextProps = instance.hasStickyColumns ? getRowProps() : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr><th>\nconst getHeaderPropsHook = (props: any, { instance, column }: any) => {\n const nextProps = instance.hasStickyColumns ? getCellProps(column, true) : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr>\nconst getRowPropsHook = (props: any, { instance }: any) => {\n const nextProps = instance.hasStickyColumns ? getRowProps() : {};\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props: any, { instance, cell }: any) => {\n const nextProps: UseHvTableStickyCellProps = instance.hasStickyColumns\n ? getCellProps(cell.column, false)\n : {};\n\n return [props, nextProps];\n};\n\nconst useSticky: UseHvTableSticky = (hooks) => {\n hooks.visibleColumns.push(visibleColumnsHook);\n hooks.useInstance.push(useInstanceHook);\n\n // props target: <table>\n hooks.getTableProps.push(getTablePropsHook);\n // props target: <table><thead>\n hooks.getTableHeadProps = [getTableHeadPropsHook];\n // props target: <table><thead><tr>\n hooks.getHeaderGroupProps.push(getHeaderGroupPropsHook);\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderPropsHook);\n // props target: <table><tbody><tr>\n hooks.getRowProps.push(getRowPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n};\n\nuseSticky.pluginName = \"useHvTableSticky\";\n\nexport default useSticky;\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTable.js","sources":["../../../../src/Table/hooks/useTable.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport {\n ActionType,\n Cell,\n ColumnInstance,\n ColumnInterface,\n Hooks,\n PluginHook,\n ReducerTableState,\n Renderer,\n Row,\n TableCellProps,\n TableFooterProps,\n TableHeaderProps,\n TableInstance,\n TableOptions,\n TableProps,\n TableRowProps,\n TableState,\n UseColumnOrderInstanceProps,\n UseColumnOrderState,\n useExpanded,\n UseExpandedHooks,\n UseExpandedInstanceProps,\n UseExpandedOptions,\n UseExpandedState,\n UseFiltersColumnOptions,\n UseFiltersColumnProps,\n UseFiltersInstanceProps,\n UseFiltersOptions,\n UseFiltersState,\n UseGlobalFiltersColumnOptions,\n UseGlobalFiltersInstanceProps,\n UseGlobalFiltersOptions,\n UseGlobalFiltersState,\n UseGroupByCellProps,\n UseGroupByColumnOptions,\n UseGroupByColumnProps,\n UseGroupByHooks,\n UseGroupByInstanceProps,\n UseGroupByOptions,\n UseGroupByRowProps,\n UseGroupByState,\n usePagination,\n UsePaginationInstanceProps,\n UsePaginationOptions,\n UsePaginationState,\n useResizeColumns,\n UseResizeColumnsColumnOptions,\n UseResizeColumnsColumnProps,\n UseResizeColumnsOptions,\n UseResizeColumnsState,\n UseRowStateInstanceProps,\n UseRowStateOptions,\n UseRowStateRowProps,\n UseRowStateState,\n useSortBy,\n UseSortByColumnOptions,\n UseSortByColumnProps,\n UseSortByHooks,\n UseSortByInstanceProps,\n UseSortByOptions,\n UseSortByState,\n useTable,\n UseTableHeaderGroupProps,\n} from \"react-table\";\n\nimport { HvTableProps } from \"../Table\";\nimport { HvTableCellProps } from \"../TableCell\";\nimport { HvTableHeaderProps } from \"../TableHeader\";\nimport { HvTableRowProps } from \"../TableRow\";\nimport {\n UseHvBulkActionsHooks,\n UseHvBulkActionsTableInstanceProps,\n UseHvBulkActionsTableOptions,\n} from \"./useBulkActions\";\nimport {\n UseHvHeaderGroupsCellProps,\n UseHvHeaderGroupsColumnProps,\n UseHvHeaderGroupsInstance,\n} from \"./useHeaderGroups\";\nimport {\n UseHvPaginationHooks,\n UseHvPaginationTableInstance,\n} from \"./usePagination\";\nimport {\n UseHvResizeColumnProps,\n UseHvResizeTableCellProps,\n} from \"./useResizeColumns\";\nimport {\n UseHvRowExpandRowInstance,\n UseHvRowExpandTableOptions,\n UseHvRowExpandTableRowProps,\n} from \"./useRowExpand\";\nimport {\n UseHvRowSelectionHooks,\n UseHvRowSelectionRowInstance,\n UseHvRowSelectionState,\n UseHvRowSelectionTableInstance,\n UseHvRowSelectionTableOptions,\n UseHvRowSelectionTableRowProps,\n} from \"./useRowSelection\";\nimport { UseHvSortByColumnProps, UseHvSortByTableCellProps } from \"./useSortBy\";\nimport {\n UseHvTableStickyCellProps,\n UseHvTableStickyColumnProps,\n UseHvTableStickyHooks,\n UseHvTableStickyTableInstance,\n UseHvTableStickyTableOptions,\n UseHvTableStickyTableProps,\n} from \"./useSticky\";\nimport useHvTableStyles, {\n UseHvTableStylesColumnOptions,\n UseHvTableStylesTableCellProps,\n UseHvTableStylesTableOptions,\n UseHvTableStylesTableRowProps,\n} from \"./useTableStyles\";\n\n// #region ##### TYPES #####\n\ntype Accessor<D extends object> = (\n originalRow: D,\n index: number,\n sub: {\n subRows: D[];\n depth: number;\n data: D[];\n },\n) => CellValue;\n\ntype ValueOf<T> = T[keyof T];\ntype StringKey<D> = Extract<keyof D, string>;\ntype IdType<D> = StringKey<D> | string;\ntype CellValue<V = any> = V;\n\ntype HvHeaderProps<D extends object = Record<string, unknown>> =\n HvTableInstance<D> & {\n column: HvColumnInstance<D>;\n };\n\ninterface HvMetaBase<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> {\n instance: HvTableInstance<D, H>;\n userProps: any;\n}\n\nexport type HvMeta<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n Extension = never,\n M = HvMetaBase<D, H>,\n> = [Extension] extends [never] ? M : M & Extension;\n\nexport type HvPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n Props extends object = Record<string, unknown>,\n T extends object = never,\n P = Partial<Props>,\n> = ((props: P, meta: HvMeta<D, H, T>) => P | P[]) | P | P[];\n\nexport type HvTableHeaderRenderer<D extends object = Record<string, unknown>> =\n Renderer<HvHeaderProps<D>>;\n\ntype HvFooterProps<D extends object = Record<string, unknown>> =\n HvTableInstance<D> & {\n column: HvColumnInstance<D>;\n };\n\ninterface HvHeaderGroup<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends HvColumnInstance<D, H>,\n Omit<UseTableHeaderGroupProps<D>, \"headers\"> {\n headers: Array<HvHeaderGroup<D, H>>;\n}\n\ntype HvRowPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableRowProps, { row: HvRowInstance<D, H> }>;\n\ntype HvTablePropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableProps>;\n\ntype HvCellPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableCellProps, { cell: HvCellInstance<D, H> }>;\n\ntype HvHeaderPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableHeaderProps, { column: HvHeaderGroup<D, H> }>;\n\ntype HvFooterPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableFooterProps, { column: HvHeaderGroup<D, H> }>;\n\nexport interface HvCellProps<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n V = any,\n> extends HvTableInstance<D, H> {\n column: HvColumnInstance<D, H>;\n row: HvRowInstance<D, H>;\n cell: HvCellInstance<D, H, V>;\n value: CellValue<V>;\n}\n\nexport type HvTableDefinitionConfig<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvTableOptions<D, H>;\n\ninterface HvColumnInterfaceBasedOnValue<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n V = any,\n> {\n Cell?: Renderer<HvCellProps<D, H, V>>;\n}\n\ninterface HvColumnGroupInterface<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> {\n columns: Array<HvTableColumnConfig<D, H>>;\n}\n\ntype HvColumnGroup<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvTableColumnOptions<D, H> &\n HvColumnGroupInterface<D, H> &\n (\n | { Header: H }\n | ({ id: IdType<D> } & {\n Header: H;\n })\n ) & { accessor?: Accessor<D> };\n\ntype HvColumnWithStrictAccessor<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvTableColumnOptions<D, H> &\n ValueOf<{\n [K in keyof D]: {\n accessor: K;\n } & HvColumnInterfaceBasedOnValue<D, H, D[K]>;\n }>;\n\ntype HvColumnWithLooseAccessor<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvTableColumnOptions<D, H> &\n HvColumnInterfaceBasedOnValue<D, H> &\n (\n | { Header: H }\n | { id: IdType<D> }\n | { accessor: keyof D extends never ? IdType<D> : never }\n ) & {\n accessor?: keyof D extends never ? IdType<D> | Accessor<D> : Accessor<D>;\n };\n\nexport type HvTableColumnConfig<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> =\n | HvColumnGroup<D, H>\n | HvColumnWithLooseAccessor<D, H>\n | HvColumnWithStrictAccessor<D, H>;\n\n// #region HOOKS\nexport interface HvHooks<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<Hooks<D>, \"useOptions\">,\n Partial<UseExpandedHooks<D>>,\n Partial<UseGroupByHooks<D>>,\n Partial<UseSortByHooks<D>>,\n Partial<UseHvRowSelectionHooks<D>>,\n Partial<UseHvTableStickyHooks<D>>,\n Partial<UseHvPaginationHooks<D>>,\n Partial<UseHvBulkActionsHooks<D>> {\n useOptions: Array<\n (\n options: HvTableOptions<D, H>,\n args: HvTableOptions<D, H>,\n ) => HvTableOptions<D, H>\n >;\n stateReducers: Array<\n (\n newState: HvTableState<D>,\n action: ActionType,\n previousState?: HvTableState<D>,\n instance?: HvTableState<D>,\n ) => ReducerTableState<D> | undefined\n >;\n columns: Array<\n (\n columns: Array<HvTableColumnConfig<D, H>>,\n meta: HvMeta<D, H>,\n ) => Array<HvTableColumnConfig<D, H>>\n >;\n allColumns: Array<\n (\n allColumns: Array<HvColumnInstance<D, H>>,\n meta: HvMeta<D, H>,\n ) => Array<HvTableColumnConfig<D, H>>\n >;\n visibleColumns: Array<\n (\n allColumns: Array<HvColumnInstance<D, H>>,\n meta: HvMeta<D, H>,\n ) => Array<HvTableColumnConfig<D, H>>\n >;\n headerGroups: Array<\n (\n allColumns: Array<HvHeaderGroup<D, H>>,\n meta: HvMeta<D, H>,\n ) => Array<HvHeaderGroup<D, H>>\n >;\n useInstanceBeforeDimensions: Array<(instance: HvTableInstance<D, H>) => void>;\n useInstance: Array<(instance: HvTableInstance<D, H>) => void>;\n useControlledState: Array<\n (state: HvTableState<D>, meta: HvMeta<D, H>) => HvTableState<D>\n >;\n getTableProps: Array<HvTablePropGetter<D, H>>;\n getHeaderProps: Array<HvHeaderPropGetter<D>>;\n getFooterProps: Array<HvFooterPropGetter<D>>;\n getRowProps: Array<HvRowPropGetter<D>>;\n getCellProps: Array<HvCellPropGetter<D>>;\n useFinalInstance: Array<(instance: HvTableInstance<D, H>) => void>;\n}\n// #endregion\n\n// #region STATE\nexport interface HvTableState<D extends object = Record<string, unknown>>\n extends TableState<D>,\n Partial<UseColumnOrderState<D>>,\n Partial<UseExpandedState<D>>,\n Partial<UseFiltersState<D>>,\n Partial<UseGlobalFiltersState<D>>,\n Partial<UseGroupByState<D>>,\n Partial<UsePaginationState<D>>,\n Partial<UseResizeColumnsState<D>>,\n Partial<UseSortByState<D>>,\n Partial<UseRowStateState<D>>,\n Partial<UseHvRowSelectionState<D>> {\n rowCount: number;\n}\n// #endregion\n\n// #region OPTIONS\nexport interface HvTableOptions<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<\n TableOptions<D>,\n | \"columns\"\n | \"data\"\n | \"defaultColumn\"\n | \"stateReducer\"\n | \"useControlledState\"\n | \"getRowId\"\n >,\n Partial<UseExpandedOptions<D>>,\n Partial<UseFiltersOptions<D>>,\n Partial<UseGlobalFiltersOptions<D>>,\n Partial<UseGroupByOptions<D>>,\n Partial<UsePaginationOptions<D>>,\n Partial<UseResizeColumnsOptions<D>>,\n Partial<UseSortByOptions<D>>,\n Partial<UseRowStateOptions<D>>,\n Partial<UseHvTableStylesTableOptions>,\n Partial<UseHvRowSelectionTableOptions>,\n Partial<UseHvTableStickyTableOptions>,\n Partial<UseHvBulkActionsTableOptions>,\n Partial<UseHvRowExpandTableOptions> {\n columns?: Array<HvTableColumnConfig<D, H>>;\n data?: D[];\n initialState?: Partial<HvTableState<D>>;\n labels?: Record<string, string>;\n defaultColumn?: Partial<HvTableColumnConfig<D, H>>;\n stateReducer?: (\n newState: HvTableState<D>,\n action: ActionType,\n previousState: HvTableState<D>,\n instance?: HvTableInstance<D, H>,\n ) => HvTableState<D>;\n useControlledState?: (\n state: HvTableState<D>,\n meta: HvMeta<D, H>,\n ) => HvTableState<D>;\n getRowId?: (\n originalRow: D,\n relativeIndex: number,\n parent?: HvRowInstance<D, H>,\n ) => string;\n}\n\nexport interface HvTableColumnOptions<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<ColumnInterface<D>, \"Header\" | \"Footer\">,\n Partial<UseFiltersColumnOptions<D>>,\n Partial<UseGroupByColumnOptions<D>>,\n Partial<UseResizeColumnsColumnOptions<D>>,\n Partial<UseSortByColumnOptions<D>>,\n Partial<UseGlobalFiltersColumnOptions<D>>,\n Partial<UseHvTableStylesColumnOptions> {\n Header?: H;\n Footer?: Renderer<HvFooterProps<D>>;\n originalId?: IdType<D>;\n}\n// #endregion\n\n// #region INSTANCE\nexport interface HvTableInstance<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<\n TableInstance<D>,\n | \"pageCount\"\n | \"data\"\n | \"columns\"\n | \"rows\"\n | \"allColumns\"\n | \"visibleColumns\"\n | \"headers\"\n | \"flatHeaders\"\n | \"rowsById\"\n | \"prepareRow\"\n | \"flatRows\"\n | \"headerGroups\"\n | \"footerGroups\"\n | \"defaultColumn\"\n | \"stateReducer\"\n | \"useControlledState\"\n | \"getRowId\"\n | \"getHooks\"\n | \"getTableProps\"\n >,\n Omit<HvTableOptions<D, H>, \"pageCount\" | \"columns\">,\n Partial<UseColumnOrderInstanceProps<D>>,\n Partial<Omit<UseExpandedInstanceProps<D>, \"rows\">>,\n Partial<Omit<UseFiltersInstanceProps<D>, \"rows\" | \"rowsById\" | \"flatRows\">>,\n Partial<\n Omit<UseGlobalFiltersInstanceProps<D>, \"rows\" | \"rowsById\" | \"flatRows\">\n >,\n Partial<Omit<UseGroupByInstanceProps<D>, \"rows\" | \"rowsById\" | \"flatRows\">>,\n Partial<Omit<UsePaginationInstanceProps<D>, \"page\">>,\n Partial<Omit<UseSortByInstanceProps<D>, \"rows\">>,\n Partial<UseRowStateInstanceProps<D>>,\n Partial<Omit<UseHvRowSelectionTableInstance<D>, \"selectedFlatRows\">>,\n Partial<UseHvTableStickyTableInstance<D>>,\n Partial<UseHvHeaderGroupsInstance>,\n Partial<UseHvPaginationTableInstance<D>>,\n Partial<UseHvBulkActionsTableInstanceProps<D>> {\n initialState: Partial<HvTableState<D>>;\n state: HvTableState<D>;\n columns: Array<HvColumnInstance<D, H>>;\n allColumns: Array<HvColumnInstance<D, H>>;\n visibleColumns: Array<HvColumnInstance<D, H>>;\n headers: Array<HvColumnInstance<D, H>>;\n flatHeaders: Array<HvColumnInstance<D, H>>;\n rows: Array<HvRowInstance<D, H>>;\n page: Array<HvRowInstance<D, H>>;\n rowsById: Record<string, HvRowInstance<D, H>>;\n flatRows: Array<HvRowInstance<D, H>>;\n getHooks: () => HvHooks<D>;\n getTableProps: (propGetter?: HvTablePropGetter<D, H>) => HvUseTableProps;\n prepareRow: (row: HvRowInstance<D, H>) => void;\n selectedFlatRows: Array<HvRowInstance<D, H>>;\n initialRows: Array<HvRowInstance<D, H>>;\n initialRowsById: Record<string, HvRowInstance<D, H>>;\n labels: Record<string, string>;\n headerGroups: Array<HvHeaderGroup<D, H>>;\n footerGroups: Array<HvHeaderGroup<D, H>>;\n}\n\nexport interface HvColumnInstance<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<\n ColumnInstance<D>,\n | \"Cell\"\n | \"columns\"\n | \"parent\"\n | \"placeholderOf\"\n | \"id\"\n | \"Header\"\n | \"getHeaderProps\"\n | \"getFooterProps\"\n | \"Footer\"\n >,\n HvTableColumnOptions<D, H>,\n Partial<UseFiltersColumnProps<D>>,\n Partial<UseGroupByColumnProps<D>>,\n Partial<UseResizeColumnsColumnProps<D>>,\n Partial<UseSortByColumnProps<D>> {\n Cell?: Renderer<HvCellProps<D, H>>;\n columns: Array<HvColumnInstance<D, H>>;\n parent: HvColumnInstance<D, H>;\n placeholderOf?: HvColumnInstance<D, H>;\n getHeaderProps: (\n propGetter?: HvHeaderPropGetter<D, H>,\n ) => HvUseTableHeaderProps;\n getFooterProps: (\n propGetter?: HvFooterPropGetter<D, H>,\n ) => HvUseTableFooterProps;\n}\n\nexport interface HvRowInstance<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<Row<D>, \"cells\" | \"allCells\" | \"subRows\" | \"getRowProps\">,\n Partial<Omit<UseGroupByRowProps<D>, \"subRows\" | \"values\">>,\n Partial<UseRowStateRowProps<D>>,\n Partial<Omit<UseHvRowExpandRowInstance<D>, \"subRows\">>,\n Partial<UseHvRowSelectionRowInstance> {\n cells: Array<HvCellInstance<D, H>>;\n allCells: Array<HvCellInstance<D, H>>;\n getRowProps: (propGetter?: HvRowPropGetter<D, H>) => HvUseTableRowProps;\n index: number;\n original: D;\n id: string;\n subRows: Array<HvRowInstance<D, H>>;\n}\n\nexport interface HvCellInstance<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n V = any,\n> extends Omit<Cell<D, V>, \"column\" | \"row\" | \"getCellProps\">,\n Partial<UseGroupByCellProps<D>> {\n column: HvColumnInstance<D, H>;\n row: HvRowInstance<D, H>;\n getCellProps: (propGetter?: HvCellPropGetter<D, H>) => HvUseTableCellProps;\n}\n// #endregion\n\n// #region PROPS\nexport interface HvUseTableProps\n extends Omit<TableProps, \"role\">,\n UseHvTableStickyTableProps,\n HvTableProps {}\n\nexport interface HvUseTableHeaderProps\n extends Omit<TableHeaderProps, \"role\">,\n Omit<UseHvTableStylesTableCellProps, \"classes\">,\n UseHvTableStickyColumnProps,\n UseHvHeaderGroupsColumnProps,\n UseHvResizeColumnProps,\n Omit<UseHvSortByColumnProps, \"sortDirection\">,\n HvTableHeaderProps {}\n\nexport interface HvUseTableFooterProps\n extends TableFooterProps,\n UseHvTableStylesTableCellProps {}\n\nexport interface HvUseTableRowProps\n extends Omit<TableRowProps, \"role\">,\n UseHvTableStylesTableRowProps,\n UseHvRowSelectionTableRowProps,\n UseHvRowExpandTableRowProps,\n HvTableRowProps {}\n\nexport interface HvUseTableCellProps\n extends Omit<TableCellProps, \"role\">,\n Omit<UseHvTableStylesTableCellProps, \"variant\" | \"classes\">,\n UseHvTableStickyCellProps,\n UseHvHeaderGroupsCellProps,\n UseHvResizeTableCellProps,\n UseHvSortByTableCellProps,\n HvTableCellProps {}\n\n// #endregion\n\nexport type UseHvTableProps = <\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n options: HvTableOptions<D, H>,\n ...plugins: Array<PluginHook<D>>\n) => HvTableInstance<D, H>;\n\nexport type { PluginHook as HvTablePluginHook };\n\n// #endregion ##### TYPES #####\n\nconst toTitleCase = (str: string) => {\n return str\n .replace(/([^A-Z])([A-Z])/g, \"$1 $2\") // split cameCase\n .replace(/[_-]+/g, \" \") // split snake_case and lisp-case\n .toLowerCase()\n .replace(/(^\\w|\\b\\w)/g, (m) => m.toUpperCase()) // title case words\n .replace(/\\s+/g, \" \") // collapse repeated whitespace\n .trim(); // remove leading/trailing whitespace\n};\n\nfunction useDefaultData<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(data?: HvTableOptions<D, H>[\"data\"]) {\n return useMemo(() => {\n return data || [];\n }, [data]);\n}\n\nfunction useDefaultColumns<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n data: NonNullable<HvTableOptions<D, H>[\"data\"]>,\n columns?: HvTableOptions<D, H>[\"columns\"],\n) {\n return useMemo(() => {\n if (columns != null) {\n return columns;\n }\n\n const uniqueKeys = Object.keys(Object.assign({}, ...data));\n\n return uniqueKeys\n .filter((key) => ![\"subRows\", \"subComponent\"].includes(key))\n .map((key) => ({\n accessor: key,\n Header: toTitleCase(key),\n }));\n }, [columns, data]);\n}\n\nfunction ensureCorePluginInstallation<\n D extends object = Record<string, unknown>,\n>(\n plugins: PluginHook<D>[],\n hvPluginName: string,\n corePluginToInstall: PluginHook<D>,\n) {\n const indexOfCorePlugin = plugins.findIndex(\n (plugin) => plugin.pluginName === corePluginToInstall.pluginName,\n );\n const indexOfHvPlugin = plugins.findIndex(\n (plugin) => plugin.pluginName === hvPluginName,\n );\n\n if (\n indexOfHvPlugin !== -1 &&\n (indexOfCorePlugin === -1 || indexOfCorePlugin > indexOfHvPlugin)\n ) {\n if (indexOfCorePlugin > -1) {\n plugins.splice(indexOfCorePlugin, 1);\n }\n\n plugins.splice(indexOfHvPlugin, 0, corePluginToInstall);\n }\n}\n\nfunction useInstanceHook<D extends object = Record<string, unknown>>(\n instance: TableInstance<D>,\n) {\n const { rowsById } = instance;\n\n Object.assign(instance, {\n initialRowsById: rowsById,\n });\n}\n\nfunction useHvTableSetup<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) {\n hooks.useInstance.push(useInstanceHook);\n}\nuseHvTableSetup.pluginName = \"useHvTableSetup\";\n\nfunction useHvTable<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n options: HvTableOptions<D, H>,\n ...plugins: PluginHook<D>[]\n): HvTableInstance<D, H> {\n const { data: dataProp, columns: columnsProp, ...others } = options;\n\n const data = useDefaultData<D, H>(dataProp);\n const columns = useDefaultColumns<D, H>(data, columnsProp);\n\n ensureCorePluginInstallation<D>(plugins, \"useHvPagination\", usePagination);\n ensureCorePluginInstallation<D>(plugins, \"useHvRowExpand\", useExpanded);\n ensureCorePluginInstallation<D>(plugins, \"useHvSortBy\", useSortBy);\n ensureCorePluginInstallation<D>(\n plugins,\n \"useHvResizeColumns\",\n useResizeColumns,\n );\n\n const indexOfHvTableStylesPlugin = plugins.findIndex(\n (plugin) => plugin.pluginName === \"useHvTableStyles\",\n );\n if (indexOfHvTableStylesPlugin === -1) {\n plugins.push(useHvTableStyles);\n }\n\n // Main hook call\n return useTable<D>(\n {\n data,\n columns,\n ...others,\n } as any,\n useHvTableSetup,\n ...plugins,\n ) as any;\n}\n\nexport default useHvTable;\n"],"names":["useHvTableStyles"],"mappings":";;;AAqlBA,MAAM,cAAc,CAAC,QAAgB;AAC5B,SAAA,IACJ,QAAQ,oBAAoB,OAAO,EACnC,QAAQ,UAAU,GAAG,EACrB,cACA,QAAQ,eAAe,CAAC,MAAM,EAAE,YAAa,CAAA,EAC7C,QAAQ,QAAQ,GAAG,EACnB;AACL;AAEA,SAAS,eAGP,MAAqC;AACrC,SAAO,QAAQ,MAAM;AACnB,WAAO,QAAQ,CAAA;AAAA,EAAC,GACf,CAAC,IAAI,CAAC;AACX;AAEA,SAAS,kBAIP,MACA,SACA;AACA,SAAO,QAAQ,MAAM;AACnB,QAAI,WAAW,MAAM;AACZ,aAAA;AAAA,IACT;AAEM,UAAA,aAAa,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;AAEzD,WAAO,WACJ,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,cAAc,EAAE,SAAS,GAAG,CAAC,EAC1D,IAAI,CAAC,SAAS;AAAA,MACb,UAAU;AAAA,MACV,QAAQ,YAAY,GAAG;AAAA,IACvB,EAAA;AAAA,EAAA,GACH,CAAC,SAAS,IAAI,CAAC;AACpB;AAEA,SAAS,6BAGP,SACA,cACA,qBACA;AACA,QAAM,oBAAoB,QAAQ;AAAA,IAChC,CAAC,WAAW,OAAO,eAAe,oBAAoB;AAAA,EAAA;AAExD,QAAM,kBAAkB,QAAQ;AAAA,IAC9B,CAAC,WAAW,OAAO,eAAe;AAAA,EAAA;AAGpC,MACE,oBAAoB,OACnB,sBAAsB,MAAM,oBAAoB,kBACjD;AACA,QAAI,oBAAoB,IAAI;AAClB,cAAA,OAAO,mBAAmB,CAAC;AAAA,IACrC;AAEQ,YAAA,OAAO,iBAAiB,GAAG,mBAAmB;AAAA,EACxD;AACF;AAEA,SAAS,gBACP,UACA;AACM,QAAA,EAAE,SAAa,IAAA;AAErB,SAAO,OAAO,UAAU;AAAA,IACtB,iBAAiB;AAAA,EAAA,CAClB;AACH;AAEA,SAAS,gBACP,OACA;AACM,QAAA,YAAY,KAAK,eAAe;AACxC;AACA,gBAAgB,aAAa;AAE7B,SAAS,WAIP,YACG,SACoB;AACvB,QAAM,EAAE,MAAM,UAAU,SAAS,aAAa,GAAG,OAAW,IAAA;AAEtD,QAAA,OAAO,eAAqB,QAAQ;AACpC,QAAA,UAAU,kBAAwB,MAAM,WAAW;AAEzB,+BAAA,SAAS,mBAAmB,aAAa;AACzC,+BAAA,SAAS,kBAAkB,WAAW;AACtC,+BAAA,SAAS,eAAe,SAAS;AACjE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,EAAA;AAGF,QAAM,6BAA6B,QAAQ;AAAA,IACzC,CAAC,WAAW,OAAO,eAAe;AAAA,EAAA;AAEpC,MAAI,+BAA+B,IAAI;AACrC,YAAQ,KAAKA,cAAgB;AAAA,EAC/B;AAGO,SAAA;AAAA,IACL;AAAA,MACE;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EAAA;AAEP;"}
1
+ {"version":3,"file":"useTable.js","sources":["../../../../src/Table/hooks/useTable.ts"],"sourcesContent":["import { useMemo } from \"react\";\nimport {\n ActionType,\n Cell,\n ColumnInstance,\n ColumnInterface,\n Hooks,\n PluginHook,\n ReducerTableState,\n Renderer,\n Row,\n TableCellProps,\n TableFooterProps,\n TableHeaderProps,\n TableInstance,\n TableOptions,\n TableProps,\n TableRowProps,\n TableState,\n UseColumnOrderInstanceProps,\n UseColumnOrderState,\n useExpanded,\n UseExpandedHooks,\n UseExpandedInstanceProps,\n UseExpandedOptions,\n UseExpandedState,\n UseFiltersColumnOptions,\n UseFiltersColumnProps,\n UseFiltersInstanceProps,\n UseFiltersOptions,\n UseFiltersState,\n UseGlobalFiltersColumnOptions,\n UseGlobalFiltersInstanceProps,\n UseGlobalFiltersOptions,\n UseGlobalFiltersState,\n UseGroupByCellProps,\n UseGroupByColumnOptions,\n UseGroupByColumnProps,\n UseGroupByHooks,\n UseGroupByInstanceProps,\n UseGroupByOptions,\n UseGroupByRowProps,\n UseGroupByState,\n usePagination,\n UsePaginationInstanceProps,\n UsePaginationOptions,\n UsePaginationState,\n useResizeColumns,\n UseResizeColumnsColumnOptions,\n UseResizeColumnsColumnProps,\n UseResizeColumnsOptions,\n UseResizeColumnsState,\n UseRowStateInstanceProps,\n UseRowStateOptions,\n UseRowStateRowProps,\n UseRowStateState,\n useSortBy,\n UseSortByColumnOptions,\n UseSortByColumnProps,\n UseSortByHooks,\n UseSortByInstanceProps,\n UseSortByOptions,\n UseSortByState,\n useTable,\n UseTableHeaderGroupProps,\n} from \"react-table\";\n\nimport { HvTableProps } from \"../Table\";\nimport { HvTableCellProps } from \"../TableCell\";\nimport { HvTableHeaderProps } from \"../TableHeader\";\nimport { HvTableRowProps } from \"../TableRow\";\nimport {\n UseHvBulkActionsHooks,\n UseHvBulkActionsTableInstanceProps,\n UseHvBulkActionsTableOptions,\n} from \"./useBulkActions\";\nimport {\n UseHvHeaderGroupsCellProps,\n UseHvHeaderGroupsColumnProps,\n UseHvHeaderGroupsInstance,\n} from \"./useHeaderGroups\";\nimport {\n UseHvPaginationHooks,\n UseHvPaginationTableInstance,\n} from \"./usePagination\";\nimport {\n UseHvResizeColumnProps,\n UseHvResizeTableCellProps,\n} from \"./useResizeColumns\";\nimport {\n UseHvRowExpandRowInstance,\n UseHvRowExpandTableOptions,\n UseHvRowExpandTableRowProps,\n} from \"./useRowExpand\";\nimport {\n UseHvRowSelectionHooks,\n UseHvRowSelectionRowInstance,\n UseHvRowSelectionState,\n UseHvRowSelectionTableInstance,\n UseHvRowSelectionTableOptions,\n UseHvRowSelectionTableRowProps,\n} from \"./useRowSelection\";\nimport { UseHvSortByColumnProps, UseHvSortByTableCellProps } from \"./useSortBy\";\nimport {\n UseHvTableStickyCellProps,\n UseHvTableStickyColumnProps,\n UseHvTableStickyHooks,\n UseHvTableStickyTableInstance,\n UseHvTableStickyTableOptions,\n UseHvTableStickyTableProps,\n} from \"./useSticky\";\nimport useHvTableStyles, {\n UseHvTableStylesColumnOptions,\n UseHvTableStylesTableCellProps,\n UseHvTableStylesTableOptions,\n UseHvTableStylesTableRowProps,\n} from \"./useTableStyles\";\n\n// #region ##### TYPES #####\n\ntype Accessor<D extends object> = (\n originalRow: D,\n index: number,\n sub: {\n subRows: D[];\n depth: number;\n data: D[];\n },\n) => CellValue;\n\ntype ValueOf<T> = T[keyof T];\ntype StringKey<D> = Extract<keyof D, string>;\ntype IdType<D> = StringKey<D> | string;\ntype CellValue<V = any> = V;\n\ntype HvHeaderProps<D extends object = Record<string, unknown>> =\n HvTableInstance<D> & {\n column: HvColumnInstance<D>;\n };\n\ninterface HvMetaBase<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> {\n instance: HvTableInstance<D, H>;\n userProps: any;\n}\n\nexport type HvMeta<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n Extension = never,\n M = HvMetaBase<D, H>,\n> = [Extension] extends [never] ? M : M & Extension;\n\nexport type HvPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n Props extends object = Record<string, unknown>,\n T extends object = never,\n P = Partial<Props>,\n> = ((props: P, meta: HvMeta<D, H, T>) => P | P[]) | P | P[];\n\nexport type HvTableHeaderRenderer<D extends object = Record<string, unknown>> =\n Renderer<HvHeaderProps<D>>;\n\ntype HvFooterProps<D extends object = Record<string, unknown>> =\n HvTableInstance<D> & {\n column: HvColumnInstance<D>;\n };\n\ninterface HvHeaderGroup<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends HvColumnInstance<D, H>,\n Omit<UseTableHeaderGroupProps<D>, \"headers\"> {\n headers: Array<HvHeaderGroup<D, H>>;\n}\n\ntype HvRowPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableRowProps, { row: HvRowInstance<D, H> }>;\n\ntype HvTablePropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableProps>;\n\ntype HvCellPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableCellProps, { cell: HvCellInstance<D, H> }>;\n\ntype HvHeaderPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableHeaderProps, { column: HvHeaderGroup<D, H> }>;\n\ntype HvFooterPropGetter<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvPropGetter<D, H, HvUseTableFooterProps, { column: HvHeaderGroup<D, H> }>;\n\nexport interface HvCellProps<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n V = any,\n> extends HvTableInstance<D, H> {\n column: HvColumnInstance<D, H>;\n row: HvRowInstance<D, H>;\n cell: HvCellInstance<D, H, V>;\n value: CellValue<V>;\n}\n\nexport type HvTableDefinitionConfig<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvTableOptions<D, H>;\n\ninterface HvColumnInterfaceBasedOnValue<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n V = any,\n> {\n Cell?: Renderer<HvCellProps<D, H, V>>;\n}\n\ninterface HvColumnGroupInterface<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> {\n columns: Array<HvTableColumnConfig<D, H>>;\n}\n\ntype HvColumnGroup<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvTableColumnOptions<D, H> &\n HvColumnGroupInterface<D, H> &\n (\n | { Header: H }\n | ({ id: IdType<D> } & {\n Header: H;\n })\n ) & { accessor?: Accessor<D> };\n\ntype HvColumnWithStrictAccessor<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvTableColumnOptions<D, H> &\n ValueOf<{\n [K in keyof D]: {\n accessor: K;\n } & HvColumnInterfaceBasedOnValue<D, H, D[K]>;\n }>;\n\ntype HvColumnWithLooseAccessor<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> = HvTableColumnOptions<D, H> &\n HvColumnInterfaceBasedOnValue<D, H> &\n (\n | { Header: H }\n | { id: IdType<D> }\n | { accessor: keyof D extends never ? IdType<D> : never }\n ) & {\n accessor?: keyof D extends never ? IdType<D> | Accessor<D> : Accessor<D>;\n };\n\nexport type HvTableColumnConfig<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> =\n | HvColumnGroup<D, H>\n | HvColumnWithLooseAccessor<D, H>\n | HvColumnWithStrictAccessor<D, H>;\n\n// #region HOOKS\nexport interface HvHooks<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<Hooks<D>, \"useOptions\">,\n Partial<UseExpandedHooks<D>>,\n Partial<UseGroupByHooks<D>>,\n Partial<UseSortByHooks<D>>,\n Partial<UseHvRowSelectionHooks<D>>,\n Partial<UseHvTableStickyHooks<D>>,\n Partial<UseHvPaginationHooks<D>>,\n Partial<UseHvBulkActionsHooks<D>> {\n useOptions: Array<\n (\n options: HvTableOptions<D, H>,\n args: HvTableOptions<D, H>,\n ) => HvTableOptions<D, H>\n >;\n stateReducers: Array<\n (\n newState: HvTableState<D>,\n action: ActionType,\n previousState?: HvTableState<D>,\n instance?: HvTableState<D>,\n ) => ReducerTableState<D> | undefined\n >;\n columns: Array<\n (\n columns: Array<HvTableColumnConfig<D, H>>,\n meta: HvMeta<D, H>,\n ) => Array<HvTableColumnConfig<D, H>>\n >;\n allColumns: Array<\n (\n allColumns: Array<HvColumnInstance<D, H>>,\n meta: HvMeta<D, H>,\n ) => Array<HvTableColumnConfig<D, H>>\n >;\n visibleColumns: Array<\n (\n allColumns: Array<HvColumnInstance<D, H>>,\n meta: HvMeta<D, H>,\n ) => Array<HvTableColumnConfig<D, H>>\n >;\n headerGroups: Array<\n (\n allColumns: Array<HvHeaderGroup<D, H>>,\n meta: HvMeta<D, H>,\n ) => Array<HvHeaderGroup<D, H>>\n >;\n useInstanceBeforeDimensions: Array<(instance: HvTableInstance<D, H>) => void>;\n useInstance: Array<(instance: HvTableInstance<D, H>) => void>;\n useControlledState: Array<\n (state: HvTableState<D>, meta: HvMeta<D, H>) => HvTableState<D>\n >;\n getTableProps: Array<HvTablePropGetter<D, H>>;\n getHeaderProps: Array<HvHeaderPropGetter<D>>;\n getFooterProps: Array<HvFooterPropGetter<D>>;\n getRowProps: Array<HvRowPropGetter<D>>;\n getCellProps: Array<HvCellPropGetter<D>>;\n useFinalInstance: Array<(instance: HvTableInstance<D, H>) => void>;\n}\n// #endregion\n\n// #region STATE\nexport interface HvTableState<D extends object = Record<string, unknown>>\n extends TableState<D>,\n Partial<UseColumnOrderState<D>>,\n Partial<UseExpandedState<D>>,\n Partial<UseFiltersState<D>>,\n Partial<UseGlobalFiltersState<D>>,\n Partial<UseGroupByState<D>>,\n Partial<UsePaginationState<D>>,\n Partial<UseResizeColumnsState<D>>,\n Partial<UseSortByState<D>>,\n Partial<UseRowStateState<D>>,\n Partial<UseHvRowSelectionState<D>> {\n rowCount: number;\n}\n// #endregion\n\n// #region OPTIONS\nexport interface HvTableOptions<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<\n TableOptions<D>,\n | \"columns\"\n | \"data\"\n | \"defaultColumn\"\n | \"stateReducer\"\n | \"useControlledState\"\n | \"getRowId\"\n >,\n Partial<UseExpandedOptions<D>>,\n Partial<UseFiltersOptions<D>>,\n Partial<UseGlobalFiltersOptions<D>>,\n Partial<UseGroupByOptions<D>>,\n Partial<UsePaginationOptions<D>>,\n Partial<UseResizeColumnsOptions<D>>,\n Partial<UseSortByOptions<D>>,\n Partial<UseRowStateOptions<D>>,\n Partial<UseHvTableStylesTableOptions>,\n Partial<UseHvRowSelectionTableOptions>,\n Partial<UseHvTableStickyTableOptions>,\n Partial<UseHvBulkActionsTableOptions>,\n Partial<UseHvRowExpandTableOptions> {\n columns?: Array<HvTableColumnConfig<D, H>>;\n data?: D[];\n initialState?: Partial<HvTableState<D>>;\n labels?: Record<string, string>;\n defaultColumn?: Partial<HvTableColumnConfig<D, H>>;\n stateReducer?: (\n newState: HvTableState<D>,\n action: ActionType,\n previousState: HvTableState<D>,\n instance?: HvTableInstance<D, H>,\n ) => HvTableState<D>;\n useControlledState?: (\n state: HvTableState<D>,\n meta: HvMeta<D, H>,\n ) => HvTableState<D>;\n getRowId?: (\n originalRow: D,\n relativeIndex: number,\n parent?: HvRowInstance<D, H>,\n ) => string;\n}\n\nexport interface HvTableColumnOptions<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<ColumnInterface<D>, \"Header\" | \"Footer\">,\n Partial<UseFiltersColumnOptions<D>>,\n Partial<UseGroupByColumnOptions<D>>,\n Partial<UseResizeColumnsColumnOptions<D>>,\n Partial<UseSortByColumnOptions<D>>,\n Partial<UseGlobalFiltersColumnOptions<D>>,\n Partial<UseHvTableStylesColumnOptions> {\n Header?: H;\n Footer?: Renderer<HvFooterProps<D>>;\n originalId?: IdType<D>;\n}\n// #endregion\n\n// #region INSTANCE\nexport interface HvTableInstance<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<\n TableInstance<D>,\n | \"pageCount\"\n | \"data\"\n | \"columns\"\n | \"rows\"\n | \"allColumns\"\n | \"visibleColumns\"\n | \"headers\"\n | \"flatHeaders\"\n | \"rowsById\"\n | \"prepareRow\"\n | \"flatRows\"\n | \"headerGroups\"\n | \"footerGroups\"\n | \"defaultColumn\"\n | \"stateReducer\"\n | \"useControlledState\"\n | \"getRowId\"\n | \"getHooks\"\n | \"getTableProps\"\n >,\n Omit<HvTableOptions<D, H>, \"pageCount\" | \"columns\">,\n Partial<UseColumnOrderInstanceProps<D>>,\n Partial<Omit<UseExpandedInstanceProps<D>, \"rows\">>,\n Partial<Omit<UseFiltersInstanceProps<D>, \"rows\" | \"rowsById\" | \"flatRows\">>,\n Partial<\n Omit<UseGlobalFiltersInstanceProps<D>, \"rows\" | \"rowsById\" | \"flatRows\">\n >,\n Partial<Omit<UseGroupByInstanceProps<D>, \"rows\" | \"rowsById\" | \"flatRows\">>,\n Partial<Omit<UsePaginationInstanceProps<D>, \"page\">>,\n Partial<Omit<UseSortByInstanceProps<D>, \"rows\">>,\n Partial<UseRowStateInstanceProps<D>>,\n Partial<Omit<UseHvRowSelectionTableInstance<D>, \"selectedFlatRows\">>,\n Partial<UseHvTableStickyTableInstance<D>>,\n Partial<UseHvHeaderGroupsInstance>,\n Partial<UseHvPaginationTableInstance<D>>,\n Partial<UseHvBulkActionsTableInstanceProps<D>> {\n initialState: Partial<HvTableState<D>>;\n state: HvTableState<D>;\n columns: Array<HvColumnInstance<D, H>>;\n allColumns: Array<HvColumnInstance<D, H>>;\n visibleColumns: Array<HvColumnInstance<D, H>>;\n headers: Array<HvColumnInstance<D, H>>;\n flatHeaders: Array<HvColumnInstance<D, H>>;\n rows: Array<HvRowInstance<D, H>>;\n page: Array<HvRowInstance<D, H>>;\n rowsById: Record<string, HvRowInstance<D, H>>;\n flatRows: Array<HvRowInstance<D, H>>;\n getHooks: () => HvHooks<D>;\n getTableProps: (propGetter?: HvTablePropGetter<D, H>) => HvUseTableProps;\n prepareRow: (row: HvRowInstance<D, H>) => void;\n selectedFlatRows: Array<HvRowInstance<D, H>>;\n initialRows: Array<HvRowInstance<D, H>>;\n initialRowsById: Record<string, HvRowInstance<D, H>>;\n labels: Record<string, string>;\n headerGroups: Array<HvHeaderGroup<D, H>>;\n footerGroups: Array<HvHeaderGroup<D, H>>;\n}\n\nexport interface HvColumnInstance<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<\n ColumnInstance<D>,\n | \"Cell\"\n | \"columns\"\n | \"parent\"\n | \"placeholderOf\"\n | \"id\"\n | \"Header\"\n | \"getHeaderProps\"\n | \"getFooterProps\"\n | \"Footer\"\n >,\n HvTableColumnOptions<D, H>,\n Partial<UseFiltersColumnProps<D>>,\n Partial<UseGroupByColumnProps<D>>,\n Partial<UseResizeColumnsColumnProps<D>>,\n Partial<UseSortByColumnProps<D>> {\n Cell?: Renderer<HvCellProps<D, H>>;\n columns: Array<HvColumnInstance<D, H>>;\n parent: HvColumnInstance<D, H>;\n placeholderOf?: HvColumnInstance<D, H>;\n getHeaderProps: (\n propGetter?: HvHeaderPropGetter<D, H>,\n ) => HvUseTableHeaderProps;\n getFooterProps: (\n propGetter?: HvFooterPropGetter<D, H>,\n ) => HvUseTableFooterProps;\n}\n\nexport interface HvRowInstance<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n> extends Omit<Row<D>, \"cells\" | \"allCells\" | \"subRows\" | \"getRowProps\">,\n Partial<Omit<UseGroupByRowProps<D>, \"subRows\" | \"values\">>,\n Partial<UseRowStateRowProps<D>>,\n Partial<Omit<UseHvRowExpandRowInstance<D>, \"subRows\">>,\n Partial<UseHvRowSelectionRowInstance> {\n cells: Array<HvCellInstance<D, H>>;\n allCells: Array<HvCellInstance<D, H>>;\n getRowProps: (propGetter?: HvRowPropGetter<D, H>) => HvUseTableRowProps;\n index: number;\n original: D;\n id: string;\n subRows: Array<HvRowInstance<D, H>>;\n}\n\nexport interface HvCellInstance<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n V = any,\n> extends Omit<Cell<D, V>, \"column\" | \"row\" | \"getCellProps\">,\n Partial<UseGroupByCellProps<D>> {\n column: HvColumnInstance<D, H>;\n row: HvRowInstance<D, H>;\n getCellProps: (propGetter?: HvCellPropGetter<D, H>) => HvUseTableCellProps;\n}\n// #endregion\n\n// #region PROPS\nexport interface HvUseTableProps\n extends Omit<TableProps, \"role\">,\n UseHvTableStickyTableProps,\n HvTableProps {}\n\nexport interface HvUseTableHeaderProps\n extends Omit<TableHeaderProps, \"role\">,\n Omit<UseHvTableStylesTableCellProps, \"classes\">,\n UseHvTableStickyColumnProps,\n UseHvHeaderGroupsColumnProps,\n UseHvResizeColumnProps,\n Omit<UseHvSortByColumnProps, \"sortDirection\">,\n HvTableHeaderProps {}\n\nexport interface HvUseTableFooterProps\n extends TableFooterProps,\n UseHvTableStylesTableCellProps {}\n\nexport interface HvUseTableRowProps\n extends Omit<TableRowProps, \"role\">,\n UseHvTableStylesTableRowProps,\n UseHvRowSelectionTableRowProps,\n UseHvRowExpandTableRowProps,\n HvTableRowProps {}\n\nexport interface HvUseTableCellProps\n extends Omit<TableCellProps, \"role\">,\n Omit<UseHvTableStylesTableCellProps, \"variant\" | \"classes\">,\n UseHvTableStickyCellProps,\n UseHvHeaderGroupsCellProps,\n UseHvResizeTableCellProps,\n UseHvSortByTableCellProps,\n HvTableCellProps {}\n\n// #endregion\n\nexport type UseHvTableProps = <\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n options: HvTableOptions<D, H>,\n ...plugins: Array<PluginHook<D>>\n) => HvTableInstance<D, H>;\n\nexport type { PluginHook as HvTablePluginHook };\n\n// #endregion ##### TYPES #####\n\nconst toTitleCase = (str: string) => {\n return str\n .replace(/([^A-Z])([A-Z])/g, \"$1 $2\") // split cameCase\n .replace(/[_-]+/g, \" \") // split snake_case and lisp-case\n .toLowerCase()\n .replace(/(^\\w|\\b\\w)/g, (m) => m.toUpperCase()) // title case words\n .replace(/\\s+/g, \" \") // collapse repeated whitespace\n .trim(); // remove leading/trailing whitespace\n};\n\nfunction useDefaultData<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(data?: HvTableOptions<D, H>[\"data\"]) {\n return useMemo(() => {\n return data || [];\n }, [data]);\n}\n\nfunction useDefaultColumns<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n data: NonNullable<HvTableOptions<D, H>[\"data\"]>,\n columns?: HvTableOptions<D, H>[\"columns\"],\n) {\n return useMemo(() => {\n if (columns != null) {\n return columns;\n }\n\n const uniqueKeys = Object.keys(Object.assign({}, ...data));\n\n return uniqueKeys\n .filter((key) => ![\"subRows\", \"subComponent\"].includes(key))\n .map((key) => ({\n accessor: key,\n Header: toTitleCase(key),\n }));\n }, [columns, data]);\n}\n\nfunction ensureCorePluginInstallation<\n D extends object = Record<string, unknown>,\n>(\n plugins: PluginHook<D>[],\n hvPluginName: string,\n corePluginToInstall: PluginHook<D>,\n) {\n const indexOfCorePlugin = plugins.findIndex(\n (plugin) => plugin.pluginName === corePluginToInstall.pluginName,\n );\n const indexOfHvPlugin = plugins.findIndex(\n (plugin) => plugin.pluginName === hvPluginName,\n );\n\n if (\n indexOfHvPlugin !== -1 &&\n (indexOfCorePlugin === -1 || indexOfCorePlugin > indexOfHvPlugin)\n ) {\n if (indexOfCorePlugin > -1) {\n plugins.splice(indexOfCorePlugin, 1);\n }\n\n plugins.splice(indexOfHvPlugin, 0, corePluginToInstall);\n }\n}\n\nfunction useInstanceHook<D extends object = Record<string, unknown>>(\n instance: TableInstance<D>,\n) {\n const { rowsById } = instance;\n\n Object.assign(instance, {\n initialRowsById: rowsById,\n });\n}\n\nfunction useHvTableSetup<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) {\n hooks.useInstance.push(useInstanceHook);\n}\nuseHvTableSetup.pluginName = \"useHvTableSetup\";\n\nfunction useHvTable<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n options: HvTableOptions<D, H>,\n ...plugins: PluginHook<D>[]\n): HvTableInstance<D, H> {\n const { data: dataProp, columns: columnsProp, ...others } = options;\n\n const data = useDefaultData<D, H>(dataProp);\n const columns = useDefaultColumns<D, H>(data, columnsProp);\n\n ensureCorePluginInstallation<D>(plugins, \"useHvPagination\", usePagination);\n ensureCorePluginInstallation<D>(plugins, \"useHvRowExpand\", useExpanded);\n ensureCorePluginInstallation<D>(plugins, \"useHvSortBy\", useSortBy);\n ensureCorePluginInstallation<D>(\n plugins,\n \"useHvResizeColumns\",\n useResizeColumns,\n );\n\n const indexOfHvTableStylesPlugin = plugins.findIndex(\n (plugin) => plugin.pluginName === \"useHvTableStyles\",\n );\n if (indexOfHvTableStylesPlugin === -1) {\n plugins.push(useHvTableStyles);\n }\n\n // Main hook call\n return useTable<D>(\n {\n data,\n columns,\n ...others,\n } as any,\n useHvTableSetup,\n ...plugins,\n ) as any;\n}\n\nexport default useHvTable;\n"],"names":["useHvTableStyles"],"mappings":";;;AAqlBA,MAAM,cAAc,CAAC,QAAgB;AAC5B,SAAA,IACJ,QAAQ,oBAAoB,OAAO,EACnC,QAAQ,UAAU,GAAG,EACrB,YAAY,EACZ,QAAQ,eAAe,CAAC,MAAM,EAAE,YAAY,CAAC,EAC7C,QAAQ,QAAQ,GAAG,EACnB,KAAK;AACV;AAEA,SAAS,eAGP,MAAqC;AACrC,SAAO,QAAQ,MAAM;AACnB,WAAO,QAAQ,CAAC;AAAA,EAAA,GACf,CAAC,IAAI,CAAC;AACX;AAEA,SAAS,kBAIP,MACA,SACA;AACA,SAAO,QAAQ,MAAM;AACnB,QAAI,WAAW,MAAM;AACZ,aAAA;AAAA,IAAA;AAGH,UAAA,aAAa,OAAO,KAAK,OAAO,OAAO,CAAC,GAAG,GAAG,IAAI,CAAC;AAEzD,WAAO,WACJ,OAAO,CAAC,QAAQ,CAAC,CAAC,WAAW,cAAc,EAAE,SAAS,GAAG,CAAC,EAC1D,IAAI,CAAC,SAAS;AAAA,MACb,UAAU;AAAA,MACV,QAAQ,YAAY,GAAG;AAAA,IAAA,EACvB;AAAA,EAAA,GACH,CAAC,SAAS,IAAI,CAAC;AACpB;AAEA,SAAS,6BAGP,SACA,cACA,qBACA;AACA,QAAM,oBAAoB,QAAQ;AAAA,IAChC,CAAC,WAAW,OAAO,eAAe,oBAAoB;AAAA,EACxD;AACA,QAAM,kBAAkB,QAAQ;AAAA,IAC9B,CAAC,WAAW,OAAO,eAAe;AAAA,EACpC;AAEA,MACE,oBAAoB,OACnB,sBAAsB,MAAM,oBAAoB,kBACjD;AACA,QAAI,oBAAoB,IAAI;AAClB,cAAA,OAAO,mBAAmB,CAAC;AAAA,IAAA;AAG7B,YAAA,OAAO,iBAAiB,GAAG,mBAAmB;AAAA,EAAA;AAE1D;AAEA,SAAS,gBACP,UACA;AACM,QAAA,EAAE,aAAa;AAErB,SAAO,OAAO,UAAU;AAAA,IACtB,iBAAiB;AAAA,EAAA,CAClB;AACH;AAEA,SAAS,gBACP,OACA;AACM,QAAA,YAAY,KAAK,eAAe;AACxC;AACA,gBAAgB,aAAa;AAE7B,SAAS,WAIP,YACG,SACoB;AACvB,QAAM,EAAE,MAAM,UAAU,SAAS,aAAa,GAAG,WAAW;AAEtD,QAAA,OAAO,eAAqB,QAAQ;AACpC,QAAA,UAAU,kBAAwB,MAAM,WAAW;AAEzB,+BAAA,SAAS,mBAAmB,aAAa;AACzC,+BAAA,SAAS,kBAAkB,WAAW;AACtC,+BAAA,SAAS,eAAe,SAAS;AACjE;AAAA,IACE;AAAA,IACA;AAAA,IACA;AAAA,EACF;AAEA,QAAM,6BAA6B,QAAQ;AAAA,IACzC,CAAC,WAAW,OAAO,eAAe;AAAA,EACpC;AACA,MAAI,+BAA+B,IAAI;AACrC,YAAQ,KAAKA,cAAgB;AAAA,EAAA;AAIxB,SAAA;AAAA,IACL;AAAA,MACE;AAAA,MACA;AAAA,MACA,GAAG;AAAA,IACL;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL;AACF;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTableStyles.js","sources":["../../../../src/Table/hooks/useTableStyles.ts"],"sourcesContent":["import { Hooks } from \"react-table\";\nimport { clsx } from \"clsx\";\n\n// #region ##### TYPES #####\n\nexport type UseHvTableStylesTableOptions = {\n style?: React.CSSProperties;\n className?: string;\n classes?: Record<string, string>;\n component?: any;\n};\n\n// column definition:\nexport interface UseHvTableStylesColumnOptions {\n variant?: \"checkbox\" | \"expand\" | \"actions\" | \"default\" | \"none\";\n align?: \"center\" | \"inherit\" | \"justify\" | \"left\" | \"right\";\n\n style?: React.CSSProperties;\n className?: string;\n classes?: Record<string, string>;\n\n headerStyle?: React.CSSProperties;\n headerClassName?: string;\n headerClasses?: Record<string, string>;\n\n cellStyle?: React.CSSProperties;\n cellClassName?: string;\n cellClasses?: Record<string, string>;\n}\n\n// PROPS:\nexport interface UseHvTableStylesTableRowProps {\n hover?: boolean;\n}\n\nexport interface UseHvTableStylesTableCellProps {\n style?: React.CSSProperties;\n className?: string;\n classes?: Record<string, string>;\n variant?: \"checkbox\" | \"expand\" | \"actions\" | \"default\" | \"none\";\n align?: \"center\" | \"inherit\" | \"justify\" | \"left\" | \"right\";\n}\n\nexport type UseTableStylesProps = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// props target: <table>\nconst getTablePropsHook = (props: any, { instance }: any) => {\n const nextProps: UseHvTableStylesTableOptions = {\n component: instance.tableComponent,\n };\n\n if (instance.style != null) {\n nextProps.style = instance.style;\n }\n\n if (instance.className != null) {\n nextProps.className = instance.className;\n }\n\n if (instance.classes != null) {\n nextProps.classes = instance.classes;\n }\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr><th>\nexport const getHeaderFooterPropsHook = (props: any, { column }: any) => {\n const nextProps: UseHvTableStylesColumnOptions = {\n variant: column.variant,\n align: column.align,\n };\n\n if (column.style != null || column.headerStyle != null) {\n nextProps.style = {\n ...props.style,\n ...column.style,\n ...column.headerStyle,\n };\n }\n\n if (column.className != null || column.headerClassName != null) {\n nextProps.className = clsx(\n props.className,\n column.className,\n column.headerClassName,\n );\n }\n\n if (column.classes != null || column.headerClasses) {\n nextProps.classes = {\n ...props.classes,\n ...column.classes,\n ...column.headerClasses,\n };\n }\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr>\nconst getRowPropsHook = (props: any) => {\n const nextProps: UseHvTableStylesTableRowProps = {\n hover: true,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props: any, { cell }: any) => {\n const nextProps: UseHvTableStylesTableCellProps = {\n variant: cell.column.variant,\n align: cell.column.align,\n };\n\n if (cell.column.style != null || cell.column.cellStyle != null) {\n nextProps.style = {\n ...props.style,\n ...cell.column.style,\n ...cell.column.cellStyle,\n };\n }\n\n if (cell.column.className != null || cell.column.cellClassName != null) {\n nextProps.className = clsx(\n props.className,\n cell.column.className,\n cell.column.cellClassName,\n );\n }\n\n if (cell.column.classes != null || cell.column.cellClasses) {\n nextProps.classes = {\n ...props.classes,\n ...cell.column.classes,\n ...cell.column.cellClasses,\n };\n }\n\n return [props, nextProps];\n};\n\nconst useTableStyles: UseTableStylesProps = (hooks) => {\n // props target: <table>\n hooks.getTableProps.push(getTablePropsHook);\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderFooterPropsHook);\n // props target: <table><tfoot><tr><td>\n hooks.getFooterProps.push(getHeaderFooterPropsHook);\n // props target: <table><tbody><tr>\n hooks.getRowProps.push(getRowPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n};\n\nuseTableStyles.pluginName = \"useHvTableStyles\";\n\nexport default useTableStyles;\n"],"names":[],"mappings":";AAkDA,MAAM,oBAAoB,CAAC,OAAY,EAAE,eAAoB;AAC3D,QAAM,YAA0C;AAAA,IAC9C,WAAW,SAAS;AAAA,EAAA;AAGlB,MAAA,SAAS,SAAS,MAAM;AAC1B,cAAU,QAAQ,SAAS;AAAA,EAC7B;AAEI,MAAA,SAAS,aAAa,MAAM;AAC9B,cAAU,YAAY,SAAS;AAAA,EACjC;AAEI,MAAA,SAAS,WAAW,MAAM;AAC5B,cAAU,UAAU,SAAS;AAAA,EAC/B;AAEO,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGO,MAAM,2BAA2B,CAAC,OAAY,EAAE,aAAkB;AACvE,QAAM,YAA2C;AAAA,IAC/C,SAAS,OAAO;AAAA,IAChB,OAAO,OAAO;AAAA,EAAA;AAGhB,MAAI,OAAO,SAAS,QAAQ,OAAO,eAAe,MAAM;AACtD,cAAU,QAAQ;AAAA,MAChB,GAAG,MAAM;AAAA,MACT,GAAG,OAAO;AAAA,MACV,GAAG,OAAO;AAAA,IAAA;AAAA,EAEd;AAEA,MAAI,OAAO,aAAa,QAAQ,OAAO,mBAAmB,MAAM;AAC9D,cAAU,YAAY;AAAA,MACpB,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,IAAA;AAAA,EAEX;AAEA,MAAI,OAAO,WAAW,QAAQ,OAAO,eAAe;AAClD,cAAU,UAAU;AAAA,MAClB,GAAG,MAAM;AAAA,MACT,GAAG,OAAO;AAAA,MACV,GAAG,OAAO;AAAA,IAAA;AAAA,EAEd;AAEO,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGA,MAAM,kBAAkB,CAAC,UAAe;AACtC,QAAM,YAA2C;AAAA,IAC/C,OAAO;AAAA,EAAA;AAGF,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGA,MAAM,mBAAmB,CAAC,OAAY,EAAE,WAAgB;AACtD,QAAM,YAA4C;AAAA,IAChD,SAAS,KAAK,OAAO;AAAA,IACrB,OAAO,KAAK,OAAO;AAAA,EAAA;AAGrB,MAAI,KAAK,OAAO,SAAS,QAAQ,KAAK,OAAO,aAAa,MAAM;AAC9D,cAAU,QAAQ;AAAA,MAChB,GAAG,MAAM;AAAA,MACT,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,OAAO;AAAA,IAAA;AAAA,EAEnB;AAEA,MAAI,KAAK,OAAO,aAAa,QAAQ,KAAK,OAAO,iBAAiB,MAAM;AACtE,cAAU,YAAY;AAAA,MACpB,MAAM;AAAA,MACN,KAAK,OAAO;AAAA,MACZ,KAAK,OAAO;AAAA,IAAA;AAAA,EAEhB;AAEA,MAAI,KAAK,OAAO,WAAW,QAAQ,KAAK,OAAO,aAAa;AAC1D,cAAU,UAAU;AAAA,MAClB,GAAG,MAAM;AAAA,MACT,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,OAAO;AAAA,IAAA;AAAA,EAEnB;AAEO,SAAA,CAAC,OAAO,SAAS;AAC1B;AAEM,MAAA,iBAAsC,CAAC,UAAU;AAE/C,QAAA,cAAc,KAAK,iBAAiB;AAEpC,QAAA,eAAe,KAAK,wBAAwB;AAE5C,QAAA,eAAe,KAAK,wBAAwB;AAE5C,QAAA,YAAY,KAAK,eAAe;AAEhC,QAAA,aAAa,KAAK,gBAAgB;AAC1C;AAEA,eAAe,aAAa;"}
1
+ {"version":3,"file":"useTableStyles.js","sources":["../../../../src/Table/hooks/useTableStyles.ts"],"sourcesContent":["import { Hooks } from \"react-table\";\nimport { clsx } from \"clsx\";\n\n// #region ##### TYPES #####\n\nexport type UseHvTableStylesTableOptions = {\n style?: React.CSSProperties;\n className?: string;\n classes?: Record<string, string>;\n component?: any;\n};\n\n// column definition:\nexport interface UseHvTableStylesColumnOptions {\n variant?: \"checkbox\" | \"expand\" | \"actions\" | \"default\" | \"none\";\n align?: \"center\" | \"inherit\" | \"justify\" | \"left\" | \"right\";\n\n style?: React.CSSProperties;\n className?: string;\n classes?: Record<string, string>;\n\n headerStyle?: React.CSSProperties;\n headerClassName?: string;\n headerClasses?: Record<string, string>;\n\n cellStyle?: React.CSSProperties;\n cellClassName?: string;\n cellClasses?: Record<string, string>;\n}\n\n// PROPS:\nexport interface UseHvTableStylesTableRowProps {\n hover?: boolean;\n}\n\nexport interface UseHvTableStylesTableCellProps {\n style?: React.CSSProperties;\n className?: string;\n classes?: Record<string, string>;\n variant?: \"checkbox\" | \"expand\" | \"actions\" | \"default\" | \"none\";\n align?: \"center\" | \"inherit\" | \"justify\" | \"left\" | \"right\";\n}\n\nexport type UseTableStylesProps = (<D extends object = Record<string, unknown>>(\n hooks: Hooks<D>,\n) => void) & { pluginName: string };\n\n// #endregion ##### TYPES #####\n\n// props target: <table>\nconst getTablePropsHook = (props: any, { instance }: any) => {\n const nextProps: UseHvTableStylesTableOptions = {\n component: instance.tableComponent,\n };\n\n if (instance.style != null) {\n nextProps.style = instance.style;\n }\n\n if (instance.className != null) {\n nextProps.className = instance.className;\n }\n\n if (instance.classes != null) {\n nextProps.classes = instance.classes;\n }\n\n return [props, nextProps];\n};\n\n// props target: <table><thead><tr><th>\nexport const getHeaderFooterPropsHook = (props: any, { column }: any) => {\n const nextProps: UseHvTableStylesColumnOptions = {\n variant: column.variant,\n align: column.align,\n };\n\n if (column.style != null || column.headerStyle != null) {\n nextProps.style = {\n ...props.style,\n ...column.style,\n ...column.headerStyle,\n };\n }\n\n if (column.className != null || column.headerClassName != null) {\n nextProps.className = clsx(\n props.className,\n column.className,\n column.headerClassName,\n );\n }\n\n if (column.classes != null || column.headerClasses) {\n nextProps.classes = {\n ...props.classes,\n ...column.classes,\n ...column.headerClasses,\n };\n }\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr>\nconst getRowPropsHook = (props: any) => {\n const nextProps: UseHvTableStylesTableRowProps = {\n hover: true,\n };\n\n return [props, nextProps];\n};\n\n// props target: <table><tbody><tr><td>\nconst getCellPropsHook = (props: any, { cell }: any) => {\n const nextProps: UseHvTableStylesTableCellProps = {\n variant: cell.column.variant,\n align: cell.column.align,\n };\n\n if (cell.column.style != null || cell.column.cellStyle != null) {\n nextProps.style = {\n ...props.style,\n ...cell.column.style,\n ...cell.column.cellStyle,\n };\n }\n\n if (cell.column.className != null || cell.column.cellClassName != null) {\n nextProps.className = clsx(\n props.className,\n cell.column.className,\n cell.column.cellClassName,\n );\n }\n\n if (cell.column.classes != null || cell.column.cellClasses) {\n nextProps.classes = {\n ...props.classes,\n ...cell.column.classes,\n ...cell.column.cellClasses,\n };\n }\n\n return [props, nextProps];\n};\n\nconst useTableStyles: UseTableStylesProps = (hooks) => {\n // props target: <table>\n hooks.getTableProps.push(getTablePropsHook);\n // props target: <table><thead><tr><th>\n hooks.getHeaderProps.push(getHeaderFooterPropsHook);\n // props target: <table><tfoot><tr><td>\n hooks.getFooterProps.push(getHeaderFooterPropsHook);\n // props target: <table><tbody><tr>\n hooks.getRowProps.push(getRowPropsHook);\n // props target: <table><tbody><tr><td>\n hooks.getCellProps.push(getCellPropsHook);\n};\n\nuseTableStyles.pluginName = \"useHvTableStyles\";\n\nexport default useTableStyles;\n"],"names":[],"mappings":";AAkDA,MAAM,oBAAoB,CAAC,OAAY,EAAE,eAAoB;AAC3D,QAAM,YAA0C;AAAA,IAC9C,WAAW,SAAS;AAAA,EACtB;AAEI,MAAA,SAAS,SAAS,MAAM;AAC1B,cAAU,QAAQ,SAAS;AAAA,EAAA;AAGzB,MAAA,SAAS,aAAa,MAAM;AAC9B,cAAU,YAAY,SAAS;AAAA,EAAA;AAG7B,MAAA,SAAS,WAAW,MAAM;AAC5B,cAAU,UAAU,SAAS;AAAA,EAAA;AAGxB,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGO,MAAM,2BAA2B,CAAC,OAAY,EAAE,aAAkB;AACvE,QAAM,YAA2C;AAAA,IAC/C,SAAS,OAAO;AAAA,IAChB,OAAO,OAAO;AAAA,EAChB;AAEA,MAAI,OAAO,SAAS,QAAQ,OAAO,eAAe,MAAM;AACtD,cAAU,QAAQ;AAAA,MAChB,GAAG,MAAM;AAAA,MACT,GAAG,OAAO;AAAA,MACV,GAAG,OAAO;AAAA,IACZ;AAAA,EAAA;AAGF,MAAI,OAAO,aAAa,QAAQ,OAAO,mBAAmB,MAAM;AAC9D,cAAU,YAAY;AAAA,MACpB,MAAM;AAAA,MACN,OAAO;AAAA,MACP,OAAO;AAAA,IACT;AAAA,EAAA;AAGF,MAAI,OAAO,WAAW,QAAQ,OAAO,eAAe;AAClD,cAAU,UAAU;AAAA,MAClB,GAAG,MAAM;AAAA,MACT,GAAG,OAAO;AAAA,MACV,GAAG,OAAO;AAAA,IACZ;AAAA,EAAA;AAGK,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGA,MAAM,kBAAkB,CAAC,UAAe;AACtC,QAAM,YAA2C;AAAA,IAC/C,OAAO;AAAA,EACT;AAEO,SAAA,CAAC,OAAO,SAAS;AAC1B;AAGA,MAAM,mBAAmB,CAAC,OAAY,EAAE,WAAgB;AACtD,QAAM,YAA4C;AAAA,IAChD,SAAS,KAAK,OAAO;AAAA,IACrB,OAAO,KAAK,OAAO;AAAA,EACrB;AAEA,MAAI,KAAK,OAAO,SAAS,QAAQ,KAAK,OAAO,aAAa,MAAM;AAC9D,cAAU,QAAQ;AAAA,MAChB,GAAG,MAAM;AAAA,MACT,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,OAAO;AAAA,IACjB;AAAA,EAAA;AAGF,MAAI,KAAK,OAAO,aAAa,QAAQ,KAAK,OAAO,iBAAiB,MAAM;AACtE,cAAU,YAAY;AAAA,MACpB,MAAM;AAAA,MACN,KAAK,OAAO;AAAA,MACZ,KAAK,OAAO;AAAA,IACd;AAAA,EAAA;AAGF,MAAI,KAAK,OAAO,WAAW,QAAQ,KAAK,OAAO,aAAa;AAC1D,cAAU,UAAU;AAAA,MAClB,GAAG,MAAM;AAAA,MACT,GAAG,KAAK,OAAO;AAAA,MACf,GAAG,KAAK,OAAO;AAAA,IACjB;AAAA,EAAA;AAGK,SAAA,CAAC,OAAO,SAAS;AAC1B;AAEM,MAAA,iBAAsC,CAAC,UAAU;AAE/C,QAAA,cAAc,KAAK,iBAAiB;AAEpC,QAAA,eAAe,KAAK,wBAAwB;AAE5C,QAAA,eAAe,KAAK,wBAAwB;AAE5C,QAAA,YAAY,KAAK,eAAe;AAEhC,QAAA,aAAa,KAAK,gBAAgB;AAC1C;AAEA,eAAe,aAAa;"}
@@ -1 +1 @@
1
- {"version":3,"file":"DateColumnCell.js","sources":["../../../../../src/Table/renderers/DateColumnCell/DateColumnCell.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport dayjs from \"dayjs\";\n\nimport { HvOverflowTooltip } from \"../../../OverflowTooltip\";\n\nexport interface HvDateColumnCellProp {\n /** The date's text representation format. */\n dateFormat?: string;\n /** Date to render. */\n date?: string;\n}\n\nexport const HvDateColumnCell = ({\n date,\n dateFormat,\n}: HvDateColumnCellProp): JSX.Element => {\n const formattedDate = useMemo(() => {\n if (date)\n return dayjs(date).format(\n dateFormat !== \"ISO8601\" ? dateFormat : undefined,\n );\n return \"—\";\n }, [date, dateFormat]);\n\n return <HvOverflowTooltip data={formattedDate} />;\n};\n"],"names":[],"mappings":";;;;AAYO,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AACF,MAAyC;AACjC,QAAA,gBAAgB,QAAQ,MAAM;AAC9B,QAAA;AACK,aAAA,MAAM,IAAI,EAAE;AAAA,QACjB,eAAe,YAAY,aAAa;AAAA,MAAA;AAErC,WAAA;AAAA,EAAA,GACN,CAAC,MAAM,UAAU,CAAC;AAEd,SAAA,oBAAC,mBAAkB,EAAA,MAAM,cAAe,CAAA;AACjD;"}
1
+ {"version":3,"file":"DateColumnCell.js","sources":["../../../../../src/Table/renderers/DateColumnCell/DateColumnCell.tsx"],"sourcesContent":["import { useMemo } from \"react\";\nimport dayjs from \"dayjs\";\n\nimport { HvOverflowTooltip } from \"../../../OverflowTooltip\";\n\nexport interface HvDateColumnCellProp {\n /** The date's text representation format. */\n dateFormat?: string;\n /** Date to render. */\n date?: string;\n}\n\nexport const HvDateColumnCell = ({\n date,\n dateFormat,\n}: HvDateColumnCellProp): JSX.Element => {\n const formattedDate = useMemo(() => {\n if (date)\n return dayjs(date).format(\n dateFormat !== \"ISO8601\" ? dateFormat : undefined,\n );\n return \"—\";\n }, [date, dateFormat]);\n\n return <HvOverflowTooltip data={formattedDate} />;\n};\n"],"names":[],"mappings":";;;;AAYO,MAAM,mBAAmB,CAAC;AAAA,EAC/B;AAAA,EACA;AACF,MAAyC;AACjC,QAAA,gBAAgB,QAAQ,MAAM;AAC9B,QAAA;AACK,aAAA,MAAM,IAAI,EAAE;AAAA,QACjB,eAAe,YAAY,aAAa;AAAA,MAC1C;AACK,WAAA;AAAA,EAAA,GACN,CAAC,MAAM,UAAU,CAAC;AAEd,SAAA,oBAAC,mBAAkB,EAAA,MAAM,cAAe,CAAA;AACjD;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressColumnCell.js","sources":["../../../../../src/Table/renderers/ProgressColumnCell/ProgressColumnCell.tsx"],"sourcesContent":["import MuiLinearProgress from \"@mui/material/LinearProgress\";\n\nimport { useClasses } from \"./ProgressColumnCell.styles\";\n\nexport interface HvProgressColumnCellProp {\n /** Current value of the bar. */\n partial: number;\n /** Maximum value of the bar. */\n total: number;\n /** The color of the bar. */\n color?: \"primary\" | \"secondary\";\n \"aria-labelledby\"?: string;\n}\n\nexport const normalizeProgressBar = (value: number, max: number) => {\n return max > 0 ? Math.floor((value * 100) / max) : 0;\n};\n\nexport const HvProgressColumnCell = ({\n partial,\n total,\n color = \"primary\",\n \"aria-labelledby\": ariaLabelledBy,\n}: HvProgressColumnCellProp): JSX.Element => {\n const { classes } = useClasses();\n\n const percentage = normalizeProgressBar(partial, total);\n\n return (\n <div className={classes.root}>\n <div className={classes.linearProgressContainer}>\n <MuiLinearProgress\n className={classes.linearProgress}\n classes={{\n root: classes.linearProgressRoot,\n colorPrimary: classes.linearProgressColorPrimary,\n barColorPrimary: classes.linearProgressBarColorPrimary,\n barColorSecondary: classes.linearProgressBarColorSecondary,\n }}\n color={color}\n variant=\"determinate\"\n value={percentage}\n aria-labelledby={ariaLabelledBy}\n />\n </div>\n </div>\n );\n};\n"],"names":[],"mappings":";;;AAca,MAAA,uBAAuB,CAAC,OAAe,QAAgB;AAClE,SAAO,MAAM,IAAI,KAAK,MAAO,QAAQ,MAAO,GAAG,IAAI;AACrD;AAEO,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,mBAAmB;AACrB,MAA6C;AACrC,QAAA,EAAE,YAAY;AAEd,QAAA,aAAa,qBAAqB,SAAS,KAAK;AAGpD,SAAA,oBAAC,SAAI,WAAW,QAAQ,MACtB,UAAC,oBAAA,OAAA,EAAI,WAAW,QAAQ,yBACtB,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,QAAQ;AAAA,MACnB,SAAS;AAAA,QACP,MAAM,QAAQ;AAAA,QACd,cAAc,QAAQ;AAAA,QACtB,iBAAiB,QAAQ;AAAA,QACzB,mBAAmB,QAAQ;AAAA,MAC7B;AAAA,MACA;AAAA,MACA,SAAQ;AAAA,MACR,OAAO;AAAA,MACP,mBAAiB;AAAA,IAAA;AAAA,EAAA,EAErB,CAAA,EACF,CAAA;AAEJ;"}
1
+ {"version":3,"file":"ProgressColumnCell.js","sources":["../../../../../src/Table/renderers/ProgressColumnCell/ProgressColumnCell.tsx"],"sourcesContent":["import MuiLinearProgress from \"@mui/material/LinearProgress\";\n\nimport { useClasses } from \"./ProgressColumnCell.styles\";\n\nexport interface HvProgressColumnCellProp {\n /** Current value of the bar. */\n partial: number;\n /** Maximum value of the bar. */\n total: number;\n /** The color of the bar. */\n color?: \"primary\" | \"secondary\";\n \"aria-labelledby\"?: string;\n}\n\nexport const normalizeProgressBar = (value: number, max: number) => {\n return max > 0 ? Math.floor((value * 100) / max) : 0;\n};\n\nexport const HvProgressColumnCell = ({\n partial,\n total,\n color = \"primary\",\n \"aria-labelledby\": ariaLabelledBy,\n}: HvProgressColumnCellProp): JSX.Element => {\n const { classes } = useClasses();\n\n const percentage = normalizeProgressBar(partial, total);\n\n return (\n <div className={classes.root}>\n <div className={classes.linearProgressContainer}>\n <MuiLinearProgress\n className={classes.linearProgress}\n classes={{\n root: classes.linearProgressRoot,\n colorPrimary: classes.linearProgressColorPrimary,\n barColorPrimary: classes.linearProgressBarColorPrimary,\n barColorSecondary: classes.linearProgressBarColorSecondary,\n }}\n color={color}\n variant=\"determinate\"\n value={percentage}\n aria-labelledby={ariaLabelledBy}\n />\n </div>\n </div>\n );\n};\n"],"names":[],"mappings":";;;AAca,MAAA,uBAAuB,CAAC,OAAe,QAAgB;AAClE,SAAO,MAAM,IAAI,KAAK,MAAO,QAAQ,MAAO,GAAG,IAAI;AACrD;AAEO,MAAM,uBAAuB,CAAC;AAAA,EACnC;AAAA,EACA;AAAA,EACA,QAAQ;AAAA,EACR,mBAAmB;AACrB,MAA6C;AACrC,QAAA,EAAE,QAAQ,IAAI,WAAW;AAEzB,QAAA,aAAa,qBAAqB,SAAS,KAAK;AAGpD,SAAA,oBAAC,SAAI,WAAW,QAAQ,MACtB,UAAC,oBAAA,OAAA,EAAI,WAAW,QAAQ,yBACtB,UAAA;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAW,QAAQ;AAAA,MACnB,SAAS;AAAA,QACP,MAAM,QAAQ;AAAA,QACd,cAAc,QAAQ;AAAA,QACtB,iBAAiB,QAAQ;AAAA,QACzB,mBAAmB,QAAQ;AAAA,MAC7B;AAAA,MACA;AAAA,MACA,SAAQ;AAAA,MACR,OAAO;AAAA,MACP,mBAAiB;AAAA,IAAA;AAAA,KAErB,EACF,CAAA;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"ProgressColumnCell.styles.js","sources":["../../../../../src/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvTable-ProgressColumnCell\",\n {\n root: { display: \"flex\", width: \"100%\" },\n linearProgressContainer: { width: \"100%\", margin: \"auto\" },\n linearProgress: {\n height: 8,\n },\n linearProgressRoot: { backgroundColor: theme.colors.atmo4 },\n linearProgressColorPrimary: {\n backgroundColor: theme.colors.atmo4,\n },\n linearProgressBarColorPrimary: {\n backgroundColor: theme.colors.positive,\n },\n linearProgressBarColorSecondary: {\n backgroundColor: theme.colors.secondary,\n },\n },\n);\n"],"names":[],"mappings":";;AAGa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM,EAAE,SAAS,QAAQ,OAAO,OAAO;AAAA,IACvC,yBAAyB,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA,IACzD,gBAAgB;AAAA,MACd,QAAQ;AAAA,IACV;AAAA,IACA,oBAAoB,EAAE,iBAAiB,MAAM,OAAO,MAAM;AAAA,IAC1D,4BAA4B;AAAA,MAC1B,iBAAiB,MAAM,OAAO;AAAA,IAChC;AAAA,IACA,+BAA+B;AAAA,MAC7B,iBAAiB,MAAM,OAAO;AAAA,IAChC;AAAA,IACA,iCAAiC;AAAA,MAC/B,iBAAiB,MAAM,OAAO;AAAA,IAChC;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"ProgressColumnCell.styles.js","sources":["../../../../../src/Table/renderers/ProgressColumnCell/ProgressColumnCell.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\nimport { theme } from \"@hitachivantara/uikit-styles\";\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvTable-ProgressColumnCell\",\n {\n root: { display: \"flex\", width: \"100%\" },\n linearProgressContainer: { width: \"100%\", margin: \"auto\" },\n linearProgress: {\n height: 8,\n },\n linearProgressRoot: { backgroundColor: theme.colors.atmo4 },\n linearProgressColorPrimary: {\n backgroundColor: theme.colors.atmo4,\n },\n linearProgressBarColorPrimary: {\n backgroundColor: theme.colors.positive,\n },\n linearProgressBarColorSecondary: {\n backgroundColor: theme.colors.secondary,\n },\n },\n);\n"],"names":[],"mappings":";;AAGa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,MAAM,EAAE,SAAS,QAAQ,OAAO,OAAO;AAAA,IACvC,yBAAyB,EAAE,OAAO,QAAQ,QAAQ,OAAO;AAAA,IACzD,gBAAgB;AAAA,MACd,QAAQ;AAAA,IACV;AAAA,IACA,oBAAoB,EAAE,iBAAiB,MAAM,OAAO,MAAM;AAAA,IAC1D,4BAA4B;AAAA,MAC1B,iBAAiB,MAAM,OAAO;AAAA,IAChC;AAAA,IACA,+BAA+B;AAAA,MAC7B,iBAAiB,MAAM,OAAO;AAAA,IAChC;AAAA,IACA,iCAAiC;AAAA,MAC/B,iBAAiB,MAAM,OAAO;AAAA,IAAA;AAAA,EAChC;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchColumnCell.js","sources":["../../../../../src/Table/renderers/SwitchColumnCell/SwitchColumnCell.tsx"],"sourcesContent":["import { HvBaseSwitch, HvBaseSwitchProps } from \"../../../BaseSwitch\";\nimport { HvTypography } from \"../../../Typography\";\nimport { useClasses } from \"./SwitchColumnCell.styles\";\n\nexport interface HvSwitchColumnCellProp {\n /** Whether the switch is checked or not. */\n checked: boolean;\n /** The switch label. */\n value: number | string | undefined;\n /** The value of the switch. */\n switchLabel: string;\n /** The right switch label. */\n falseLabel?: string;\n /** The left switch label. */\n trueLabel?: string;\n /** Extra props to be passed to the switch. */\n switchProps?: HvBaseSwitchProps;\n}\n\nexport const HvSwitchColumnCell = ({\n checked,\n value,\n switchLabel,\n falseLabel,\n trueLabel,\n switchProps,\n}: HvSwitchColumnCellProp): JSX.Element => {\n const { classes } = useClasses();\n\n return (\n <>\n {falseLabel != null && (\n <HvTypography\n aria-hidden=\"true\"\n variant=\"body\"\n className={classes.switchNo}\n >\n {falseLabel}\n </HvTypography>\n )}\n <HvBaseSwitch\n checked={checked}\n value={value}\n {...switchProps}\n inputProps={{ \"aria-label\": switchLabel, ...switchProps?.inputProps }}\n />\n {trueLabel != null && (\n <HvTypography\n aria-hidden=\"true\"\n variant=\"body\"\n className={classes.switchYes}\n >\n {trueLabel}\n </HvTypography>\n )}\n </>\n );\n};\n"],"names":[],"mappings":";;;;AAmBO,MAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA2C;AACnC,QAAA,EAAE,YAAY;AAEpB,SAEK,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA,cAAc,QACb;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,SAAQ;AAAA,QACR,WAAW,QAAQ;AAAA,QAElB,UAAA;AAAA,MAAA;AAAA,IACH;AAAA,IAEF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACC,GAAG;AAAA,QACJ,YAAY,EAAE,cAAc,aAAa,GAAG,aAAa,WAAW;AAAA,MAAA;AAAA,IACtE;AAAA,IACC,aAAa,QACZ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,SAAQ;AAAA,QACR,WAAW,QAAQ;AAAA,QAElB,UAAA;AAAA,MAAA;AAAA,IACH;AAAA,EAEJ,EAAA,CAAA;AAEJ;"}
1
+ {"version":3,"file":"SwitchColumnCell.js","sources":["../../../../../src/Table/renderers/SwitchColumnCell/SwitchColumnCell.tsx"],"sourcesContent":["import { HvBaseSwitch, HvBaseSwitchProps } from \"../../../BaseSwitch\";\nimport { HvTypography } from \"../../../Typography\";\nimport { useClasses } from \"./SwitchColumnCell.styles\";\n\nexport interface HvSwitchColumnCellProp {\n /** Whether the switch is checked or not. */\n checked: boolean;\n /** The switch label. */\n value: number | string | undefined;\n /** The value of the switch. */\n switchLabel: string;\n /** The right switch label. */\n falseLabel?: string;\n /** The left switch label. */\n trueLabel?: string;\n /** Extra props to be passed to the switch. */\n switchProps?: HvBaseSwitchProps;\n}\n\nexport const HvSwitchColumnCell = ({\n checked,\n value,\n switchLabel,\n falseLabel,\n trueLabel,\n switchProps,\n}: HvSwitchColumnCellProp): JSX.Element => {\n const { classes } = useClasses();\n\n return (\n <>\n {falseLabel != null && (\n <HvTypography\n aria-hidden=\"true\"\n variant=\"body\"\n className={classes.switchNo}\n >\n {falseLabel}\n </HvTypography>\n )}\n <HvBaseSwitch\n checked={checked}\n value={value}\n {...switchProps}\n inputProps={{ \"aria-label\": switchLabel, ...switchProps?.inputProps }}\n />\n {trueLabel != null && (\n <HvTypography\n aria-hidden=\"true\"\n variant=\"body\"\n className={classes.switchYes}\n >\n {trueLabel}\n </HvTypography>\n )}\n </>\n );\n};\n"],"names":[],"mappings":";;;;AAmBO,MAAM,qBAAqB,CAAC;AAAA,EACjC;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF,MAA2C;AACnC,QAAA,EAAE,QAAQ,IAAI,WAAW;AAE/B,SAEK,qBAAA,UAAA,EAAA,UAAA;AAAA,IAAA,cAAc,QACb;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,SAAQ;AAAA,QACR,WAAW,QAAQ;AAAA,QAElB,UAAA;AAAA,MAAA;AAAA,IACH;AAAA,IAEF;AAAA,MAAC;AAAA,MAAA;AAAA,QACC;AAAA,QACA;AAAA,QACC,GAAG;AAAA,QACJ,YAAY,EAAE,cAAc,aAAa,GAAG,aAAa,WAAW;AAAA,MAAA;AAAA,IACtE;AAAA,IACC,aAAa,QACZ;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,eAAY;AAAA,QACZ,SAAQ;AAAA,QACR,WAAW,QAAQ;AAAA,QAElB,UAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACH,GAEJ;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"SwitchColumnCell.styles.js","sources":["../../../../../src/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\n\nconst switchStyle = {\n cursor: \"pointer\",\n display: \"inline-flex\",\n marginLeft: \"10px\",\n};\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvTable-SwitchColumnCell\",\n {\n switchNo: {\n ...switchStyle,\n },\n switchYes: {\n ...switchStyle,\n },\n },\n);\n"],"names":[],"mappings":";AAEA,MAAM,cAAc;AAAA,EAClB,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,YAAY;AACd;AAEa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,GAAG;AAAA,IACL;AAAA,IACA,WAAW;AAAA,MACT,GAAG;AAAA,IACL;AAAA,EACF;AACF;"}
1
+ {"version":3,"file":"SwitchColumnCell.styles.js","sources":["../../../../../src/Table/renderers/SwitchColumnCell/SwitchColumnCell.styles.tsx"],"sourcesContent":["import { createClasses } from \"@hitachivantara/uikit-react-utils\";\n\nconst switchStyle = {\n cursor: \"pointer\",\n display: \"inline-flex\",\n marginLeft: \"10px\",\n};\n\nexport const { staticClasses, useClasses } = createClasses(\n \"HvTable-SwitchColumnCell\",\n {\n switchNo: {\n ...switchStyle,\n },\n switchYes: {\n ...switchStyle,\n },\n },\n);\n"],"names":[],"mappings":";AAEA,MAAM,cAAc;AAAA,EAClB,QAAQ;AAAA,EACR,SAAS;AAAA,EACT,YAAY;AACd;AAEa,MAAA,EAAE,eAAe,WAAA,IAAe;AAAA,EAC3C;AAAA,EACA;AAAA,IACE,UAAU;AAAA,MACR,GAAG;AAAA,IACL;AAAA,IACA,WAAW;AAAA,MACT,GAAG;AAAA,IAAA;AAAA,EACL;AAEJ;"}
@@ -1 +1 @@
1
- {"version":3,"file":"renderers.js","sources":["../../../../src/Table/renderers/renderers.tsx"],"sourcesContent":["import { ClassNames } from \"@emotion/react\";\nimport { DropDownXS, DropUpXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseSwitchProps } from \"../../BaseSwitch\";\nimport { HvButton } from \"../../Button\";\nimport { HvDropdownProps } from \"../../Dropdown\";\nimport { HvListValue } from \"../../List\";\nimport {\n HvOverflowTooltip,\n HvOverflowTooltipProps,\n} from \"../../OverflowTooltip\";\nimport { HvTag, HvTagProps } from \"../../Tag\";\nimport { HvTypography } from \"../../Typography\";\nimport { setId } from \"../../utils/setId\";\nimport {\n HvCellProps,\n HvRowInstance,\n HvTableColumnConfig,\n HvTableHeaderRenderer,\n} from \"../hooks/useTable\";\nimport { hvNumberFallback, hvStringFallback } from \"../utils\";\nimport { HvDateColumnCell } from \"./DateColumnCell\";\nimport { HvDropdownColumnCell } from \"./DropdownColumnCell\";\nimport { HvProgressColumnCell } from \"./ProgressColumnCell\";\nimport { HvSwitchColumnCell } from \"./SwitchColumnCell\";\n\nexport function hvTextColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n overflowTooltipProps: Omit<HvOverflowTooltipProps, \"data\"> = {},\n): HvTableColumnConfig<D, H> {\n return {\n Cell: ({ value }: HvCellProps<D, H>) => (\n <HvOverflowTooltip\n data={hvStringFallback(value)}\n {...overflowTooltipProps}\n />\n ),\n sortType: \"alphanumeric\",\n ...col,\n };\n}\n\nexport function hvNumberColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(col: HvTableColumnConfig<D, H>): HvTableColumnConfig<D, H> {\n return {\n Cell: ({ value }: HvCellProps<D, H>) => <>{hvNumberFallback(value)}</>,\n align: \"right\",\n sortType: \"number\",\n ...col,\n };\n}\n\nexport function hvDateColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n dateFormat?: string,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: ({ value }: HvCellProps<D, H>) => (\n <HvDateColumnCell date={value} dateFormat={dateFormat} />\n ),\n sortType: \"alphanumeric\",\n sortDescFirst: true,\n ...col,\n };\n}\n\nexport function hvExpandColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n expandRowButtonAriaLabel: string,\n collapseRowButtonAriaLabel: string,\n getCanRowExpand?: (row: HvRowInstance<D, H>) => boolean,\n ExpandedIcon: React.ReactNode = <DropUpXS />,\n CollapsedIcon: React.ReactNode = <DropDownXS />,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row } = cellProps;\n const expandedProps = row.getToggleRowExpandedProps?.();\n\n const hasContent = getCanRowExpand?.(row) ?? true;\n\n return (\n <ClassNames>\n {({ css }) => (\n <>\n {hasContent && (\n <HvButton\n icon\n aria-label={\n row.isExpanded\n ? collapseRowButtonAriaLabel\n : expandRowButtonAriaLabel\n }\n aria-expanded={row.isExpanded}\n onClick={expandedProps?.onClick}\n classes={{\n root: css({\n position: \"absolute\",\n left: 0,\n top: \"50%\",\n transform: \"translateY(-50%)\",\n }),\n }}\n >\n {row.isExpanded ? ExpandedIcon : CollapsedIcon}\n </HvButton>\n )}\n\n <HvOverflowTooltip data={hvStringFallback(value)} />\n </>\n )}\n </ClassNames>\n );\n },\n sortType: \"alphanumeric\",\n cellStyle: {\n position: \"relative\",\n },\n ...col,\n };\n}\n\nexport function hvTagColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n A extends object = Record<string, unknown>,\n>(\n col: HvTableColumnConfig<D, H>,\n valueDataKey: keyof A,\n colorDataKey: keyof A,\n textColorDataKey: keyof A,\n fromRowData = false,\n tagProps?: HvTagProps,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row } = cellProps;\n if (!value) {\n return <>—</>;\n }\n\n const {\n [valueDataKey]: name,\n [colorDataKey]: color,\n [textColorDataKey]: textColor,\n } = fromRowData ? row.original : value;\n\n return (\n <HvTag\n label={<HvTypography variant=\"body\">{name}</HvTypography>}\n type=\"semantic\"\n color={color}\n style={textColor != null ? { color: textColor } : {}}\n tabIndex={-1}\n {...tagProps}\n />\n );\n },\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n\n// TODO - Review accessibility on the next renderers because they all differ\n\nexport function hvSwitchColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n switchLabel: string,\n falseLabel?: string,\n trueLabel?: string,\n switchProps?: HvBaseSwitchProps,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row } = cellProps;\n return (\n <HvSwitchColumnCell\n checked={value}\n value={row.id}\n switchLabel={switchLabel}\n falseLabel={falseLabel}\n trueLabel={trueLabel}\n switchProps={switchProps}\n />\n );\n },\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n\nexport function hvDropdownColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n id: string | undefined,\n placeholder: string,\n disabledPlaceholder: string,\n onChange?: (identifier: string, value: HvListValue) => void,\n dropdownProps?: HvDropdownProps<false>,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row, column } = cellProps;\n const disabled =\n !Array.isArray(value) || (Array.isArray(value) && value.length < 1);\n return (\n <HvDropdownColumnCell\n values={value}\n placeholder={disabled ? disabledPlaceholder : placeholder}\n onChange={(val) => onChange?.(row.id, val!)}\n disabled={disabled}\n aria-labelledby={setId(id, column.id) || column.id || id} // TODO - to be reviewed because it doesn't make much sense\n {...dropdownProps}\n />\n );\n },\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n\nexport function hvProgressColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n getPartial?: (row: HvRowInstance<D, H>) => number,\n getTotal?: (row: HvRowInstance<D, H>) => number,\n color?: \"primary\" | \"secondary\",\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { row, column } = cellProps;\n const partial = getPartial?.(row) || 0;\n const total = getTotal?.(row);\n\n if (total) {\n return (\n <HvProgressColumnCell\n partial={partial}\n total={total}\n color={color}\n aria-labelledby={column.id}\n />\n );\n }\n\n return <>—</>;\n },\n\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"renderers.js","sources":["../../../../src/Table/renderers/renderers.tsx"],"sourcesContent":["import { ClassNames } from \"@emotion/react\";\nimport { DropDownXS, DropUpXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { HvBaseSwitchProps } from \"../../BaseSwitch\";\nimport { HvButton } from \"../../Button\";\nimport { HvDropdownProps } from \"../../Dropdown\";\nimport { HvListValue } from \"../../List\";\nimport {\n HvOverflowTooltip,\n HvOverflowTooltipProps,\n} from \"../../OverflowTooltip\";\nimport { HvTag, HvTagProps } from \"../../Tag\";\nimport { HvTypography } from \"../../Typography\";\nimport { setId } from \"../../utils/setId\";\nimport {\n HvCellProps,\n HvRowInstance,\n HvTableColumnConfig,\n HvTableHeaderRenderer,\n} from \"../hooks/useTable\";\nimport { hvNumberFallback, hvStringFallback } from \"../utils\";\nimport { HvDateColumnCell } from \"./DateColumnCell\";\nimport { HvDropdownColumnCell } from \"./DropdownColumnCell\";\nimport { HvProgressColumnCell } from \"./ProgressColumnCell\";\nimport { HvSwitchColumnCell } from \"./SwitchColumnCell\";\n\nexport function hvTextColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n overflowTooltipProps: Omit<HvOverflowTooltipProps, \"data\"> = {},\n): HvTableColumnConfig<D, H> {\n return {\n Cell: ({ value }: HvCellProps<D, H>) => (\n <HvOverflowTooltip\n data={hvStringFallback(value)}\n {...overflowTooltipProps}\n />\n ),\n sortType: \"alphanumeric\",\n ...col,\n };\n}\n\nexport function hvNumberColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(col: HvTableColumnConfig<D, H>): HvTableColumnConfig<D, H> {\n return {\n Cell: ({ value }: HvCellProps<D, H>) => <>{hvNumberFallback(value)}</>,\n align: \"right\",\n sortType: \"number\",\n ...col,\n };\n}\n\nexport function hvDateColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n dateFormat?: string,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: ({ value }: HvCellProps<D, H>) => (\n <HvDateColumnCell date={value} dateFormat={dateFormat} />\n ),\n sortType: \"alphanumeric\",\n sortDescFirst: true,\n ...col,\n };\n}\n\nexport function hvExpandColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n expandRowButtonAriaLabel: string,\n collapseRowButtonAriaLabel: string,\n getCanRowExpand?: (row: HvRowInstance<D, H>) => boolean,\n ExpandedIcon: React.ReactNode = <DropUpXS />,\n CollapsedIcon: React.ReactNode = <DropDownXS />,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row } = cellProps;\n const expandedProps = row.getToggleRowExpandedProps?.();\n\n const hasContent = getCanRowExpand?.(row) ?? true;\n\n return (\n <ClassNames>\n {({ css }) => (\n <>\n {hasContent && (\n <HvButton\n icon\n aria-label={\n row.isExpanded\n ? collapseRowButtonAriaLabel\n : expandRowButtonAriaLabel\n }\n aria-expanded={row.isExpanded}\n onClick={expandedProps?.onClick}\n classes={{\n root: css({\n position: \"absolute\",\n left: 0,\n top: \"50%\",\n transform: \"translateY(-50%)\",\n }),\n }}\n >\n {row.isExpanded ? ExpandedIcon : CollapsedIcon}\n </HvButton>\n )}\n\n <HvOverflowTooltip data={hvStringFallback(value)} />\n </>\n )}\n </ClassNames>\n );\n },\n sortType: \"alphanumeric\",\n cellStyle: {\n position: \"relative\",\n },\n ...col,\n };\n}\n\nexport function hvTagColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n A extends object = Record<string, unknown>,\n>(\n col: HvTableColumnConfig<D, H>,\n valueDataKey: keyof A,\n colorDataKey: keyof A,\n textColorDataKey: keyof A,\n fromRowData = false,\n tagProps?: HvTagProps,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row } = cellProps;\n if (!value) {\n return <>—</>;\n }\n\n const {\n [valueDataKey]: name,\n [colorDataKey]: color,\n [textColorDataKey]: textColor,\n } = fromRowData ? row.original : value;\n\n return (\n <HvTag\n label={<HvTypography variant=\"body\">{name}</HvTypography>}\n type=\"semantic\"\n color={color}\n style={textColor != null ? { color: textColor } : {}}\n tabIndex={-1}\n {...tagProps}\n />\n );\n },\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n\n// TODO - Review accessibility on the next renderers because they all differ\n\nexport function hvSwitchColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n switchLabel: string,\n falseLabel?: string,\n trueLabel?: string,\n switchProps?: HvBaseSwitchProps,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row } = cellProps;\n return (\n <HvSwitchColumnCell\n checked={value}\n value={row.id}\n switchLabel={switchLabel}\n falseLabel={falseLabel}\n trueLabel={trueLabel}\n switchProps={switchProps}\n />\n );\n },\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n\nexport function hvDropdownColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n id: string | undefined,\n placeholder: string,\n disabledPlaceholder: string,\n onChange?: (identifier: string, value: HvListValue) => void,\n dropdownProps?: HvDropdownProps<false>,\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { value, row, column } = cellProps;\n const disabled =\n !Array.isArray(value) || (Array.isArray(value) && value.length < 1);\n return (\n <HvDropdownColumnCell\n values={value}\n placeholder={disabled ? disabledPlaceholder : placeholder}\n onChange={(val) => onChange?.(row.id, val!)}\n disabled={disabled}\n aria-labelledby={setId(id, column.id) || column.id || id} // TODO - to be reviewed because it doesn't make much sense\n {...dropdownProps}\n />\n );\n },\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n\nexport function hvProgressColumn<\n D extends object = Record<string, unknown>,\n H extends HvTableHeaderRenderer | undefined = HvTableHeaderRenderer,\n>(\n col: HvTableColumnConfig<D, H>,\n getPartial?: (row: HvRowInstance<D, H>) => number,\n getTotal?: (row: HvRowInstance<D, H>) => number,\n color?: \"primary\" | \"secondary\",\n): HvTableColumnConfig<D, H> {\n return {\n Cell: (cellProps: HvCellProps<D, H>) => {\n const { row, column } = cellProps;\n const partial = getPartial?.(row) || 0;\n const total = getTotal?.(row);\n\n if (total) {\n return (\n <HvProgressColumnCell\n partial={partial}\n total={total}\n color={color}\n aria-labelledby={column.id}\n />\n );\n }\n\n return <>—</>;\n },\n\n cellStyle: {\n paddingTop: 0,\n paddingBottom: 0,\n },\n ...col,\n };\n}\n"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"fallbacks.js","sources":["../../../../src/Table/utils/fallbacks.ts"],"sourcesContent":["const LONG_DASH = \"—\";\n\nexport const hvStringFallback = (value: any) => {\n return typeof value === \"string\" && value !== \"\" ? value : LONG_DASH;\n};\n\nexport const hvNumberFallback = (value: any) => {\n return typeof value === \"number\" ? value : LONG_DASH;\n};\n\nexport const hvNodeFallback = (value: any) => {\n if (!value) return LONG_DASH;\n return hvStringFallback(value?.toString()) === LONG_DASH ? LONG_DASH : value;\n};\n"],"names":[],"mappings":"AAAA,MAAM,YAAY;AAEL,MAAA,mBAAmB,CAAC,UAAe;AAC9C,SAAO,OAAO,UAAU,YAAY,UAAU,KAAK,QAAQ;AAC7D;AAEa,MAAA,mBAAmB,CAAC,UAAe;AACvC,SAAA,OAAO,UAAU,WAAW,QAAQ;AAC7C;AAEa,MAAA,iBAAiB,CAAC,UAAe;AACxC,MAAA,CAAC,MAAc,QAAA;AACnB,SAAO,iBAAiB,OAAO,SAAA,CAAU,MAAM,YAAY,YAAY;AACzE;"}
1
+ {"version":3,"file":"fallbacks.js","sources":["../../../../src/Table/utils/fallbacks.ts"],"sourcesContent":["const LONG_DASH = \"—\";\n\nexport const hvStringFallback = (value: any) => {\n return typeof value === \"string\" && value !== \"\" ? value : LONG_DASH;\n};\n\nexport const hvNumberFallback = (value: any) => {\n return typeof value === \"number\" ? value : LONG_DASH;\n};\n\nexport const hvNodeFallback = (value: any) => {\n if (!value) return LONG_DASH;\n return hvStringFallback(value?.toString()) === LONG_DASH ? LONG_DASH : value;\n};\n"],"names":[],"mappings":"AAAA,MAAM,YAAY;AAEL,MAAA,mBAAmB,CAAC,UAAe;AAC9C,SAAO,OAAO,UAAU,YAAY,UAAU,KAAK,QAAQ;AAC7D;AAEa,MAAA,mBAAmB,CAAC,UAAe;AACvC,SAAA,OAAO,UAAU,WAAW,QAAQ;AAC7C;AAEa,MAAA,iBAAiB,CAAC,UAAe;AACxC,MAAA,CAAC,MAAc,QAAA;AACnB,SAAO,iBAAiB,OAAO,SAAU,CAAA,MAAM,YAAY,YAAY;AACzE;"}