@hitachivantara/uikit-react-core 3.52.5 → 3.54.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 (888) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/LICENSE.txt +201 -0
  3. package/dist/Accordion/Accordion.js +2 -2
  4. package/dist/Accordion/Accordion.js.map +1 -1
  5. package/dist/ActionBar/ActionBar.js +2 -2
  6. package/dist/ActionBar/ActionBar.js.map +1 -1
  7. package/dist/ActionsGeneric/ActionsGeneric.js +2 -2
  8. package/dist/ActionsGeneric/ActionsGeneric.js.map +1 -1
  9. package/dist/AssetInventory/AssetInventory.js +2 -2
  10. package/dist/AssetInventory/AssetInventory.js.map +1 -1
  11. package/dist/AssetInventory/CardView/CardView.js +3 -3
  12. package/dist/AssetInventory/CardView/CardView.js.map +1 -1
  13. package/dist/AssetInventory/ListView/ListView.js +2 -2
  14. package/dist/AssetInventory/ListView/ListView.js.map +1 -1
  15. package/dist/AssetInventory/ListView/ListViewCell/ListViewCell.js +2 -2
  16. package/dist/AssetInventory/ListView/ListViewCell/ListViewCell.js.map +1 -1
  17. package/dist/AssetInventory/ListView/ListViewHeaderRow/ListViewHeaderRow.js +6 -4
  18. package/dist/AssetInventory/ListView/ListViewHeaderRow/ListViewHeaderRow.js.map +1 -1
  19. package/dist/AssetInventory/ListView/ListViewRow/ListViewRow.js +2 -2
  20. package/dist/AssetInventory/ListView/ListViewRow/ListViewRow.js.map +1 -1
  21. package/dist/AssetInventory/Multibutton/Multibutton.js +2 -2
  22. package/dist/AssetInventory/Multibutton/Multibutton.js.map +1 -1
  23. package/dist/AssetInventory/Search/Search.js +2 -2
  24. package/dist/AssetInventory/Search/Search.js.map +1 -1
  25. package/dist/AssetInventory/Sort/Sort.js +2 -2
  26. package/dist/AssetInventory/Sort/Sort.js.map +1 -1
  27. package/dist/Avatar/Avatar.js +2 -2
  28. package/dist/Avatar/Avatar.js.map +1 -1
  29. package/dist/Badge/Badge.js +2 -2
  30. package/dist/Badge/Badge.js.map +1 -1
  31. package/dist/Banner/Banner.js +2 -2
  32. package/dist/Banner/Banner.js.map +1 -1
  33. package/dist/Banner/BannerWrapper/ActionContainer/ActionContainer.js +2 -2
  34. package/dist/Banner/BannerWrapper/ActionContainer/ActionContainer.js.map +1 -1
  35. package/dist/Banner/BannerWrapper/BannerContentWrapper.js +2 -2
  36. package/dist/Banner/BannerWrapper/BannerContentWrapper.js.map +1 -1
  37. package/dist/Banner/BannerWrapper/MessageContainer/MessageContainer.js +2 -2
  38. package/dist/Banner/BannerWrapper/MessageContainer/MessageContainer.js.map +1 -1
  39. package/dist/Barchart/Barchart.js +2 -2
  40. package/dist/Barchart/Barchart.js.map +1 -1
  41. package/dist/BaseCheckBox/BaseCheckBox.js +2 -2
  42. package/dist/BaseCheckBox/BaseCheckBox.js.map +1 -1
  43. package/dist/BaseDropdown/BaseDropdown.js +2 -2
  44. package/dist/BaseDropdown/BaseDropdown.js.map +1 -1
  45. package/dist/BaseInput/BaseInput.js +2 -2
  46. package/dist/BaseInput/BaseInput.js.map +1 -1
  47. package/dist/BaseRadio/BaseRadio.js +2 -2
  48. package/dist/BaseRadio/BaseRadio.js.map +1 -1
  49. package/dist/BaseSwitch/BaseSwitch.js +2 -2
  50. package/dist/BaseSwitch/BaseSwitch.js.map +1 -1
  51. package/dist/BreadCrumb/BreadCrumb.js +6 -6
  52. package/dist/BreadCrumb/BreadCrumb.js.map +1 -1
  53. package/dist/BreadCrumb/utils.js +4 -2
  54. package/dist/BreadCrumb/utils.js.map +1 -1
  55. package/dist/BulkActions/BulkActions.js +2 -2
  56. package/dist/BulkActions/BulkActions.js.map +1 -1
  57. package/dist/Button/Button.js +2 -2
  58. package/dist/Button/Button.js.map +1 -1
  59. package/dist/Calendar/Calendar.js +2 -2
  60. package/dist/Calendar/Calendar.js.map +1 -1
  61. package/dist/Calendar/CalendarHeader/CalendarHeader.js +6 -4
  62. package/dist/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  63. package/dist/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js +2 -2
  64. package/dist/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js.map +1 -1
  65. package/dist/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js +2 -2
  66. package/dist/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
  67. package/dist/Calendar/CalendarNavigation/Navigation/Navigation.js +2 -2
  68. package/dist/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
  69. package/dist/Calendar/CalendarWeekLabels/CalendarWeekLabels.js +2 -2
  70. package/dist/Calendar/CalendarWeekLabels/CalendarWeekLabels.js.map +1 -1
  71. package/dist/Calendar/SingleCalendar/CalendarCell.js +2 -2
  72. package/dist/Calendar/SingleCalendar/CalendarCell.js.map +1 -1
  73. package/dist/Calendar/SingleCalendar/SingleCalendar.js +2 -2
  74. package/dist/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  75. package/dist/Card/Card.js +2 -2
  76. package/dist/Card/Card.js.map +1 -1
  77. package/dist/Card/Content/Content.js +2 -2
  78. package/dist/Card/Content/Content.js.map +1 -1
  79. package/dist/Card/Header/Header.js +2 -2
  80. package/dist/Card/Header/Header.js.map +1 -1
  81. package/dist/Card/Media/Media.js +2 -2
  82. package/dist/Card/Media/Media.js.map +1 -1
  83. package/dist/Chart/Chart.js +2 -2
  84. package/dist/Chart/Chart.js.map +1 -1
  85. package/dist/Chart/Plot/Plot.js +2 -2
  86. package/dist/Chart/Plot/Plot.js.map +1 -1
  87. package/dist/Chart/Tooltip/MultiTooltip/MultiTooltip.js +2 -2
  88. package/dist/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
  89. package/dist/Chart/Tooltip/SingleTooltip/SingleTooltip.js +2 -2
  90. package/dist/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
  91. package/dist/Chart/Tooltip/Tooltip.js +2 -2
  92. package/dist/Chart/Tooltip/Tooltip.js.map +1 -1
  93. package/dist/CheckBox/CheckBox.js +2 -2
  94. package/dist/CheckBox/CheckBox.js.map +1 -1
  95. package/dist/CheckBoxGroup/CheckBoxGroup.js +2 -2
  96. package/dist/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  97. package/dist/Container/Container.js +2 -2
  98. package/dist/Container/Container.js.map +1 -1
  99. package/dist/DatePicker/DatePicker.js +2 -2
  100. package/dist/DatePicker/DatePicker.js.map +1 -1
  101. package/dist/Dialog/Dialog.js +6 -4
  102. package/dist/Dialog/Dialog.js.map +1 -1
  103. package/dist/Dialog/DialogActions/DialogActions.js +2 -2
  104. package/dist/Dialog/DialogActions/DialogActions.js.map +1 -1
  105. package/dist/Dialog/DialogContent/DialogContent.js +2 -2
  106. package/dist/Dialog/DialogContent/DialogContent.js.map +1 -1
  107. package/dist/Dialog/DialogTitle/DialogTitle.js +2 -2
  108. package/dist/Dialog/DialogTitle/DialogTitle.js.map +1 -1
  109. package/dist/Donutchart/Donutchart.js +2 -2
  110. package/dist/Donutchart/Donutchart.js.map +1 -1
  111. package/dist/DropDownMenu/DropDownMenu.js +2 -2
  112. package/dist/DropDownMenu/DropDownMenu.js.map +1 -1
  113. package/dist/Dropdown/Dropdown.js +2 -2
  114. package/dist/Dropdown/Dropdown.js.map +1 -1
  115. package/dist/Dropdown/List/List.js +2 -2
  116. package/dist/Dropdown/List/List.js.map +1 -1
  117. package/dist/EmptyState/EmptyState.js +2 -2
  118. package/dist/EmptyState/EmptyState.js.map +1 -1
  119. package/dist/FileUploader/DropZone/DropZone.js +2 -2
  120. package/dist/FileUploader/DropZone/DropZone.js.map +1 -1
  121. package/dist/FileUploader/File/File.js +6 -4
  122. package/dist/FileUploader/File/File.js.map +1 -1
  123. package/dist/FileUploader/FileList/FileList.js +2 -2
  124. package/dist/FileUploader/FileList/FileList.js.map +1 -1
  125. package/dist/FileUploader/FileUploader.js +2 -2
  126. package/dist/FileUploader/FileUploader.js.map +1 -1
  127. package/dist/FileUploader/Preview/Preview.js +5 -3
  128. package/dist/FileUploader/Preview/Preview.js.map +1 -1
  129. package/dist/FilterGroup/Counter/Counter.js +2 -2
  130. package/dist/FilterGroup/Counter/Counter.js.map +1 -1
  131. package/dist/FilterGroup/FilterContent/FilterContent.js +9 -7
  132. package/dist/FilterGroup/FilterContent/FilterContent.js.map +1 -1
  133. package/dist/FilterGroup/FilterGroup.js +2 -2
  134. package/dist/FilterGroup/FilterGroup.js.map +1 -1
  135. package/dist/FilterGroup/FilterGroupContext.js +2 -2
  136. package/dist/FilterGroup/FilterGroupContext.js.map +1 -1
  137. package/dist/FilterGroup/LeftPanel/LeftPanel.js +2 -2
  138. package/dist/FilterGroup/LeftPanel/LeftPanel.js.map +1 -1
  139. package/dist/FilterGroup/RightPanel/RightPanel.js +2 -2
  140. package/dist/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  141. package/dist/Focus/Focus.js +2 -2
  142. package/dist/Focus/Focus.js.map +1 -1
  143. package/dist/Footer/Footer.js +2 -2
  144. package/dist/Footer/Footer.js.map +1 -1
  145. package/dist/Forms/Adornment/Adornment.js +2 -2
  146. package/dist/Forms/Adornment/Adornment.js.map +1 -1
  147. package/dist/Forms/CharCounter/CharCounter.js +2 -2
  148. package/dist/Forms/CharCounter/CharCounter.js.map +1 -1
  149. package/dist/Forms/FormElement/FormElement.js +2 -2
  150. package/dist/Forms/FormElement/FormElement.js.map +1 -1
  151. package/dist/Forms/InfoMessage/InfoMessage.js +2 -2
  152. package/dist/Forms/InfoMessage/InfoMessage.js.map +1 -1
  153. package/dist/Forms/Label/Label.js +6 -4
  154. package/dist/Forms/Label/Label.js.map +1 -1
  155. package/dist/Forms/Suggestions/Suggestions.js +2 -2
  156. package/dist/Forms/Suggestions/Suggestions.js.map +1 -1
  157. package/dist/Forms/WarningText/WarningText.js +2 -2
  158. package/dist/Forms/WarningText/WarningText.js.map +1 -1
  159. package/dist/GlobalActions/GlobalActions.js +8 -4
  160. package/dist/GlobalActions/GlobalActions.js.map +1 -1
  161. package/dist/Grid/Grid.js +6 -4
  162. package/dist/Grid/Grid.js.map +1 -1
  163. package/dist/Header/Actions/Actions.js +2 -2
  164. package/dist/Header/Actions/Actions.js.map +1 -1
  165. package/dist/Header/Brand/Brand.js +2 -2
  166. package/dist/Header/Brand/Brand.js.map +1 -1
  167. package/dist/Header/Header.js +2 -2
  168. package/dist/Header/Header.js.map +1 -1
  169. package/dist/Header/Navigation/MenuBar/MenuBar.js +2 -2
  170. package/dist/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  171. package/dist/Header/Navigation/MenuItem/MenuItem.js +2 -2
  172. package/dist/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  173. package/dist/Header/Navigation/Navigation.js +2 -2
  174. package/dist/Header/Navigation/Navigation.js.map +1 -1
  175. package/dist/Header/Navigation/utils/FocusContext.js +2 -2
  176. package/dist/Header/Navigation/utils/FocusContext.js.map +1 -1
  177. package/dist/Input/Input.js +9 -7
  178. package/dist/Input/Input.js.map +1 -1
  179. package/dist/Kpi/Kpi.js +2 -2
  180. package/dist/Kpi/Kpi.js.map +1 -1
  181. package/dist/Linechart/Linechart.js +2 -2
  182. package/dist/Linechart/Linechart.js.map +1 -1
  183. package/dist/Link/Link.js +2 -2
  184. package/dist/Link/Link.js.map +1 -1
  185. package/dist/List/List.js +4 -4
  186. package/dist/List/List.js.map +1 -1
  187. package/dist/ListContainer/ListContainer.js +2 -2
  188. package/dist/ListContainer/ListContainer.js.map +1 -1
  189. package/dist/ListContainer/ListItem/ListItem.js +2 -2
  190. package/dist/ListContainer/ListItem/ListItem.js.map +1 -1
  191. package/dist/Loading/Loading.js +2 -2
  192. package/dist/Loading/Loading.js.map +1 -1
  193. package/dist/Login/Login.js +2 -2
  194. package/dist/Login/Login.js.map +1 -1
  195. package/dist/MultiButton/MultiButton.js +2 -2
  196. package/dist/MultiButton/MultiButton.js.map +1 -1
  197. package/dist/OverflowTooltip/OverflowTooltip.d.ts +29 -0
  198. package/dist/OverflowTooltip/OverflowTooltip.js +148 -0
  199. package/dist/OverflowTooltip/OverflowTooltip.js.map +1 -0
  200. package/dist/OverflowTooltip/index.d.ts +1 -0
  201. package/dist/OverflowTooltip/index.js +16 -0
  202. package/dist/OverflowTooltip/index.js.map +1 -0
  203. package/dist/Pagination/Pagination.js +2 -2
  204. package/dist/Pagination/Pagination.js.map +1 -1
  205. package/dist/Panel/Panel.js +2 -2
  206. package/dist/Panel/Panel.js.map +1 -1
  207. package/dist/Provider/Provider.js +5 -3
  208. package/dist/Provider/Provider.js.map +1 -1
  209. package/dist/Radio/Radio.js +2 -2
  210. package/dist/Radio/Radio.js.map +1 -1
  211. package/dist/RadioGroup/RadioGroup.js +2 -2
  212. package/dist/RadioGroup/RadioGroup.js.map +1 -1
  213. package/dist/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +2 -2
  214. package/dist/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
  215. package/dist/ScrollTo/Horizontal/ScrollToHorizontal.js +2 -2
  216. package/dist/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  217. package/dist/ScrollTo/Vertical/ScrollToVertical.js +2 -2
  218. package/dist/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  219. package/dist/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js +6 -4
  220. package/dist/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
  221. package/dist/SelectionList/SelectionList.js +2 -2
  222. package/dist/SelectionList/SelectionList.js.map +1 -1
  223. package/dist/Snackbar/Snackbar.js +2 -2
  224. package/dist/Snackbar/Snackbar.js.map +1 -1
  225. package/dist/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js +2 -2
  226. package/dist/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js.map +1 -1
  227. package/dist/Snackbar/SnackbarProvider/SnackbarProvider.d.ts +30 -0
  228. package/dist/Snackbar/SnackbarProvider/SnackbarProvider.js +207 -0
  229. package/dist/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -0
  230. package/dist/Snackbar/SnackbarProvider/index.d.ts +2 -0
  231. package/dist/Snackbar/SnackbarProvider/index.js +49 -0
  232. package/dist/Snackbar/SnackbarProvider/index.js.map +1 -0
  233. package/dist/Snackbar/stories/SnackbarProvider.stories.mdx +51 -0
  234. package/dist/Switch/Switch.js +2 -2
  235. package/dist/Switch/Switch.js.map +1 -1
  236. package/dist/Tab/Tab.js +2 -2
  237. package/dist/Tab/Tab.js.map +1 -1
  238. package/dist/Table/Header/Header.js +3 -3
  239. package/dist/Table/Header/Header.js.map +1 -1
  240. package/dist/Table/NoData/index.js +3 -1
  241. package/dist/Table/NoData/index.js.map +1 -1
  242. package/dist/Table/Table.js +6 -4
  243. package/dist/Table/Table.js.map +1 -1
  244. package/dist/Tabs/Tabs.js +5 -3
  245. package/dist/Tabs/Tabs.js.map +1 -1
  246. package/dist/Tag/Tag.js +6 -4
  247. package/dist/Tag/Tag.js.map +1 -1
  248. package/dist/TagsInput/TagsInput.d.ts +33 -4
  249. package/dist/TagsInput/TagsInput.js +127 -21
  250. package/dist/TagsInput/TagsInput.js.map +1 -1
  251. package/dist/TagsInput/styles.js +12 -8
  252. package/dist/TagsInput/styles.js.map +1 -1
  253. package/dist/TextArea/TextArea.js +2 -2
  254. package/dist/TextArea/TextArea.js.map +1 -1
  255. package/dist/ToggleButton/ToggleButton.js +2 -2
  256. package/dist/ToggleButton/ToggleButton.js.map +1 -1
  257. package/dist/Tooltip/Tooltip.js +2 -2
  258. package/dist/Tooltip/Tooltip.js.map +1 -1
  259. package/dist/Typography/Typography.js +2 -2
  260. package/dist/Typography/Typography.js.map +1 -1
  261. package/dist/UserPreferences/Action/Action.js +2 -2
  262. package/dist/UserPreferences/Action/Action.js.map +1 -1
  263. package/dist/UserPreferences/Actions/Actions.js +2 -2
  264. package/dist/UserPreferences/Actions/Actions.js.map +1 -1
  265. package/dist/UserPreferences/Options/Group/Group.js +2 -2
  266. package/dist/UserPreferences/Options/Group/Group.js.map +1 -1
  267. package/dist/UserPreferences/Options/Label/Label.js +2 -2
  268. package/dist/UserPreferences/Options/Label/Label.js.map +1 -1
  269. package/dist/UserPreferences/Options/Option.js +2 -2
  270. package/dist/UserPreferences/Options/Option.js.map +1 -1
  271. package/dist/UserPreferences/Options/Options.js +2 -2
  272. package/dist/UserPreferences/Options/Options.js.map +1 -1
  273. package/dist/UserPreferences/UserPreferences.js +2 -2
  274. package/dist/UserPreferences/UserPreferences.js.map +1 -1
  275. package/dist/VerticalNavigation/Actions/Action.js +2 -2
  276. package/dist/VerticalNavigation/Actions/Action.js.map +1 -1
  277. package/dist/VerticalNavigation/Actions/Actions.js +2 -2
  278. package/dist/VerticalNavigation/Actions/Actions.js.map +1 -1
  279. package/dist/VerticalNavigation/Navigation/Navigation.js +2 -2
  280. package/dist/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  281. package/dist/VerticalNavigation/TreeView/TreeView.js +2 -2
  282. package/dist/VerticalNavigation/TreeView/TreeView.js.map +1 -1
  283. package/dist/VerticalNavigation/TreeView/TreeViewItem.js +7 -5
  284. package/dist/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  285. package/dist/VerticalNavigation/TreeView/descendants.js +2 -2
  286. package/dist/VerticalNavigation/TreeView/descendants.js.map +1 -1
  287. package/dist/VerticalNavigation/VerticalContainer/VerticalContainer.js +5 -3
  288. package/dist/VerticalNavigation/VerticalContainer/VerticalContainer.js.map +1 -1
  289. package/dist/VerticalNavigation/VerticalNavigation.js +2 -2
  290. package/dist/VerticalNavigation/VerticalNavigation.js.map +1 -1
  291. package/dist/index.d.ts +5 -0
  292. package/dist/index.js +25 -0
  293. package/dist/index.js.map +1 -1
  294. package/dist/legacy/Accordion/Accordion.js +2 -2
  295. package/dist/legacy/Accordion/Accordion.js.map +1 -1
  296. package/dist/legacy/ActionBar/ActionBar.js +2 -2
  297. package/dist/legacy/ActionBar/ActionBar.js.map +1 -1
  298. package/dist/legacy/ActionsGeneric/ActionsGeneric.js +2 -2
  299. package/dist/legacy/ActionsGeneric/ActionsGeneric.js.map +1 -1
  300. package/dist/legacy/AssetInventory/AssetInventory.js +2 -2
  301. package/dist/legacy/AssetInventory/AssetInventory.js.map +1 -1
  302. package/dist/legacy/AssetInventory/CardView/CardView.js +3 -3
  303. package/dist/legacy/AssetInventory/CardView/CardView.js.map +1 -1
  304. package/dist/legacy/AssetInventory/ListView/ListView.js +2 -2
  305. package/dist/legacy/AssetInventory/ListView/ListView.js.map +1 -1
  306. package/dist/legacy/AssetInventory/ListView/ListViewCell/ListViewCell.js +2 -2
  307. package/dist/legacy/AssetInventory/ListView/ListViewCell/ListViewCell.js.map +1 -1
  308. package/dist/legacy/AssetInventory/ListView/ListViewHeaderRow/ListViewHeaderRow.js +7 -4
  309. package/dist/legacy/AssetInventory/ListView/ListViewHeaderRow/ListViewHeaderRow.js.map +1 -1
  310. package/dist/legacy/AssetInventory/ListView/ListViewRow/ListViewRow.js +2 -2
  311. package/dist/legacy/AssetInventory/ListView/ListViewRow/ListViewRow.js.map +1 -1
  312. package/dist/legacy/AssetInventory/Multibutton/Multibutton.js +2 -2
  313. package/dist/legacy/AssetInventory/Multibutton/Multibutton.js.map +1 -1
  314. package/dist/legacy/AssetInventory/Search/Search.js +2 -2
  315. package/dist/legacy/AssetInventory/Search/Search.js.map +1 -1
  316. package/dist/legacy/AssetInventory/Sort/Sort.js +2 -2
  317. package/dist/legacy/AssetInventory/Sort/Sort.js.map +1 -1
  318. package/dist/legacy/Avatar/Avatar.js +2 -2
  319. package/dist/legacy/Avatar/Avatar.js.map +1 -1
  320. package/dist/legacy/Badge/Badge.js +2 -2
  321. package/dist/legacy/Badge/Badge.js.map +1 -1
  322. package/dist/legacy/Banner/Banner.js +2 -2
  323. package/dist/legacy/Banner/Banner.js.map +1 -1
  324. package/dist/legacy/Banner/BannerWrapper/ActionContainer/ActionContainer.js +2 -2
  325. package/dist/legacy/Banner/BannerWrapper/ActionContainer/ActionContainer.js.map +1 -1
  326. package/dist/legacy/Banner/BannerWrapper/BannerContentWrapper.js +2 -2
  327. package/dist/legacy/Banner/BannerWrapper/BannerContentWrapper.js.map +1 -1
  328. package/dist/legacy/Banner/BannerWrapper/MessageContainer/MessageContainer.js +2 -2
  329. package/dist/legacy/Banner/BannerWrapper/MessageContainer/MessageContainer.js.map +1 -1
  330. package/dist/legacy/Barchart/Barchart.js +2 -2
  331. package/dist/legacy/Barchart/Barchart.js.map +1 -1
  332. package/dist/legacy/BaseCheckBox/BaseCheckBox.js +2 -2
  333. package/dist/legacy/BaseCheckBox/BaseCheckBox.js.map +1 -1
  334. package/dist/legacy/BaseDropdown/BaseDropdown.js +2 -2
  335. package/dist/legacy/BaseDropdown/BaseDropdown.js.map +1 -1
  336. package/dist/legacy/BaseInput/BaseInput.js +2 -2
  337. package/dist/legacy/BaseInput/BaseInput.js.map +1 -1
  338. package/dist/legacy/BaseRadio/BaseRadio.js +2 -2
  339. package/dist/legacy/BaseRadio/BaseRadio.js.map +1 -1
  340. package/dist/legacy/BaseSwitch/BaseSwitch.js +2 -2
  341. package/dist/legacy/BaseSwitch/BaseSwitch.js.map +1 -1
  342. package/dist/legacy/BreadCrumb/BreadCrumb.js +6 -6
  343. package/dist/legacy/BreadCrumb/BreadCrumb.js.map +1 -1
  344. package/dist/legacy/BreadCrumb/utils.js +5 -2
  345. package/dist/legacy/BreadCrumb/utils.js.map +1 -1
  346. package/dist/legacy/BulkActions/BulkActions.js +2 -2
  347. package/dist/legacy/BulkActions/BulkActions.js.map +1 -1
  348. package/dist/legacy/Button/Button.js +2 -2
  349. package/dist/legacy/Button/Button.js.map +1 -1
  350. package/dist/legacy/Calendar/Calendar.js +2 -2
  351. package/dist/legacy/Calendar/Calendar.js.map +1 -1
  352. package/dist/legacy/Calendar/CalendarHeader/CalendarHeader.js +7 -4
  353. package/dist/legacy/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  354. package/dist/legacy/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js +2 -2
  355. package/dist/legacy/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js.map +1 -1
  356. package/dist/legacy/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js +2 -2
  357. package/dist/legacy/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
  358. package/dist/legacy/Calendar/CalendarNavigation/Navigation/Navigation.js +2 -2
  359. package/dist/legacy/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
  360. package/dist/legacy/Calendar/CalendarWeekLabels/CalendarWeekLabels.js +2 -2
  361. package/dist/legacy/Calendar/CalendarWeekLabels/CalendarWeekLabels.js.map +1 -1
  362. package/dist/legacy/Calendar/SingleCalendar/CalendarCell.js +2 -2
  363. package/dist/legacy/Calendar/SingleCalendar/CalendarCell.js.map +1 -1
  364. package/dist/legacy/Calendar/SingleCalendar/SingleCalendar.js +2 -2
  365. package/dist/legacy/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  366. package/dist/legacy/Card/Card.js +2 -2
  367. package/dist/legacy/Card/Card.js.map +1 -1
  368. package/dist/legacy/Card/Content/Content.js +2 -2
  369. package/dist/legacy/Card/Content/Content.js.map +1 -1
  370. package/dist/legacy/Card/Header/Header.js +2 -2
  371. package/dist/legacy/Card/Header/Header.js.map +1 -1
  372. package/dist/legacy/Card/Media/Media.js +2 -2
  373. package/dist/legacy/Card/Media/Media.js.map +1 -1
  374. package/dist/legacy/Chart/Chart.js +2 -2
  375. package/dist/legacy/Chart/Chart.js.map +1 -1
  376. package/dist/legacy/Chart/Plot/Plot.js +2 -2
  377. package/dist/legacy/Chart/Plot/Plot.js.map +1 -1
  378. package/dist/legacy/Chart/Tooltip/MultiTooltip/MultiTooltip.js +2 -2
  379. package/dist/legacy/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
  380. package/dist/legacy/Chart/Tooltip/SingleTooltip/SingleTooltip.js +2 -2
  381. package/dist/legacy/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
  382. package/dist/legacy/Chart/Tooltip/Tooltip.js +2 -2
  383. package/dist/legacy/Chart/Tooltip/Tooltip.js.map +1 -1
  384. package/dist/legacy/CheckBox/CheckBox.js +2 -2
  385. package/dist/legacy/CheckBox/CheckBox.js.map +1 -1
  386. package/dist/legacy/CheckBoxGroup/CheckBoxGroup.js +2 -2
  387. package/dist/legacy/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  388. package/dist/legacy/Container/Container.js +2 -2
  389. package/dist/legacy/Container/Container.js.map +1 -1
  390. package/dist/legacy/DatePicker/DatePicker.js +2 -2
  391. package/dist/legacy/DatePicker/DatePicker.js.map +1 -1
  392. package/dist/legacy/Dialog/Dialog.js +7 -4
  393. package/dist/legacy/Dialog/Dialog.js.map +1 -1
  394. package/dist/legacy/Dialog/DialogActions/DialogActions.js +2 -2
  395. package/dist/legacy/Dialog/DialogActions/DialogActions.js.map +1 -1
  396. package/dist/legacy/Dialog/DialogContent/DialogContent.js +2 -2
  397. package/dist/legacy/Dialog/DialogContent/DialogContent.js.map +1 -1
  398. package/dist/legacy/Dialog/DialogTitle/DialogTitle.js +2 -2
  399. package/dist/legacy/Dialog/DialogTitle/DialogTitle.js.map +1 -1
  400. package/dist/legacy/Donutchart/Donutchart.js +2 -2
  401. package/dist/legacy/Donutchart/Donutchart.js.map +1 -1
  402. package/dist/legacy/DropDownMenu/DropDownMenu.js +2 -2
  403. package/dist/legacy/DropDownMenu/DropDownMenu.js.map +1 -1
  404. package/dist/legacy/Dropdown/Dropdown.js +2 -2
  405. package/dist/legacy/Dropdown/Dropdown.js.map +1 -1
  406. package/dist/legacy/Dropdown/List/List.js +2 -2
  407. package/dist/legacy/Dropdown/List/List.js.map +1 -1
  408. package/dist/legacy/EmptyState/EmptyState.js +2 -2
  409. package/dist/legacy/EmptyState/EmptyState.js.map +1 -1
  410. package/dist/legacy/FileUploader/DropZone/DropZone.js +2 -2
  411. package/dist/legacy/FileUploader/DropZone/DropZone.js.map +1 -1
  412. package/dist/legacy/FileUploader/File/File.js +6 -4
  413. package/dist/legacy/FileUploader/File/File.js.map +1 -1
  414. package/dist/legacy/FileUploader/FileList/FileList.js +2 -2
  415. package/dist/legacy/FileUploader/FileList/FileList.js.map +1 -1
  416. package/dist/legacy/FileUploader/FileUploader.js +2 -2
  417. package/dist/legacy/FileUploader/FileUploader.js.map +1 -1
  418. package/dist/legacy/FileUploader/Preview/Preview.js +6 -3
  419. package/dist/legacy/FileUploader/Preview/Preview.js.map +1 -1
  420. package/dist/legacy/FilterGroup/Counter/Counter.js +2 -2
  421. package/dist/legacy/FilterGroup/Counter/Counter.js.map +1 -1
  422. package/dist/legacy/FilterGroup/FilterContent/FilterContent.js +7 -4
  423. package/dist/legacy/FilterGroup/FilterContent/FilterContent.js.map +1 -1
  424. package/dist/legacy/FilterGroup/FilterGroup.js +2 -2
  425. package/dist/legacy/FilterGroup/FilterGroup.js.map +1 -1
  426. package/dist/legacy/FilterGroup/FilterGroupContext.js +2 -2
  427. package/dist/legacy/FilterGroup/FilterGroupContext.js.map +1 -1
  428. package/dist/legacy/FilterGroup/LeftPanel/LeftPanel.js +2 -2
  429. package/dist/legacy/FilterGroup/LeftPanel/LeftPanel.js.map +1 -1
  430. package/dist/legacy/FilterGroup/RightPanel/RightPanel.js +2 -2
  431. package/dist/legacy/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  432. package/dist/legacy/Focus/Focus.js +2 -2
  433. package/dist/legacy/Focus/Focus.js.map +1 -1
  434. package/dist/legacy/Footer/Footer.js +2 -2
  435. package/dist/legacy/Footer/Footer.js.map +1 -1
  436. package/dist/legacy/Forms/Adornment/Adornment.js +2 -2
  437. package/dist/legacy/Forms/Adornment/Adornment.js.map +1 -1
  438. package/dist/legacy/Forms/CharCounter/CharCounter.js +2 -2
  439. package/dist/legacy/Forms/CharCounter/CharCounter.js.map +1 -1
  440. package/dist/legacy/Forms/FormElement/FormElement.js +2 -2
  441. package/dist/legacy/Forms/FormElement/FormElement.js.map +1 -1
  442. package/dist/legacy/Forms/InfoMessage/InfoMessage.js +2 -2
  443. package/dist/legacy/Forms/InfoMessage/InfoMessage.js.map +1 -1
  444. package/dist/legacy/Forms/Label/Label.js +7 -4
  445. package/dist/legacy/Forms/Label/Label.js.map +1 -1
  446. package/dist/legacy/Forms/Suggestions/Suggestions.js +2 -2
  447. package/dist/legacy/Forms/Suggestions/Suggestions.js.map +1 -1
  448. package/dist/legacy/Forms/WarningText/WarningText.js +2 -2
  449. package/dist/legacy/Forms/WarningText/WarningText.js.map +1 -1
  450. package/dist/legacy/GlobalActions/GlobalActions.js +9 -4
  451. package/dist/legacy/GlobalActions/GlobalActions.js.map +1 -1
  452. package/dist/legacy/Grid/Grid.js +5 -4
  453. package/dist/legacy/Grid/Grid.js.map +1 -1
  454. package/dist/legacy/Header/Actions/Actions.js +2 -2
  455. package/dist/legacy/Header/Actions/Actions.js.map +1 -1
  456. package/dist/legacy/Header/Brand/Brand.js +2 -2
  457. package/dist/legacy/Header/Brand/Brand.js.map +1 -1
  458. package/dist/legacy/Header/Header.js +2 -2
  459. package/dist/legacy/Header/Header.js.map +1 -1
  460. package/dist/legacy/Header/Navigation/MenuBar/MenuBar.js +2 -2
  461. package/dist/legacy/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  462. package/dist/legacy/Header/Navigation/MenuItem/MenuItem.js +2 -2
  463. package/dist/legacy/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  464. package/dist/legacy/Header/Navigation/Navigation.js +2 -2
  465. package/dist/legacy/Header/Navigation/Navigation.js.map +1 -1
  466. package/dist/legacy/Header/Navigation/utils/FocusContext.js +2 -2
  467. package/dist/legacy/Header/Navigation/utils/FocusContext.js.map +1 -1
  468. package/dist/legacy/Input/Input.js +8 -5
  469. package/dist/legacy/Input/Input.js.map +1 -1
  470. package/dist/legacy/Kpi/Kpi.js +2 -2
  471. package/dist/legacy/Kpi/Kpi.js.map +1 -1
  472. package/dist/legacy/Linechart/Linechart.js +2 -2
  473. package/dist/legacy/Linechart/Linechart.js.map +1 -1
  474. package/dist/legacy/Link/Link.js +2 -2
  475. package/dist/legacy/Link/Link.js.map +1 -1
  476. package/dist/legacy/List/List.js +4 -4
  477. package/dist/legacy/List/List.js.map +1 -1
  478. package/dist/legacy/ListContainer/ListContainer.js +2 -2
  479. package/dist/legacy/ListContainer/ListContainer.js.map +1 -1
  480. package/dist/legacy/ListContainer/ListItem/ListItem.js +2 -2
  481. package/dist/legacy/ListContainer/ListItem/ListItem.js.map +1 -1
  482. package/dist/legacy/Loading/Loading.js +2 -2
  483. package/dist/legacy/Loading/Loading.js.map +1 -1
  484. package/dist/legacy/Login/Login.js +2 -2
  485. package/dist/legacy/Login/Login.js.map +1 -1
  486. package/dist/legacy/MultiButton/MultiButton.js +2 -2
  487. package/dist/legacy/MultiButton/MultiButton.js.map +1 -1
  488. package/dist/legacy/OverflowTooltip/OverflowTooltip.d.ts +29 -0
  489. package/dist/legacy/OverflowTooltip/OverflowTooltip.js +126 -0
  490. package/dist/legacy/OverflowTooltip/OverflowTooltip.js.map +1 -0
  491. package/dist/legacy/OverflowTooltip/index.d.ts +1 -0
  492. package/dist/legacy/OverflowTooltip/index.js +2 -0
  493. package/dist/legacy/OverflowTooltip/index.js.map +1 -0
  494. package/dist/legacy/Pagination/Pagination.js +2 -2
  495. package/dist/legacy/Pagination/Pagination.js.map +1 -1
  496. package/dist/legacy/Panel/Panel.js +2 -2
  497. package/dist/legacy/Panel/Panel.js.map +1 -1
  498. package/dist/legacy/Provider/Provider.js +5 -3
  499. package/dist/legacy/Provider/Provider.js.map +1 -1
  500. package/dist/legacy/Radio/Radio.js +2 -2
  501. package/dist/legacy/Radio/Radio.js.map +1 -1
  502. package/dist/legacy/RadioGroup/RadioGroup.js +2 -2
  503. package/dist/legacy/RadioGroup/RadioGroup.js.map +1 -1
  504. package/dist/legacy/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +2 -2
  505. package/dist/legacy/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
  506. package/dist/legacy/ScrollTo/Horizontal/ScrollToHorizontal.js +2 -2
  507. package/dist/legacy/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  508. package/dist/legacy/ScrollTo/Vertical/ScrollToVertical.js +2 -2
  509. package/dist/legacy/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  510. package/dist/legacy/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js +7 -4
  511. package/dist/legacy/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
  512. package/dist/legacy/SelectionList/SelectionList.js +2 -2
  513. package/dist/legacy/SelectionList/SelectionList.js.map +1 -1
  514. package/dist/legacy/Snackbar/Snackbar.js +2 -2
  515. package/dist/legacy/Snackbar/Snackbar.js.map +1 -1
  516. package/dist/legacy/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js +2 -2
  517. package/dist/legacy/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js.map +1 -1
  518. package/dist/legacy/Snackbar/SnackbarProvider/SnackbarProvider.d.ts +30 -0
  519. package/dist/legacy/Snackbar/SnackbarProvider/SnackbarProvider.js +169 -0
  520. package/dist/legacy/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -0
  521. package/dist/legacy/Snackbar/SnackbarProvider/index.d.ts +2 -0
  522. package/dist/legacy/Snackbar/SnackbarProvider/index.js +3 -0
  523. package/dist/legacy/Snackbar/SnackbarProvider/index.js.map +1 -0
  524. package/dist/legacy/Snackbar/stories/SnackbarProvider.stories.mdx +51 -0
  525. package/dist/legacy/Switch/Switch.js +2 -2
  526. package/dist/legacy/Switch/Switch.js.map +1 -1
  527. package/dist/legacy/Tab/Tab.js +2 -2
  528. package/dist/legacy/Tab/Tab.js.map +1 -1
  529. package/dist/legacy/Table/Header/Header.js +4 -2
  530. package/dist/legacy/Table/Header/Header.js.map +1 -1
  531. package/dist/legacy/Table/NoData/index.js +3 -1
  532. package/dist/legacy/Table/NoData/index.js.map +1 -1
  533. package/dist/legacy/Table/Table.js +5 -3
  534. package/dist/legacy/Table/Table.js.map +1 -1
  535. package/dist/legacy/Tabs/Tabs.js +6 -3
  536. package/dist/legacy/Tabs/Tabs.js.map +1 -1
  537. package/dist/legacy/Tag/Tag.js +6 -4
  538. package/dist/legacy/Tag/Tag.js.map +1 -1
  539. package/dist/legacy/TagsInput/TagsInput.d.ts +33 -4
  540. package/dist/legacy/TagsInput/TagsInput.js +131 -27
  541. package/dist/legacy/TagsInput/TagsInput.js.map +1 -1
  542. package/dist/legacy/TagsInput/styles.js +12 -8
  543. package/dist/legacy/TagsInput/styles.js.map +1 -1
  544. package/dist/legacy/TextArea/TextArea.js +2 -2
  545. package/dist/legacy/TextArea/TextArea.js.map +1 -1
  546. package/dist/legacy/ToggleButton/ToggleButton.js +2 -2
  547. package/dist/legacy/ToggleButton/ToggleButton.js.map +1 -1
  548. package/dist/legacy/Tooltip/Tooltip.js +2 -2
  549. package/dist/legacy/Tooltip/Tooltip.js.map +1 -1
  550. package/dist/legacy/Typography/Typography.js +2 -2
  551. package/dist/legacy/Typography/Typography.js.map +1 -1
  552. package/dist/legacy/UserPreferences/Action/Action.js +2 -2
  553. package/dist/legacy/UserPreferences/Action/Action.js.map +1 -1
  554. package/dist/legacy/UserPreferences/Actions/Actions.js +2 -2
  555. package/dist/legacy/UserPreferences/Actions/Actions.js.map +1 -1
  556. package/dist/legacy/UserPreferences/Options/Group/Group.js +2 -2
  557. package/dist/legacy/UserPreferences/Options/Group/Group.js.map +1 -1
  558. package/dist/legacy/UserPreferences/Options/Label/Label.js +2 -2
  559. package/dist/legacy/UserPreferences/Options/Label/Label.js.map +1 -1
  560. package/dist/legacy/UserPreferences/Options/Option.js +2 -2
  561. package/dist/legacy/UserPreferences/Options/Option.js.map +1 -1
  562. package/dist/legacy/UserPreferences/Options/Options.js +2 -2
  563. package/dist/legacy/UserPreferences/Options/Options.js.map +1 -1
  564. package/dist/legacy/UserPreferences/UserPreferences.js +2 -2
  565. package/dist/legacy/UserPreferences/UserPreferences.js.map +1 -1
  566. package/dist/legacy/VerticalNavigation/Actions/Action.js +2 -2
  567. package/dist/legacy/VerticalNavigation/Actions/Action.js.map +1 -1
  568. package/dist/legacy/VerticalNavigation/Actions/Actions.js +2 -2
  569. package/dist/legacy/VerticalNavigation/Actions/Actions.js.map +1 -1
  570. package/dist/legacy/VerticalNavigation/Navigation/Navigation.js +2 -2
  571. package/dist/legacy/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  572. package/dist/legacy/VerticalNavigation/TreeView/TreeView.js +2 -2
  573. package/dist/legacy/VerticalNavigation/TreeView/TreeView.js.map +1 -1
  574. package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.js +6 -3
  575. package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  576. package/dist/legacy/VerticalNavigation/TreeView/descendants.js +2 -2
  577. package/dist/legacy/VerticalNavigation/TreeView/descendants.js.map +1 -1
  578. package/dist/legacy/VerticalNavigation/VerticalContainer/VerticalContainer.js +6 -3
  579. package/dist/legacy/VerticalNavigation/VerticalContainer/VerticalContainer.js.map +1 -1
  580. package/dist/legacy/VerticalNavigation/VerticalNavigation.js +2 -2
  581. package/dist/legacy/VerticalNavigation/VerticalNavigation.js.map +1 -1
  582. package/dist/legacy/index.d.ts +5 -0
  583. package/dist/legacy/index.js +2 -0
  584. package/dist/legacy/index.js.map +1 -1
  585. package/dist/legacy/withId.js +2 -2
  586. package/dist/legacy/withId.js.map +1 -1
  587. package/dist/legacy/withTooltip.js +3 -1
  588. package/dist/legacy/withTooltip.js.map +1 -1
  589. package/dist/modern/Accordion/Accordion.js +2 -2
  590. package/dist/modern/Accordion/Accordion.js.map +1 -1
  591. package/dist/modern/ActionBar/ActionBar.js +2 -2
  592. package/dist/modern/ActionBar/ActionBar.js.map +1 -1
  593. package/dist/modern/ActionsGeneric/ActionsGeneric.js +2 -2
  594. package/dist/modern/ActionsGeneric/ActionsGeneric.js.map +1 -1
  595. package/dist/modern/AssetInventory/AssetInventory.js +2 -2
  596. package/dist/modern/AssetInventory/AssetInventory.js.map +1 -1
  597. package/dist/modern/AssetInventory/CardView/CardView.js +3 -3
  598. package/dist/modern/AssetInventory/CardView/CardView.js.map +1 -1
  599. package/dist/modern/AssetInventory/ListView/ListView.js +2 -2
  600. package/dist/modern/AssetInventory/ListView/ListView.js.map +1 -1
  601. package/dist/modern/AssetInventory/ListView/ListViewCell/ListViewCell.js +2 -2
  602. package/dist/modern/AssetInventory/ListView/ListViewCell/ListViewCell.js.map +1 -1
  603. package/dist/modern/AssetInventory/ListView/ListViewHeaderRow/ListViewHeaderRow.js +7 -4
  604. package/dist/modern/AssetInventory/ListView/ListViewHeaderRow/ListViewHeaderRow.js.map +1 -1
  605. package/dist/modern/AssetInventory/ListView/ListViewRow/ListViewRow.js +2 -2
  606. package/dist/modern/AssetInventory/ListView/ListViewRow/ListViewRow.js.map +1 -1
  607. package/dist/modern/AssetInventory/Multibutton/Multibutton.js +2 -2
  608. package/dist/modern/AssetInventory/Multibutton/Multibutton.js.map +1 -1
  609. package/dist/modern/AssetInventory/Search/Search.js +2 -2
  610. package/dist/modern/AssetInventory/Search/Search.js.map +1 -1
  611. package/dist/modern/AssetInventory/Sort/Sort.js +2 -2
  612. package/dist/modern/AssetInventory/Sort/Sort.js.map +1 -1
  613. package/dist/modern/Avatar/Avatar.js +2 -2
  614. package/dist/modern/Avatar/Avatar.js.map +1 -1
  615. package/dist/modern/Badge/Badge.js +2 -2
  616. package/dist/modern/Badge/Badge.js.map +1 -1
  617. package/dist/modern/Banner/Banner.js +2 -2
  618. package/dist/modern/Banner/Banner.js.map +1 -1
  619. package/dist/modern/Banner/BannerWrapper/ActionContainer/ActionContainer.js +2 -2
  620. package/dist/modern/Banner/BannerWrapper/ActionContainer/ActionContainer.js.map +1 -1
  621. package/dist/modern/Banner/BannerWrapper/BannerContentWrapper.js +2 -2
  622. package/dist/modern/Banner/BannerWrapper/BannerContentWrapper.js.map +1 -1
  623. package/dist/modern/Banner/BannerWrapper/MessageContainer/MessageContainer.js +2 -2
  624. package/dist/modern/Banner/BannerWrapper/MessageContainer/MessageContainer.js.map +1 -1
  625. package/dist/modern/Barchart/Barchart.js +2 -2
  626. package/dist/modern/Barchart/Barchart.js.map +1 -1
  627. package/dist/modern/BaseCheckBox/BaseCheckBox.js +2 -2
  628. package/dist/modern/BaseCheckBox/BaseCheckBox.js.map +1 -1
  629. package/dist/modern/BaseDropdown/BaseDropdown.js +2 -2
  630. package/dist/modern/BaseDropdown/BaseDropdown.js.map +1 -1
  631. package/dist/modern/BaseInput/BaseInput.js +2 -2
  632. package/dist/modern/BaseInput/BaseInput.js.map +1 -1
  633. package/dist/modern/BaseRadio/BaseRadio.js +2 -2
  634. package/dist/modern/BaseRadio/BaseRadio.js.map +1 -1
  635. package/dist/modern/BaseSwitch/BaseSwitch.js +2 -2
  636. package/dist/modern/BaseSwitch/BaseSwitch.js.map +1 -1
  637. package/dist/modern/BreadCrumb/BreadCrumb.js +6 -6
  638. package/dist/modern/BreadCrumb/BreadCrumb.js.map +1 -1
  639. package/dist/modern/BreadCrumb/utils.js +5 -2
  640. package/dist/modern/BreadCrumb/utils.js.map +1 -1
  641. package/dist/modern/BulkActions/BulkActions.js +2 -2
  642. package/dist/modern/BulkActions/BulkActions.js.map +1 -1
  643. package/dist/modern/Button/Button.js +2 -2
  644. package/dist/modern/Button/Button.js.map +1 -1
  645. package/dist/modern/Calendar/Calendar.js +2 -2
  646. package/dist/modern/Calendar/Calendar.js.map +1 -1
  647. package/dist/modern/Calendar/CalendarHeader/CalendarHeader.js +7 -4
  648. package/dist/modern/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  649. package/dist/modern/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js +2 -2
  650. package/dist/modern/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js.map +1 -1
  651. package/dist/modern/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js +2 -2
  652. package/dist/modern/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
  653. package/dist/modern/Calendar/CalendarNavigation/Navigation/Navigation.js +2 -2
  654. package/dist/modern/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
  655. package/dist/modern/Calendar/CalendarWeekLabels/CalendarWeekLabels.js +2 -2
  656. package/dist/modern/Calendar/CalendarWeekLabels/CalendarWeekLabels.js.map +1 -1
  657. package/dist/modern/Calendar/SingleCalendar/CalendarCell.js +2 -2
  658. package/dist/modern/Calendar/SingleCalendar/CalendarCell.js.map +1 -1
  659. package/dist/modern/Calendar/SingleCalendar/SingleCalendar.js +2 -2
  660. package/dist/modern/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  661. package/dist/modern/Card/Card.js +2 -2
  662. package/dist/modern/Card/Card.js.map +1 -1
  663. package/dist/modern/Card/Content/Content.js +2 -2
  664. package/dist/modern/Card/Content/Content.js.map +1 -1
  665. package/dist/modern/Card/Header/Header.js +2 -2
  666. package/dist/modern/Card/Header/Header.js.map +1 -1
  667. package/dist/modern/Card/Media/Media.js +2 -2
  668. package/dist/modern/Card/Media/Media.js.map +1 -1
  669. package/dist/modern/Chart/Chart.js +2 -2
  670. package/dist/modern/Chart/Chart.js.map +1 -1
  671. package/dist/modern/Chart/Plot/Plot.js +2 -2
  672. package/dist/modern/Chart/Plot/Plot.js.map +1 -1
  673. package/dist/modern/Chart/Tooltip/MultiTooltip/MultiTooltip.js +2 -2
  674. package/dist/modern/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
  675. package/dist/modern/Chart/Tooltip/SingleTooltip/SingleTooltip.js +2 -2
  676. package/dist/modern/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
  677. package/dist/modern/Chart/Tooltip/Tooltip.js +2 -2
  678. package/dist/modern/Chart/Tooltip/Tooltip.js.map +1 -1
  679. package/dist/modern/CheckBox/CheckBox.js +2 -2
  680. package/dist/modern/CheckBox/CheckBox.js.map +1 -1
  681. package/dist/modern/CheckBoxGroup/CheckBoxGroup.js +2 -2
  682. package/dist/modern/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  683. package/dist/modern/Container/Container.js +2 -2
  684. package/dist/modern/Container/Container.js.map +1 -1
  685. package/dist/modern/DatePicker/DatePicker.js +2 -2
  686. package/dist/modern/DatePicker/DatePicker.js.map +1 -1
  687. package/dist/modern/Dialog/Dialog.js +7 -4
  688. package/dist/modern/Dialog/Dialog.js.map +1 -1
  689. package/dist/modern/Dialog/DialogActions/DialogActions.js +2 -2
  690. package/dist/modern/Dialog/DialogActions/DialogActions.js.map +1 -1
  691. package/dist/modern/Dialog/DialogContent/DialogContent.js +2 -2
  692. package/dist/modern/Dialog/DialogContent/DialogContent.js.map +1 -1
  693. package/dist/modern/Dialog/DialogTitle/DialogTitle.js +2 -2
  694. package/dist/modern/Dialog/DialogTitle/DialogTitle.js.map +1 -1
  695. package/dist/modern/Donutchart/Donutchart.js +2 -2
  696. package/dist/modern/Donutchart/Donutchart.js.map +1 -1
  697. package/dist/modern/DropDownMenu/DropDownMenu.js +2 -2
  698. package/dist/modern/DropDownMenu/DropDownMenu.js.map +1 -1
  699. package/dist/modern/Dropdown/Dropdown.js +2 -2
  700. package/dist/modern/Dropdown/Dropdown.js.map +1 -1
  701. package/dist/modern/Dropdown/List/List.js +2 -2
  702. package/dist/modern/Dropdown/List/List.js.map +1 -1
  703. package/dist/modern/EmptyState/EmptyState.js +2 -2
  704. package/dist/modern/EmptyState/EmptyState.js.map +1 -1
  705. package/dist/modern/FileUploader/DropZone/DropZone.js +2 -2
  706. package/dist/modern/FileUploader/DropZone/DropZone.js.map +1 -1
  707. package/dist/modern/FileUploader/File/File.js +6 -4
  708. package/dist/modern/FileUploader/File/File.js.map +1 -1
  709. package/dist/modern/FileUploader/FileList/FileList.js +2 -2
  710. package/dist/modern/FileUploader/FileList/FileList.js.map +1 -1
  711. package/dist/modern/FileUploader/FileUploader.js +2 -2
  712. package/dist/modern/FileUploader/FileUploader.js.map +1 -1
  713. package/dist/modern/FileUploader/Preview/Preview.js +6 -3
  714. package/dist/modern/FileUploader/Preview/Preview.js.map +1 -1
  715. package/dist/modern/FilterGroup/Counter/Counter.js +2 -2
  716. package/dist/modern/FilterGroup/Counter/Counter.js.map +1 -1
  717. package/dist/modern/FilterGroup/FilterContent/FilterContent.js +7 -4
  718. package/dist/modern/FilterGroup/FilterContent/FilterContent.js.map +1 -1
  719. package/dist/modern/FilterGroup/FilterGroup.js +2 -2
  720. package/dist/modern/FilterGroup/FilterGroup.js.map +1 -1
  721. package/dist/modern/FilterGroup/FilterGroupContext.js +2 -2
  722. package/dist/modern/FilterGroup/FilterGroupContext.js.map +1 -1
  723. package/dist/modern/FilterGroup/LeftPanel/LeftPanel.js +2 -2
  724. package/dist/modern/FilterGroup/LeftPanel/LeftPanel.js.map +1 -1
  725. package/dist/modern/FilterGroup/RightPanel/RightPanel.js +2 -2
  726. package/dist/modern/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  727. package/dist/modern/Focus/Focus.js +2 -2
  728. package/dist/modern/Focus/Focus.js.map +1 -1
  729. package/dist/modern/Footer/Footer.js +2 -2
  730. package/dist/modern/Footer/Footer.js.map +1 -1
  731. package/dist/modern/Forms/Adornment/Adornment.js +2 -2
  732. package/dist/modern/Forms/Adornment/Adornment.js.map +1 -1
  733. package/dist/modern/Forms/CharCounter/CharCounter.js +2 -2
  734. package/dist/modern/Forms/CharCounter/CharCounter.js.map +1 -1
  735. package/dist/modern/Forms/FormElement/FormElement.js +2 -2
  736. package/dist/modern/Forms/FormElement/FormElement.js.map +1 -1
  737. package/dist/modern/Forms/InfoMessage/InfoMessage.js +2 -2
  738. package/dist/modern/Forms/InfoMessage/InfoMessage.js.map +1 -1
  739. package/dist/modern/Forms/Label/Label.js +7 -4
  740. package/dist/modern/Forms/Label/Label.js.map +1 -1
  741. package/dist/modern/Forms/Suggestions/Suggestions.js +2 -2
  742. package/dist/modern/Forms/Suggestions/Suggestions.js.map +1 -1
  743. package/dist/modern/Forms/WarningText/WarningText.js +2 -2
  744. package/dist/modern/Forms/WarningText/WarningText.js.map +1 -1
  745. package/dist/modern/GlobalActions/GlobalActions.js +9 -4
  746. package/dist/modern/GlobalActions/GlobalActions.js.map +1 -1
  747. package/dist/modern/Grid/Grid.js +3 -3
  748. package/dist/modern/Grid/Grid.js.map +1 -1
  749. package/dist/modern/Header/Actions/Actions.js +2 -2
  750. package/dist/modern/Header/Actions/Actions.js.map +1 -1
  751. package/dist/modern/Header/Brand/Brand.js +2 -2
  752. package/dist/modern/Header/Brand/Brand.js.map +1 -1
  753. package/dist/modern/Header/Header.js +2 -2
  754. package/dist/modern/Header/Header.js.map +1 -1
  755. package/dist/modern/Header/Navigation/MenuBar/MenuBar.js +2 -2
  756. package/dist/modern/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  757. package/dist/modern/Header/Navigation/MenuItem/MenuItem.js +2 -2
  758. package/dist/modern/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  759. package/dist/modern/Header/Navigation/Navigation.js +2 -2
  760. package/dist/modern/Header/Navigation/Navigation.js.map +1 -1
  761. package/dist/modern/Header/Navigation/utils/FocusContext.js +2 -2
  762. package/dist/modern/Header/Navigation/utils/FocusContext.js.map +1 -1
  763. package/dist/modern/Input/Input.js +8 -5
  764. package/dist/modern/Input/Input.js.map +1 -1
  765. package/dist/modern/Kpi/Kpi.js +2 -2
  766. package/dist/modern/Kpi/Kpi.js.map +1 -1
  767. package/dist/modern/Linechart/Linechart.js +2 -2
  768. package/dist/modern/Linechart/Linechart.js.map +1 -1
  769. package/dist/modern/Link/Link.js +2 -2
  770. package/dist/modern/Link/Link.js.map +1 -1
  771. package/dist/modern/List/List.js +4 -4
  772. package/dist/modern/List/List.js.map +1 -1
  773. package/dist/modern/ListContainer/ListContainer.js +2 -2
  774. package/dist/modern/ListContainer/ListContainer.js.map +1 -1
  775. package/dist/modern/ListContainer/ListItem/ListItem.js +2 -2
  776. package/dist/modern/ListContainer/ListItem/ListItem.js.map +1 -1
  777. package/dist/modern/Loading/Loading.js +2 -2
  778. package/dist/modern/Loading/Loading.js.map +1 -1
  779. package/dist/modern/Login/Login.js +2 -2
  780. package/dist/modern/Login/Login.js.map +1 -1
  781. package/dist/modern/MultiButton/MultiButton.js +2 -2
  782. package/dist/modern/MultiButton/MultiButton.js.map +1 -1
  783. package/dist/modern/OverflowTooltip/OverflowTooltip.d.ts +29 -0
  784. package/dist/modern/OverflowTooltip/OverflowTooltip.js +120 -0
  785. package/dist/modern/OverflowTooltip/OverflowTooltip.js.map +1 -0
  786. package/dist/modern/OverflowTooltip/index.d.ts +1 -0
  787. package/dist/modern/OverflowTooltip/index.js +2 -0
  788. package/dist/modern/OverflowTooltip/index.js.map +1 -0
  789. package/dist/modern/Pagination/Pagination.js +2 -2
  790. package/dist/modern/Pagination/Pagination.js.map +1 -1
  791. package/dist/modern/Panel/Panel.js +2 -2
  792. package/dist/modern/Panel/Panel.js.map +1 -1
  793. package/dist/modern/Provider/Provider.js +5 -3
  794. package/dist/modern/Provider/Provider.js.map +1 -1
  795. package/dist/modern/Radio/Radio.js +2 -2
  796. package/dist/modern/Radio/Radio.js.map +1 -1
  797. package/dist/modern/RadioGroup/RadioGroup.js +2 -2
  798. package/dist/modern/RadioGroup/RadioGroup.js.map +1 -1
  799. package/dist/modern/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +2 -2
  800. package/dist/modern/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
  801. package/dist/modern/ScrollTo/Horizontal/ScrollToHorizontal.js +2 -2
  802. package/dist/modern/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  803. package/dist/modern/ScrollTo/Vertical/ScrollToVertical.js +2 -2
  804. package/dist/modern/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  805. package/dist/modern/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js +7 -4
  806. package/dist/modern/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
  807. package/dist/modern/SelectionList/SelectionList.js +2 -2
  808. package/dist/modern/SelectionList/SelectionList.js.map +1 -1
  809. package/dist/modern/Snackbar/Snackbar.js +2 -2
  810. package/dist/modern/Snackbar/Snackbar.js.map +1 -1
  811. package/dist/modern/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js +2 -2
  812. package/dist/modern/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js.map +1 -1
  813. package/dist/modern/Snackbar/SnackbarProvider/SnackbarProvider.d.ts +30 -0
  814. package/dist/modern/Snackbar/SnackbarProvider/SnackbarProvider.js +155 -0
  815. package/dist/modern/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -0
  816. package/dist/modern/Snackbar/SnackbarProvider/index.d.ts +2 -0
  817. package/dist/modern/Snackbar/SnackbarProvider/index.js +3 -0
  818. package/dist/modern/Snackbar/SnackbarProvider/index.js.map +1 -0
  819. package/dist/modern/Snackbar/stories/SnackbarProvider.stories.mdx +51 -0
  820. package/dist/modern/Switch/Switch.js +2 -2
  821. package/dist/modern/Switch/Switch.js.map +1 -1
  822. package/dist/modern/Tab/Tab.js +2 -2
  823. package/dist/modern/Tab/Tab.js.map +1 -1
  824. package/dist/modern/Table/Header/Header.js +4 -2
  825. package/dist/modern/Table/Header/Header.js.map +1 -1
  826. package/dist/modern/Table/NoData/index.js +3 -1
  827. package/dist/modern/Table/NoData/index.js.map +1 -1
  828. package/dist/modern/Table/Table.js +5 -3
  829. package/dist/modern/Table/Table.js.map +1 -1
  830. package/dist/modern/Tabs/Tabs.js +6 -3
  831. package/dist/modern/Tabs/Tabs.js.map +1 -1
  832. package/dist/modern/Tag/Tag.js +6 -4
  833. package/dist/modern/Tag/Tag.js.map +1 -1
  834. package/dist/modern/TagsInput/TagsInput.d.ts +33 -4
  835. package/dist/modern/TagsInput/TagsInput.js +110 -21
  836. package/dist/modern/TagsInput/TagsInput.js.map +1 -1
  837. package/dist/modern/TagsInput/styles.js +12 -8
  838. package/dist/modern/TagsInput/styles.js.map +1 -1
  839. package/dist/modern/TextArea/TextArea.js +2 -2
  840. package/dist/modern/TextArea/TextArea.js.map +1 -1
  841. package/dist/modern/ToggleButton/ToggleButton.js +2 -2
  842. package/dist/modern/ToggleButton/ToggleButton.js.map +1 -1
  843. package/dist/modern/Tooltip/Tooltip.js +2 -2
  844. package/dist/modern/Tooltip/Tooltip.js.map +1 -1
  845. package/dist/modern/Typography/Typography.js +2 -2
  846. package/dist/modern/Typography/Typography.js.map +1 -1
  847. package/dist/modern/UserPreferences/Action/Action.js +2 -2
  848. package/dist/modern/UserPreferences/Action/Action.js.map +1 -1
  849. package/dist/modern/UserPreferences/Actions/Actions.js +2 -2
  850. package/dist/modern/UserPreferences/Actions/Actions.js.map +1 -1
  851. package/dist/modern/UserPreferences/Options/Group/Group.js +2 -2
  852. package/dist/modern/UserPreferences/Options/Group/Group.js.map +1 -1
  853. package/dist/modern/UserPreferences/Options/Label/Label.js +2 -2
  854. package/dist/modern/UserPreferences/Options/Label/Label.js.map +1 -1
  855. package/dist/modern/UserPreferences/Options/Option.js +2 -2
  856. package/dist/modern/UserPreferences/Options/Option.js.map +1 -1
  857. package/dist/modern/UserPreferences/Options/Options.js +2 -2
  858. package/dist/modern/UserPreferences/Options/Options.js.map +1 -1
  859. package/dist/modern/UserPreferences/UserPreferences.js +2 -2
  860. package/dist/modern/UserPreferences/UserPreferences.js.map +1 -1
  861. package/dist/modern/VerticalNavigation/Actions/Action.js +2 -2
  862. package/dist/modern/VerticalNavigation/Actions/Action.js.map +1 -1
  863. package/dist/modern/VerticalNavigation/Actions/Actions.js +2 -2
  864. package/dist/modern/VerticalNavigation/Actions/Actions.js.map +1 -1
  865. package/dist/modern/VerticalNavigation/Navigation/Navigation.js +2 -2
  866. package/dist/modern/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  867. package/dist/modern/VerticalNavigation/TreeView/TreeView.js +2 -2
  868. package/dist/modern/VerticalNavigation/TreeView/TreeView.js.map +1 -1
  869. package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.js +6 -3
  870. package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  871. package/dist/modern/VerticalNavigation/TreeView/descendants.js +2 -2
  872. package/dist/modern/VerticalNavigation/TreeView/descendants.js.map +1 -1
  873. package/dist/modern/VerticalNavigation/VerticalContainer/VerticalContainer.js +6 -3
  874. package/dist/modern/VerticalNavigation/VerticalContainer/VerticalContainer.js.map +1 -1
  875. package/dist/modern/VerticalNavigation/VerticalNavigation.js +2 -2
  876. package/dist/modern/VerticalNavigation/VerticalNavigation.js.map +1 -1
  877. package/dist/modern/index.d.ts +5 -0
  878. package/dist/modern/index.js +2 -0
  879. package/dist/modern/index.js.map +1 -1
  880. package/dist/modern/withId.js +2 -2
  881. package/dist/modern/withId.js.map +1 -1
  882. package/dist/modern/withTooltip.js +32 -27
  883. package/dist/modern/withTooltip.js.map +1 -1
  884. package/dist/withId.js +2 -2
  885. package/dist/withId.js.map +1 -1
  886. package/dist/withTooltip.js +4 -2
  887. package/dist/withTooltip.js.map +1 -1
  888. package/package.json +8 -7
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../src/UserPreferences/UserPreferences.js"],"names":["React","useCallback","useEffect","useMemo","useRef","useState","PropTypes","ClickAwayListener","withStyles","clsx","isNil","getFirstAndLastFocus","isKeypress","KeyboardCodes","styles","Typography","HvUserPreferences","className","classes","isOpen","toggleOpenCallback","children","position","closeOnExit","userInfo","others","open","setOpen","prevPropOpen","setPrevPropOpen","containerRef","focusableList","setTimeout","current","first","focus","toggleOpen","newState","prevState","handlerKeyContainer","event","Tab","target","shiftKey","id","last","Esc","renderedContainer","contentContainer","label1","label2","root","static","relative","fixed","absolute","container","propTypes","string","shape","isRequired","bool","oneOf","node","func","name"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\nimport { withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { getFirstAndLastFocus, isKeypress, KeyboardCodes } from \"../utils\";\nimport styles from \"./styles\";\nimport Typography from \"../Typography\";\n\n/**\n * User preferences are a group of configurable settings that can be customized for a particular user.\n *\n * Our implementation of the User Preferences component is divided in:\n * <ul>\n * <li>Actions - container for actions</li>\n * <li>Action - action button</li>\n * <li>Options - container for options</li>\n * <li>Group - creates a division between different sets of option, with the possibility of setting a label</li>\n * <li>Label - Label typography.</li>\n * <li>Option - Option button</li>\n * </ul>\n * To build the User Preferences component, a composition of these elements should be used.\n *\n */\nconst HvUserPreferences = ({\n className,\n classes,\n isOpen = false,\n toggleOpenCallback,\n children,\n position = \"static\",\n closeOnExit = false,\n userInfo,\n ...others\n}) => {\n const [open, setOpen] = useState(isOpen);\n const [prevPropOpen, setPrevPropOpen] = useState(null);\n const containerRef = useRef(null);\n const focusableList = useRef(null);\n\n if (isOpen !== prevPropOpen) {\n setOpen(isOpen);\n setPrevPropOpen(isOpen);\n }\n\n /**\n * Fills the object with the first and last focusable element inside the container.\n * When the container is open the first focusable element is focus.\n */\n useEffect(() => {\n setTimeout(() => {\n if (open) {\n focusableList.current = getFirstAndLastFocus(containerRef.current);\n if (focusableList.current.first) focusableList.current.first.focus();\n }\n });\n }, [open]);\n\n /**\n * Toggle the open state based on the received parameter.\n */\n const toggleOpen = useCallback(\n (newState = null) => {\n if (newState !== null) {\n if (newState !== open) {\n setOpen(newState);\n } else {\n return;\n }\n } else {\n setOpen((prevState) => !prevState);\n }\n toggleOpenCallback?.(newState);\n },\n [toggleOpenCallback, open]\n );\n\n /**\n * Handler of keyboard clicks.\n */\n const handlerKeyContainer = useCallback(\n (event) => {\n if (closeOnExit) {\n if (\n isKeypress(event, KeyboardCodes.Tab) &&\n !isNil(event.target) &&\n !isNil(focusableList.current) &&\n !isNil(focusableList.current.first)\n ) {\n if (\n (event.shiftKey && event.target.id === focusableList.current.first.id) ||\n (!event.shiftKey && event.target.id === focusableList.current.last.id)\n ) {\n toggleOpen(false);\n }\n }\n if (isKeypress(event, KeyboardCodes.Esc) === false) {\n return;\n }\n toggleOpen(false);\n }\n },\n [closeOnExit, toggleOpen]\n );\n\n const renderedContainer = useMemo(\n () => (\n <ClickAwayListener onClickAway={() => closeOnExit && toggleOpen(false)}>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={containerRef}\n className={classes.contentContainer}\n onKeyDown={handlerKeyContainer}\n >\n {userInfo && (\n <div className={classes.userInfo}>\n <Typography variant=\"highlightText\">{userInfo.label1}</Typography>\n <Typography>{userInfo.label2}</Typography>\n </div>\n )}\n {children}\n </div>\n </ClickAwayListener>\n ),\n [\n children,\n classes.userInfo,\n classes.contentContainer,\n handlerKeyContainer,\n userInfo,\n closeOnExit,\n toggleOpen,\n ]\n );\n\n return (\n <div\n className={clsx([\n classes.root,\n {\n [classes.static]: position === \"static\",\n [classes.relative]: position === \"relative\",\n [classes.fixed]: position === \"fixed\",\n [classes.absolute]: position === \"absolute\",\n },\n className,\n ])}\n >\n <div className={classes.container} {...others}>\n {open && renderedContainer}\n </div>\n </div>\n );\n};\n\nHvUserPreferences.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied when position is fixed.\n */\n fixed: PropTypes.string,\n /**\n * Styles applied when position is relative.\n */\n relative: PropTypes.string,\n /**\n * Styles applied when position is absolute.\n */\n absolute: PropTypes.string,\n /**\n * Styles applied when position is static.\n */\n static: PropTypes.string,\n /**\n * Styles applied to the container.\n */\n container: PropTypes.string,\n /**\n * Styles applied to the inside of the container.\n */\n contentContainer: PropTypes.string,\n /**\n * Styles applied to the user information.\n */\n userInfo: PropTypes.string,\n }).isRequired,\n /**\n * Defines if the user preferences is shown.\n */\n isOpen: PropTypes.bool,\n /**\n * Position of the component.\n */\n position: PropTypes.oneOf([\"static\", \"relative\", \"fixed\", \"absolute\"]),\n /**\n * Children component.\n */\n children: PropTypes.node.isRequired,\n /**\n * Callback when the navigation toggles between open and close.\n */\n toggleOpenCallback: PropTypes.func,\n /**\n * Defines if the content pane should close when losing focus / clicking outside.\n */\n closeOnExit: PropTypes.bool,\n /**\n * User information.\n */\n userInfo: PropTypes.shape({\n label1: PropTypes.string,\n label2: PropTypes.string,\n }),\n};\n\nexport default withStyles(styles, { name: \"HvUserPreferences\" })(HvUserPreferences);\n"],"file":"UserPreferences.js"}
1
+ {"version":3,"sources":["../../../src/UserPreferences/UserPreferences.js"],"names":["React","useCallback","useEffect","useMemo","useRef","useState","PropTypes","ClickAwayListener","withStyles","clsx","isNil","getFirstAndLastFocus","isKeypress","KeyboardCodes","styles","Typography","HvUserPreferences","className","classes","isOpen","toggleOpenCallback","children","position","closeOnExit","userInfo","others","open","setOpen","prevPropOpen","setPrevPropOpen","containerRef","focusableList","setTimeout","current","first","focus","toggleOpen","newState","prevState","handlerKeyContainer","event","Tab","target","shiftKey","id","last","Esc","renderedContainer","contentContainer","label1","label2","root","static","relative","fixed","absolute","container","propTypes","string","shape","isRequired","bool","oneOf","node","func","name"],"mappings":"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","sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\nimport { withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { getFirstAndLastFocus, isKeypress, KeyboardCodes } from \"../utils\";\nimport styles from \"./styles\";\nimport Typography from \"../Typography\";\n\n/**\n * User preferences are a group of configurable settings that can be customized for a particular user.\n *\n * Our implementation of the User Preferences component is divided in:\n * <ul>\n * <li>Actions - container for actions</li>\n * <li>Action - action button</li>\n * <li>Options - container for options</li>\n * <li>Group - creates a division between different sets of option, with the possibility of setting a label</li>\n * <li>Label - Label typography.</li>\n * <li>Option - Option button</li>\n * </ul>\n * To build the User Preferences component, a composition of these elements should be used.\n *\n */\nconst HvUserPreferences = ({\n className,\n classes,\n isOpen = false,\n toggleOpenCallback,\n children,\n position = \"static\",\n closeOnExit = false,\n userInfo,\n ...others\n}) => {\n const [open, setOpen] = useState(isOpen);\n const [prevPropOpen, setPrevPropOpen] = useState(null);\n const containerRef = useRef(null);\n const focusableList = useRef(null);\n\n if (isOpen !== prevPropOpen) {\n setOpen(isOpen);\n setPrevPropOpen(isOpen);\n }\n\n /**\n * Fills the object with the first and last focusable element inside the container.\n * When the container is open the first focusable element is focus.\n */\n useEffect(() => {\n setTimeout(() => {\n if (open) {\n focusableList.current = getFirstAndLastFocus(containerRef.current);\n if (focusableList.current.first) focusableList.current.first.focus();\n }\n });\n }, [open]);\n\n /**\n * Toggle the open state based on the received parameter.\n */\n const toggleOpen = useCallback(\n (newState = null) => {\n if (newState !== null) {\n if (newState !== open) {\n setOpen(newState);\n } else {\n return;\n }\n } else {\n setOpen((prevState) => !prevState);\n }\n toggleOpenCallback?.(newState);\n },\n [toggleOpenCallback, open]\n );\n\n /**\n * Handler of keyboard clicks.\n */\n const handlerKeyContainer = useCallback(\n (event) => {\n if (closeOnExit) {\n if (\n isKeypress(event, KeyboardCodes.Tab) &&\n !isNil(event.target) &&\n !isNil(focusableList.current) &&\n !isNil(focusableList.current.first)\n ) {\n if (\n (event.shiftKey && event.target.id === focusableList.current.first.id) ||\n (!event.shiftKey && event.target.id === focusableList.current.last.id)\n ) {\n toggleOpen(false);\n }\n }\n if (isKeypress(event, KeyboardCodes.Esc) === false) {\n return;\n }\n toggleOpen(false);\n }\n },\n [closeOnExit, toggleOpen]\n );\n\n const renderedContainer = useMemo(\n () => (\n <ClickAwayListener onClickAway={() => closeOnExit && toggleOpen(false)}>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={containerRef}\n className={classes.contentContainer}\n onKeyDown={handlerKeyContainer}\n >\n {userInfo && (\n <div className={classes.userInfo}>\n <Typography variant=\"highlightText\">{userInfo.label1}</Typography>\n <Typography>{userInfo.label2}</Typography>\n </div>\n )}\n {children}\n </div>\n </ClickAwayListener>\n ),\n [\n children,\n classes.userInfo,\n classes.contentContainer,\n handlerKeyContainer,\n userInfo,\n closeOnExit,\n toggleOpen,\n ]\n );\n\n return (\n <div\n className={clsx([\n classes.root,\n {\n [classes.static]: position === \"static\",\n [classes.relative]: position === \"relative\",\n [classes.fixed]: position === \"fixed\",\n [classes.absolute]: position === \"absolute\",\n },\n className,\n ])}\n >\n <div className={classes.container} {...others}>\n {open && renderedContainer}\n </div>\n </div>\n );\n};\n\nHvUserPreferences.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied when position is fixed.\n */\n fixed: PropTypes.string,\n /**\n * Styles applied when position is relative.\n */\n relative: PropTypes.string,\n /**\n * Styles applied when position is absolute.\n */\n absolute: PropTypes.string,\n /**\n * Styles applied when position is static.\n */\n static: PropTypes.string,\n /**\n * Styles applied to the container.\n */\n container: PropTypes.string,\n /**\n * Styles applied to the inside of the container.\n */\n contentContainer: PropTypes.string,\n /**\n * Styles applied to the user information.\n */\n userInfo: PropTypes.string,\n }).isRequired,\n /**\n * Defines if the user preferences is shown.\n */\n isOpen: PropTypes.bool,\n /**\n * Position of the component.\n */\n position: PropTypes.oneOf([\"static\", \"relative\", \"fixed\", \"absolute\"]),\n /**\n * Children component.\n */\n children: PropTypes.node.isRequired,\n /**\n * Callback when the navigation toggles between open and close.\n */\n toggleOpenCallback: PropTypes.func,\n /**\n * Defines if the content pane should close when losing focus / clicking outside.\n */\n closeOnExit: PropTypes.bool,\n /**\n * User information.\n */\n userInfo: PropTypes.shape({\n label1: PropTypes.string,\n label2: PropTypes.string,\n }),\n};\n\nexport default withStyles(styles, { name: \"HvUserPreferences\" })(HvUserPreferences);\n"],"file":"UserPreferences.js"}
@@ -39,7 +39,7 @@ const Action = _ref => {
39
39
  }, others), icon, label);
40
40
  };
41
41
 
42
- Action.propTypes = {
42
+ process.env.NODE_ENV !== "production" ? Action.propTypes = {
43
43
  /**
44
44
  * Class names to be applied.
45
45
  */
@@ -79,7 +79,7 @@ Action.propTypes = {
79
79
  * Callback called when clicked.
80
80
  */
81
81
  onClick: PropTypes.func
82
- };
82
+ } : void 0;
83
83
  export default withStyles(styles, {
84
84
  name: "HvVerticalNavigationAction"
85
85
  })(Action);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/VerticalNavigation/Actions/Action.js"],"names":["React","useCallback","PropTypes","clsx","withStyles","KeyboardCodes","isKeypress","HvTypography","setId","styles","Action","className","classes","id","label","icon","onClick","others","handleKeyDown","event","Enter","SpaceBar","action","noIcon","propTypes","string","shape","isRequired","node","func","name"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgBC,WAAhB,QAAmC,OAAnC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,aAAT,EAAwBC,UAAxB,QAA0C,2BAA1C;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,SAASC,KAAT,QAAsB,aAAtB;AACA,OAAOC,MAAP,MAAmB,UAAnB;;AAEA,MAAMC,MAAM,GAAG,QAAsE;AAAA,MAArE;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,OAAb;AAAsBC,IAAAA,EAAtB;AAA0BC,IAAAA,KAAK,GAAG,EAAlC;AAAsCC,IAAAA,IAAtC;AAA4CC,IAAAA;AAA5C,GAAqE;AAAA,MAAbC,MAAa;;AACnF,QAAMC,aAAa,GAAGjB,WAAW,CAC9BkB,KAAD,IAAW;AACT,QACEH,OAAO,IAAI,IAAX,IACC,CAACV,UAAU,CAACa,KAAD,EAAQd,aAAa,CAACe,KAAtB,CAAX,IAA2C,CAACd,UAAU,CAACa,KAAD,EAAQd,aAAa,CAACgB,QAAtB,CAFzD,EAGE;AACA;AACD;;AAEDL,IAAAA,OAAO,CAACG,KAAD,CAAP;AACD,GAV8B,EAW/B,CAACH,OAAD,CAX+B,CAAjC;AAcA,sBACE,oBAAC,YAAD;AACE,IAAA,EAAE,EAAER,KAAK,CAACK,EAAD,EAAK,QAAL,CADX;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,IAAI,EAAC,QAHP;AAIE,IAAA,SAAS,EAAEV,IAAI,CAACQ,SAAD,EAAYC,OAAO,CAACU,MAApB,EAAgD,CAACP,IAAjD,IAA+BH,OAAO,CAACW,MAAvC,CAJjB;AAKE,IAAA,QAAQ,EAAE,CALZ;AAME,IAAA,SAAS,EAAEL,aANb;AAOE,IAAA,OAAO,EAAEF;AAPX,KAQMC,MARN,GAUGF,IAVH,EAWGD,KAXH,CADF;AAeD,CA9BD;;AAgCAJ,MAAM,CAACc,SAAP,GAAmB;AACjB;AACF;AACA;AACEb,EAAAA,SAAS,EAAET,SAAS,CAACuB,MAJJ;;AAKjB;AACF;AACA;AACEb,EAAAA,OAAO,EAAEV,SAAS,CAACwB,KAAV,CAAgB;AACvB;AACJ;AACA;AACIJ,IAAAA,MAAM,EAAEpB,SAAS,CAACuB,MAJK;;AAKvB;AACJ;AACA;AACIF,IAAAA,MAAM,EAAErB,SAAS,CAACuB;AARK,GAAhB,EASNE,UAjBc;;AAkBjB;AACF;AACA;AACEd,EAAAA,EAAE,EAAEX,SAAS,CAACuB,MArBG;;AAsBjB;AACF;AACA;AACEX,EAAAA,KAAK,EAAEZ,SAAS,CAACuB,MAzBA;;AA0BjB;AACF;AACA;AACEV,EAAAA,IAAI,EAAEb,SAAS,CAAC0B,IA7BC;;AA8BjB;AACF;AACA;AACEZ,EAAAA,OAAO,EAAEd,SAAS,CAAC2B;AAjCF,CAAnB;AAoCA,eAAezB,UAAU,CAACK,MAAD,EAAS;AAAEqB,EAAAA,IAAI,EAAE;AAAR,CAAT,CAAV,CAA2DpB,MAA3D,CAAf","sourcesContent":["import React, { useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport { KeyboardCodes, isKeypress } from \"../../utils/KeyboardUtils\";\nimport HvTypography from \"../../Typography\";\nimport { setId } from \"../../utils\";\nimport styles from \"./styles\";\n\nconst Action = ({ className, classes, id, label = \"\", icon, onClick, ...others }) => {\n const handleKeyDown = useCallback(\n (event) => {\n if (\n onClick == null ||\n (!isKeypress(event, KeyboardCodes.Enter) && !isKeypress(event, KeyboardCodes.SpaceBar))\n ) {\n return;\n }\n\n onClick(event);\n },\n [onClick]\n );\n\n return (\n <HvTypography\n id={setId(id, \"button\")}\n component=\"div\"\n role=\"button\"\n className={clsx(className, classes.action, { [classes.noIcon]: !icon })}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onClick={onClick}\n {...others}\n >\n {icon}\n {label}\n </HvTypography>\n );\n};\n\nAction.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the component.\n */\n action: PropTypes.string,\n /**\n * Style applied when no icon is present.\n */\n noIcon: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the action.\n */\n id: PropTypes.string,\n /**\n * Visual label.\n */\n label: PropTypes.string,\n /**\n * Icon.\n */\n icon: PropTypes.node,\n /**\n * Callback called when clicked.\n */\n onClick: PropTypes.func,\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationAction\" })(Action);\n"],"file":"Action.js"}
1
+ {"version":3,"sources":["../../../../src/VerticalNavigation/Actions/Action.js"],"names":["React","useCallback","PropTypes","clsx","withStyles","KeyboardCodes","isKeypress","HvTypography","setId","styles","Action","className","classes","id","label","icon","onClick","others","handleKeyDown","event","Enter","SpaceBar","action","noIcon","propTypes","string","shape","isRequired","node","func","name"],"mappings":";;;AAAA,OAAOA,KAAP,IAAgBC,WAAhB,QAAmC,OAAnC;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,aAAT,EAAwBC,UAAxB,QAA0C,2BAA1C;AACA,OAAOC,YAAP,MAAyB,kBAAzB;AACA,SAASC,KAAT,QAAsB,aAAtB;AACA,OAAOC,MAAP,MAAmB,UAAnB;;AAEA,MAAMC,MAAM,GAAG,QAAsE;AAAA,MAArE;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,OAAb;AAAsBC,IAAAA,EAAtB;AAA0BC,IAAAA,KAAK,GAAG,EAAlC;AAAsCC,IAAAA,IAAtC;AAA4CC,IAAAA;AAA5C,GAAqE;AAAA,MAAbC,MAAa;;AACnF,QAAMC,aAAa,GAAGjB,WAAW,CAC9BkB,KAAD,IAAW;AACT,QACEH,OAAO,IAAI,IAAX,IACC,CAACV,UAAU,CAACa,KAAD,EAAQd,aAAa,CAACe,KAAtB,CAAX,IAA2C,CAACd,UAAU,CAACa,KAAD,EAAQd,aAAa,CAACgB,QAAtB,CAFzD,EAGE;AACA;AACD;;AAEDL,IAAAA,OAAO,CAACG,KAAD,CAAP;AACD,GAV8B,EAW/B,CAACH,OAAD,CAX+B,CAAjC;AAcA,sBACE,oBAAC,YAAD;AACE,IAAA,EAAE,EAAER,KAAK,CAACK,EAAD,EAAK,QAAL,CADX;AAEE,IAAA,SAAS,EAAC,KAFZ;AAGE,IAAA,IAAI,EAAC,QAHP;AAIE,IAAA,SAAS,EAAEV,IAAI,CAACQ,SAAD,EAAYC,OAAO,CAACU,MAApB,EAAgD,CAACP,IAAjD,IAA+BH,OAAO,CAACW,MAAvC,CAJjB;AAKE,IAAA,QAAQ,EAAE,CALZ;AAME,IAAA,SAAS,EAAEL,aANb;AAOE,IAAA,OAAO,EAAEF;AAPX,KAQMC,MARN,GAUGF,IAVH,EAWGD,KAXH,CADF;AAeD,CA9BD;;AAgCA,wCAAAJ,MAAM,CAACc,SAAP,GAAmB;AACjB;AACF;AACA;AACEb,EAAAA,SAAS,EAAET,SAAS,CAACuB,MAJJ;;AAKjB;AACF;AACA;AACEb,EAAAA,OAAO,EAAEV,SAAS,CAACwB,KAAV,CAAgB;AACvB;AACJ;AACA;AACIJ,IAAAA,MAAM,EAAEpB,SAAS,CAACuB,MAJK;;AAKvB;AACJ;AACA;AACIF,IAAAA,MAAM,EAAErB,SAAS,CAACuB;AARK,GAAhB,EASNE,UAjBc;;AAkBjB;AACF;AACA;AACEd,EAAAA,EAAE,EAAEX,SAAS,CAACuB,MArBG;;AAsBjB;AACF;AACA;AACEX,EAAAA,KAAK,EAAEZ,SAAS,CAACuB,MAzBA;;AA0BjB;AACF;AACA;AACEV,EAAAA,IAAI,EAAEb,SAAS,CAAC0B,IA7BC;;AA8BjB;AACF;AACA;AACEZ,EAAAA,OAAO,EAAEd,SAAS,CAAC2B;AAjCF,CAAnB;AAoCA,eAAezB,UAAU,CAACK,MAAD,EAAS;AAAEqB,EAAAA,IAAI,EAAE;AAAR,CAAT,CAAV,CAA2DpB,MAA3D,CAAf","sourcesContent":["import React, { useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport { KeyboardCodes, isKeypress } from \"../../utils/KeyboardUtils\";\nimport HvTypography from \"../../Typography\";\nimport { setId } from \"../../utils\";\nimport styles from \"./styles\";\n\nconst Action = ({ className, classes, id, label = \"\", icon, onClick, ...others }) => {\n const handleKeyDown = useCallback(\n (event) => {\n if (\n onClick == null ||\n (!isKeypress(event, KeyboardCodes.Enter) && !isKeypress(event, KeyboardCodes.SpaceBar))\n ) {\n return;\n }\n\n onClick(event);\n },\n [onClick]\n );\n\n return (\n <HvTypography\n id={setId(id, \"button\")}\n component=\"div\"\n role=\"button\"\n className={clsx(className, classes.action, { [classes.noIcon]: !icon })}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onClick={onClick}\n {...others}\n >\n {icon}\n {label}\n </HvTypography>\n );\n};\n\nAction.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the component.\n */\n action: PropTypes.string,\n /**\n * Style applied when no icon is present.\n */\n noIcon: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the action.\n */\n id: PropTypes.string,\n /**\n * Visual label.\n */\n label: PropTypes.string,\n /**\n * Icon.\n */\n icon: PropTypes.node,\n /**\n * Callback called when clicked.\n */\n onClick: PropTypes.func,\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationAction\" })(Action);\n"],"file":"Action.js"}
@@ -22,7 +22,7 @@ const Actions = _ref => {
22
22
  }, others), children);
23
23
  };
24
24
 
25
- Actions.propTypes = {
25
+ process.env.NODE_ENV !== "production" ? Actions.propTypes = {
26
26
  /**
27
27
  * Class names to be applied.
28
28
  */
@@ -47,7 +47,7 @@ Actions.propTypes = {
47
47
  * Node to be rendered
48
48
  */
49
49
  children: PropTypes.node
50
- };
50
+ } : void 0;
51
51
  export default withStyles(styles, {
52
52
  name: "HvVerticalNavigationActions"
53
53
  })(Actions);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/VerticalNavigation/Actions/Actions.js"],"names":["React","PropTypes","withStyles","clsx","styles","Actions","className","classes","id","children","others","root","propTypes","string","shape","isRequired","node","name"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,OAAOC,MAAP,MAAmB,UAAnB;;AAEA,MAAMC,OAAO,GAAG,QAAqD;AAAA,MAApD;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,OAAb;AAAsBC,IAAAA,EAAtB;AAA0BC,IAAAA;AAA1B,GAAoD;AAAA,MAAbC,MAAa;;AACnE,sBACE;AAAK,IAAA,EAAE,EAAEF,EAAT;AAAa,IAAA,SAAS,EAAEL,IAAI,CAACG,SAAD,EAAYC,OAAO,CAACI,IAApB;AAA5B,KAA2DD,MAA3D,GACGD,QADH,CADF;AAKD,CAND;;AAQAJ,OAAO,CAACO,SAAR,GAAoB;AAClB;AACF;AACA;AACEN,EAAAA,SAAS,EAAEL,SAAS,CAACY,MAJH;;AAKlB;AACF;AACA;AACEN,EAAAA,OAAO,EAAEN,SAAS,CAACa,KAAV,CAAgB;AACvB;AACJ;AACA;AACIH,IAAAA,IAAI,EAAEV,SAAS,CAACY;AAJO,GAAhB,EAKNE,UAbe;;AAclB;AACF;AACA;AACEP,EAAAA,EAAE,EAAEP,SAAS,CAACY,MAjBI;;AAkBlB;AACF;AACA;AACEJ,EAAAA,QAAQ,EAAER,SAAS,CAACe;AArBF,CAApB;AAwBA,eAAed,UAAU,CAACE,MAAD,EAAS;AAAEa,EAAAA,IAAI,EAAE;AAAR,CAAT,CAAV,CAA4DZ,OAA5D,CAAf","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport styles from \"./styles\";\n\nconst Actions = ({ className, classes, id, children, ...others }) => {\n return (\n <div id={id} className={clsx(className, classes.root)} {...others}>\n {children}\n </div>\n );\n};\n\nActions.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the component.\n */\n root: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the actions container.\n */\n id: PropTypes.string,\n /**\n * Node to be rendered\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationActions\" })(Actions);\n"],"file":"Actions.js"}
1
+ {"version":3,"sources":["../../../../src/VerticalNavigation/Actions/Actions.js"],"names":["React","PropTypes","withStyles","clsx","styles","Actions","className","classes","id","children","others","root","propTypes","string","shape","isRequired","node","name"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,OAAOC,MAAP,MAAmB,UAAnB;;AAEA,MAAMC,OAAO,GAAG,QAAqD;AAAA,MAApD;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,OAAb;AAAsBC,IAAAA,EAAtB;AAA0BC,IAAAA;AAA1B,GAAoD;AAAA,MAAbC,MAAa;;AACnE,sBACE;AAAK,IAAA,EAAE,EAAEF,EAAT;AAAa,IAAA,SAAS,EAAEL,IAAI,CAACG,SAAD,EAAYC,OAAO,CAACI,IAApB;AAA5B,KAA2DD,MAA3D,GACGD,QADH,CADF;AAKD,CAND;;AAQA,wCAAAJ,OAAO,CAACO,SAAR,GAAoB;AAClB;AACF;AACA;AACEN,EAAAA,SAAS,EAAEL,SAAS,CAACY,MAJH;;AAKlB;AACF;AACA;AACEN,EAAAA,OAAO,EAAEN,SAAS,CAACa,KAAV,CAAgB;AACvB;AACJ;AACA;AACIH,IAAAA,IAAI,EAAEV,SAAS,CAACY;AAJO,GAAhB,EAKNE,UAbe;;AAclB;AACF;AACA;AACEP,EAAAA,EAAE,EAAEP,SAAS,CAACY,MAjBI;;AAkBlB;AACF;AACA;AACEJ,EAAAA,QAAQ,EAAER,SAAS,CAACe;AArBF,CAApB;AAwBA,eAAed,UAAU,CAACE,MAAD,EAAS;AAAEa,EAAAA,IAAI,EAAE;AAAR,CAAT,CAAV,CAA4DZ,OAA5D,CAAf","sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport styles from \"./styles\";\n\nconst Actions = ({ className, classes, id, children, ...others }) => {\n return (\n <div id={id} className={clsx(className, classes.root)} {...others}>\n {children}\n </div>\n );\n};\n\nActions.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the component.\n */\n root: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the actions container.\n */\n id: PropTypes.string,\n /**\n * Node to be rendered\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationActions\" })(Actions);\n"],"file":"Actions.js"}
@@ -151,7 +151,7 @@ const Navigation = _ref => {
151
151
  }, children));
152
152
  };
153
153
 
154
- Navigation.propTypes = {
154
+ process.env.NODE_ENV !== "production" ? Navigation.propTypes = {
155
155
  /**
156
156
  * Id to be applied to the root node.
157
157
  */
@@ -260,7 +260,7 @@ Navigation.propTypes = {
260
260
  * @deprecated Use directly the `aria-label` property instead.
261
261
  */
262
262
  label: deprecatedPropType(PropTypes.string)
263
- };
263
+ } : void 0;
264
264
  export default withStyles(styles, {
265
265
  name: "HvVerticalNavigationNavigation"
266
266
  })(Navigation);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/VerticalNavigation/Navigation/Navigation.js"],"names":["React","useCallback","useMemo","PropTypes","deprecatedPropType","withStyles","clsx","TreeView","TreeViewItem","setId","useControlled","styles","wrapperTooltip","createListHierarchy","items","id","classes","map","item","itemId","label","itemLabel","icon","data","children","selectable","ItemText","listItem","undefined","getAllParents","parents","filter","length","childParents","flatMap","pathToElement","targetId","path","i","push","subPaths","Navigation","className","mode","collapsible","expanded","expandedProp","defaultExpanded","onToggle","selected","selectedProp","defaultSelected","onChange","onClick","others","setSelected","setExpanded","slice","handleChange","event","selectedId","selectedItem","handleToggle","newExpanded","root","list","propTypes","string","shape","isRequired","oneOf","bool","func","arrayOf","oneOfType","node","array","name"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { deprecatedPropType, withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport TreeView, { TreeViewItem } from \"../TreeView\";\nimport { setId, useControlled } from \"../../utils\";\nimport styles from \"./styles\";\nimport { wrapperTooltip } from \"../../List/utils\";\n\nconst createListHierarchy = (items, id, classes) =>\n items.map((item) => {\n const { id: itemId, label: itemLabel, icon, data: children, selectable } = item;\n\n const ItemText = wrapperTooltip(true, itemLabel, itemLabel);\n\n return (\n <TreeViewItem\n id={setId(id, itemId)}\n className={classes.listItem}\n key={itemId}\n nodeId={itemId}\n label={<ItemText />}\n icon={icon}\n payload={item}\n selectable={selectable}\n >\n {children ? createListHierarchy(children, id, classes) : undefined}\n </TreeViewItem>\n );\n });\n\nconst getAllParents = (items) => {\n const parents = items.filter((item) => item.data != null && item.data.length > 0);\n const childParents = parents.flatMap((item) => getAllParents(item.data));\n\n return [...parents, ...childParents];\n};\n\nfunction pathToElement(data, targetId) {\n const path = [];\n\n if (data != null && data.length > 0) {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i !== data.length; ++i) {\n const item = data[i];\n if (item.id === targetId) {\n path.push(item.id);\n break;\n }\n\n const subPaths = pathToElement(item.data, targetId);\n if (subPaths.length > 0) {\n path.push(item.id);\n path.push(...subPaths);\n break;\n }\n }\n }\n\n return path;\n}\n\nconst Navigation = ({\n id,\n\n className,\n classes,\n\n data,\n\n mode = \"navigation\",\n\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded,\n onToggle,\n\n selected: selectedProp,\n defaultSelected,\n onChange,\n\n label,\n onClick,\n\n ...others\n}) => {\n const [selected, setSelected] = useControlled(selectedProp, defaultSelected);\n const [expanded, setExpanded] = useControlled(expandedProp, () => {\n if (defaultExpanded === true) {\n // all parent nodes will be expanded by default\n return getAllParents(data).map((item) => item.id);\n }\n\n if (defaultExpanded === false) {\n // all parent nodes will be collapsed by default\n return [];\n }\n\n if (defaultExpanded == null) {\n if (selected != null) {\n // the path to the selected node will be expanded (default behaviour)\n const path = pathToElement(data, selected);\n return path.slice(0, -1);\n }\n\n // nothing is expanded\n return [];\n }\n\n return defaultExpanded;\n });\n\n const handleChange = useCallback(\n (event, selectedId, selectedItem) => {\n setSelected(selectedId);\n\n if (onChange) {\n onChange(event, selectedItem);\n }\n\n // deprecated\n if (onClick) {\n onClick(event, selectedItem);\n }\n },\n [onChange, onClick, setSelected]\n );\n\n const handleToggle = useCallback(\n (event, newExpanded) => {\n setExpanded(newExpanded);\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n\n // deprecated\n if (onClick) {\n onClick(event);\n }\n },\n [onClick, onToggle, setExpanded]\n );\n\n const children = useMemo(\n () => data && createListHierarchy(data, id, classes),\n [classes, data, id]\n );\n\n return (\n <nav id={id} className={clsx(className, classes.root)} aria-label={label} {...others}>\n <TreeView\n id={setId(id, \"tree\")}\n className={classes.list}\n selectable\n mode={mode}\n collapsible={collapsible}\n selected={selected}\n onChange={handleChange}\n expanded={expanded}\n onToggle={handleToggle}\n >\n {children}\n </TreeView>\n </nav>\n );\n};\n\nNavigation.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root element.\n */\n root: PropTypes.string,\n /**\n * Style applied to the list.\n */\n list: PropTypes.string,\n /**\n * Style applied to the list items.\n */\n listItem: PropTypes.string,\n }).isRequired,\n\n /**\n * Modus operandi (role) of the widget instance.\n */\n mode: PropTypes.oneOf([\"treeview\", \"navigation\"]),\n /**\n * Can non-leaf nodes be collapsed / expanded.\n */\n collapsible: PropTypes.bool,\n\n /**\n * The ID of the selected page.\n */\n selected: PropTypes.string,\n /**\n * When uncontrolled, defines the initial selected page ID.\n */\n defaultSelected: PropTypes.string,\n /**\n * Callback fired when a navigation item is selected.\n *\n * @param {object} event The event source of the callback.\n * @param {object} page The data of the selected page.\n */\n onChange: PropTypes.func,\n\n /**\n * Expanded nodes' ids.\n */\n expanded: PropTypes.arrayOf(PropTypes.string),\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n *\n * It also supports `true` for starting with all nodes expanded.\n * With `false` all nodes will be collapsed.\n *\n * By default it expands the needed nodes to display the current selection, if any.\n */\n defaultExpanded: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.bool]),\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {object} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes (old and new).\n */\n onToggle: PropTypes.func,\n\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * data - sub-menu items\n */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n icon: PropTypes.node,\n data: PropTypes.array,\n })\n ).isRequired,\n\n /**\n * Callback triggered when any item is clicked.\n *\n * @deprecated use `onChange` for selection and `onToggle` for node expansion/collapse.\n */\n onClick: deprecatedPropType(PropTypes.func),\n /**\n * The root element (nav) aria label.\n *\n * @deprecated Use directly the `aria-label` property instead.\n */\n label: deprecatedPropType(PropTypes.string),\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationNavigation\" })(Navigation);\n"],"file":"Navigation.js"}
1
+ {"version":3,"sources":["../../../../src/VerticalNavigation/Navigation/Navigation.js"],"names":["React","useCallback","useMemo","PropTypes","deprecatedPropType","withStyles","clsx","TreeView","TreeViewItem","setId","useControlled","styles","wrapperTooltip","createListHierarchy","items","id","classes","map","item","itemId","label","itemLabel","icon","data","children","selectable","ItemText","listItem","undefined","getAllParents","parents","filter","length","childParents","flatMap","pathToElement","targetId","path","i","push","subPaths","Navigation","className","mode","collapsible","expanded","expandedProp","defaultExpanded","onToggle","selected","selectedProp","defaultSelected","onChange","onClick","others","setSelected","setExpanded","slice","handleChange","event","selectedId","selectedItem","handleToggle","newExpanded","root","list","propTypes","string","shape","isRequired","oneOf","bool","func","arrayOf","oneOfType","node","array","name"],"mappings":"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","sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { deprecatedPropType, withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport TreeView, { TreeViewItem } from \"../TreeView\";\nimport { setId, useControlled } from \"../../utils\";\nimport styles from \"./styles\";\nimport { wrapperTooltip } from \"../../List/utils\";\n\nconst createListHierarchy = (items, id, classes) =>\n items.map((item) => {\n const { id: itemId, label: itemLabel, icon, data: children, selectable } = item;\n\n const ItemText = wrapperTooltip(true, itemLabel, itemLabel);\n\n return (\n <TreeViewItem\n id={setId(id, itemId)}\n className={classes.listItem}\n key={itemId}\n nodeId={itemId}\n label={<ItemText />}\n icon={icon}\n payload={item}\n selectable={selectable}\n >\n {children ? createListHierarchy(children, id, classes) : undefined}\n </TreeViewItem>\n );\n });\n\nconst getAllParents = (items) => {\n const parents = items.filter((item) => item.data != null && item.data.length > 0);\n const childParents = parents.flatMap((item) => getAllParents(item.data));\n\n return [...parents, ...childParents];\n};\n\nfunction pathToElement(data, targetId) {\n const path = [];\n\n if (data != null && data.length > 0) {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i !== data.length; ++i) {\n const item = data[i];\n if (item.id === targetId) {\n path.push(item.id);\n break;\n }\n\n const subPaths = pathToElement(item.data, targetId);\n if (subPaths.length > 0) {\n path.push(item.id);\n path.push(...subPaths);\n break;\n }\n }\n }\n\n return path;\n}\n\nconst Navigation = ({\n id,\n\n className,\n classes,\n\n data,\n\n mode = \"navigation\",\n\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded,\n onToggle,\n\n selected: selectedProp,\n defaultSelected,\n onChange,\n\n label,\n onClick,\n\n ...others\n}) => {\n const [selected, setSelected] = useControlled(selectedProp, defaultSelected);\n const [expanded, setExpanded] = useControlled(expandedProp, () => {\n if (defaultExpanded === true) {\n // all parent nodes will be expanded by default\n return getAllParents(data).map((item) => item.id);\n }\n\n if (defaultExpanded === false) {\n // all parent nodes will be collapsed by default\n return [];\n }\n\n if (defaultExpanded == null) {\n if (selected != null) {\n // the path to the selected node will be expanded (default behaviour)\n const path = pathToElement(data, selected);\n return path.slice(0, -1);\n }\n\n // nothing is expanded\n return [];\n }\n\n return defaultExpanded;\n });\n\n const handleChange = useCallback(\n (event, selectedId, selectedItem) => {\n setSelected(selectedId);\n\n if (onChange) {\n onChange(event, selectedItem);\n }\n\n // deprecated\n if (onClick) {\n onClick(event, selectedItem);\n }\n },\n [onChange, onClick, setSelected]\n );\n\n const handleToggle = useCallback(\n (event, newExpanded) => {\n setExpanded(newExpanded);\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n\n // deprecated\n if (onClick) {\n onClick(event);\n }\n },\n [onClick, onToggle, setExpanded]\n );\n\n const children = useMemo(\n () => data && createListHierarchy(data, id, classes),\n [classes, data, id]\n );\n\n return (\n <nav id={id} className={clsx(className, classes.root)} aria-label={label} {...others}>\n <TreeView\n id={setId(id, \"tree\")}\n className={classes.list}\n selectable\n mode={mode}\n collapsible={collapsible}\n selected={selected}\n onChange={handleChange}\n expanded={expanded}\n onToggle={handleToggle}\n >\n {children}\n </TreeView>\n </nav>\n );\n};\n\nNavigation.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root element.\n */\n root: PropTypes.string,\n /**\n * Style applied to the list.\n */\n list: PropTypes.string,\n /**\n * Style applied to the list items.\n */\n listItem: PropTypes.string,\n }).isRequired,\n\n /**\n * Modus operandi (role) of the widget instance.\n */\n mode: PropTypes.oneOf([\"treeview\", \"navigation\"]),\n /**\n * Can non-leaf nodes be collapsed / expanded.\n */\n collapsible: PropTypes.bool,\n\n /**\n * The ID of the selected page.\n */\n selected: PropTypes.string,\n /**\n * When uncontrolled, defines the initial selected page ID.\n */\n defaultSelected: PropTypes.string,\n /**\n * Callback fired when a navigation item is selected.\n *\n * @param {object} event The event source of the callback.\n * @param {object} page The data of the selected page.\n */\n onChange: PropTypes.func,\n\n /**\n * Expanded nodes' ids.\n */\n expanded: PropTypes.arrayOf(PropTypes.string),\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n *\n * It also supports `true` for starting with all nodes expanded.\n * With `false` all nodes will be collapsed.\n *\n * By default it expands the needed nodes to display the current selection, if any.\n */\n defaultExpanded: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.bool]),\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {object} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes (old and new).\n */\n onToggle: PropTypes.func,\n\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * data - sub-menu items\n */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n icon: PropTypes.node,\n data: PropTypes.array,\n })\n ).isRequired,\n\n /**\n * Callback triggered when any item is clicked.\n *\n * @deprecated use `onChange` for selection and `onToggle` for node expansion/collapse.\n */\n onClick: deprecatedPropType(PropTypes.func),\n /**\n * The root element (nav) aria label.\n *\n * @deprecated Use directly the `aria-label` property instead.\n */\n label: deprecatedPropType(PropTypes.string),\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationNavigation\" })(Navigation);\n"],"file":"Navigation.js"}
@@ -803,7 +803,7 @@ const TreeView = /*#__PURE__*/React.forwardRef((props, ref) => {
803
803
  onKeyDown: handleKeyDown
804
804
  }, others), children))));
805
805
  });
806
- TreeView.propTypes = {
806
+ process.env.NODE_ENV !== "production" ? TreeView.propTypes = {
807
807
  /**
808
808
  * Id to be applied to the root node.
809
809
  */
@@ -913,7 +913,7 @@ TreeView.propTypes = {
913
913
  * The content of the component.
914
914
  */
915
915
  children: PropTypes.node
916
- };
916
+ } : void 0;
917
917
  export default withStyles(styles, {
918
918
  name: "HvVerticalNavigationTreeView"
919
919
  })(TreeView);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/VerticalNavigation/TreeView/TreeView.js"],"names":["React","useMemo","useRef","useState","useCallback","PropTypes","clsx","withStyles","useControlled","useUniqueId","useForkRef","TreeViewControlContext","TreeViewStateContext","DescendantProvider","styles","isPrintableCharacter","string","length","match","findNextFirstChar","firstChars","startIndex","char","i","noopSelection","TreeView","forwardRef","props","ref","id","idProp","className","classes","mode","collapsible","expanded","expandedProp","defaultExpanded","onToggle","selectable","multiSelect","multiSelectProp","selected","selectedProp","defaultSelected","onChange","disabledItemsFocusable","onFocus","onBlur","onKeyDown","children","others","treeviewMode","treeId","treeRef","handleRef","setExpandedState","setSelectedState","focusedNodeId","setFocusedNodeId","nodeMap","firstCharMap","isExpanded","Array","isArray","indexOf","isExpandable","current","expandable","isSelected","isSelectable","isDisabled","node","disabled","parentId","isFocused","getChildrenIds","Object","keys","map","key","filter","sort","a","b","index","child","getNavigableChildrenIds","childrenIds","getNextNode","siblings","nextSibling","getPreviousNode","nodeIndex","currentNode","pop","getLastNode","lastNode","getFirstNode","getParent","findOrderInTremauxTree","nodeAId","nodeBId","nodeA","nodeB","aFamily","bFamily","aAncestor","bAncestor","aAncestorIsCommon","bAncestorIsCommon","continueA","continueB","push","commonAncestor","ancestorFamily","aSide","bSide","getNodesInRange","first","last","nodes","focus","event","focusNextNode","focusPreviousNode","focusFirstNode","focusLastNode","focusByFirstCharacter","start","lowercaseChar","toLowerCase","firstCharIds","forEach","nodeId","firstChar","visible","shouldBeSkipped","toggleExpansion","value","newExpanded","concat","expandAllSiblings","diff","lastSelectedNode","lastSelectionWasRange","currentRangeSelection","handleRangeArrowSelect","base","slice","next","payload","handleRangeSelect","end","range","newSelected","handleMultipleSelect","handleSingleSelect","nodeValue","selectNode","multiple","selectRange","stacked","rangeSelectToFirst","rangeSelectToLast","selectNextNode","selectPreviousNode","selectAllNodes","registerNode","idAttribute","nodeSelectable","nodeOnFocus","unregisterNode","newMap","oldFocusedNodeId","ownerDocument","document","activeElement","mapFirstChar","unMapFirstChar","handleNextArrow","handlePreviousArrow","parent","handleKeyDown","flag","altKey","currentTarget","target","ctrlPressed","ctrlKey","metaKey","shiftKey","stopPropagation","preventDefault","handleFocus","firstSelected","handleBlur","activeDescendant","treeControlContext","treeStateContext","root","role","tabIndex","propTypes","shape","isRequired","oneOf","bool","oneOfType","arrayOf","func","name"],"mappings":"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","sourcesContent":["import React, { useMemo, useRef, useState, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport { withStyles } from \"@material-ui/core\";\n\nimport { useControlled, useUniqueId, useForkRef } from \"../..\";\n\nimport { TreeViewControlContext, TreeViewStateContext } from \"./TreeViewContexts\";\nimport { DescendantProvider } from \"./descendants\";\n\nimport styles from \"./styles\";\n\nfunction isPrintableCharacter(string) {\n return string && string.length === 1 && string.match(/\\S/);\n}\n\nfunction findNextFirstChar(firstChars, startIndex, char) {\n for (let i = startIndex; i < firstChars.length; i += 1) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n}\n\nfunction noopSelection() {\n return false;\n}\n\nconst TreeView = React.forwardRef((props, ref) => {\n const {\n id: idProp,\n className,\n classes,\n\n mode = \"treeview\",\n\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded = [],\n onToggle,\n\n selectable = false,\n multiSelect: multiSelectProp = false,\n selected: selectedProp,\n defaultSelected = [],\n onChange,\n\n disabledItemsFocusable = false,\n\n onFocus,\n onBlur,\n onKeyDown,\n\n children,\n\n ...others\n } = props;\n\n const treeviewMode = mode === \"treeview\";\n const multiSelect = selectable && multiSelectProp;\n\n const treeId = useUniqueId(idProp, \"hvtreeview\");\n const treeRef = useRef(null);\n const handleRef = useForkRef(treeRef, ref);\n\n const [expanded, setExpandedState] = useControlled(expandedProp, defaultExpanded);\n\n const [selected, setSelectedState] = useControlled(selectedProp, defaultSelected);\n\n const [focusedNodeId, setFocusedNodeId] = useState(null);\n\n const nodeMap = useRef({});\n\n const firstCharMap = useRef({});\n\n /*\n * Status Helpers\n */\n const isExpanded = useCallback(\n (id) => !collapsible || (Array.isArray(expanded) ? expanded.indexOf(id) !== -1 : false),\n [collapsible, expanded]\n );\n\n const isExpandable = useCallback(\n (id) => collapsible && nodeMap.current[id] && nodeMap.current[id].expandable,\n [collapsible]\n );\n\n const isSelected = useCallback(\n (id) => selectable && (Array.isArray(selected) ? selected.indexOf(id) !== -1 : selected === id),\n [selectable, selected]\n );\n\n const isSelectable = useCallback(\n (id) => selectable && nodeMap.current[id] && nodeMap.current[id].selectable,\n [selectable]\n );\n\n const isDisabled = useCallback((id) => {\n let node = nodeMap.current[id];\n\n // This can be called before the node has been added to the node map.\n if (!node) {\n return false;\n }\n\n if (node.disabled) {\n return true;\n }\n\n while (node.parentId != null) {\n node = nodeMap.current[node.parentId];\n if (node.disabled) {\n return true;\n }\n }\n\n return false;\n }, []);\n\n const isFocused = useCallback((id) => focusedNodeId === id, [focusedNodeId]);\n\n /*\n * Child Helpers\n */\n const getChildrenIds = (id) =>\n Object.keys(nodeMap.current)\n .map((key) => {\n return nodeMap.current[key];\n })\n .filter((node) => node.parentId === id)\n .sort((a, b) => a.index - b.index)\n .map((child) => child.id);\n\n const getNavigableChildrenIds = useCallback(\n (id) => {\n let childrenIds = getChildrenIds(id);\n\n if (!disabledItemsFocusable) {\n childrenIds = childrenIds.filter((node) => !isDisabled(node));\n }\n return childrenIds;\n },\n [disabledItemsFocusable, isDisabled]\n );\n\n /*\n * Node Helpers\n */\n const getNextNode = useCallback(\n (id) => {\n // If expanded get first child\n if (isExpanded(id) && getNavigableChildrenIds(id).length > 0) {\n return getNavigableChildrenIds(id)[0];\n }\n\n let node = nodeMap.current[id];\n while (node != null) {\n // Try to get next sibling\n const siblings = getNavigableChildrenIds(node.parentId);\n const nextSibling = siblings[siblings.indexOf(node.id) + 1];\n\n if (nextSibling) {\n return nextSibling;\n }\n\n // If the sibling does not exist, go up a level to the parent and try again.\n node = nodeMap.current[node.parentId];\n }\n\n return null;\n },\n [getNavigableChildrenIds, isExpanded]\n );\n\n const getPreviousNode = (id) => {\n const node = nodeMap.current[id];\n const siblings = getNavigableChildrenIds(node.parentId);\n const nodeIndex = siblings.indexOf(id);\n\n if (nodeIndex === 0) {\n return node.parentId;\n }\n\n let currentNode = siblings[nodeIndex - 1];\n while (isExpanded(currentNode) && getNavigableChildrenIds(currentNode).length > 0) {\n currentNode = getNavigableChildrenIds(currentNode).pop();\n }\n\n return currentNode;\n };\n\n const getLastNode = () => {\n let lastNode = getNavigableChildrenIds(null).pop();\n\n while (isExpanded(lastNode)) {\n lastNode = getNavigableChildrenIds(lastNode).pop();\n }\n return lastNode;\n };\n const getFirstNode = () => getNavigableChildrenIds(null)[0];\n const getParent = (id) => nodeMap.current[id].parentId;\n\n /**\n * This is used to determine the start and end of a selection range so\n * we can get the nodes between the two border nodes.\n *\n * It finds the nodes' common ancestor using\n * a naive implementation of a lowest common ancestor algorithm\n * (https://en.wikipedia.org/wiki/Lowest_common_ancestor).\n * Then compares the ancestor's 2 children that are ancestors of nodeA and NodeB\n * so we can compare their indexes to work out which node comes first in a depth first search.\n * (https://en.wikipedia.org/wiki/Depth-first_search)\n *\n * Another way to put it is which node is shallower in a trémaux tree\n * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree\n */\n const findOrderInTremauxTree = useCallback((nodeAId, nodeBId) => {\n if (nodeAId === nodeBId) {\n return [nodeAId, nodeBId];\n }\n\n const nodeA = nodeMap.current[nodeAId];\n const nodeB = nodeMap.current[nodeBId];\n\n if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {\n return nodeB.parentId === nodeA.id ? [nodeA.id, nodeB.id] : [nodeB.id, nodeA.id];\n }\n\n const aFamily = [nodeA.id];\n const bFamily = [nodeB.id];\n\n let aAncestor = nodeA.parentId;\n let bAncestor = nodeB.parentId;\n\n let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n\n let continueA = true;\n let continueB = true;\n\n while (!bAncestorIsCommon && !aAncestorIsCommon) {\n if (continueA) {\n aFamily.push(aAncestor);\n aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n continueA = aAncestor !== null;\n if (!aAncestorIsCommon && continueA) {\n aAncestor = nodeMap.current[aAncestor].parentId;\n }\n }\n\n if (continueB && !aAncestorIsCommon) {\n bFamily.push(bAncestor);\n bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n continueB = bAncestor !== null;\n if (!bAncestorIsCommon && continueB) {\n bAncestor = nodeMap.current[bAncestor].parentId;\n }\n }\n }\n\n const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;\n const ancestorFamily = getChildrenIds(commonAncestor);\n\n const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];\n const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];\n\n return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide)\n ? [nodeAId, nodeBId]\n : [nodeBId, nodeAId];\n }, []);\n\n const getNodesInRange = useCallback(\n (nodeA, nodeB) => {\n const [first, last] = findOrderInTremauxTree(nodeA, nodeB);\n const nodes = [first];\n\n let current = first;\n\n while (current !== last) {\n current = getNextNode(current);\n nodes.push(current);\n }\n\n return nodes;\n },\n [findOrderInTremauxTree, getNextNode]\n );\n\n /*\n * Focus Helpers\n */\n const focus = (event, id) => {\n if (id) {\n setFocusedNodeId(id);\n\n if (nodeMap.current[id]?.onFocus) {\n nodeMap.current[id].onFocus(event);\n }\n }\n };\n\n const focusNextNode = (event, id) => focus(event, getNextNode(id));\n const focusPreviousNode = (event, id) => focus(event, getPreviousNode(id));\n const focusFirstNode = (event) => focus(event, getFirstNode());\n const focusLastNode = (event) => focus(event, getLastNode());\n\n const focusByFirstCharacter = (event, id, char) => {\n let start;\n let index;\n const lowercaseChar = char.toLowerCase();\n\n const firstCharIds = [];\n const firstChars = [];\n // This really only works since the ids are strings\n Object.keys(firstCharMap.current).forEach((nodeId) => {\n const firstChar = firstCharMap.current[nodeId];\n const map = nodeMap.current[nodeId];\n const visible = map.parentId ? isExpanded(map.parentId) : true;\n const shouldBeSkipped = disabledItemsFocusable ? false : isDisabled(nodeId);\n\n if (visible && !shouldBeSkipped) {\n firstCharIds.push(nodeId);\n firstChars.push(firstChar);\n }\n });\n\n // Get start index for search based on position of currentItem\n start = firstCharIds.indexOf(id) + 1;\n if (start >= firstCharIds.length) {\n start = 0;\n }\n\n // Check remaining slots in the menu\n index = findNextFirstChar(firstChars, start, lowercaseChar);\n\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = findNextFirstChar(firstChars, 0, lowercaseChar);\n }\n\n // If match was found...\n if (index > -1) {\n focus(event, firstCharIds[index]);\n }\n };\n\n /*\n * Expansion Helpers\n */\n const toggleExpansion = useCallback(\n (event, value = focusedNodeId) => {\n let newExpanded;\n\n if (expanded.indexOf(value) !== -1) {\n newExpanded = expanded.filter((id) => id !== value);\n } else {\n newExpanded = [value].concat(expanded);\n }\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n\n setExpandedState(newExpanded);\n },\n [expanded, focusedNodeId, onToggle, setExpandedState]\n );\n\n const expandAllSiblings = (event, id) => {\n const map = nodeMap.current[id];\n const siblings = getChildrenIds(map.parentId);\n\n const diff = siblings.filter((child) => isExpandable(child) && !isExpanded(child));\n\n const newExpanded = expanded.concat(diff);\n\n if (diff.length > 0) {\n setExpandedState(newExpanded);\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n }\n };\n\n /*\n * Selection Helpers\n */\n const lastSelectedNode = useRef(null);\n const lastSelectionWasRange = useRef(false);\n const currentRangeSelection = useRef([]);\n\n const handleRangeArrowSelect = useCallback(\n (event, nodes) => {\n let base = selected.slice();\n const { start, next, current } = nodes;\n\n if (!next || !current) {\n return;\n }\n\n if (currentRangeSelection.current.indexOf(current) === -1) {\n currentRangeSelection.current = [];\n }\n\n if (lastSelectionWasRange.current) {\n if (currentRangeSelection.current.indexOf(next) !== -1) {\n base = base.filter((id) => id === start || id !== current);\n currentRangeSelection.current = currentRangeSelection.current.filter(\n (id) => id === start || id !== current\n );\n } else {\n base.push(next);\n currentRangeSelection.current.push(next);\n }\n } else {\n base.push(next);\n currentRangeSelection.current.push(current, next);\n }\n\n if (onChange) {\n onChange(\n event,\n base,\n base.map((id) => nodeMap.current[id]?.payload)\n );\n }\n\n setSelectedState(base);\n },\n [onChange, selected, setSelectedState]\n );\n\n const handleRangeSelect = useCallback(\n (event, nodes) => {\n let base = selected.slice();\n const { start, end } = nodes;\n // If last selection was a range selection ignore nodes that were selected.\n if (lastSelectionWasRange.current) {\n base = base.filter((id) => currentRangeSelection.current.indexOf(id) === -1);\n }\n\n let range = getNodesInRange(start, end);\n range = range.filter((node) => !isDisabled(node));\n currentRangeSelection.current = range;\n let newSelected = base.concat(range);\n newSelected = newSelected.filter((id, i) => newSelected.indexOf(id) === i);\n\n if (onChange) {\n onChange(\n event,\n newSelected,\n newSelected.map((id) => nodeMap.current[id]?.payload)\n );\n }\n\n setSelectedState(newSelected);\n },\n [getNodesInRange, isDisabled, onChange, selected, setSelectedState]\n );\n\n const handleMultipleSelect = useCallback(\n (event, value) => {\n let newSelected;\n if (selected.indexOf(value) !== -1) {\n newSelected = selected.filter((id) => id !== value);\n } else {\n newSelected = [value].concat(selected);\n }\n\n if (onChange) {\n onChange(\n event,\n newSelected,\n newSelected.map((id) => nodeMap.current[id]?.payload)\n );\n }\n\n setSelectedState(newSelected);\n },\n [onChange, selected, setSelectedState]\n );\n\n const handleSingleSelect = useCallback(\n (event, value) => {\n const newSelected = multiSelect ? [value] : value;\n if (onChange) {\n const nodeValue = nodeMap.current[newSelected]?.payload;\n onChange(event, newSelected, multiSelect ? [nodeValue] : nodeValue);\n }\n\n setSelectedState(newSelected);\n },\n [multiSelect, onChange, setSelectedState]\n );\n\n const selectNode = useCallback(\n (event, id, multiple = false) => {\n if (id && isSelectable(id)) {\n if (multiple) {\n handleMultipleSelect(event, id);\n } else {\n handleSingleSelect(event, id);\n }\n lastSelectedNode.current = id;\n lastSelectionWasRange.current = false;\n currentRangeSelection.current = [];\n\n return true;\n }\n return false;\n },\n [handleMultipleSelect, handleSingleSelect, isSelectable]\n );\n\n const selectRange = useCallback(\n (event, nodes, stacked = false) => {\n const { start = lastSelectedNode.current, end, current } = nodes;\n if (stacked) {\n handleRangeArrowSelect(event, { start, next: end, current });\n } else if (start != null && end != null) {\n handleRangeSelect(event, { start, end });\n }\n lastSelectionWasRange.current = true;\n },\n [handleRangeArrowSelect, handleRangeSelect]\n );\n\n const rangeSelectToFirst = (event, id) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = id;\n }\n\n const start = lastSelectionWasRange.current ? lastSelectedNode.current : id;\n\n selectRange(event, {\n start,\n end: getFirstNode(),\n });\n };\n\n const rangeSelectToLast = (event, id) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = id;\n }\n\n const start = lastSelectionWasRange.current ? lastSelectedNode.current : id;\n\n selectRange(event, {\n start,\n end: getLastNode(),\n });\n };\n\n const selectNextNode = (event, id) => {\n if (!isDisabled(getNextNode(id))) {\n selectRange(\n event,\n {\n end: getNextNode(id),\n current: id,\n },\n true\n );\n }\n };\n\n const selectPreviousNode = (event, id) => {\n if (!isDisabled(getPreviousNode(id))) {\n selectRange(\n event,\n {\n end: getPreviousNode(id),\n current: id,\n },\n true\n );\n }\n };\n\n const selectAllNodes = (event) => {\n selectRange(event, { start: getFirstNode(), end: getLastNode() });\n };\n\n /*\n * Mapping Helpers\n */\n const registerNode = useCallback((node) => {\n const {\n id,\n index,\n parentId,\n expandable,\n idAttribute,\n disabled,\n selectable: nodeSelectable,\n onFocus: nodeOnFocus,\n payload,\n } = node;\n\n nodeMap.current[id] = {\n id,\n index,\n parentId,\n expandable,\n idAttribute,\n disabled,\n selectable: nodeSelectable,\n onFocus: nodeOnFocus,\n payload,\n };\n }, []);\n\n const unregisterNode = useCallback((id) => {\n const newMap = { ...nodeMap.current };\n delete newMap[id];\n nodeMap.current = newMap;\n\n setFocusedNodeId((oldFocusedNodeId) => {\n if (\n oldFocusedNodeId === id &&\n treeRef.current === (treeRef.current.ownerDocument || document).activeElement\n ) {\n return getChildrenIds(null)[0];\n }\n return oldFocusedNodeId;\n });\n }, []);\n\n const mapFirstChar = useCallback((id, firstChar) => {\n firstCharMap.current[id] = firstChar;\n }, []);\n\n const unMapFirstChar = useCallback((id) => {\n const newMap = { ...firstCharMap.current };\n delete newMap[id];\n firstCharMap.current = newMap;\n }, []);\n\n /**\n * Event handlers and Navigation\n */\n const handleNextArrow = (event) => {\n if (isExpandable(focusedNodeId)) {\n if (isExpanded(focusedNodeId)) {\n focusNextNode(event, focusedNodeId);\n } else if (!isDisabled(focusedNodeId)) {\n toggleExpansion(event);\n }\n }\n return true;\n };\n\n const handlePreviousArrow = (event) => {\n if (isExpanded(focusedNodeId) && !isDisabled(focusedNodeId)) {\n toggleExpansion(event, focusedNodeId);\n return true;\n }\n\n const parent = getParent(focusedNodeId);\n if (parent) {\n focus(event, parent);\n return true;\n }\n return false;\n };\n\n const handleKeyDown = (event) => {\n let flag = false;\n const { key } = event;\n\n // If the tree is empty there will be no focused node\n if (event.altKey || event.currentTarget !== event.target || !focusedNodeId) {\n return;\n }\n\n const ctrlPressed = event.ctrlKey || event.metaKey;\n switch (key) {\n case \" \":\n if (isSelectable(focusedNodeId) && !isDisabled(focusedNodeId)) {\n if (multiSelect && event.shiftKey) {\n selectRange(event, { end: focusedNodeId });\n flag = true;\n } else if (multiSelect) {\n flag = selectNode(event, focusedNodeId, true);\n } else {\n flag = selectNode(event, focusedNodeId);\n }\n }\n event.stopPropagation();\n break;\n case \"Enter\":\n if (!isDisabled(focusedNodeId)) {\n if (isExpandable(focusedNodeId)) {\n toggleExpansion(event);\n flag = true;\n } else if (isSelectable(focusedNodeId)) {\n if (multiSelect && event.shiftKey) {\n selectRange(event, { end: focusedNodeId });\n flag = true;\n } else if (multiSelect) {\n flag = selectNode(event, focusedNodeId, true);\n } else {\n flag = selectNode(event, focusedNodeId);\n }\n }\n }\n event.stopPropagation();\n break;\n case \"ArrowDown\":\n if (multiSelect && event.shiftKey) {\n selectNextNode(event, focusedNodeId);\n }\n focusNextNode(event, focusedNodeId);\n flag = true;\n break;\n case \"ArrowUp\":\n if (multiSelect && event.shiftKey) {\n selectPreviousNode(event, focusedNodeId);\n }\n focusPreviousNode(event, focusedNodeId);\n flag = true;\n break;\n case \"ArrowRight\":\n flag = handleNextArrow(event);\n break;\n case \"ArrowLeft\":\n flag = handlePreviousArrow(event);\n break;\n case \"Home\":\n if (multiSelect && ctrlPressed && event.shiftKey && !isDisabled(focusedNodeId)) {\n rangeSelectToFirst(event, focusedNodeId);\n }\n focusFirstNode(event);\n flag = true;\n break;\n case \"End\":\n if (multiSelect && ctrlPressed && event.shiftKey && !isDisabled(focusedNodeId)) {\n rangeSelectToLast(event, focusedNodeId);\n }\n focusLastNode(event);\n flag = true;\n break;\n default:\n if (key === \"*\") {\n expandAllSiblings(event, focusedNodeId);\n flag = true;\n } else if (multiSelect && ctrlPressed && key.toLowerCase() === \"a\") {\n selectAllNodes(event);\n flag = true;\n } else if (!ctrlPressed && !event.shiftKey && isPrintableCharacter(key)) {\n focusByFirstCharacter(event, focusedNodeId, key);\n flag = true;\n }\n }\n\n if (flag) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n const handleFocus = (event) => {\n // if the event bubbled (which is React specific) we don't want to steal focus\n if (event.target === event.currentTarget) {\n const firstSelected = Array.isArray(selected) ? selected[0] : selected;\n focus(event, firstSelected || getNavigableChildrenIds(null)[0]);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleBlur = (event) => {\n setFocusedNodeId(null);\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const activeDescendant = nodeMap.current[focusedNodeId]\n ? nodeMap.current[focusedNodeId].idAttribute\n : null;\n\n const treeControlContext = useMemo(\n () => ({\n treeId,\n mode,\n collapsible,\n toggleExpansion,\n multiSelect,\n selectNode: selectable ? selectNode : noopSelection,\n selectRange: selectable ? selectRange : noopSelection,\n disabledItemsFocusable,\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n focus,\n }),\n [\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n toggleExpansion,\n selectable,\n selectNode,\n selectRange,\n mode,\n collapsible,\n multiSelect,\n disabledItemsFocusable,\n treeId,\n ]\n );\n\n const treeStateContext = useMemo(\n () => ({\n isExpanded,\n isSelected,\n isFocused,\n isDisabled,\n }),\n [isDisabled, isExpanded, isFocused, isSelected]\n );\n\n return (\n <TreeViewControlContext.Provider value={treeControlContext}>\n <TreeViewStateContext.Provider value={treeStateContext}>\n <DescendantProvider>\n <ul\n ref={handleRef}\n id={idProp}\n className={clsx(classes.root, className)}\n {...(treeviewMode && {\n id: treeId,\n role: \"tree\",\n \"aria-multiselectable\": multiSelect,\n \"aria-activedescendant\": activeDescendant,\n tabIndex: 0,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n })}\n {...others}\n >\n {children}\n </ul>\n </DescendantProvider>\n </TreeViewStateContext.Provider>\n </TreeViewControlContext.Provider>\n );\n});\n\nTreeView.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the Radio button.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to component.\n */\n root: PropTypes.string,\n }).isRequired,\n /**\n * Modus operandi (role) of the widget instance.\n */\n mode: PropTypes.oneOf([\"treeview\", \"navigation\"]),\n /**\n * Enables selection.\n * @default false\n */\n selectable: PropTypes.bool,\n /**\n * Enables the simultaneous selection of multiple items.\n * @default false\n */\n multiSelect: PropTypes.bool,\n /**\n * The selected nodes' ids.\n *\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n */\n selected: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]),\n /**\n * When uncontrolled, defines the initial selected nodes' ids.\n *\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelected: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]),\n /**\n * Can non-leaf nodes be collapsed / expanded.\n */\n collapsible: PropTypes.bool,\n /**\n * Callback fired when a tree item is selected.\n *\n * @param {object} event The event source of the callback.\n * @param {string} nodeId The id of the selected node.\n */\n onChange: PropTypes.func,\n /**\n * Expanded nodes' ids.\n */\n expanded: PropTypes.arrayOf(PropTypes.string),\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n * @default []\n */\n defaultExpanded: PropTypes.arrayOf(PropTypes.string),\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {object} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes (old and new).\n */\n onToggle: PropTypes.func,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationTreeView\" })(TreeView);\n"],"file":"TreeView.js"}
1
+ {"version":3,"sources":["../../../../src/VerticalNavigation/TreeView/TreeView.js"],"names":["React","useMemo","useRef","useState","useCallback","PropTypes","clsx","withStyles","useControlled","useUniqueId","useForkRef","TreeViewControlContext","TreeViewStateContext","DescendantProvider","styles","isPrintableCharacter","string","length","match","findNextFirstChar","firstChars","startIndex","char","i","noopSelection","TreeView","forwardRef","props","ref","id","idProp","className","classes","mode","collapsible","expanded","expandedProp","defaultExpanded","onToggle","selectable","multiSelect","multiSelectProp","selected","selectedProp","defaultSelected","onChange","disabledItemsFocusable","onFocus","onBlur","onKeyDown","children","others","treeviewMode","treeId","treeRef","handleRef","setExpandedState","setSelectedState","focusedNodeId","setFocusedNodeId","nodeMap","firstCharMap","isExpanded","Array","isArray","indexOf","isExpandable","current","expandable","isSelected","isSelectable","isDisabled","node","disabled","parentId","isFocused","getChildrenIds","Object","keys","map","key","filter","sort","a","b","index","child","getNavigableChildrenIds","childrenIds","getNextNode","siblings","nextSibling","getPreviousNode","nodeIndex","currentNode","pop","getLastNode","lastNode","getFirstNode","getParent","findOrderInTremauxTree","nodeAId","nodeBId","nodeA","nodeB","aFamily","bFamily","aAncestor","bAncestor","aAncestorIsCommon","bAncestorIsCommon","continueA","continueB","push","commonAncestor","ancestorFamily","aSide","bSide","getNodesInRange","first","last","nodes","focus","event","focusNextNode","focusPreviousNode","focusFirstNode","focusLastNode","focusByFirstCharacter","start","lowercaseChar","toLowerCase","firstCharIds","forEach","nodeId","firstChar","visible","shouldBeSkipped","toggleExpansion","value","newExpanded","concat","expandAllSiblings","diff","lastSelectedNode","lastSelectionWasRange","currentRangeSelection","handleRangeArrowSelect","base","slice","next","payload","handleRangeSelect","end","range","newSelected","handleMultipleSelect","handleSingleSelect","nodeValue","selectNode","multiple","selectRange","stacked","rangeSelectToFirst","rangeSelectToLast","selectNextNode","selectPreviousNode","selectAllNodes","registerNode","idAttribute","nodeSelectable","nodeOnFocus","unregisterNode","newMap","oldFocusedNodeId","ownerDocument","document","activeElement","mapFirstChar","unMapFirstChar","handleNextArrow","handlePreviousArrow","parent","handleKeyDown","flag","altKey","currentTarget","target","ctrlPressed","ctrlKey","metaKey","shiftKey","stopPropagation","preventDefault","handleFocus","firstSelected","handleBlur","activeDescendant","treeControlContext","treeStateContext","root","role","tabIndex","propTypes","shape","isRequired","oneOf","bool","oneOfType","arrayOf","func","name"],"mappings":"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","sourcesContent":["import React, { useMemo, useRef, useState, useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\n\nimport { withStyles } from \"@material-ui/core\";\n\nimport { useControlled, useUniqueId, useForkRef } from \"../..\";\n\nimport { TreeViewControlContext, TreeViewStateContext } from \"./TreeViewContexts\";\nimport { DescendantProvider } from \"./descendants\";\n\nimport styles from \"./styles\";\n\nfunction isPrintableCharacter(string) {\n return string && string.length === 1 && string.match(/\\S/);\n}\n\nfunction findNextFirstChar(firstChars, startIndex, char) {\n for (let i = startIndex; i < firstChars.length; i += 1) {\n if (char === firstChars[i]) {\n return i;\n }\n }\n return -1;\n}\n\nfunction noopSelection() {\n return false;\n}\n\nconst TreeView = React.forwardRef((props, ref) => {\n const {\n id: idProp,\n className,\n classes,\n\n mode = \"treeview\",\n\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded = [],\n onToggle,\n\n selectable = false,\n multiSelect: multiSelectProp = false,\n selected: selectedProp,\n defaultSelected = [],\n onChange,\n\n disabledItemsFocusable = false,\n\n onFocus,\n onBlur,\n onKeyDown,\n\n children,\n\n ...others\n } = props;\n\n const treeviewMode = mode === \"treeview\";\n const multiSelect = selectable && multiSelectProp;\n\n const treeId = useUniqueId(idProp, \"hvtreeview\");\n const treeRef = useRef(null);\n const handleRef = useForkRef(treeRef, ref);\n\n const [expanded, setExpandedState] = useControlled(expandedProp, defaultExpanded);\n\n const [selected, setSelectedState] = useControlled(selectedProp, defaultSelected);\n\n const [focusedNodeId, setFocusedNodeId] = useState(null);\n\n const nodeMap = useRef({});\n\n const firstCharMap = useRef({});\n\n /*\n * Status Helpers\n */\n const isExpanded = useCallback(\n (id) => !collapsible || (Array.isArray(expanded) ? expanded.indexOf(id) !== -1 : false),\n [collapsible, expanded]\n );\n\n const isExpandable = useCallback(\n (id) => collapsible && nodeMap.current[id] && nodeMap.current[id].expandable,\n [collapsible]\n );\n\n const isSelected = useCallback(\n (id) => selectable && (Array.isArray(selected) ? selected.indexOf(id) !== -1 : selected === id),\n [selectable, selected]\n );\n\n const isSelectable = useCallback(\n (id) => selectable && nodeMap.current[id] && nodeMap.current[id].selectable,\n [selectable]\n );\n\n const isDisabled = useCallback((id) => {\n let node = nodeMap.current[id];\n\n // This can be called before the node has been added to the node map.\n if (!node) {\n return false;\n }\n\n if (node.disabled) {\n return true;\n }\n\n while (node.parentId != null) {\n node = nodeMap.current[node.parentId];\n if (node.disabled) {\n return true;\n }\n }\n\n return false;\n }, []);\n\n const isFocused = useCallback((id) => focusedNodeId === id, [focusedNodeId]);\n\n /*\n * Child Helpers\n */\n const getChildrenIds = (id) =>\n Object.keys(nodeMap.current)\n .map((key) => {\n return nodeMap.current[key];\n })\n .filter((node) => node.parentId === id)\n .sort((a, b) => a.index - b.index)\n .map((child) => child.id);\n\n const getNavigableChildrenIds = useCallback(\n (id) => {\n let childrenIds = getChildrenIds(id);\n\n if (!disabledItemsFocusable) {\n childrenIds = childrenIds.filter((node) => !isDisabled(node));\n }\n return childrenIds;\n },\n [disabledItemsFocusable, isDisabled]\n );\n\n /*\n * Node Helpers\n */\n const getNextNode = useCallback(\n (id) => {\n // If expanded get first child\n if (isExpanded(id) && getNavigableChildrenIds(id).length > 0) {\n return getNavigableChildrenIds(id)[0];\n }\n\n let node = nodeMap.current[id];\n while (node != null) {\n // Try to get next sibling\n const siblings = getNavigableChildrenIds(node.parentId);\n const nextSibling = siblings[siblings.indexOf(node.id) + 1];\n\n if (nextSibling) {\n return nextSibling;\n }\n\n // If the sibling does not exist, go up a level to the parent and try again.\n node = nodeMap.current[node.parentId];\n }\n\n return null;\n },\n [getNavigableChildrenIds, isExpanded]\n );\n\n const getPreviousNode = (id) => {\n const node = nodeMap.current[id];\n const siblings = getNavigableChildrenIds(node.parentId);\n const nodeIndex = siblings.indexOf(id);\n\n if (nodeIndex === 0) {\n return node.parentId;\n }\n\n let currentNode = siblings[nodeIndex - 1];\n while (isExpanded(currentNode) && getNavigableChildrenIds(currentNode).length > 0) {\n currentNode = getNavigableChildrenIds(currentNode).pop();\n }\n\n return currentNode;\n };\n\n const getLastNode = () => {\n let lastNode = getNavigableChildrenIds(null).pop();\n\n while (isExpanded(lastNode)) {\n lastNode = getNavigableChildrenIds(lastNode).pop();\n }\n return lastNode;\n };\n const getFirstNode = () => getNavigableChildrenIds(null)[0];\n const getParent = (id) => nodeMap.current[id].parentId;\n\n /**\n * This is used to determine the start and end of a selection range so\n * we can get the nodes between the two border nodes.\n *\n * It finds the nodes' common ancestor using\n * a naive implementation of a lowest common ancestor algorithm\n * (https://en.wikipedia.org/wiki/Lowest_common_ancestor).\n * Then compares the ancestor's 2 children that are ancestors of nodeA and NodeB\n * so we can compare their indexes to work out which node comes first in a depth first search.\n * (https://en.wikipedia.org/wiki/Depth-first_search)\n *\n * Another way to put it is which node is shallower in a trémaux tree\n * https://en.wikipedia.org/wiki/Tr%C3%A9maux_tree\n */\n const findOrderInTremauxTree = useCallback((nodeAId, nodeBId) => {\n if (nodeAId === nodeBId) {\n return [nodeAId, nodeBId];\n }\n\n const nodeA = nodeMap.current[nodeAId];\n const nodeB = nodeMap.current[nodeBId];\n\n if (nodeA.parentId === nodeB.id || nodeB.parentId === nodeA.id) {\n return nodeB.parentId === nodeA.id ? [nodeA.id, nodeB.id] : [nodeB.id, nodeA.id];\n }\n\n const aFamily = [nodeA.id];\n const bFamily = [nodeB.id];\n\n let aAncestor = nodeA.parentId;\n let bAncestor = nodeB.parentId;\n\n let aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n let bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n\n let continueA = true;\n let continueB = true;\n\n while (!bAncestorIsCommon && !aAncestorIsCommon) {\n if (continueA) {\n aFamily.push(aAncestor);\n aAncestorIsCommon = bFamily.indexOf(aAncestor) !== -1;\n continueA = aAncestor !== null;\n if (!aAncestorIsCommon && continueA) {\n aAncestor = nodeMap.current[aAncestor].parentId;\n }\n }\n\n if (continueB && !aAncestorIsCommon) {\n bFamily.push(bAncestor);\n bAncestorIsCommon = aFamily.indexOf(bAncestor) !== -1;\n continueB = bAncestor !== null;\n if (!bAncestorIsCommon && continueB) {\n bAncestor = nodeMap.current[bAncestor].parentId;\n }\n }\n }\n\n const commonAncestor = aAncestorIsCommon ? aAncestor : bAncestor;\n const ancestorFamily = getChildrenIds(commonAncestor);\n\n const aSide = aFamily[aFamily.indexOf(commonAncestor) - 1];\n const bSide = bFamily[bFamily.indexOf(commonAncestor) - 1];\n\n return ancestorFamily.indexOf(aSide) < ancestorFamily.indexOf(bSide)\n ? [nodeAId, nodeBId]\n : [nodeBId, nodeAId];\n }, []);\n\n const getNodesInRange = useCallback(\n (nodeA, nodeB) => {\n const [first, last] = findOrderInTremauxTree(nodeA, nodeB);\n const nodes = [first];\n\n let current = first;\n\n while (current !== last) {\n current = getNextNode(current);\n nodes.push(current);\n }\n\n return nodes;\n },\n [findOrderInTremauxTree, getNextNode]\n );\n\n /*\n * Focus Helpers\n */\n const focus = (event, id) => {\n if (id) {\n setFocusedNodeId(id);\n\n if (nodeMap.current[id]?.onFocus) {\n nodeMap.current[id].onFocus(event);\n }\n }\n };\n\n const focusNextNode = (event, id) => focus(event, getNextNode(id));\n const focusPreviousNode = (event, id) => focus(event, getPreviousNode(id));\n const focusFirstNode = (event) => focus(event, getFirstNode());\n const focusLastNode = (event) => focus(event, getLastNode());\n\n const focusByFirstCharacter = (event, id, char) => {\n let start;\n let index;\n const lowercaseChar = char.toLowerCase();\n\n const firstCharIds = [];\n const firstChars = [];\n // This really only works since the ids are strings\n Object.keys(firstCharMap.current).forEach((nodeId) => {\n const firstChar = firstCharMap.current[nodeId];\n const map = nodeMap.current[nodeId];\n const visible = map.parentId ? isExpanded(map.parentId) : true;\n const shouldBeSkipped = disabledItemsFocusable ? false : isDisabled(nodeId);\n\n if (visible && !shouldBeSkipped) {\n firstCharIds.push(nodeId);\n firstChars.push(firstChar);\n }\n });\n\n // Get start index for search based on position of currentItem\n start = firstCharIds.indexOf(id) + 1;\n if (start >= firstCharIds.length) {\n start = 0;\n }\n\n // Check remaining slots in the menu\n index = findNextFirstChar(firstChars, start, lowercaseChar);\n\n // If not found in remaining slots, check from beginning\n if (index === -1) {\n index = findNextFirstChar(firstChars, 0, lowercaseChar);\n }\n\n // If match was found...\n if (index > -1) {\n focus(event, firstCharIds[index]);\n }\n };\n\n /*\n * Expansion Helpers\n */\n const toggleExpansion = useCallback(\n (event, value = focusedNodeId) => {\n let newExpanded;\n\n if (expanded.indexOf(value) !== -1) {\n newExpanded = expanded.filter((id) => id !== value);\n } else {\n newExpanded = [value].concat(expanded);\n }\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n\n setExpandedState(newExpanded);\n },\n [expanded, focusedNodeId, onToggle, setExpandedState]\n );\n\n const expandAllSiblings = (event, id) => {\n const map = nodeMap.current[id];\n const siblings = getChildrenIds(map.parentId);\n\n const diff = siblings.filter((child) => isExpandable(child) && !isExpanded(child));\n\n const newExpanded = expanded.concat(diff);\n\n if (diff.length > 0) {\n setExpandedState(newExpanded);\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n }\n };\n\n /*\n * Selection Helpers\n */\n const lastSelectedNode = useRef(null);\n const lastSelectionWasRange = useRef(false);\n const currentRangeSelection = useRef([]);\n\n const handleRangeArrowSelect = useCallback(\n (event, nodes) => {\n let base = selected.slice();\n const { start, next, current } = nodes;\n\n if (!next || !current) {\n return;\n }\n\n if (currentRangeSelection.current.indexOf(current) === -1) {\n currentRangeSelection.current = [];\n }\n\n if (lastSelectionWasRange.current) {\n if (currentRangeSelection.current.indexOf(next) !== -1) {\n base = base.filter((id) => id === start || id !== current);\n currentRangeSelection.current = currentRangeSelection.current.filter(\n (id) => id === start || id !== current\n );\n } else {\n base.push(next);\n currentRangeSelection.current.push(next);\n }\n } else {\n base.push(next);\n currentRangeSelection.current.push(current, next);\n }\n\n if (onChange) {\n onChange(\n event,\n base,\n base.map((id) => nodeMap.current[id]?.payload)\n );\n }\n\n setSelectedState(base);\n },\n [onChange, selected, setSelectedState]\n );\n\n const handleRangeSelect = useCallback(\n (event, nodes) => {\n let base = selected.slice();\n const { start, end } = nodes;\n // If last selection was a range selection ignore nodes that were selected.\n if (lastSelectionWasRange.current) {\n base = base.filter((id) => currentRangeSelection.current.indexOf(id) === -1);\n }\n\n let range = getNodesInRange(start, end);\n range = range.filter((node) => !isDisabled(node));\n currentRangeSelection.current = range;\n let newSelected = base.concat(range);\n newSelected = newSelected.filter((id, i) => newSelected.indexOf(id) === i);\n\n if (onChange) {\n onChange(\n event,\n newSelected,\n newSelected.map((id) => nodeMap.current[id]?.payload)\n );\n }\n\n setSelectedState(newSelected);\n },\n [getNodesInRange, isDisabled, onChange, selected, setSelectedState]\n );\n\n const handleMultipleSelect = useCallback(\n (event, value) => {\n let newSelected;\n if (selected.indexOf(value) !== -1) {\n newSelected = selected.filter((id) => id !== value);\n } else {\n newSelected = [value].concat(selected);\n }\n\n if (onChange) {\n onChange(\n event,\n newSelected,\n newSelected.map((id) => nodeMap.current[id]?.payload)\n );\n }\n\n setSelectedState(newSelected);\n },\n [onChange, selected, setSelectedState]\n );\n\n const handleSingleSelect = useCallback(\n (event, value) => {\n const newSelected = multiSelect ? [value] : value;\n if (onChange) {\n const nodeValue = nodeMap.current[newSelected]?.payload;\n onChange(event, newSelected, multiSelect ? [nodeValue] : nodeValue);\n }\n\n setSelectedState(newSelected);\n },\n [multiSelect, onChange, setSelectedState]\n );\n\n const selectNode = useCallback(\n (event, id, multiple = false) => {\n if (id && isSelectable(id)) {\n if (multiple) {\n handleMultipleSelect(event, id);\n } else {\n handleSingleSelect(event, id);\n }\n lastSelectedNode.current = id;\n lastSelectionWasRange.current = false;\n currentRangeSelection.current = [];\n\n return true;\n }\n return false;\n },\n [handleMultipleSelect, handleSingleSelect, isSelectable]\n );\n\n const selectRange = useCallback(\n (event, nodes, stacked = false) => {\n const { start = lastSelectedNode.current, end, current } = nodes;\n if (stacked) {\n handleRangeArrowSelect(event, { start, next: end, current });\n } else if (start != null && end != null) {\n handleRangeSelect(event, { start, end });\n }\n lastSelectionWasRange.current = true;\n },\n [handleRangeArrowSelect, handleRangeSelect]\n );\n\n const rangeSelectToFirst = (event, id) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = id;\n }\n\n const start = lastSelectionWasRange.current ? lastSelectedNode.current : id;\n\n selectRange(event, {\n start,\n end: getFirstNode(),\n });\n };\n\n const rangeSelectToLast = (event, id) => {\n if (!lastSelectedNode.current) {\n lastSelectedNode.current = id;\n }\n\n const start = lastSelectionWasRange.current ? lastSelectedNode.current : id;\n\n selectRange(event, {\n start,\n end: getLastNode(),\n });\n };\n\n const selectNextNode = (event, id) => {\n if (!isDisabled(getNextNode(id))) {\n selectRange(\n event,\n {\n end: getNextNode(id),\n current: id,\n },\n true\n );\n }\n };\n\n const selectPreviousNode = (event, id) => {\n if (!isDisabled(getPreviousNode(id))) {\n selectRange(\n event,\n {\n end: getPreviousNode(id),\n current: id,\n },\n true\n );\n }\n };\n\n const selectAllNodes = (event) => {\n selectRange(event, { start: getFirstNode(), end: getLastNode() });\n };\n\n /*\n * Mapping Helpers\n */\n const registerNode = useCallback((node) => {\n const {\n id,\n index,\n parentId,\n expandable,\n idAttribute,\n disabled,\n selectable: nodeSelectable,\n onFocus: nodeOnFocus,\n payload,\n } = node;\n\n nodeMap.current[id] = {\n id,\n index,\n parentId,\n expandable,\n idAttribute,\n disabled,\n selectable: nodeSelectable,\n onFocus: nodeOnFocus,\n payload,\n };\n }, []);\n\n const unregisterNode = useCallback((id) => {\n const newMap = { ...nodeMap.current };\n delete newMap[id];\n nodeMap.current = newMap;\n\n setFocusedNodeId((oldFocusedNodeId) => {\n if (\n oldFocusedNodeId === id &&\n treeRef.current === (treeRef.current.ownerDocument || document).activeElement\n ) {\n return getChildrenIds(null)[0];\n }\n return oldFocusedNodeId;\n });\n }, []);\n\n const mapFirstChar = useCallback((id, firstChar) => {\n firstCharMap.current[id] = firstChar;\n }, []);\n\n const unMapFirstChar = useCallback((id) => {\n const newMap = { ...firstCharMap.current };\n delete newMap[id];\n firstCharMap.current = newMap;\n }, []);\n\n /**\n * Event handlers and Navigation\n */\n const handleNextArrow = (event) => {\n if (isExpandable(focusedNodeId)) {\n if (isExpanded(focusedNodeId)) {\n focusNextNode(event, focusedNodeId);\n } else if (!isDisabled(focusedNodeId)) {\n toggleExpansion(event);\n }\n }\n return true;\n };\n\n const handlePreviousArrow = (event) => {\n if (isExpanded(focusedNodeId) && !isDisabled(focusedNodeId)) {\n toggleExpansion(event, focusedNodeId);\n return true;\n }\n\n const parent = getParent(focusedNodeId);\n if (parent) {\n focus(event, parent);\n return true;\n }\n return false;\n };\n\n const handleKeyDown = (event) => {\n let flag = false;\n const { key } = event;\n\n // If the tree is empty there will be no focused node\n if (event.altKey || event.currentTarget !== event.target || !focusedNodeId) {\n return;\n }\n\n const ctrlPressed = event.ctrlKey || event.metaKey;\n switch (key) {\n case \" \":\n if (isSelectable(focusedNodeId) && !isDisabled(focusedNodeId)) {\n if (multiSelect && event.shiftKey) {\n selectRange(event, { end: focusedNodeId });\n flag = true;\n } else if (multiSelect) {\n flag = selectNode(event, focusedNodeId, true);\n } else {\n flag = selectNode(event, focusedNodeId);\n }\n }\n event.stopPropagation();\n break;\n case \"Enter\":\n if (!isDisabled(focusedNodeId)) {\n if (isExpandable(focusedNodeId)) {\n toggleExpansion(event);\n flag = true;\n } else if (isSelectable(focusedNodeId)) {\n if (multiSelect && event.shiftKey) {\n selectRange(event, { end: focusedNodeId });\n flag = true;\n } else if (multiSelect) {\n flag = selectNode(event, focusedNodeId, true);\n } else {\n flag = selectNode(event, focusedNodeId);\n }\n }\n }\n event.stopPropagation();\n break;\n case \"ArrowDown\":\n if (multiSelect && event.shiftKey) {\n selectNextNode(event, focusedNodeId);\n }\n focusNextNode(event, focusedNodeId);\n flag = true;\n break;\n case \"ArrowUp\":\n if (multiSelect && event.shiftKey) {\n selectPreviousNode(event, focusedNodeId);\n }\n focusPreviousNode(event, focusedNodeId);\n flag = true;\n break;\n case \"ArrowRight\":\n flag = handleNextArrow(event);\n break;\n case \"ArrowLeft\":\n flag = handlePreviousArrow(event);\n break;\n case \"Home\":\n if (multiSelect && ctrlPressed && event.shiftKey && !isDisabled(focusedNodeId)) {\n rangeSelectToFirst(event, focusedNodeId);\n }\n focusFirstNode(event);\n flag = true;\n break;\n case \"End\":\n if (multiSelect && ctrlPressed && event.shiftKey && !isDisabled(focusedNodeId)) {\n rangeSelectToLast(event, focusedNodeId);\n }\n focusLastNode(event);\n flag = true;\n break;\n default:\n if (key === \"*\") {\n expandAllSiblings(event, focusedNodeId);\n flag = true;\n } else if (multiSelect && ctrlPressed && key.toLowerCase() === \"a\") {\n selectAllNodes(event);\n flag = true;\n } else if (!ctrlPressed && !event.shiftKey && isPrintableCharacter(key)) {\n focusByFirstCharacter(event, focusedNodeId, key);\n flag = true;\n }\n }\n\n if (flag) {\n event.preventDefault();\n event.stopPropagation();\n }\n\n if (onKeyDown) {\n onKeyDown(event);\n }\n };\n\n const handleFocus = (event) => {\n // if the event bubbled (which is React specific) we don't want to steal focus\n if (event.target === event.currentTarget) {\n const firstSelected = Array.isArray(selected) ? selected[0] : selected;\n focus(event, firstSelected || getNavigableChildrenIds(null)[0]);\n }\n\n if (onFocus) {\n onFocus(event);\n }\n };\n\n const handleBlur = (event) => {\n setFocusedNodeId(null);\n\n if (onBlur) {\n onBlur(event);\n }\n };\n\n const activeDescendant = nodeMap.current[focusedNodeId]\n ? nodeMap.current[focusedNodeId].idAttribute\n : null;\n\n const treeControlContext = useMemo(\n () => ({\n treeId,\n mode,\n collapsible,\n toggleExpansion,\n multiSelect,\n selectNode: selectable ? selectNode : noopSelection,\n selectRange: selectable ? selectRange : noopSelection,\n disabledItemsFocusable,\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n focus,\n }),\n [\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n toggleExpansion,\n selectable,\n selectNode,\n selectRange,\n mode,\n collapsible,\n multiSelect,\n disabledItemsFocusable,\n treeId,\n ]\n );\n\n const treeStateContext = useMemo(\n () => ({\n isExpanded,\n isSelected,\n isFocused,\n isDisabled,\n }),\n [isDisabled, isExpanded, isFocused, isSelected]\n );\n\n return (\n <TreeViewControlContext.Provider value={treeControlContext}>\n <TreeViewStateContext.Provider value={treeStateContext}>\n <DescendantProvider>\n <ul\n ref={handleRef}\n id={idProp}\n className={clsx(classes.root, className)}\n {...(treeviewMode && {\n id: treeId,\n role: \"tree\",\n \"aria-multiselectable\": multiSelect,\n \"aria-activedescendant\": activeDescendant,\n tabIndex: 0,\n onFocus: handleFocus,\n onBlur: handleBlur,\n onKeyDown: handleKeyDown,\n })}\n {...others}\n >\n {children}\n </ul>\n </DescendantProvider>\n </TreeViewStateContext.Provider>\n </TreeViewControlContext.Provider>\n );\n});\n\nTreeView.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the Radio button.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to component.\n */\n root: PropTypes.string,\n }).isRequired,\n /**\n * Modus operandi (role) of the widget instance.\n */\n mode: PropTypes.oneOf([\"treeview\", \"navigation\"]),\n /**\n * Enables selection.\n * @default false\n */\n selectable: PropTypes.bool,\n /**\n * Enables the simultaneous selection of multiple items.\n * @default false\n */\n multiSelect: PropTypes.bool,\n /**\n * The selected nodes' ids.\n *\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n */\n selected: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]),\n /**\n * When uncontrolled, defines the initial selected nodes' ids.\n *\n * When `multiSelect` is true this takes an array of strings; when false (default) a string.\n * @default []\n */\n defaultSelected: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.string]),\n /**\n * Can non-leaf nodes be collapsed / expanded.\n */\n collapsible: PropTypes.bool,\n /**\n * Callback fired when a tree item is selected.\n *\n * @param {object} event The event source of the callback.\n * @param {string} nodeId The id of the selected node.\n */\n onChange: PropTypes.func,\n /**\n * Expanded nodes' ids.\n */\n expanded: PropTypes.arrayOf(PropTypes.string),\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n * @default []\n */\n defaultExpanded: PropTypes.arrayOf(PropTypes.string),\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {object} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes (old and new).\n */\n onToggle: PropTypes.func,\n /**\n * If `true`, will allow focus on disabled items.\n * @default false\n */\n disabledItemsFocusable: PropTypes.bool,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * @ignore\n */\n onBlur: PropTypes.func,\n /**\n * @ignore\n */\n onKeyDown: PropTypes.func,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationTreeView\" })(TreeView);\n"],"file":"TreeView.js"}
@@ -1,5 +1,8 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import _objectWithoutProperties from "@babel/runtime/helpers/esm/objectWithoutProperties";
3
+
4
+ var _DropUpXS, _DropDownXS;
5
+
3
6
  const _excluded = ["id", "className", "classes", "disabled", "selectable", "nodeId", "icon", "label", "payload", "onClick", "onMouseDown", "onFocus", "children"];
4
7
  import "core-js/modules/web.dom-collections.iterator.js";
5
8
  import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from "react";
@@ -250,7 +253,7 @@ const TreeViewItem = /*#__PURE__*/React.forwardRef((props, ref) => {
250
253
  "aria-current": selectable && selected ? "page" : undefined,
251
254
  "aria-expanded": expandable ? expanded : undefined,
252
255
  "aria-controls": expandable ? setId(id, "group") : undefined
253
- }), expandable && (expanded ? /*#__PURE__*/React.createElement(DropUpXS, null) : /*#__PURE__*/React.createElement(DropDownXS, null)), icon, label), [id, classes.content, handleClick, handleMouseDown, expandable, level, collapsible, treeviewMode, handleFocus, handleKeyDown, selectable, selected, expanded, icon, label]);
256
+ }), expandable && (expanded ? _DropUpXS || (_DropUpXS = /*#__PURE__*/React.createElement(DropUpXS, null)) : _DropDownXS || (_DropDownXS = /*#__PURE__*/React.createElement(DropDownXS, null))), icon, label), [id, classes.content, handleClick, handleMouseDown, expandable, level, collapsible, treeviewMode, handleFocus, handleKeyDown, selectable, selected, expanded, icon, label]);
254
257
  const renderedChildren = useMemo(() => children && /*#__PURE__*/React.createElement("ul", {
255
258
  id: setId(id, "group"),
256
259
  className: classes.group,
@@ -271,7 +274,7 @@ const TreeViewItem = /*#__PURE__*/React.forwardRef((props, ref) => {
271
274
  level: level + 1
272
275
  }, renderedChildren));
273
276
  });
274
- TreeViewItem.propTypes = {
277
+ process.env.NODE_ENV !== "production" ? TreeViewItem.propTypes = {
275
278
  /**
276
279
  * Id to be applied to the root node.
277
280
  */
@@ -397,7 +400,7 @@ TreeViewItem.propTypes = {
397
400
  * The content of the component.
398
401
  */
399
402
  children: PropTypes.node
400
- };
403
+ } : void 0;
401
404
  export default withStyles(styles, {
402
405
  name: "HvVerticalNavigationTreeViewItem"
403
406
  })(TreeViewItem);