@hitachivantara/uikit-react-core 6.8.2 → 6.9.1

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 (442) hide show
  1. package/LICENSE +201 -0
  2. package/dist/Accordion/Accordion.js +69 -80
  3. package/dist/Accordion/Accordion.styles.js +21 -16
  4. package/dist/ActionBar/ActionBar.js +18 -17
  5. package/dist/ActionBar/ActionBar.styles.js +12 -15
  6. package/dist/ActionsGeneric/ActionsGeneric.js +72 -98
  7. package/dist/ActionsGeneric/ActionsGeneric.styles.js +17 -14
  8. package/dist/AppSwitcher/Action/Action.js +96 -111
  9. package/dist/AppSwitcher/Action/Action.styles.js +44 -48
  10. package/dist/AppSwitcher/AppSwitcher.js +70 -98
  11. package/dist/AppSwitcher/AppSwitcher.styles.js +50 -53
  12. package/dist/Avatar/Avatar.js +66 -111
  13. package/dist/Avatar/Avatar.styles.js +62 -52
  14. package/dist/AvatarGroup/AvatarGroup.js +49 -78
  15. package/dist/AvatarGroup/AvatarGroup.styles.js +40 -60
  16. package/dist/AvatarGroup/AvatarGroupContext.js +13 -16
  17. package/dist/Badge/Badge.js +40 -49
  18. package/dist/Badge/Badge.styles.js +50 -50
  19. package/dist/Banner/Banner.js +50 -82
  20. package/dist/Banner/Banner.styles.js +13 -22
  21. package/dist/Banner/BannerContent/BannerContent.js +35 -56
  22. package/dist/Banner/BannerContent/BannerContent.styles.js +31 -36
  23. package/dist/BaseCheckBox/BaseCheckBox.js +71 -88
  24. package/dist/BaseCheckBox/BaseCheckBox.styles.js +24 -31
  25. package/dist/BaseCheckBox/CheckBoxIcon.js +57 -73
  26. package/dist/BaseDropdown/BaseDropdown.js +147 -189
  27. package/dist/BaseDropdown/BaseDropdown.styles.js +72 -84
  28. package/dist/BaseDropdown/BaseDropdownPanel.js +69 -86
  29. package/dist/BaseDropdown/utils.js +77 -76
  30. package/dist/BaseInput/BaseInput.js +53 -89
  31. package/dist/BaseInput/BaseInput.styles.js +85 -105
  32. package/dist/BaseInput/validations.js +72 -69
  33. package/dist/BaseRadio/BaseRadio.js +61 -85
  34. package/dist/BaseRadio/BaseRadio.styles.js +26 -31
  35. package/dist/BaseRadio/RadioIcon.js +43 -48
  36. package/dist/BaseSwitch/BaseSwitch.js +70 -108
  37. package/dist/BaseSwitch/BaseSwitch.styles.js +94 -113
  38. package/dist/BreadCrumb/BreadCrumb.js +84 -106
  39. package/dist/BreadCrumb/BreadCrumb.styles.js +20 -17
  40. package/dist/BreadCrumb/Page/Page.js +24 -34
  41. package/dist/BreadCrumb/Page/Page.styles.js +20 -25
  42. package/dist/BreadCrumb/PathElement/PathElement.js +17 -17
  43. package/dist/BreadCrumb/PathElement/PathElement.styles.js +9 -7
  44. package/dist/BreadCrumb/utils.js +19 -27
  45. package/dist/BulkActions/BulkActions.js +57 -96
  46. package/dist/BulkActions/BulkActions.styles.js +37 -45
  47. package/dist/Button/Button.js +67 -95
  48. package/dist/Button/Button.styles.js +107 -124
  49. package/dist/ButtonBase/ButtonBase.js +32 -51
  50. package/dist/ButtonBase/ButtonBase.styles.js +21 -30
  51. package/dist/Calendar/Calendar.js +73 -101
  52. package/dist/Calendar/Calendar.styles.js +14 -32
  53. package/dist/Calendar/CalendarHeader/CalendarHeader.js +91 -118
  54. package/dist/Calendar/CalendarHeader/CalendarHeader.styles.js +11 -16
  55. package/dist/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js +36 -50
  56. package/dist/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.styles.js +12 -18
  57. package/dist/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js +23 -43
  58. package/dist/Calendar/CalendarNavigation/MonthSelector/MonthSelector.styles.js +21 -24
  59. package/dist/Calendar/CalendarNavigation/Navigation/Navigation.js +43 -59
  60. package/dist/Calendar/CalendarNavigation/Navigation/Navigation.styles.js +21 -24
  61. package/dist/Calendar/SingleCalendar/CalendarCell.js +60 -84
  62. package/dist/Calendar/SingleCalendar/CalendarCell.styles.js +39 -56
  63. package/dist/Calendar/SingleCalendar/SingleCalendar.js +121 -154
  64. package/dist/Calendar/SingleCalendar/SingleCalendar.styles.js +53 -68
  65. package/dist/Calendar/model.js +45 -62
  66. package/dist/Calendar/utils.js +233 -128
  67. package/dist/Card/Card.js +35 -53
  68. package/dist/Card/Card.styles.js +37 -50
  69. package/dist/Card/Content/Content.js +15 -27
  70. package/dist/Card/Content/Content.styles.js +5 -10
  71. package/dist/Card/Header/Header.js +22 -35
  72. package/dist/Card/Header/Header.styles.js +22 -25
  73. package/dist/Card/Media/Media.js +16 -26
  74. package/dist/Card/Media/Media.styles.js +6 -7
  75. package/dist/Carousel/Carousel.js +176 -207
  76. package/dist/Carousel/Carousel.styles.js +141 -166
  77. package/dist/Carousel/CarouselControls.js +48 -62
  78. package/dist/Carousel/CarouselSlide/CarouselSlide.js +19 -25
  79. package/dist/Carousel/CarouselSlide/CarouselSlide.styles.js +10 -11
  80. package/dist/Carousel/CarouselThumbnails.js +29 -36
  81. package/dist/CheckBox/CheckBox.js +112 -182
  82. package/dist/CheckBox/CheckBox.styles.js +48 -57
  83. package/dist/CheckBoxGroup/CheckBoxGroup.js +154 -245
  84. package/dist/CheckBoxGroup/CheckBoxGroup.styles.js +29 -35
  85. package/dist/ColorPicker/ColorPicker.js +146 -222
  86. package/dist/ColorPicker/ColorPicker.styles.js +40 -45
  87. package/dist/ColorPicker/Picker/Fields.js +125 -141
  88. package/dist/ColorPicker/Picker/Picker.js +51 -50
  89. package/dist/ColorPicker/Picker/Picker.styles.js +42 -42
  90. package/dist/ColorPicker/PresetColors/PresetColors.js +25 -28
  91. package/dist/ColorPicker/PresetColors/PresetColors.styles.js +17 -17
  92. package/dist/ColorPicker/SavedColors/SavedColors.js +37 -41
  93. package/dist/ColorPicker/SavedColors/SavedColors.styles.js +27 -29
  94. package/dist/ColorPicker/Swatch.js +22 -37
  95. package/dist/Container/Container.js +37 -58
  96. package/dist/Container/Container.styles.js +12 -13
  97. package/dist/Controls/Controls.js +50 -74
  98. package/dist/Controls/Controls.styles.js +16 -13
  99. package/dist/Controls/LeftControl/LeftControl.js +25 -38
  100. package/dist/Controls/LeftControl/LeftControl.styles.js +7 -7
  101. package/dist/Controls/RightControl/RightControl.js +31 -46
  102. package/dist/Controls/RightControl/RightControl.styles.js +9 -7
  103. package/dist/Controls/context/ControlsContext.js +5 -6
  104. package/dist/DatePicker/DatePicker.js +286 -339
  105. package/dist/DatePicker/DatePicker.styles.js +25 -40
  106. package/dist/DatePicker/useVisibleDate.js +142 -126
  107. package/dist/DatePicker/utils.js +17 -26
  108. package/dist/Dialog/Actions/Actions.js +19 -29
  109. package/dist/Dialog/Actions/Actions.styles.js +20 -20
  110. package/dist/Dialog/Content/Content.js +29 -46
  111. package/dist/Dialog/Content/Content.styles.js +14 -15
  112. package/dist/Dialog/Dialog.js +49 -69
  113. package/dist/Dialog/Dialog.styles.js +33 -46
  114. package/dist/Dialog/Title/Title.js +20 -42
  115. package/dist/Dialog/Title/Title.styles.js +14 -16
  116. package/dist/Dialog/context.js +5 -6
  117. package/dist/DotPagination/DotPagination.js +44 -59
  118. package/dist/DotPagination/DotPagination.styles.js +44 -47
  119. package/dist/Drawer/Drawer.js +37 -64
  120. package/dist/Drawer/Drawer.styles.js +18 -21
  121. package/dist/DropDownMenu/DropDownMenu.js +88 -124
  122. package/dist/DropDownMenu/DropDownMenu.styles.js +12 -21
  123. package/dist/Dropdown/Dropdown.js +221 -310
  124. package/dist/Dropdown/Dropdown.styles.js +39 -48
  125. package/dist/Dropdown/List/List.js +194 -176
  126. package/dist/Dropdown/List/List.styles.js +23 -24
  127. package/dist/Dropdown/utils.js +15 -16
  128. package/dist/DropdownButton/DropdownButton.js +42 -46
  129. package/dist/DropdownButton/DropdownButton.styles.js +37 -47
  130. package/dist/EmptyState/EmptyState.js +48 -61
  131. package/dist/EmptyState/EmptyState.styles.js +31 -31
  132. package/dist/FileUploader/DropZone/DropZone.js +141 -179
  133. package/dist/FileUploader/DropZone/DropZone.styles.js +55 -68
  134. package/dist/FileUploader/File/File.js +85 -75
  135. package/dist/FileUploader/File/File.styles.js +55 -60
  136. package/dist/FileUploader/FileList/FileList.js +19 -28
  137. package/dist/FileUploader/FileList/FileList.styles.js +15 -16
  138. package/dist/FileUploader/FileUploader.js +35 -55
  139. package/dist/FileUploader/FileUploader.styles.js +4 -7
  140. package/dist/FileUploader/Preview/Preview.js +37 -52
  141. package/dist/FileUploader/Preview/Preview.styles.js +22 -28
  142. package/dist/FileUploader/utils.js +24 -11
  143. package/dist/FilterGroup/Counter/Counter.js +31 -43
  144. package/dist/FilterGroup/Counter/Counter.styles.js +12 -15
  145. package/dist/FilterGroup/FilterContent/FilterContent.js +138 -177
  146. package/dist/FilterGroup/FilterContent/FilterContent.styles.js +46 -53
  147. package/dist/FilterGroup/FilterContent/HeaderButton.js +77 -100
  148. package/dist/FilterGroup/FilterGroup.js +87 -136
  149. package/dist/FilterGroup/FilterGroup.styles.js +9 -10
  150. package/dist/FilterGroup/FilterGroupContext.js +68 -73
  151. package/dist/FilterGroup/LeftPanel/LeftPanel.js +28 -31
  152. package/dist/FilterGroup/LeftPanel/LeftPanel.styles.js +6 -11
  153. package/dist/FilterGroup/RightPanel/RightPanel.js +118 -151
  154. package/dist/FilterGroup/RightPanel/RightPanel.styles.js +17 -27
  155. package/dist/Focus/Focus.js +248 -344
  156. package/dist/Focus/Focus.styles.js +28 -39
  157. package/dist/Focus/utils.js +14 -20
  158. package/dist/Footer/Footer.js +36 -38
  159. package/dist/Footer/Footer.styles.js +40 -43
  160. package/dist/FormElement/Adornment/Adornment.js +38 -49
  161. package/dist/FormElement/Adornment/Adornment.styles.js +14 -15
  162. package/dist/FormElement/CharCounter/CharCounter.js +51 -73
  163. package/dist/FormElement/CharCounter/CharCounter.styles.js +12 -10
  164. package/dist/FormElement/FormElement.js +53 -31
  165. package/dist/FormElement/FormElement.styles.js +4 -7
  166. package/dist/FormElement/InfoMessage/InfoMessage.js +26 -41
  167. package/dist/FormElement/InfoMessage/InfoMessage.styles.js +11 -9
  168. package/dist/FormElement/Label/Label.js +33 -56
  169. package/dist/FormElement/Label/Label.styles.js +11 -9
  170. package/dist/FormElement/LabelContainer.js +46 -55
  171. package/dist/FormElement/Suggestions/Suggestions.js +46 -71
  172. package/dist/FormElement/Suggestions/Suggestions.styles.js +9 -16
  173. package/dist/FormElement/WarningText/WarningText.js +41 -62
  174. package/dist/FormElement/WarningText/WarningText.styles.js +25 -28
  175. package/dist/FormElement/context.js +6 -10
  176. package/dist/FormElement/utils.js +54 -58
  177. package/dist/GlobalActions/GlobalActions.js +53 -59
  178. package/dist/GlobalActions/GlobalActions.styles.js +67 -76
  179. package/dist/Grid/Grid.js +82 -112
  180. package/dist/Grid/Grid.styles.js +37 -38
  181. package/dist/Header/Actions/Actions.js +15 -17
  182. package/dist/Header/Actions/Actions.styles.js +12 -15
  183. package/dist/Header/Brand/Brand.js +27 -23
  184. package/dist/Header/Brand/Brand.styles.js +16 -14
  185. package/dist/Header/Header.js +22 -31
  186. package/dist/Header/Header.styles.js +32 -30
  187. package/dist/Header/Navigation/MenuBar/Bar.js +23 -36
  188. package/dist/Header/Navigation/MenuBar/Bar.styles.js +54 -61
  189. package/dist/Header/Navigation/MenuBar/MenuBar.js +20 -26
  190. package/dist/Header/Navigation/MenuItem/MenuItem.js +104 -120
  191. package/dist/Header/Navigation/MenuItem/MenuItem.styles.js +48 -63
  192. package/dist/Header/Navigation/Navigation.js +32 -37
  193. package/dist/Header/Navigation/Navigation.styles.js +11 -17
  194. package/dist/Header/Navigation/useSelectionPath.js +17 -20
  195. package/dist/Header/Navigation/utils/FocusContext.js +23 -20
  196. package/dist/Header/Navigation/utils/SelectionContext.js +4 -4
  197. package/dist/IconButton/IconButton.js +25 -32
  198. package/dist/IconContainer/IconContainer.js +55 -76
  199. package/dist/InlineEditor/InlineEditor.js +105 -131
  200. package/dist/InlineEditor/InlineEditor.styles.js +44 -53
  201. package/dist/Input/Input.js +385 -461
  202. package/dist/Input/Input.styles.js +34 -47
  203. package/dist/Input/icons.js +16 -21
  204. package/dist/Input/utils.js +8 -11
  205. package/dist/List/List.js +196 -247
  206. package/dist/List/List.styles.js +44 -49
  207. package/dist/List/useSelectableList.js +11 -8
  208. package/dist/List/utils.js +24 -33
  209. package/dist/ListContainer/ListContainer.js +52 -65
  210. package/dist/ListContainer/ListContainer.styles.js +7 -10
  211. package/dist/ListContainer/ListContext/ListContext.js +4 -4
  212. package/dist/ListContainer/ListItem/ListItem.js +79 -117
  213. package/dist/ListContainer/ListItem/ListItem.styles.js +57 -78
  214. package/dist/Loading/Loading.js +31 -46
  215. package/dist/Loading/Loading.styles.js +41 -48
  216. package/dist/LoadingContainer/LoadingContainer.js +34 -40
  217. package/dist/LoadingContainer/LoadingContainer.styles.js +17 -18
  218. package/dist/Login/Login.js +22 -29
  219. package/dist/Login/Login.styles.js +20 -21
  220. package/dist/MultiButton/MultiButton.js +41 -59
  221. package/dist/MultiButton/MultiButton.styles.js +117 -137
  222. package/dist/NumberInput/NumberInput.js +51 -50
  223. package/dist/NumberInput/NumberInput.styles.js +5 -10
  224. package/dist/OverflowTooltip/OverflowTooltip.js +55 -75
  225. package/dist/OverflowTooltip/OverflowTooltip.styles.js +19 -23
  226. package/dist/Pagination/Pagination.js +176 -164
  227. package/dist/Pagination/Pagination.styles.js +86 -90
  228. package/dist/Pagination/Select.js +51 -60
  229. package/dist/Pagination/Select.styles.js +13 -19
  230. package/dist/Panel/Panel.js +19 -20
  231. package/dist/Panel/Panel.styles.js +12 -15
  232. package/dist/ProgressBar/ProgressBar.js +40 -53
  233. package/dist/ProgressBar/ProgressBar.styles.js +28 -40
  234. package/dist/QueryBuilder/ConfirmationDialog.js +35 -28
  235. package/dist/QueryBuilder/Context.js +308 -322
  236. package/dist/QueryBuilder/QueryBuilder.js +108 -137
  237. package/dist/QueryBuilder/QueryBuilder.styles.js +117 -108
  238. package/dist/QueryBuilder/Rule/Attribute.js +56 -63
  239. package/dist/QueryBuilder/Rule/Operator.js +53 -58
  240. package/dist/QueryBuilder/Rule/Rule.js +70 -88
  241. package/dist/QueryBuilder/Rule/Rule.styles.js +49 -56
  242. package/dist/QueryBuilder/RuleGroup.js +160 -206
  243. package/dist/QueryBuilder/Value/BooleanValue.js +38 -37
  244. package/dist/QueryBuilder/Value/DateTimeValue.js +233 -299
  245. package/dist/QueryBuilder/Value/EmptyValue.js +14 -14
  246. package/dist/QueryBuilder/Value/NumericValue.js +152 -204
  247. package/dist/QueryBuilder/Value/TextValue.js +38 -54
  248. package/dist/QueryBuilder/Value/Value.js +42 -67
  249. package/dist/QueryBuilder/types.js +4 -4
  250. package/dist/QueryBuilder/utils/index.js +40 -74
  251. package/dist/QueryBuilder/utils/reducer.js +86 -92
  252. package/dist/Radio/Radio.js +96 -145
  253. package/dist/Radio/Radio.styles.js +47 -55
  254. package/dist/RadioGroup/RadioGroup.js +98 -159
  255. package/dist/RadioGroup/RadioGroup.styles.js +28 -34
  256. package/dist/ScrollToHorizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +34 -51
  257. package/dist/ScrollToHorizontal/HorizontalScrollListItem/HorizontalScrollListItem.styles.js +39 -48
  258. package/dist/ScrollToHorizontal/ScrollToHorizontal.js +56 -91
  259. package/dist/ScrollToHorizontal/ScrollToHorizontal.styles.js +28 -32
  260. package/dist/ScrollToVertical/ScrollToVertical.js +45 -77
  261. package/dist/ScrollToVertical/ScrollToVertical.styles.js +31 -38
  262. package/dist/ScrollToVertical/VerticalScrollListItem/VerticalScrollListItem.js +30 -39
  263. package/dist/ScrollToVertical/VerticalScrollListItem/VerticalScrollListItem.styles.js +44 -51
  264. package/dist/SearchInput/SearchInput.js +27 -25
  265. package/dist/SearchInput/SearchInput.styles.js +6 -7
  266. package/dist/Section/Section.js +69 -104
  267. package/dist/Section/Section.styles.js +53 -57
  268. package/dist/Select/Option.js +29 -46
  269. package/dist/Select/OptionGroup.js +18 -30
  270. package/dist/Select/Select.js +163 -219
  271. package/dist/Select/Select.styles.js +26 -32
  272. package/dist/SelectionList/SelectionList.js +162 -216
  273. package/dist/SelectionList/SelectionList.styles.js +36 -36
  274. package/dist/SimpleGrid/SimpleGrid.js +16 -27
  275. package/dist/SimpleGrid/SimpleGrid.styles.js +28 -39
  276. package/dist/Skeleton/Skeleton.js +26 -44
  277. package/dist/Skeleton/Skeleton.styles.js +43 -66
  278. package/dist/Slider/Slider.js +316 -431
  279. package/dist/Slider/Slider.styles.js +183 -216
  280. package/dist/Slider/SliderInput/SliderInput.js +38 -57
  281. package/dist/Slider/SliderInput/SliderInput.styles.js +13 -14
  282. package/dist/Slider/base.js +221 -243
  283. package/dist/Slider/utils.js +247 -233
  284. package/dist/Snackbar/Snackbar.js +59 -88
  285. package/dist/Snackbar/Snackbar.styles.js +25 -42
  286. package/dist/Snackbar/SnackbarContent/SnackbarContent.js +31 -50
  287. package/dist/Snackbar/SnackbarContent/SnackbarContent.styles.js +27 -30
  288. package/dist/SnackbarProvider/SnackbarProvider.js +73 -105
  289. package/dist/SnackbarProvider/SnackbarProvider.styles.js +20 -26
  290. package/dist/Stack/Stack.js +74 -84
  291. package/dist/Stack/Stack.styles.js +14 -33
  292. package/dist/StatusIcon/StatusIcon.js +78 -102
  293. package/dist/StatusIcon/StatusIcon.styles.js +42 -52
  294. package/dist/Switch/Switch.js +91 -138
  295. package/dist/Switch/Switch.styles.js +49 -60
  296. package/dist/Table/Table.js +62 -66
  297. package/dist/Table/Table.styles.js +23 -28
  298. package/dist/Table/TableBody/TableBody.js +45 -56
  299. package/dist/Table/TableBody/TableBody.styles.js +8 -7
  300. package/dist/Table/TableCell/TableCell.js +37 -66
  301. package/dist/Table/TableCell/TableCell.styles.js +125 -162
  302. package/dist/Table/TableContainer/TableContainer.js +18 -28
  303. package/dist/Table/TableContainer/TableContainer.styles.js +8 -12
  304. package/dist/Table/TableContext.js +4 -4
  305. package/dist/Table/TableHead/TableHead.js +27 -39
  306. package/dist/Table/TableHead/TableHead.styles.js +10 -7
  307. package/dist/Table/TableHeader/TableHeader.js +73 -124
  308. package/dist/Table/TableHeader/TableHeader.styles.js +135 -150
  309. package/dist/Table/TableHeader/utils.js +11 -15
  310. package/dist/Table/TableRow/TableRow.js +32 -51
  311. package/dist/Table/TableRow/TableRow.styles.js +64 -84
  312. package/dist/Table/TableSection/TableSection.js +21 -20
  313. package/dist/Table/TableSection/TableSection.styles.js +63 -96
  314. package/dist/Table/TableSectionContext.js +4 -4
  315. package/dist/Table/hooks/useHvBulkActions.js +54 -89
  316. package/dist/Table/hooks/useHvFilters.js +4 -4
  317. package/dist/Table/hooks/useHvGlobalFilter.js +4 -4
  318. package/dist/Table/hooks/useHvHeaderGroups.js +73 -82
  319. package/dist/Table/hooks/useHvPagination.js +31 -51
  320. package/dist/Table/hooks/useHvResizeColumns.js +25 -31
  321. package/dist/Table/hooks/useHvRowExpand.js +54 -69
  322. package/dist/Table/hooks/useHvRowSelection.js +294 -420
  323. package/dist/Table/hooks/useHvRowState.js +4 -4
  324. package/dist/Table/hooks/useHvSortBy.js +23 -30
  325. package/dist/Table/hooks/useHvSticky.js +114 -154
  326. package/dist/Table/hooks/useHvTable.js +40 -64
  327. package/dist/Table/hooks/useHvTableStyles.js +51 -82
  328. package/dist/Table/renderers/DateColumnCell.js +12 -13
  329. package/dist/Table/renderers/DefaultCell.js +13 -20
  330. package/dist/Table/renderers/DropdownColumnCell.js +4 -4
  331. package/dist/Table/renderers/ProgressColumnCell.js +43 -47
  332. package/dist/Table/renderers/SwitchColumnCell.js +37 -50
  333. package/dist/Table/renderers/renderers.js +146 -183
  334. package/dist/Tabs/Tab/Tab.js +21 -31
  335. package/dist/Tabs/Tab/Tab.styles.js +44 -54
  336. package/dist/Tabs/Tabs.js +23 -28
  337. package/dist/Tabs/Tabs.styles.js +9 -14
  338. package/dist/Tag/Tag.js +86 -129
  339. package/dist/Tag/Tag.styles.js +63 -88
  340. package/dist/TagsInput/TagsInput.js +349 -417
  341. package/dist/TagsInput/TagsInput.styles.js +77 -90
  342. package/dist/TextArea/TextArea.js +207 -274
  343. package/dist/TextArea/TextArea.styles.js +25 -20
  344. package/dist/TimeAgo/TimeAgo.js +24 -30
  345. package/dist/TimeAgo/TimeAgo.styles.js +4 -7
  346. package/dist/TimeAgo/formatUtils.js +54 -65
  347. package/dist/TimeAgo/useTimeAgo.js +18 -18
  348. package/dist/TimeAgo/useTimeout.js +14 -14
  349. package/dist/TimePicker/Placeholder.js +46 -52
  350. package/dist/TimePicker/TimePicker.js +164 -214
  351. package/dist/TimePicker/TimePicker.styles.js +30 -39
  352. package/dist/TimePicker/Unit/Unit.js +63 -49
  353. package/dist/TimePicker/Unit/Unit.styles.js +41 -46
  354. package/dist/ToggleButton/ToggleButton.js +25 -34
  355. package/dist/Tooltip/Tooltip.js +41 -51
  356. package/dist/Tooltip/Tooltip.styles.js +25 -26
  357. package/dist/TreeView/TreeItem/DefaultContent.js +51 -72
  358. package/dist/TreeView/TreeItem/TreeItem.js +102 -140
  359. package/dist/TreeView/TreeItem/TreeItem.styles.js +56 -70
  360. package/dist/TreeView/TreeItem/useHvTreeItem.js +38 -53
  361. package/dist/TreeView/TreeView.js +65 -62
  362. package/dist/TreeView/TreeView.styles.js +11 -13
  363. package/dist/TreeView/internals/DescendantProvider.js +120 -120
  364. package/dist/TreeView/internals/TreeViewProvider.js +32 -26
  365. package/dist/TreeView/internals/corePlugins.js +8 -4
  366. package/dist/TreeView/internals/hooks/plugins/defaultPlugins.js +10 -10
  367. package/dist/TreeView/internals/hooks/plugins/useTreeViewContextValueBuilder.js +20 -22
  368. package/dist/TreeView/internals/hooks/plugins/useTreeViewExpansion.js +39 -61
  369. package/dist/TreeView/internals/hooks/plugins/useTreeViewFocus.js +56 -80
  370. package/dist/TreeView/internals/hooks/plugins/useTreeViewKeyboardNavigation.js +149 -211
  371. package/dist/TreeView/internals/hooks/plugins/useTreeViewNodes.js +42 -68
  372. package/dist/TreeView/internals/hooks/plugins/useTreeViewSelection.js +162 -195
  373. package/dist/TreeView/internals/hooks/useInstanceEventHandler.js +52 -74
  374. package/dist/TreeView/internals/hooks/useTreeView.js +54 -69
  375. package/dist/TreeView/internals/hooks/useTreeViewInstanceEvents.js +28 -33
  376. package/dist/TreeView/internals/hooks/useTreeViewModels.js +34 -43
  377. package/dist/TreeView/internals/hooks/utils.js +28 -42
  378. package/dist/TreeView/internals/utils/EventManager.js +49 -58
  379. package/dist/TreeView/internals/utils/FinalizationRegistryBasedCleanupTracking.js +14 -18
  380. package/dist/TreeView/internals/utils/TimerBasedCleanupTracking.js +33 -37
  381. package/dist/TreeView/internals/utils/publishTreeViewEvent.js +5 -5
  382. package/dist/Typography/Typography.js +34 -51
  383. package/dist/Typography/Typography.styles.js +20 -23
  384. package/dist/VerticalNavigation/Actions/Action.js +23 -42
  385. package/dist/VerticalNavigation/Actions/Action.styles.js +21 -28
  386. package/dist/VerticalNavigation/Actions/Actions.js +15 -31
  387. package/dist/VerticalNavigation/Actions/Actions.styles.js +13 -19
  388. package/dist/VerticalNavigation/Header/Header.js +51 -91
  389. package/dist/VerticalNavigation/Header/Header.styles.js +22 -32
  390. package/dist/VerticalNavigation/Navigation/Navigation.js +183 -267
  391. package/dist/VerticalNavigation/Navigation/Navigation.styles.js +14 -24
  392. package/dist/VerticalNavigation/NavigationPopup/NavigationPopup.styles.js +9 -17
  393. package/dist/VerticalNavigation/NavigationPopup/NavigationPopupContainer.js +30 -32
  394. package/dist/VerticalNavigation/NavigationSlider/NavigationSlider.js +45 -63
  395. package/dist/VerticalNavigation/NavigationSlider/NavigationSlider.styles.js +23 -33
  396. package/dist/VerticalNavigation/NavigationSlider/utils.js +56 -39
  397. package/dist/VerticalNavigation/TreeView/TreeView.js +515 -664
  398. package/dist/VerticalNavigation/TreeView/TreeView.styles.js +10 -16
  399. package/dist/VerticalNavigation/TreeView/TreeViewContext.js +5 -6
  400. package/dist/VerticalNavigation/TreeView/TreeViewItem.js +319 -414
  401. package/dist/VerticalNavigation/TreeView/TreeViewItem.styles.js +91 -143
  402. package/dist/VerticalNavigation/VerticalNavigation.js +70 -97
  403. package/dist/VerticalNavigation/VerticalNavigation.styles.js +31 -45
  404. package/dist/VerticalNavigation/VerticalNavigationContext.js +8 -10
  405. package/dist/hooks/useClickOutside.js +21 -23
  406. package/dist/hooks/useComputation.js +13 -13
  407. package/dist/hooks/useControlled.js +10 -17
  408. package/dist/hooks/useEnhancedEffect.js +5 -5
  409. package/dist/hooks/useExpandable.js +24 -31
  410. package/dist/hooks/useFocus.js +31 -34
  411. package/dist/hooks/useForkRef.js +19 -19
  412. package/dist/hooks/useImageLoaded.js +26 -26
  413. package/dist/hooks/useIsMounted.js +13 -13
  414. package/dist/hooks/useLabels.js +7 -7
  415. package/dist/hooks/useScrollTo.js +101 -130
  416. package/dist/hooks/useUniqueId.js +6 -6
  417. package/dist/hooks/useWidth.js +10 -13
  418. package/dist/icons.js +77 -88
  419. package/dist/index.d.ts +9 -10
  420. package/dist/index.js +226 -554
  421. package/dist/providers/Provider.js +44 -75
  422. package/dist/providers/ThemeProvider.js +79 -71
  423. package/dist/providers/utils.js +40 -47
  424. package/dist/themes/index.js +6 -5
  425. package/dist/themes/next.js +132 -271
  426. package/dist/themes/pentaho.js +832 -1173
  427. package/dist/types/generic.js +5 -4
  428. package/dist/utils/Callout.js +123 -171
  429. package/dist/utils/CounterLabel.js +14 -15
  430. package/dist/utils/deepMerge.js +13 -15
  431. package/dist/utils/document.js +8 -8
  432. package/dist/utils/focusUtils.js +6 -7
  433. package/dist/utils/focusableElementFinder.js +23 -26
  434. package/dist/utils/helpers.js +15 -23
  435. package/dist/utils/iconVariant.js +15 -12
  436. package/dist/utils/keyboardUtils.js +28 -28
  437. package/dist/utils/multiSelectionEventHandler.js +37 -52
  438. package/dist/utils/scroll.js +50 -76
  439. package/dist/utils/setId.js +4 -4
  440. package/dist/utils/theme.js +11 -8
  441. package/dist/utils/useSavedState.js +19 -16
  442. package/package.json +25 -12
@@ -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 };