@hitachivantara/uikit-react-core 6.8.2 → 6.9.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 (441) hide show
  1. package/dist/Accordion/Accordion.js +69 -80
  2. package/dist/Accordion/Accordion.styles.js +21 -16
  3. package/dist/ActionBar/ActionBar.js +18 -17
  4. package/dist/ActionBar/ActionBar.styles.js +12 -15
  5. package/dist/ActionsGeneric/ActionsGeneric.js +72 -98
  6. package/dist/ActionsGeneric/ActionsGeneric.styles.js +17 -14
  7. package/dist/AppSwitcher/Action/Action.js +96 -111
  8. package/dist/AppSwitcher/Action/Action.styles.js +44 -48
  9. package/dist/AppSwitcher/AppSwitcher.js +70 -98
  10. package/dist/AppSwitcher/AppSwitcher.styles.js +50 -53
  11. package/dist/Avatar/Avatar.js +66 -111
  12. package/dist/Avatar/Avatar.styles.js +62 -52
  13. package/dist/AvatarGroup/AvatarGroup.js +49 -78
  14. package/dist/AvatarGroup/AvatarGroup.styles.js +40 -60
  15. package/dist/AvatarGroup/AvatarGroupContext.js +13 -16
  16. package/dist/Badge/Badge.js +40 -49
  17. package/dist/Badge/Badge.styles.js +50 -50
  18. package/dist/Banner/Banner.js +51 -83
  19. package/dist/Banner/Banner.styles.js +13 -22
  20. package/dist/Banner/BannerContent/BannerContent.js +35 -56
  21. package/dist/Banner/BannerContent/BannerContent.styles.js +31 -36
  22. package/dist/BaseCheckBox/BaseCheckBox.js +71 -88
  23. package/dist/BaseCheckBox/BaseCheckBox.styles.js +24 -31
  24. package/dist/BaseCheckBox/CheckBoxIcon.js +57 -73
  25. package/dist/BaseDropdown/BaseDropdown.js +147 -189
  26. package/dist/BaseDropdown/BaseDropdown.styles.js +72 -84
  27. package/dist/BaseDropdown/BaseDropdownPanel.js +69 -86
  28. package/dist/BaseDropdown/utils.js +77 -76
  29. package/dist/BaseInput/BaseInput.js +53 -89
  30. package/dist/BaseInput/BaseInput.styles.js +85 -105
  31. package/dist/BaseInput/validations.js +72 -69
  32. package/dist/BaseRadio/BaseRadio.js +61 -85
  33. package/dist/BaseRadio/BaseRadio.styles.js +26 -31
  34. package/dist/BaseRadio/RadioIcon.js +43 -48
  35. package/dist/BaseSwitch/BaseSwitch.js +70 -108
  36. package/dist/BaseSwitch/BaseSwitch.styles.js +94 -113
  37. package/dist/BreadCrumb/BreadCrumb.js +84 -106
  38. package/dist/BreadCrumb/BreadCrumb.styles.js +20 -17
  39. package/dist/BreadCrumb/Page/Page.js +24 -34
  40. package/dist/BreadCrumb/Page/Page.styles.js +20 -25
  41. package/dist/BreadCrumb/PathElement/PathElement.js +17 -17
  42. package/dist/BreadCrumb/PathElement/PathElement.styles.js +9 -7
  43. package/dist/BreadCrumb/utils.js +19 -27
  44. package/dist/BulkActions/BulkActions.js +57 -96
  45. package/dist/BulkActions/BulkActions.styles.js +37 -45
  46. package/dist/Button/Button.js +67 -95
  47. package/dist/Button/Button.styles.js +107 -124
  48. package/dist/ButtonBase/ButtonBase.js +32 -51
  49. package/dist/ButtonBase/ButtonBase.styles.js +21 -30
  50. package/dist/Calendar/Calendar.js +73 -101
  51. package/dist/Calendar/Calendar.styles.js +14 -32
  52. package/dist/Calendar/CalendarHeader/CalendarHeader.js +91 -118
  53. package/dist/Calendar/CalendarHeader/CalendarHeader.styles.js +11 -16
  54. package/dist/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js +36 -50
  55. package/dist/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.styles.js +12 -18
  56. package/dist/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js +23 -43
  57. package/dist/Calendar/CalendarNavigation/MonthSelector/MonthSelector.styles.js +21 -24
  58. package/dist/Calendar/CalendarNavigation/Navigation/Navigation.js +43 -59
  59. package/dist/Calendar/CalendarNavigation/Navigation/Navigation.styles.js +21 -24
  60. package/dist/Calendar/SingleCalendar/CalendarCell.js +60 -84
  61. package/dist/Calendar/SingleCalendar/CalendarCell.styles.js +39 -56
  62. package/dist/Calendar/SingleCalendar/SingleCalendar.js +121 -154
  63. package/dist/Calendar/SingleCalendar/SingleCalendar.styles.js +53 -68
  64. package/dist/Calendar/model.js +45 -62
  65. package/dist/Calendar/utils.js +233 -128
  66. package/dist/Card/Card.js +35 -53
  67. package/dist/Card/Card.styles.js +37 -50
  68. package/dist/Card/Content/Content.js +15 -27
  69. package/dist/Card/Content/Content.styles.js +5 -10
  70. package/dist/Card/Header/Header.js +22 -35
  71. package/dist/Card/Header/Header.styles.js +22 -25
  72. package/dist/Card/Media/Media.js +16 -26
  73. package/dist/Card/Media/Media.styles.js +6 -7
  74. package/dist/Carousel/Carousel.js +179 -207
  75. package/dist/Carousel/Carousel.styles.js +141 -166
  76. package/dist/Carousel/CarouselControls.js +48 -62
  77. package/dist/Carousel/CarouselSlide/CarouselSlide.js +19 -25
  78. package/dist/Carousel/CarouselSlide/CarouselSlide.styles.js +10 -11
  79. package/dist/Carousel/CarouselThumbnails.js +29 -36
  80. package/dist/CheckBox/CheckBox.js +112 -182
  81. package/dist/CheckBox/CheckBox.styles.js +48 -57
  82. package/dist/CheckBoxGroup/CheckBoxGroup.js +154 -245
  83. package/dist/CheckBoxGroup/CheckBoxGroup.styles.js +29 -35
  84. package/dist/ColorPicker/ColorPicker.js +146 -222
  85. package/dist/ColorPicker/ColorPicker.styles.js +40 -45
  86. package/dist/ColorPicker/Picker/Fields.js +125 -141
  87. package/dist/ColorPicker/Picker/Picker.js +51 -50
  88. package/dist/ColorPicker/Picker/Picker.styles.js +42 -42
  89. package/dist/ColorPicker/PresetColors/PresetColors.js +25 -28
  90. package/dist/ColorPicker/PresetColors/PresetColors.styles.js +17 -17
  91. package/dist/ColorPicker/SavedColors/SavedColors.js +37 -41
  92. package/dist/ColorPicker/SavedColors/SavedColors.styles.js +27 -29
  93. package/dist/ColorPicker/Swatch.js +22 -37
  94. package/dist/Container/Container.js +37 -58
  95. package/dist/Container/Container.styles.js +12 -13
  96. package/dist/Controls/Controls.js +50 -74
  97. package/dist/Controls/Controls.styles.js +16 -13
  98. package/dist/Controls/LeftControl/LeftControl.js +25 -38
  99. package/dist/Controls/LeftControl/LeftControl.styles.js +7 -7
  100. package/dist/Controls/RightControl/RightControl.js +31 -46
  101. package/dist/Controls/RightControl/RightControl.styles.js +9 -7
  102. package/dist/Controls/context/ControlsContext.js +5 -6
  103. package/dist/DatePicker/DatePicker.js +286 -339
  104. package/dist/DatePicker/DatePicker.styles.js +25 -40
  105. package/dist/DatePicker/useVisibleDate.js +142 -126
  106. package/dist/DatePicker/utils.js +17 -26
  107. package/dist/Dialog/Actions/Actions.js +19 -29
  108. package/dist/Dialog/Actions/Actions.styles.js +20 -20
  109. package/dist/Dialog/Content/Content.js +29 -46
  110. package/dist/Dialog/Content/Content.styles.js +14 -15
  111. package/dist/Dialog/Dialog.js +49 -69
  112. package/dist/Dialog/Dialog.styles.js +33 -46
  113. package/dist/Dialog/Title/Title.js +20 -42
  114. package/dist/Dialog/Title/Title.styles.js +14 -16
  115. package/dist/Dialog/context.js +5 -6
  116. package/dist/DotPagination/DotPagination.js +44 -59
  117. package/dist/DotPagination/DotPagination.styles.js +44 -47
  118. package/dist/Drawer/Drawer.js +37 -64
  119. package/dist/Drawer/Drawer.styles.js +18 -21
  120. package/dist/DropDownMenu/DropDownMenu.js +88 -124
  121. package/dist/DropDownMenu/DropDownMenu.styles.js +12 -21
  122. package/dist/Dropdown/Dropdown.js +221 -310
  123. package/dist/Dropdown/Dropdown.styles.js +39 -48
  124. package/dist/Dropdown/List/List.js +194 -176
  125. package/dist/Dropdown/List/List.styles.js +23 -24
  126. package/dist/Dropdown/utils.js +15 -16
  127. package/dist/DropdownButton/DropdownButton.js +42 -46
  128. package/dist/DropdownButton/DropdownButton.styles.js +37 -47
  129. package/dist/EmptyState/EmptyState.js +48 -61
  130. package/dist/EmptyState/EmptyState.styles.js +31 -31
  131. package/dist/FileUploader/DropZone/DropZone.js +141 -179
  132. package/dist/FileUploader/DropZone/DropZone.styles.js +55 -68
  133. package/dist/FileUploader/File/File.js +85 -75
  134. package/dist/FileUploader/File/File.styles.js +55 -60
  135. package/dist/FileUploader/FileList/FileList.js +19 -28
  136. package/dist/FileUploader/FileList/FileList.styles.js +15 -16
  137. package/dist/FileUploader/FileUploader.js +35 -55
  138. package/dist/FileUploader/FileUploader.styles.js +4 -7
  139. package/dist/FileUploader/Preview/Preview.js +37 -52
  140. package/dist/FileUploader/Preview/Preview.styles.js +22 -28
  141. package/dist/FileUploader/utils.js +24 -11
  142. package/dist/FilterGroup/Counter/Counter.js +31 -43
  143. package/dist/FilterGroup/Counter/Counter.styles.js +12 -15
  144. package/dist/FilterGroup/FilterContent/FilterContent.js +138 -177
  145. package/dist/FilterGroup/FilterContent/FilterContent.styles.js +46 -53
  146. package/dist/FilterGroup/FilterContent/HeaderButton.js +77 -100
  147. package/dist/FilterGroup/FilterGroup.js +87 -136
  148. package/dist/FilterGroup/FilterGroup.styles.js +9 -10
  149. package/dist/FilterGroup/FilterGroupContext.js +68 -73
  150. package/dist/FilterGroup/LeftPanel/LeftPanel.js +28 -31
  151. package/dist/FilterGroup/LeftPanel/LeftPanel.styles.js +6 -11
  152. package/dist/FilterGroup/RightPanel/RightPanel.js +118 -151
  153. package/dist/FilterGroup/RightPanel/RightPanel.styles.js +17 -27
  154. package/dist/Focus/Focus.js +248 -344
  155. package/dist/Focus/Focus.styles.js +28 -39
  156. package/dist/Focus/utils.js +14 -20
  157. package/dist/Footer/Footer.js +36 -38
  158. package/dist/Footer/Footer.styles.js +40 -43
  159. package/dist/FormElement/Adornment/Adornment.js +38 -49
  160. package/dist/FormElement/Adornment/Adornment.styles.js +14 -15
  161. package/dist/FormElement/CharCounter/CharCounter.js +51 -73
  162. package/dist/FormElement/CharCounter/CharCounter.styles.js +12 -10
  163. package/dist/FormElement/FormElement.js +53 -31
  164. package/dist/FormElement/FormElement.styles.js +4 -7
  165. package/dist/FormElement/InfoMessage/InfoMessage.js +26 -41
  166. package/dist/FormElement/InfoMessage/InfoMessage.styles.js +11 -9
  167. package/dist/FormElement/Label/Label.js +33 -56
  168. package/dist/FormElement/Label/Label.styles.js +11 -9
  169. package/dist/FormElement/LabelContainer.js +46 -55
  170. package/dist/FormElement/Suggestions/Suggestions.js +46 -71
  171. package/dist/FormElement/Suggestions/Suggestions.styles.js +9 -16
  172. package/dist/FormElement/WarningText/WarningText.js +41 -62
  173. package/dist/FormElement/WarningText/WarningText.styles.js +25 -28
  174. package/dist/FormElement/context.js +6 -10
  175. package/dist/FormElement/utils.js +54 -58
  176. package/dist/GlobalActions/GlobalActions.js +53 -59
  177. package/dist/GlobalActions/GlobalActions.styles.js +67 -76
  178. package/dist/Grid/Grid.js +82 -112
  179. package/dist/Grid/Grid.styles.js +37 -38
  180. package/dist/Header/Actions/Actions.js +15 -17
  181. package/dist/Header/Actions/Actions.styles.js +12 -15
  182. package/dist/Header/Brand/Brand.js +27 -23
  183. package/dist/Header/Brand/Brand.styles.js +16 -14
  184. package/dist/Header/Header.js +22 -31
  185. package/dist/Header/Header.styles.js +32 -30
  186. package/dist/Header/Navigation/MenuBar/Bar.js +23 -36
  187. package/dist/Header/Navigation/MenuBar/Bar.styles.js +54 -61
  188. package/dist/Header/Navigation/MenuBar/MenuBar.js +20 -26
  189. package/dist/Header/Navigation/MenuItem/MenuItem.js +104 -120
  190. package/dist/Header/Navigation/MenuItem/MenuItem.styles.js +48 -63
  191. package/dist/Header/Navigation/Navigation.js +32 -37
  192. package/dist/Header/Navigation/Navigation.styles.js +11 -17
  193. package/dist/Header/Navigation/useSelectionPath.js +17 -20
  194. package/dist/Header/Navigation/utils/FocusContext.js +23 -20
  195. package/dist/Header/Navigation/utils/SelectionContext.js +4 -4
  196. package/dist/IconButton/IconButton.js +25 -32
  197. package/dist/IconContainer/IconContainer.js +55 -76
  198. package/dist/InlineEditor/InlineEditor.js +105 -131
  199. package/dist/InlineEditor/InlineEditor.styles.js +44 -53
  200. package/dist/Input/Input.js +385 -461
  201. package/dist/Input/Input.styles.js +34 -47
  202. package/dist/Input/icons.js +16 -21
  203. package/dist/Input/utils.js +8 -11
  204. package/dist/List/List.js +196 -247
  205. package/dist/List/List.styles.js +44 -49
  206. package/dist/List/useSelectableList.js +11 -8
  207. package/dist/List/utils.js +24 -33
  208. package/dist/ListContainer/ListContainer.js +52 -65
  209. package/dist/ListContainer/ListContainer.styles.js +7 -10
  210. package/dist/ListContainer/ListContext/ListContext.js +4 -4
  211. package/dist/ListContainer/ListItem/ListItem.js +79 -117
  212. package/dist/ListContainer/ListItem/ListItem.styles.js +57 -78
  213. package/dist/Loading/Loading.js +31 -46
  214. package/dist/Loading/Loading.styles.js +41 -48
  215. package/dist/LoadingContainer/LoadingContainer.js +34 -40
  216. package/dist/LoadingContainer/LoadingContainer.styles.js +17 -18
  217. package/dist/Login/Login.js +22 -29
  218. package/dist/Login/Login.styles.js +20 -21
  219. package/dist/MultiButton/MultiButton.js +41 -59
  220. package/dist/MultiButton/MultiButton.styles.js +117 -137
  221. package/dist/NumberInput/NumberInput.js +51 -50
  222. package/dist/NumberInput/NumberInput.styles.js +5 -10
  223. package/dist/OverflowTooltip/OverflowTooltip.js +55 -75
  224. package/dist/OverflowTooltip/OverflowTooltip.styles.js +19 -23
  225. package/dist/Pagination/Pagination.js +176 -164
  226. package/dist/Pagination/Pagination.styles.js +86 -90
  227. package/dist/Pagination/Select.js +51 -60
  228. package/dist/Pagination/Select.styles.js +13 -19
  229. package/dist/Panel/Panel.js +19 -20
  230. package/dist/Panel/Panel.styles.js +12 -15
  231. package/dist/ProgressBar/ProgressBar.js +40 -53
  232. package/dist/ProgressBar/ProgressBar.styles.js +28 -40
  233. package/dist/QueryBuilder/ConfirmationDialog.js +35 -28
  234. package/dist/QueryBuilder/Context.js +308 -322
  235. package/dist/QueryBuilder/QueryBuilder.js +108 -137
  236. package/dist/QueryBuilder/QueryBuilder.styles.js +117 -108
  237. package/dist/QueryBuilder/Rule/Attribute.js +56 -63
  238. package/dist/QueryBuilder/Rule/Operator.js +53 -58
  239. package/dist/QueryBuilder/Rule/Rule.js +70 -88
  240. package/dist/QueryBuilder/Rule/Rule.styles.js +49 -56
  241. package/dist/QueryBuilder/RuleGroup.js +160 -206
  242. package/dist/QueryBuilder/Value/BooleanValue.js +38 -37
  243. package/dist/QueryBuilder/Value/DateTimeValue.js +233 -299
  244. package/dist/QueryBuilder/Value/EmptyValue.js +14 -14
  245. package/dist/QueryBuilder/Value/NumericValue.js +152 -204
  246. package/dist/QueryBuilder/Value/TextValue.js +38 -54
  247. package/dist/QueryBuilder/Value/Value.js +42 -67
  248. package/dist/QueryBuilder/types.js +4 -4
  249. package/dist/QueryBuilder/utils/index.js +40 -74
  250. package/dist/QueryBuilder/utils/reducer.js +86 -92
  251. package/dist/Radio/Radio.js +96 -145
  252. package/dist/Radio/Radio.styles.js +47 -55
  253. package/dist/RadioGroup/RadioGroup.js +98 -159
  254. package/dist/RadioGroup/RadioGroup.styles.js +28 -34
  255. package/dist/ScrollToHorizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +34 -51
  256. package/dist/ScrollToHorizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js +39 -48
  257. package/dist/ScrollToHorizontal/ScrollToHorizontal.js +56 -91
  258. package/dist/ScrollToHorizontal/ScrollToHorizontal.styles.js +28 -32
  259. package/dist/ScrollToVertical/ScrollToVertical.js +45 -77
  260. package/dist/ScrollToVertical/ScrollToVertical.styles.js +31 -38
  261. package/dist/ScrollToVertical/VerticalScrollListItem/VerticalScrollListItem.js +30 -39
  262. package/dist/ScrollToVertical/VerticalScrollListItem/VerticalScrollListItem.styles.js +44 -51
  263. package/dist/SearchInput/SearchInput.js +27 -25
  264. package/dist/SearchInput/SearchInput.styles.js +6 -7
  265. package/dist/Section/Section.js +69 -104
  266. package/dist/Section/Section.styles.js +53 -57
  267. package/dist/Select/Option.js +29 -46
  268. package/dist/Select/OptionGroup.js +18 -30
  269. package/dist/Select/Select.js +163 -219
  270. package/dist/Select/Select.styles.js +26 -32
  271. package/dist/SelectionList/SelectionList.js +162 -216
  272. package/dist/SelectionList/SelectionList.styles.js +36 -36
  273. package/dist/SimpleGrid/SimpleGrid.js +16 -27
  274. package/dist/SimpleGrid/SimpleGrid.styles.js +28 -39
  275. package/dist/Skeleton/Skeleton.js +26 -44
  276. package/dist/Skeleton/Skeleton.styles.js +43 -66
  277. package/dist/Slider/Slider.js +316 -431
  278. package/dist/Slider/Slider.styles.js +183 -216
  279. package/dist/Slider/SliderInput/SliderInput.js +38 -57
  280. package/dist/Slider/SliderInput/SliderInput.styles.js +13 -14
  281. package/dist/Slider/base.js +221 -243
  282. package/dist/Slider/utils.js +247 -233
  283. package/dist/Snackbar/Snackbar.js +59 -88
  284. package/dist/Snackbar/Snackbar.styles.js +25 -42
  285. package/dist/Snackbar/SnackbarContent/SnackbarContent.js +31 -50
  286. package/dist/Snackbar/SnackbarContent/SnackbarContent.styles.js +27 -30
  287. package/dist/SnackbarProvider/SnackbarProvider.js +73 -105
  288. package/dist/SnackbarProvider/SnackbarProvider.styles.js +20 -26
  289. package/dist/Stack/Stack.js +74 -84
  290. package/dist/Stack/Stack.styles.js +14 -33
  291. package/dist/StatusIcon/StatusIcon.js +78 -102
  292. package/dist/StatusIcon/StatusIcon.styles.js +42 -52
  293. package/dist/Switch/Switch.js +91 -138
  294. package/dist/Switch/Switch.styles.js +49 -60
  295. package/dist/Table/Table.js +62 -66
  296. package/dist/Table/Table.styles.js +23 -28
  297. package/dist/Table/TableBody/TableBody.js +45 -56
  298. package/dist/Table/TableBody/TableBody.styles.js +8 -7
  299. package/dist/Table/TableCell/TableCell.js +37 -66
  300. package/dist/Table/TableCell/TableCell.styles.js +125 -162
  301. package/dist/Table/TableContainer/TableContainer.js +18 -28
  302. package/dist/Table/TableContainer/TableContainer.styles.js +8 -12
  303. package/dist/Table/TableContext.js +4 -4
  304. package/dist/Table/TableHead/TableHead.js +27 -39
  305. package/dist/Table/TableHead/TableHead.styles.js +10 -7
  306. package/dist/Table/TableHeader/TableHeader.js +73 -124
  307. package/dist/Table/TableHeader/TableHeader.styles.js +135 -150
  308. package/dist/Table/TableHeader/utils.js +11 -15
  309. package/dist/Table/TableRow/TableRow.js +32 -51
  310. package/dist/Table/TableRow/TableRow.styles.js +64 -84
  311. package/dist/Table/TableSection/TableSection.js +21 -20
  312. package/dist/Table/TableSection/TableSection.styles.js +63 -96
  313. package/dist/Table/TableSectionContext.js +4 -4
  314. package/dist/Table/hooks/useHvBulkActions.js +54 -89
  315. package/dist/Table/hooks/useHvFilters.js +4 -4
  316. package/dist/Table/hooks/useHvGlobalFilter.js +4 -4
  317. package/dist/Table/hooks/useHvHeaderGroups.js +73 -82
  318. package/dist/Table/hooks/useHvPagination.js +31 -51
  319. package/dist/Table/hooks/useHvResizeColumns.js +25 -31
  320. package/dist/Table/hooks/useHvRowExpand.js +54 -69
  321. package/dist/Table/hooks/useHvRowSelection.js +294 -420
  322. package/dist/Table/hooks/useHvRowState.js +4 -4
  323. package/dist/Table/hooks/useHvSortBy.js +23 -30
  324. package/dist/Table/hooks/useHvSticky.js +114 -154
  325. package/dist/Table/hooks/useHvTable.js +40 -64
  326. package/dist/Table/hooks/useHvTableStyles.js +51 -82
  327. package/dist/Table/renderers/DateColumnCell.js +12 -13
  328. package/dist/Table/renderers/DefaultCell.js +13 -20
  329. package/dist/Table/renderers/DropdownColumnCell.js +4 -4
  330. package/dist/Table/renderers/ProgressColumnCell.js +43 -47
  331. package/dist/Table/renderers/SwitchColumnCell.js +37 -50
  332. package/dist/Table/renderers/renderers.js +146 -183
  333. package/dist/Tabs/Tab/Tab.js +21 -31
  334. package/dist/Tabs/Tab/Tab.styles.js +44 -54
  335. package/dist/Tabs/Tabs.js +23 -28
  336. package/dist/Tabs/Tabs.styles.js +9 -14
  337. package/dist/Tag/Tag.js +86 -129
  338. package/dist/Tag/Tag.styles.js +63 -88
  339. package/dist/TagsInput/TagsInput.js +349 -417
  340. package/dist/TagsInput/TagsInput.styles.js +77 -90
  341. package/dist/TextArea/TextArea.js +207 -274
  342. package/dist/TextArea/TextArea.styles.js +25 -20
  343. package/dist/TimeAgo/TimeAgo.js +24 -30
  344. package/dist/TimeAgo/TimeAgo.styles.js +4 -7
  345. package/dist/TimeAgo/formatUtils.js +57 -65
  346. package/dist/TimeAgo/useTimeAgo.js +18 -18
  347. package/dist/TimeAgo/useTimeout.js +14 -14
  348. package/dist/TimePicker/Placeholder.js +46 -52
  349. package/dist/TimePicker/TimePicker.js +164 -214
  350. package/dist/TimePicker/TimePicker.styles.js +30 -39
  351. package/dist/TimePicker/Unit/Unit.js +63 -49
  352. package/dist/TimePicker/Unit/Unit.styles.js +41 -46
  353. package/dist/ToggleButton/ToggleButton.js +25 -34
  354. package/dist/Tooltip/Tooltip.js +41 -51
  355. package/dist/Tooltip/Tooltip.styles.js +25 -26
  356. package/dist/TreeView/TreeItem/DefaultContent.js +51 -72
  357. package/dist/TreeView/TreeItem/TreeItem.js +102 -140
  358. package/dist/TreeView/TreeItem/TreeItem.styles.js +56 -70
  359. package/dist/TreeView/TreeItem/useHvTreeItem.js +38 -53
  360. package/dist/TreeView/TreeView.js +65 -62
  361. package/dist/TreeView/TreeView.styles.js +11 -13
  362. package/dist/TreeView/internals/DescendantProvider.js +120 -120
  363. package/dist/TreeView/internals/TreeViewProvider.js +32 -26
  364. package/dist/TreeView/internals/corePlugins.js +8 -4
  365. package/dist/TreeView/internals/hooks/plugins/defaultPlugins.js +10 -10
  366. package/dist/TreeView/internals/hooks/plugins/useTreeViewContextValueBuilder.js +20 -22
  367. package/dist/TreeView/internals/hooks/plugins/useTreeViewExpansion.js +39 -61
  368. package/dist/TreeView/internals/hooks/plugins/useTreeViewFocus.js +56 -80
  369. package/dist/TreeView/internals/hooks/plugins/useTreeViewKeyboardNavigation.js +149 -211
  370. package/dist/TreeView/internals/hooks/plugins/useTreeViewNodes.js +42 -68
  371. package/dist/TreeView/internals/hooks/plugins/useTreeViewSelection.js +162 -195
  372. package/dist/TreeView/internals/hooks/useInstanceEventHandler.js +52 -74
  373. package/dist/TreeView/internals/hooks/useTreeView.js +54 -69
  374. package/dist/TreeView/internals/hooks/useTreeViewInstanceEvents.js +28 -33
  375. package/dist/TreeView/internals/hooks/useTreeViewModels.js +34 -43
  376. package/dist/TreeView/internals/hooks/utils.js +28 -42
  377. package/dist/TreeView/internals/utils/EventManager.js +49 -58
  378. package/dist/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.js +14 -18
  379. package/dist/TreeView/internals/utils/TimerBasedCleanupTracking.js +33 -37
  380. package/dist/TreeView/internals/utils/publishTreeViewEvent.js +5 -5
  381. package/dist/Typography/Typography.js +34 -51
  382. package/dist/Typography/Typography.styles.js +20 -23
  383. package/dist/VerticalNavigation/Actions/Action.js +23 -42
  384. package/dist/VerticalNavigation/Actions/Action.styles.js +21 -28
  385. package/dist/VerticalNavigation/Actions/Actions.js +15 -31
  386. package/dist/VerticalNavigation/Actions/Actions.styles.js +13 -19
  387. package/dist/VerticalNavigation/Header/Header.js +51 -91
  388. package/dist/VerticalNavigation/Header/Header.styles.js +22 -32
  389. package/dist/VerticalNavigation/Navigation/Navigation.js +183 -267
  390. package/dist/VerticalNavigation/Navigation/Navigation.styles.js +14 -24
  391. package/dist/VerticalNavigation/NavigationPopup/NavigationPopup.styles.js +9 -17
  392. package/dist/VerticalNavigation/NavigationPopup/NavigationPopupContainer.js +30 -32
  393. package/dist/VerticalNavigation/NavigationSlider/NavigationSlider.js +45 -63
  394. package/dist/VerticalNavigation/NavigationSlider/NavigationSlider.styles.js +23 -33
  395. package/dist/VerticalNavigation/NavigationSlider/utils.js +56 -39
  396. package/dist/VerticalNavigation/TreeView/TreeView.js +515 -664
  397. package/dist/VerticalNavigation/TreeView/TreeView.styles.js +10 -16
  398. package/dist/VerticalNavigation/TreeView/TreeViewContext.js +5 -6
  399. package/dist/VerticalNavigation/TreeView/TreeViewItem.js +319 -414
  400. package/dist/VerticalNavigation/TreeView/TreeViewItem.styles.js +91 -143
  401. package/dist/VerticalNavigation/VerticalNavigation.js +70 -97
  402. package/dist/VerticalNavigation/VerticalNavigation.styles.js +31 -45
  403. package/dist/VerticalNavigation/VerticalNavigationContext.js +8 -10
  404. package/dist/hooks/useClickOutside.js +21 -23
  405. package/dist/hooks/useComputation.js +13 -13
  406. package/dist/hooks/useControlled.js +10 -17
  407. package/dist/hooks/useEnhancedEffect.js +5 -5
  408. package/dist/hooks/useExpandable.js +24 -31
  409. package/dist/hooks/useFocus.js +31 -34
  410. package/dist/hooks/useForkRef.js +19 -19
  411. package/dist/hooks/useImageLoaded.js +26 -26
  412. package/dist/hooks/useIsMounted.js +13 -13
  413. package/dist/hooks/useLabels.js +7 -7
  414. package/dist/hooks/useScrollTo.js +101 -130
  415. package/dist/hooks/useUniqueId.js +6 -6
  416. package/dist/hooks/useWidth.js +10 -13
  417. package/dist/icons.js +77 -88
  418. package/dist/index.d.ts +8 -8
  419. package/dist/index.js +226 -554
  420. package/dist/providers/Provider.js +44 -75
  421. package/dist/providers/ThemeProvider.js +79 -71
  422. package/dist/providers/utils.js +40 -47
  423. package/dist/themes/index.js +6 -5
  424. package/dist/themes/next.js +132 -271
  425. package/dist/themes/pentaho.js +832 -1173
  426. package/dist/types/generic.js +5 -4
  427. package/dist/utils/Callout.js +123 -171
  428. package/dist/utils/CounterLabel.js +14 -15
  429. package/dist/utils/deepMerge.js +13 -15
  430. package/dist/utils/document.js +8 -8
  431. package/dist/utils/focusUtils.js +6 -7
  432. package/dist/utils/focusableElementFinder.js +23 -26
  433. package/dist/utils/helpers.js +15 -23
  434. package/dist/utils/iconVariant.js +15 -12
  435. package/dist/utils/keyboardUtils.js +28 -28
  436. package/dist/utils/multiSelectionEventHandler.js +37 -52
  437. package/dist/utils/scroll.js +50 -76
  438. package/dist/utils/setId.js +4 -4
  439. package/dist/utils/theme.js +11 -8
  440. package/dist/utils/useSavedState.js +19 -16
  441. package/package.json +5 -5
@@ -1,200 +1,167 @@
1
+ import { getFirstNode, getLastNode, getNextNode, populateInstance } from "../utils.js";
1
2
  import * as React from "react";
2
- import { populateInstance, getFirstNode, getLastNode, getNextNode } from "../utils.js";
3
- const findOrderInTremauxTree = (instance, nodeAId, nodeBId) => {
4
- if (nodeAId === nodeBId) {
5
- return [nodeAId, nodeBId];
6
- }
7
- const nodeA = instance.getNode(nodeAId);
8
- const nodeB = instance.getNode(nodeBId);
9
- if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {
10
- return nodeB.parentId === nodeA.id ? [nodeA.id, nodeB.id] : [nodeB.id, nodeA.id];
11
- }
12
- const aFamily = [nodeA.id];
13
- const bFamily = [nodeB.id];
14
- let aAncestor = nodeA.parentId;
15
- let bAncestor = nodeB.parentId;
16
- let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;
17
- let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;
18
- let continueA = true;
19
- let continueB = true;
20
- while (!bAncestorIsCommon && !aAncestorIsCommon) {
21
- if (continueA) {
22
- aFamily.push(aAncestor);
23
- aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;
24
- continueA = aAncestor !== null;
25
- if (!aAncestorIsCommon && continueA) {
26
- aAncestor = instance.getNode(aAncestor).parentId;
27
- }
28
- }
29
- if (continueB && !aAncestorIsCommon) {
30
- bFamily.push(bAncestor);
31
- bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;
32
- continueB = bAncestor !== null;
33
- if (!bAncestorIsCommon && continueB) {
34
- bAncestor = instance.getNode(bAncestor).parentId;
35
- }
36
- }
37
- }
38
- const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;
39
- const ancestorFamily = instance.getChildrenIds(commonAncestor);
40
- const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];
41
- const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];
42
- return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide) ? [nodeAId, nodeBId] : [nodeBId, nodeAId];
3
+ //#region src/TreeView/internals/hooks/plugins/useTreeViewSelection.ts
4
+ /**
5
+ * This is used to determine the start and end of a selection range so
6
+ * we can get the nodes between the two border nodes.
7
+ *
8
+ * It finds the nodes' common ancestor using
9
+ * a naive implementation of a lowest common ancestor algorithm
10
+ * (https://en.wikipedia.org/wiki/Lowest_common_ancestor).
11
+ * Then compares the ancestor's 2 children that are ancestors of nodeA and NodeB
12
+ * so we can compare their indexes to work out which node comes first in a depth first search.
13
+ * (https://en.wikipedia.org/wiki/Depth-first_search)
14
+ *
15
+ * Another way to put it is which node is shallower in a trémaux tree
16
+ * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree
17
+ */
18
+ var findOrderInTremauxTree = (instance, nodeAId, nodeBId) => {
19
+ if (nodeAId === nodeBId) return [nodeAId, nodeBId];
20
+ const nodeA = instance.getNode(nodeAId);
21
+ const nodeB = instance.getNode(nodeBId);
22
+ if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) return nodeB.parentId === nodeA.id ? [nodeA.id, nodeB.id] : [nodeB.id, nodeA.id];
23
+ const aFamily = [nodeA.id];
24
+ const bFamily = [nodeB.id];
25
+ let aAncestor = nodeA.parentId;
26
+ let bAncestor = nodeB.parentId;
27
+ let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;
28
+ let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;
29
+ let continueA = true;
30
+ let continueB = true;
31
+ while (!bAncestorIsCommon && !aAncestorIsCommon) {
32
+ if (continueA) {
33
+ aFamily.push(aAncestor);
34
+ aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;
35
+ continueA = aAncestor !== null;
36
+ if (!aAncestorIsCommon && continueA) aAncestor = instance.getNode(aAncestor).parentId;
37
+ }
38
+ if (continueB && !aAncestorIsCommon) {
39
+ bFamily.push(bAncestor);
40
+ bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;
41
+ continueB = bAncestor !== null;
42
+ if (!bAncestorIsCommon && continueB) bAncestor = instance.getNode(bAncestor).parentId;
43
+ }
44
+ }
45
+ const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;
46
+ const ancestorFamily = instance.getChildrenIds(commonAncestor);
47
+ const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];
48
+ const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];
49
+ return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide) ? [nodeAId, nodeBId] : [nodeBId, nodeAId];
43
50
  };
44
- const useTreeViewSelection = ({ instance, params, models }) => {
45
- const lastSelectedNode = React.useRef(null);
46
- const lastSelectionWasRange = React.useRef(false);
47
- const currentRangeSelection = React.useRef([]);
48
- const isNodeSelected = (nodeId) => Array.isArray(models.selected.value) ? models.selected.value.indexOf(nodeId) !== -1 : models.selected.value === nodeId;
49
- const selectNode = (event, nodeId, multiple = false) => {
50
- if (params.disableSelection) {
51
- return;
52
- }
53
- if (multiple) {
54
- if (Array.isArray(models.selected.value)) {
55
- let newSelected;
56
- if (models.selected.value.indexOf(nodeId) !== -1) {
57
- newSelected = models.selected.value.filter((id) => id !== nodeId);
58
- } else {
59
- newSelected = [nodeId].concat(models.selected.value);
60
- }
61
- if (params.onNodeSelect) {
62
- params.onNodeSelect(
63
- event,
64
- newSelected
65
- );
66
- }
67
- models.selected.setValue(newSelected);
68
- }
69
- } else {
70
- const newSelected = params.multiSelect ? [nodeId] : nodeId;
71
- if (params.onNodeSelect) {
72
- params.onNodeSelect(event, newSelected);
73
- }
74
- models.selected.setValue(newSelected);
75
- }
76
- lastSelectedNode.current = nodeId;
77
- lastSelectionWasRange.current = false;
78
- currentRangeSelection.current = [];
79
- };
80
- const getNodesInRange = (nodeAId, nodeBId) => {
81
- const [first, last] = findOrderInTremauxTree(instance, nodeAId, nodeBId);
82
- const nodes = [first];
83
- let current = first;
84
- while (current !== last) {
85
- current = getNextNode(instance, current);
86
- nodes.push(current);
87
- }
88
- return nodes;
89
- };
90
- const handleRangeArrowSelect = (event, nodes) => {
91
- let base = models.selected.value.slice();
92
- const { start, next, current } = nodes;
93
- if (!next || !current) {
94
- return;
95
- }
96
- if (currentRangeSelection.current.indexOf(current) === -1) {
97
- currentRangeSelection.current = [];
98
- }
99
- if (lastSelectionWasRange.current) {
100
- if (currentRangeSelection.current.indexOf(next) !== -1) {
101
- base = base.filter((id) => id === start || id !== current);
102
- currentRangeSelection.current = currentRangeSelection.current.filter(
103
- (id) => id === start || id !== current
104
- );
105
- } else {
106
- base.push(next);
107
- currentRangeSelection.current.push(next);
108
- }
109
- } else {
110
- base.push(next);
111
- currentRangeSelection.current.push(current, next);
112
- }
113
- if (params.onNodeSelect) {
114
- params.onNodeSelect(
115
- event,
116
- base
117
- );
118
- }
119
- models.selected.setValue(base);
120
- };
121
- const handleRangeSelect = (event, nodes) => {
122
- let base = models.selected.value.slice();
123
- const { start, end } = nodes;
124
- if (lastSelectionWasRange.current) {
125
- base = base.filter(
126
- (id) => currentRangeSelection.current.indexOf(id) === -1
127
- );
128
- }
129
- let range = getNodesInRange(start, end);
130
- range = range.filter((node) => !instance.isNodeDisabled(node));
131
- currentRangeSelection.current = range;
132
- let newSelected = base.concat(range);
133
- newSelected = newSelected.filter((id, i) => newSelected.indexOf(id) === i);
134
- if (params.onNodeSelect) {
135
- params.onNodeSelect(
136
- event,
137
- newSelected
138
- );
139
- }
140
- models.selected.setValue(newSelected);
141
- };
142
- const selectRange = (event, nodes, stacked = false) => {
143
- if (params.disableSelection) {
144
- return;
145
- }
146
- const { start = lastSelectedNode.current, end, current } = nodes;
147
- if (stacked) {
148
- handleRangeArrowSelect(event, { start, next: end, current });
149
- } else if (start != null && end != null) {
150
- handleRangeSelect(event, { start, end });
151
- }
152
- lastSelectionWasRange.current = true;
153
- };
154
- const rangeSelectToFirst = (event, nodeId) => {
155
- if (!lastSelectedNode.current) {
156
- lastSelectedNode.current = nodeId;
157
- }
158
- const start = lastSelectionWasRange.current ? lastSelectedNode.current : nodeId;
159
- instance.selectRange(event, {
160
- start,
161
- end: getFirstNode(instance)
162
- });
163
- };
164
- const rangeSelectToLast = (event, nodeId) => {
165
- if (!lastSelectedNode.current) {
166
- lastSelectedNode.current = nodeId;
167
- }
168
- const start = lastSelectionWasRange.current ? lastSelectedNode.current : nodeId;
169
- instance.selectRange(event, {
170
- start,
171
- end: getLastNode(instance)
172
- });
173
- };
174
- populateInstance(instance, {
175
- isNodeSelected,
176
- selectNode,
177
- selectRange,
178
- rangeSelectToLast,
179
- rangeSelectToFirst
180
- });
181
- return {
182
- getRootProps: () => ({
183
- "aria-multiselectable": params.multiSelect
184
- })
185
- };
51
+ var useTreeViewSelection = ({ instance, params, models }) => {
52
+ const lastSelectedNode = React.useRef(null);
53
+ const lastSelectionWasRange = React.useRef(false);
54
+ const currentRangeSelection = React.useRef([]);
55
+ const isNodeSelected = (nodeId) => Array.isArray(models.selected.value) ? models.selected.value.indexOf(nodeId) !== -1 : models.selected.value === nodeId;
56
+ const selectNode = (event, nodeId, multiple = false) => {
57
+ if (params.disableSelection) return;
58
+ if (multiple) {
59
+ if (Array.isArray(models.selected.value)) {
60
+ let newSelected;
61
+ if (models.selected.value.indexOf(nodeId) !== -1) newSelected = models.selected.value.filter((id) => id !== nodeId);
62
+ else newSelected = [nodeId].concat(models.selected.value);
63
+ if (params.onNodeSelect) params.onNodeSelect(event, newSelected);
64
+ models.selected.setValue(newSelected);
65
+ }
66
+ } else {
67
+ const newSelected = params.multiSelect ? [nodeId] : nodeId;
68
+ if (params.onNodeSelect) params.onNodeSelect(event, newSelected);
69
+ models.selected.setValue(newSelected);
70
+ }
71
+ lastSelectedNode.current = nodeId;
72
+ lastSelectionWasRange.current = false;
73
+ currentRangeSelection.current = [];
74
+ };
75
+ const getNodesInRange = (nodeAId, nodeBId) => {
76
+ const [first, last] = findOrderInTremauxTree(instance, nodeAId, nodeBId);
77
+ const nodes = [first];
78
+ let current = first;
79
+ while (current !== last) {
80
+ current = getNextNode(instance, current);
81
+ nodes.push(current);
82
+ }
83
+ return nodes;
84
+ };
85
+ const handleRangeArrowSelect = (event, nodes) => {
86
+ let base = models.selected.value.slice();
87
+ const { start, next, current } = nodes;
88
+ if (!next || !current) return;
89
+ if (currentRangeSelection.current.indexOf(current) === -1) currentRangeSelection.current = [];
90
+ if (lastSelectionWasRange.current) if (currentRangeSelection.current.indexOf(next) !== -1) {
91
+ base = base.filter((id) => id === start || id !== current);
92
+ currentRangeSelection.current = currentRangeSelection.current.filter((id) => id === start || id !== current);
93
+ } else {
94
+ base.push(next);
95
+ currentRangeSelection.current.push(next);
96
+ }
97
+ else {
98
+ base.push(next);
99
+ currentRangeSelection.current.push(current, next);
100
+ }
101
+ if (params.onNodeSelect) params.onNodeSelect(event, base);
102
+ models.selected.setValue(base);
103
+ };
104
+ const handleRangeSelect = (event, nodes) => {
105
+ let base = models.selected.value.slice();
106
+ const { start, end } = nodes;
107
+ if (lastSelectionWasRange.current) base = base.filter((id) => currentRangeSelection.current.indexOf(id) === -1);
108
+ let range = getNodesInRange(start, end);
109
+ range = range.filter((node) => !instance.isNodeDisabled(node));
110
+ currentRangeSelection.current = range;
111
+ let newSelected = base.concat(range);
112
+ newSelected = newSelected.filter((id, i) => newSelected.indexOf(id) === i);
113
+ if (params.onNodeSelect) params.onNodeSelect(event, newSelected);
114
+ models.selected.setValue(newSelected);
115
+ };
116
+ const selectRange = (event, nodes, stacked = false) => {
117
+ if (params.disableSelection) return;
118
+ const { start = lastSelectedNode.current, end, current } = nodes;
119
+ if (stacked) handleRangeArrowSelect(event, {
120
+ start,
121
+ next: end,
122
+ current
123
+ });
124
+ else if (start != null && end != null) handleRangeSelect(event, {
125
+ start,
126
+ end
127
+ });
128
+ lastSelectionWasRange.current = true;
129
+ };
130
+ const rangeSelectToFirst = (event, nodeId) => {
131
+ if (!lastSelectedNode.current) lastSelectedNode.current = nodeId;
132
+ const start = lastSelectionWasRange.current ? lastSelectedNode.current : nodeId;
133
+ instance.selectRange(event, {
134
+ start,
135
+ end: getFirstNode(instance)
136
+ });
137
+ };
138
+ const rangeSelectToLast = (event, nodeId) => {
139
+ if (!lastSelectedNode.current) lastSelectedNode.current = nodeId;
140
+ const start = lastSelectionWasRange.current ? lastSelectedNode.current : nodeId;
141
+ instance.selectRange(event, {
142
+ start,
143
+ end: getLastNode(instance)
144
+ });
145
+ };
146
+ populateInstance(instance, {
147
+ isNodeSelected,
148
+ selectNode,
149
+ selectRange,
150
+ rangeSelectToLast,
151
+ rangeSelectToFirst
152
+ });
153
+ return { getRootProps: () => ({ "aria-multiselectable": params.multiSelect }) };
186
154
  };
187
- useTreeViewSelection.models = {
188
- selected: { controlledProp: "selected", defaultProp: "defaultSelected" }
189
- };
190
- const DEFAULT_SELECTED = [];
155
+ useTreeViewSelection.models = { selected: {
156
+ controlledProp: "selected",
157
+ defaultProp: "defaultSelected"
158
+ } };
159
+ var DEFAULT_SELECTED = [];
191
160
  useTreeViewSelection.getDefaultizedParams = (params) => ({
192
- ...params,
193
- disableSelection: params.disableSelection ?? false,
194
- multiSelect: params.multiSelect ?? false,
195
- defaultSelected: params.defaultSelected ?? (params.multiSelect ? DEFAULT_SELECTED : null)
161
+ ...params,
162
+ disableSelection: params.disableSelection ?? false,
163
+ multiSelect: params.multiSelect ?? false,
164
+ defaultSelected: params.defaultSelected ?? (params.multiSelect ? DEFAULT_SELECTED : null)
196
165
  });
197
- export {
198
- findOrderInTremauxTree,
199
- useTreeViewSelection
200
- };
166
+ //#endregion
167
+ export { useTreeViewSelection };
@@ -1,77 +1,55 @@
1
- import * as React from "react";
2
1
  import { FinalizationRegistryBasedCleanupTracking } from "../utils/FinalizationRegistryBasedCleanupTracking.js";
3
2
  import { TimerBasedCleanupTracking } from "../utils/TimerBasedCleanupTracking.js";
4
- class ObjectToBeRetainedByReact {
5
- }
6
- function createUseInstanceEventHandler(registryContainer2) {
7
- let cleanupTokensCounter = 0;
8
- return function useInstanceEventHandler2(instance, eventName, handler) {
9
- if (registryContainer2.registry === null) {
10
- registryContainer2.registry = typeof FinalizationRegistry !== "undefined" ? new FinalizationRegistryBasedCleanupTracking() : new TimerBasedCleanupTracking();
11
- }
12
- const [objectRetainedByReact] = React.useState(
13
- new ObjectToBeRetainedByReact()
14
- );
15
- const subscription = React.useRef(null);
16
- const handlerRef = React.useRef(void 0);
17
- handlerRef.current = handler;
18
- const cleanupTokenRef = React.useRef(null);
19
- if (!subscription.current && handlerRef.current) {
20
- const enhancedHandler = (params, event) => {
21
- if (!event.defaultMuiPrevented) {
22
- handlerRef.current?.(params, event);
23
- }
24
- };
25
- subscription.current = instance.$$subscribeEvent(
26
- eventName,
27
- enhancedHandler
28
- );
29
- cleanupTokensCounter += 1;
30
- cleanupTokenRef.current = { cleanupToken: cleanupTokensCounter };
31
- registryContainer2.registry.register(
32
- objectRetainedByReact,
33
- // The callback below will be called once this reference stops being retained
34
- () => {
35
- subscription.current?.();
36
- subscription.current = null;
37
- cleanupTokenRef.current = null;
38
- },
39
- cleanupTokenRef.current
40
- );
41
- } else if (!handlerRef.current && subscription.current) {
42
- subscription.current();
43
- subscription.current = null;
44
- if (cleanupTokenRef.current) {
45
- registryContainer2.registry.unregister(cleanupTokenRef.current);
46
- cleanupTokenRef.current = null;
47
- }
48
- }
49
- React.useEffect(() => {
50
- if (!subscription.current && handlerRef.current) {
51
- const enhancedHandler = (params, event) => {
52
- if (!event.defaultMuiPrevented) {
53
- handlerRef.current?.(params, event);
54
- }
55
- };
56
- subscription.current = instance.$$subscribeEvent(
57
- eventName,
58
- enhancedHandler
59
- );
60
- }
61
- if (cleanupTokenRef.current && registryContainer2.registry) {
62
- registryContainer2.registry.unregister(cleanupTokenRef.current);
63
- cleanupTokenRef.current = null;
64
- }
65
- return () => {
66
- subscription.current?.();
67
- subscription.current = null;
68
- };
69
- }, [instance, eventName]);
70
- };
3
+ import * as React from "react";
4
+ //#region src/TreeView/internals/hooks/useInstanceEventHandler.ts
5
+ var ObjectToBeRetainedByReact = class {};
6
+ function createUseInstanceEventHandler(registryContainer) {
7
+ let cleanupTokensCounter = 0;
8
+ return function useInstanceEventHandler(instance, eventName, handler) {
9
+ if (registryContainer.registry === null) registryContainer.registry = typeof FinalizationRegistry !== "undefined" ? new FinalizationRegistryBasedCleanupTracking() : new TimerBasedCleanupTracking();
10
+ const [objectRetainedByReact] = React.useState(new ObjectToBeRetainedByReact());
11
+ const subscription = React.useRef(null);
12
+ const handlerRef = React.useRef(void 0);
13
+ handlerRef.current = handler;
14
+ const cleanupTokenRef = React.useRef(null);
15
+ if (!subscription.current && handlerRef.current) {
16
+ const enhancedHandler = (params, event) => {
17
+ if (!event.defaultMuiPrevented) handlerRef.current?.(params, event);
18
+ };
19
+ subscription.current = instance.$$subscribeEvent(eventName, enhancedHandler);
20
+ cleanupTokensCounter += 1;
21
+ cleanupTokenRef.current = { cleanupToken: cleanupTokensCounter };
22
+ registryContainer.registry.register(objectRetainedByReact, () => {
23
+ subscription.current?.();
24
+ subscription.current = null;
25
+ cleanupTokenRef.current = null;
26
+ }, cleanupTokenRef.current);
27
+ } else if (!handlerRef.current && subscription.current) {
28
+ subscription.current();
29
+ subscription.current = null;
30
+ if (cleanupTokenRef.current) {
31
+ registryContainer.registry.unregister(cleanupTokenRef.current);
32
+ cleanupTokenRef.current = null;
33
+ }
34
+ }
35
+ React.useEffect(() => {
36
+ if (!subscription.current && handlerRef.current) {
37
+ const enhancedHandler = (params, event) => {
38
+ if (!event.defaultMuiPrevented) handlerRef.current?.(params, event);
39
+ };
40
+ subscription.current = instance.$$subscribeEvent(eventName, enhancedHandler);
41
+ }
42
+ if (cleanupTokenRef.current && registryContainer.registry) {
43
+ registryContainer.registry.unregister(cleanupTokenRef.current);
44
+ cleanupTokenRef.current = null;
45
+ }
46
+ return () => {
47
+ subscription.current?.();
48
+ subscription.current = null;
49
+ };
50
+ }, [instance, eventName]);
51
+ };
71
52
  }
72
- const registryContainer = { registry: null };
73
- const useInstanceEventHandler = createUseInstanceEventHandler(registryContainer);
74
- export {
75
- createUseInstanceEventHandler,
76
- useInstanceEventHandler
77
- };
53
+ var useInstanceEventHandler = createUseInstanceEventHandler({ registry: null });
54
+ //#endregion
55
+ export { useInstanceEventHandler };
@@ -1,73 +1,58 @@
1
- import * as React from "react";
2
- import useForkRef from "@mui/utils/useForkRef";
3
1
  import { TREE_VIEW_CORE_PLUGINS } from "../corePlugins.js";
4
2
  import { DEFAULT_TREE_VIEW_CONTEXT_VALUE } from "../TreeViewProvider.js";
5
3
  import { useTreeViewModels } from "./useTreeViewModels.js";
6
- const useTreeView = (inParams) => {
7
- const plugins = [...TREE_VIEW_CORE_PLUGINS, ...inParams.plugins];
8
- const params = plugins.reduce((acc, plugin) => {
9
- if (plugin.getDefaultizedParams) {
10
- return plugin.getDefaultizedParams(acc);
11
- }
12
- return acc;
13
- }, inParams);
14
- const models = useTreeViewModels(
15
- plugins,
16
- params
17
- );
18
- const instanceRef = React.useRef(
19
- {}
20
- );
21
- const instance = instanceRef.current;
22
- const innerRootRef = React.useRef(null);
23
- const handleRootRef = useForkRef(innerRootRef, inParams.rootRef);
24
- const [state, setState] = React.useState(() => {
25
- const temp = {};
26
- plugins.forEach((plugin) => {
27
- if (plugin.getInitialState) {
28
- Object.assign(
29
- temp,
30
- plugin.getInitialState(
31
- params
32
- )
33
- );
34
- }
35
- });
36
- return temp;
37
- });
38
- const rootPropsGetters = [];
39
- let contextValue = DEFAULT_TREE_VIEW_CONTEXT_VALUE;
40
- const runPlugin = (plugin) => {
41
- const pluginResponse = plugin({
42
- instance,
43
- params,
44
- state,
45
- setState,
46
- rootRef: innerRootRef,
47
- models
48
- }) || {};
49
- if (pluginResponse.getRootProps) {
50
- rootPropsGetters.push(pluginResponse.getRootProps);
51
- }
52
- if (pluginResponse.contextValue) {
53
- contextValue = pluginResponse.contextValue;
54
- }
55
- };
56
- plugins.forEach(runPlugin);
57
- const getRootProps = (otherHandlers = {}) => {
58
- const rootProps = {
59
- role: "tree",
60
- tabIndex: 0,
61
- ...otherHandlers,
62
- ref: handleRootRef
63
- };
64
- rootPropsGetters.forEach((rootPropsGetter) => {
65
- Object.assign(rootProps, rootPropsGetter(otherHandlers));
66
- });
67
- return rootProps;
68
- };
69
- return { getRootProps, rootRef: handleRootRef, contextValue };
70
- };
71
- export {
72
- useTreeView
4
+ import * as React from "react";
5
+ import useForkRef from "@mui/utils/useForkRef";
6
+ //#region src/TreeView/internals/hooks/useTreeView.ts
7
+ var useTreeView = (inParams) => {
8
+ const plugins = [...TREE_VIEW_CORE_PLUGINS, ...inParams.plugins];
9
+ const params = plugins.reduce((acc, plugin) => {
10
+ if (plugin.getDefaultizedParams) return plugin.getDefaultizedParams(acc);
11
+ return acc;
12
+ }, inParams);
13
+ const models = useTreeViewModels(plugins, params);
14
+ const instance = React.useRef({}).current;
15
+ const innerRootRef = React.useRef(null);
16
+ const handleRootRef = useForkRef(innerRootRef, inParams.rootRef);
17
+ const [state, setState] = React.useState(() => {
18
+ const temp = {};
19
+ plugins.forEach((plugin) => {
20
+ if (plugin.getInitialState) Object.assign(temp, plugin.getInitialState(params));
21
+ });
22
+ return temp;
23
+ });
24
+ const rootPropsGetters = [];
25
+ let contextValue = DEFAULT_TREE_VIEW_CONTEXT_VALUE;
26
+ const runPlugin = (plugin) => {
27
+ const pluginResponse = plugin({
28
+ instance,
29
+ params,
30
+ state,
31
+ setState,
32
+ rootRef: innerRootRef,
33
+ models
34
+ }) || {};
35
+ if (pluginResponse.getRootProps) rootPropsGetters.push(pluginResponse.getRootProps);
36
+ if (pluginResponse.contextValue) contextValue = pluginResponse.contextValue;
37
+ };
38
+ plugins.forEach(runPlugin);
39
+ const getRootProps = (otherHandlers = {}) => {
40
+ const rootProps = {
41
+ role: "tree",
42
+ tabIndex: 0,
43
+ ...otherHandlers,
44
+ ref: handleRootRef
45
+ };
46
+ rootPropsGetters.forEach((rootPropsGetter) => {
47
+ Object.assign(rootProps, rootPropsGetter(otherHandlers));
48
+ });
49
+ return rootProps;
50
+ };
51
+ return {
52
+ getRootProps,
53
+ rootRef: handleRootRef,
54
+ contextValue
55
+ };
73
56
  };
57
+ //#endregion
58
+ export { useTreeView };