@hitachivantara/uikit-react-core 3.52.5 → 3.53.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (858) hide show
  1. package/CHANGELOG.md +11 -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/Switch/Switch.js +2 -2
  228. package/dist/Switch/Switch.js.map +1 -1
  229. package/dist/Tab/Tab.js +2 -2
  230. package/dist/Tab/Tab.js.map +1 -1
  231. package/dist/Table/Header/Header.js +3 -3
  232. package/dist/Table/Header/Header.js.map +1 -1
  233. package/dist/Table/NoData/index.js +3 -1
  234. package/dist/Table/NoData/index.js.map +1 -1
  235. package/dist/Table/Table.js +6 -4
  236. package/dist/Table/Table.js.map +1 -1
  237. package/dist/Tabs/Tabs.js +5 -3
  238. package/dist/Tabs/Tabs.js.map +1 -1
  239. package/dist/Tag/Tag.js +6 -4
  240. package/dist/Tag/Tag.js.map +1 -1
  241. package/dist/TagsInput/TagsInput.js +2 -2
  242. package/dist/TagsInput/TagsInput.js.map +1 -1
  243. package/dist/TextArea/TextArea.js +2 -2
  244. package/dist/TextArea/TextArea.js.map +1 -1
  245. package/dist/ToggleButton/ToggleButton.js +2 -2
  246. package/dist/ToggleButton/ToggleButton.js.map +1 -1
  247. package/dist/Tooltip/Tooltip.js +2 -2
  248. package/dist/Tooltip/Tooltip.js.map +1 -1
  249. package/dist/Typography/Typography.js +2 -2
  250. package/dist/Typography/Typography.js.map +1 -1
  251. package/dist/UserPreferences/Action/Action.js +2 -2
  252. package/dist/UserPreferences/Action/Action.js.map +1 -1
  253. package/dist/UserPreferences/Actions/Actions.js +2 -2
  254. package/dist/UserPreferences/Actions/Actions.js.map +1 -1
  255. package/dist/UserPreferences/Options/Group/Group.js +2 -2
  256. package/dist/UserPreferences/Options/Group/Group.js.map +1 -1
  257. package/dist/UserPreferences/Options/Label/Label.js +2 -2
  258. package/dist/UserPreferences/Options/Label/Label.js.map +1 -1
  259. package/dist/UserPreferences/Options/Option.js +2 -2
  260. package/dist/UserPreferences/Options/Option.js.map +1 -1
  261. package/dist/UserPreferences/Options/Options.js +2 -2
  262. package/dist/UserPreferences/Options/Options.js.map +1 -1
  263. package/dist/UserPreferences/UserPreferences.js +2 -2
  264. package/dist/UserPreferences/UserPreferences.js.map +1 -1
  265. package/dist/VerticalNavigation/Actions/Action.js +2 -2
  266. package/dist/VerticalNavigation/Actions/Action.js.map +1 -1
  267. package/dist/VerticalNavigation/Actions/Actions.js +2 -2
  268. package/dist/VerticalNavigation/Actions/Actions.js.map +1 -1
  269. package/dist/VerticalNavigation/Navigation/Navigation.js +2 -2
  270. package/dist/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  271. package/dist/VerticalNavigation/TreeView/TreeView.js +2 -2
  272. package/dist/VerticalNavigation/TreeView/TreeView.js.map +1 -1
  273. package/dist/VerticalNavigation/TreeView/TreeViewItem.js +7 -5
  274. package/dist/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  275. package/dist/VerticalNavigation/TreeView/descendants.js +2 -2
  276. package/dist/VerticalNavigation/TreeView/descendants.js.map +1 -1
  277. package/dist/VerticalNavigation/VerticalContainer/VerticalContainer.js +5 -3
  278. package/dist/VerticalNavigation/VerticalContainer/VerticalContainer.js.map +1 -1
  279. package/dist/VerticalNavigation/VerticalNavigation.js +2 -2
  280. package/dist/VerticalNavigation/VerticalNavigation.js.map +1 -1
  281. package/dist/index.d.ts +3 -0
  282. package/dist/index.js +9 -0
  283. package/dist/index.js.map +1 -1
  284. package/dist/legacy/Accordion/Accordion.js +2 -2
  285. package/dist/legacy/Accordion/Accordion.js.map +1 -1
  286. package/dist/legacy/ActionBar/ActionBar.js +2 -2
  287. package/dist/legacy/ActionBar/ActionBar.js.map +1 -1
  288. package/dist/legacy/ActionsGeneric/ActionsGeneric.js +2 -2
  289. package/dist/legacy/ActionsGeneric/ActionsGeneric.js.map +1 -1
  290. package/dist/legacy/AssetInventory/AssetInventory.js +2 -2
  291. package/dist/legacy/AssetInventory/AssetInventory.js.map +1 -1
  292. package/dist/legacy/AssetInventory/CardView/CardView.js +3 -3
  293. package/dist/legacy/AssetInventory/CardView/CardView.js.map +1 -1
  294. package/dist/legacy/AssetInventory/ListView/ListView.js +2 -2
  295. package/dist/legacy/AssetInventory/ListView/ListView.js.map +1 -1
  296. package/dist/legacy/AssetInventory/ListView/ListViewCell/ListViewCell.js +2 -2
  297. package/dist/legacy/AssetInventory/ListView/ListViewCell/ListViewCell.js.map +1 -1
  298. package/dist/legacy/AssetInventory/ListView/ListViewHeaderRow/ListViewHeaderRow.js +7 -4
  299. package/dist/legacy/AssetInventory/ListView/ListViewHeaderRow/ListViewHeaderRow.js.map +1 -1
  300. package/dist/legacy/AssetInventory/ListView/ListViewRow/ListViewRow.js +2 -2
  301. package/dist/legacy/AssetInventory/ListView/ListViewRow/ListViewRow.js.map +1 -1
  302. package/dist/legacy/AssetInventory/Multibutton/Multibutton.js +2 -2
  303. package/dist/legacy/AssetInventory/Multibutton/Multibutton.js.map +1 -1
  304. package/dist/legacy/AssetInventory/Search/Search.js +2 -2
  305. package/dist/legacy/AssetInventory/Search/Search.js.map +1 -1
  306. package/dist/legacy/AssetInventory/Sort/Sort.js +2 -2
  307. package/dist/legacy/AssetInventory/Sort/Sort.js.map +1 -1
  308. package/dist/legacy/Avatar/Avatar.js +2 -2
  309. package/dist/legacy/Avatar/Avatar.js.map +1 -1
  310. package/dist/legacy/Badge/Badge.js +2 -2
  311. package/dist/legacy/Badge/Badge.js.map +1 -1
  312. package/dist/legacy/Banner/Banner.js +2 -2
  313. package/dist/legacy/Banner/Banner.js.map +1 -1
  314. package/dist/legacy/Banner/BannerWrapper/ActionContainer/ActionContainer.js +2 -2
  315. package/dist/legacy/Banner/BannerWrapper/ActionContainer/ActionContainer.js.map +1 -1
  316. package/dist/legacy/Banner/BannerWrapper/BannerContentWrapper.js +2 -2
  317. package/dist/legacy/Banner/BannerWrapper/BannerContentWrapper.js.map +1 -1
  318. package/dist/legacy/Banner/BannerWrapper/MessageContainer/MessageContainer.js +2 -2
  319. package/dist/legacy/Banner/BannerWrapper/MessageContainer/MessageContainer.js.map +1 -1
  320. package/dist/legacy/Barchart/Barchart.js +2 -2
  321. package/dist/legacy/Barchart/Barchart.js.map +1 -1
  322. package/dist/legacy/BaseCheckBox/BaseCheckBox.js +2 -2
  323. package/dist/legacy/BaseCheckBox/BaseCheckBox.js.map +1 -1
  324. package/dist/legacy/BaseDropdown/BaseDropdown.js +2 -2
  325. package/dist/legacy/BaseDropdown/BaseDropdown.js.map +1 -1
  326. package/dist/legacy/BaseInput/BaseInput.js +2 -2
  327. package/dist/legacy/BaseInput/BaseInput.js.map +1 -1
  328. package/dist/legacy/BaseRadio/BaseRadio.js +2 -2
  329. package/dist/legacy/BaseRadio/BaseRadio.js.map +1 -1
  330. package/dist/legacy/BaseSwitch/BaseSwitch.js +2 -2
  331. package/dist/legacy/BaseSwitch/BaseSwitch.js.map +1 -1
  332. package/dist/legacy/BreadCrumb/BreadCrumb.js +6 -6
  333. package/dist/legacy/BreadCrumb/BreadCrumb.js.map +1 -1
  334. package/dist/legacy/BreadCrumb/utils.js +5 -2
  335. package/dist/legacy/BreadCrumb/utils.js.map +1 -1
  336. package/dist/legacy/BulkActions/BulkActions.js +2 -2
  337. package/dist/legacy/BulkActions/BulkActions.js.map +1 -1
  338. package/dist/legacy/Button/Button.js +2 -2
  339. package/dist/legacy/Button/Button.js.map +1 -1
  340. package/dist/legacy/Calendar/Calendar.js +2 -2
  341. package/dist/legacy/Calendar/Calendar.js.map +1 -1
  342. package/dist/legacy/Calendar/CalendarHeader/CalendarHeader.js +7 -4
  343. package/dist/legacy/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  344. package/dist/legacy/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js +2 -2
  345. package/dist/legacy/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js.map +1 -1
  346. package/dist/legacy/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js +2 -2
  347. package/dist/legacy/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
  348. package/dist/legacy/Calendar/CalendarNavigation/Navigation/Navigation.js +2 -2
  349. package/dist/legacy/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
  350. package/dist/legacy/Calendar/CalendarWeekLabels/CalendarWeekLabels.js +2 -2
  351. package/dist/legacy/Calendar/CalendarWeekLabels/CalendarWeekLabels.js.map +1 -1
  352. package/dist/legacy/Calendar/SingleCalendar/CalendarCell.js +2 -2
  353. package/dist/legacy/Calendar/SingleCalendar/CalendarCell.js.map +1 -1
  354. package/dist/legacy/Calendar/SingleCalendar/SingleCalendar.js +2 -2
  355. package/dist/legacy/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  356. package/dist/legacy/Card/Card.js +2 -2
  357. package/dist/legacy/Card/Card.js.map +1 -1
  358. package/dist/legacy/Card/Content/Content.js +2 -2
  359. package/dist/legacy/Card/Content/Content.js.map +1 -1
  360. package/dist/legacy/Card/Header/Header.js +2 -2
  361. package/dist/legacy/Card/Header/Header.js.map +1 -1
  362. package/dist/legacy/Card/Media/Media.js +2 -2
  363. package/dist/legacy/Card/Media/Media.js.map +1 -1
  364. package/dist/legacy/Chart/Chart.js +2 -2
  365. package/dist/legacy/Chart/Chart.js.map +1 -1
  366. package/dist/legacy/Chart/Plot/Plot.js +2 -2
  367. package/dist/legacy/Chart/Plot/Plot.js.map +1 -1
  368. package/dist/legacy/Chart/Tooltip/MultiTooltip/MultiTooltip.js +2 -2
  369. package/dist/legacy/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
  370. package/dist/legacy/Chart/Tooltip/SingleTooltip/SingleTooltip.js +2 -2
  371. package/dist/legacy/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
  372. package/dist/legacy/Chart/Tooltip/Tooltip.js +2 -2
  373. package/dist/legacy/Chart/Tooltip/Tooltip.js.map +1 -1
  374. package/dist/legacy/CheckBox/CheckBox.js +2 -2
  375. package/dist/legacy/CheckBox/CheckBox.js.map +1 -1
  376. package/dist/legacy/CheckBoxGroup/CheckBoxGroup.js +2 -2
  377. package/dist/legacy/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  378. package/dist/legacy/Container/Container.js +2 -2
  379. package/dist/legacy/Container/Container.js.map +1 -1
  380. package/dist/legacy/DatePicker/DatePicker.js +2 -2
  381. package/dist/legacy/DatePicker/DatePicker.js.map +1 -1
  382. package/dist/legacy/Dialog/Dialog.js +7 -4
  383. package/dist/legacy/Dialog/Dialog.js.map +1 -1
  384. package/dist/legacy/Dialog/DialogActions/DialogActions.js +2 -2
  385. package/dist/legacy/Dialog/DialogActions/DialogActions.js.map +1 -1
  386. package/dist/legacy/Dialog/DialogContent/DialogContent.js +2 -2
  387. package/dist/legacy/Dialog/DialogContent/DialogContent.js.map +1 -1
  388. package/dist/legacy/Dialog/DialogTitle/DialogTitle.js +2 -2
  389. package/dist/legacy/Dialog/DialogTitle/DialogTitle.js.map +1 -1
  390. package/dist/legacy/Donutchart/Donutchart.js +2 -2
  391. package/dist/legacy/Donutchart/Donutchart.js.map +1 -1
  392. package/dist/legacy/DropDownMenu/DropDownMenu.js +2 -2
  393. package/dist/legacy/DropDownMenu/DropDownMenu.js.map +1 -1
  394. package/dist/legacy/Dropdown/Dropdown.js +2 -2
  395. package/dist/legacy/Dropdown/Dropdown.js.map +1 -1
  396. package/dist/legacy/Dropdown/List/List.js +2 -2
  397. package/dist/legacy/Dropdown/List/List.js.map +1 -1
  398. package/dist/legacy/EmptyState/EmptyState.js +2 -2
  399. package/dist/legacy/EmptyState/EmptyState.js.map +1 -1
  400. package/dist/legacy/FileUploader/DropZone/DropZone.js +2 -2
  401. package/dist/legacy/FileUploader/DropZone/DropZone.js.map +1 -1
  402. package/dist/legacy/FileUploader/File/File.js +6 -4
  403. package/dist/legacy/FileUploader/File/File.js.map +1 -1
  404. package/dist/legacy/FileUploader/FileList/FileList.js +2 -2
  405. package/dist/legacy/FileUploader/FileList/FileList.js.map +1 -1
  406. package/dist/legacy/FileUploader/FileUploader.js +2 -2
  407. package/dist/legacy/FileUploader/FileUploader.js.map +1 -1
  408. package/dist/legacy/FileUploader/Preview/Preview.js +6 -3
  409. package/dist/legacy/FileUploader/Preview/Preview.js.map +1 -1
  410. package/dist/legacy/FilterGroup/Counter/Counter.js +2 -2
  411. package/dist/legacy/FilterGroup/Counter/Counter.js.map +1 -1
  412. package/dist/legacy/FilterGroup/FilterContent/FilterContent.js +7 -4
  413. package/dist/legacy/FilterGroup/FilterContent/FilterContent.js.map +1 -1
  414. package/dist/legacy/FilterGroup/FilterGroup.js +2 -2
  415. package/dist/legacy/FilterGroup/FilterGroup.js.map +1 -1
  416. package/dist/legacy/FilterGroup/FilterGroupContext.js +2 -2
  417. package/dist/legacy/FilterGroup/FilterGroupContext.js.map +1 -1
  418. package/dist/legacy/FilterGroup/LeftPanel/LeftPanel.js +2 -2
  419. package/dist/legacy/FilterGroup/LeftPanel/LeftPanel.js.map +1 -1
  420. package/dist/legacy/FilterGroup/RightPanel/RightPanel.js +2 -2
  421. package/dist/legacy/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  422. package/dist/legacy/Focus/Focus.js +2 -2
  423. package/dist/legacy/Focus/Focus.js.map +1 -1
  424. package/dist/legacy/Footer/Footer.js +2 -2
  425. package/dist/legacy/Footer/Footer.js.map +1 -1
  426. package/dist/legacy/Forms/Adornment/Adornment.js +2 -2
  427. package/dist/legacy/Forms/Adornment/Adornment.js.map +1 -1
  428. package/dist/legacy/Forms/CharCounter/CharCounter.js +2 -2
  429. package/dist/legacy/Forms/CharCounter/CharCounter.js.map +1 -1
  430. package/dist/legacy/Forms/FormElement/FormElement.js +2 -2
  431. package/dist/legacy/Forms/FormElement/FormElement.js.map +1 -1
  432. package/dist/legacy/Forms/InfoMessage/InfoMessage.js +2 -2
  433. package/dist/legacy/Forms/InfoMessage/InfoMessage.js.map +1 -1
  434. package/dist/legacy/Forms/Label/Label.js +7 -4
  435. package/dist/legacy/Forms/Label/Label.js.map +1 -1
  436. package/dist/legacy/Forms/Suggestions/Suggestions.js +2 -2
  437. package/dist/legacy/Forms/Suggestions/Suggestions.js.map +1 -1
  438. package/dist/legacy/Forms/WarningText/WarningText.js +2 -2
  439. package/dist/legacy/Forms/WarningText/WarningText.js.map +1 -1
  440. package/dist/legacy/GlobalActions/GlobalActions.js +9 -4
  441. package/dist/legacy/GlobalActions/GlobalActions.js.map +1 -1
  442. package/dist/legacy/Grid/Grid.js +5 -4
  443. package/dist/legacy/Grid/Grid.js.map +1 -1
  444. package/dist/legacy/Header/Actions/Actions.js +2 -2
  445. package/dist/legacy/Header/Actions/Actions.js.map +1 -1
  446. package/dist/legacy/Header/Brand/Brand.js +2 -2
  447. package/dist/legacy/Header/Brand/Brand.js.map +1 -1
  448. package/dist/legacy/Header/Header.js +2 -2
  449. package/dist/legacy/Header/Header.js.map +1 -1
  450. package/dist/legacy/Header/Navigation/MenuBar/MenuBar.js +2 -2
  451. package/dist/legacy/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  452. package/dist/legacy/Header/Navigation/MenuItem/MenuItem.js +2 -2
  453. package/dist/legacy/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  454. package/dist/legacy/Header/Navigation/Navigation.js +2 -2
  455. package/dist/legacy/Header/Navigation/Navigation.js.map +1 -1
  456. package/dist/legacy/Header/Navigation/utils/FocusContext.js +2 -2
  457. package/dist/legacy/Header/Navigation/utils/FocusContext.js.map +1 -1
  458. package/dist/legacy/Input/Input.js +8 -5
  459. package/dist/legacy/Input/Input.js.map +1 -1
  460. package/dist/legacy/Kpi/Kpi.js +2 -2
  461. package/dist/legacy/Kpi/Kpi.js.map +1 -1
  462. package/dist/legacy/Linechart/Linechart.js +2 -2
  463. package/dist/legacy/Linechart/Linechart.js.map +1 -1
  464. package/dist/legacy/Link/Link.js +2 -2
  465. package/dist/legacy/Link/Link.js.map +1 -1
  466. package/dist/legacy/List/List.js +4 -4
  467. package/dist/legacy/List/List.js.map +1 -1
  468. package/dist/legacy/ListContainer/ListContainer.js +2 -2
  469. package/dist/legacy/ListContainer/ListContainer.js.map +1 -1
  470. package/dist/legacy/ListContainer/ListItem/ListItem.js +2 -2
  471. package/dist/legacy/ListContainer/ListItem/ListItem.js.map +1 -1
  472. package/dist/legacy/Loading/Loading.js +2 -2
  473. package/dist/legacy/Loading/Loading.js.map +1 -1
  474. package/dist/legacy/Login/Login.js +2 -2
  475. package/dist/legacy/Login/Login.js.map +1 -1
  476. package/dist/legacy/MultiButton/MultiButton.js +2 -2
  477. package/dist/legacy/MultiButton/MultiButton.js.map +1 -1
  478. package/dist/legacy/OverflowTooltip/OverflowTooltip.d.ts +29 -0
  479. package/dist/legacy/OverflowTooltip/OverflowTooltip.js +126 -0
  480. package/dist/legacy/OverflowTooltip/OverflowTooltip.js.map +1 -0
  481. package/dist/legacy/OverflowTooltip/index.d.ts +1 -0
  482. package/dist/legacy/OverflowTooltip/index.js +2 -0
  483. package/dist/legacy/OverflowTooltip/index.js.map +1 -0
  484. package/dist/legacy/Pagination/Pagination.js +2 -2
  485. package/dist/legacy/Pagination/Pagination.js.map +1 -1
  486. package/dist/legacy/Panel/Panel.js +2 -2
  487. package/dist/legacy/Panel/Panel.js.map +1 -1
  488. package/dist/legacy/Provider/Provider.js +5 -3
  489. package/dist/legacy/Provider/Provider.js.map +1 -1
  490. package/dist/legacy/Radio/Radio.js +2 -2
  491. package/dist/legacy/Radio/Radio.js.map +1 -1
  492. package/dist/legacy/RadioGroup/RadioGroup.js +2 -2
  493. package/dist/legacy/RadioGroup/RadioGroup.js.map +1 -1
  494. package/dist/legacy/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +2 -2
  495. package/dist/legacy/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
  496. package/dist/legacy/ScrollTo/Horizontal/ScrollToHorizontal.js +2 -2
  497. package/dist/legacy/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  498. package/dist/legacy/ScrollTo/Vertical/ScrollToVertical.js +2 -2
  499. package/dist/legacy/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  500. package/dist/legacy/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js +7 -4
  501. package/dist/legacy/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
  502. package/dist/legacy/SelectionList/SelectionList.js +2 -2
  503. package/dist/legacy/SelectionList/SelectionList.js.map +1 -1
  504. package/dist/legacy/Snackbar/Snackbar.js +2 -2
  505. package/dist/legacy/Snackbar/Snackbar.js.map +1 -1
  506. package/dist/legacy/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js +2 -2
  507. package/dist/legacy/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js.map +1 -1
  508. package/dist/legacy/Switch/Switch.js +2 -2
  509. package/dist/legacy/Switch/Switch.js.map +1 -1
  510. package/dist/legacy/Tab/Tab.js +2 -2
  511. package/dist/legacy/Tab/Tab.js.map +1 -1
  512. package/dist/legacy/Table/Header/Header.js +4 -2
  513. package/dist/legacy/Table/Header/Header.js.map +1 -1
  514. package/dist/legacy/Table/NoData/index.js +3 -1
  515. package/dist/legacy/Table/NoData/index.js.map +1 -1
  516. package/dist/legacy/Table/Table.js +5 -3
  517. package/dist/legacy/Table/Table.js.map +1 -1
  518. package/dist/legacy/Tabs/Tabs.js +6 -3
  519. package/dist/legacy/Tabs/Tabs.js.map +1 -1
  520. package/dist/legacy/Tag/Tag.js +6 -4
  521. package/dist/legacy/Tag/Tag.js.map +1 -1
  522. package/dist/legacy/TagsInput/TagsInput.js +2 -2
  523. package/dist/legacy/TagsInput/TagsInput.js.map +1 -1
  524. package/dist/legacy/TextArea/TextArea.js +2 -2
  525. package/dist/legacy/TextArea/TextArea.js.map +1 -1
  526. package/dist/legacy/ToggleButton/ToggleButton.js +2 -2
  527. package/dist/legacy/ToggleButton/ToggleButton.js.map +1 -1
  528. package/dist/legacy/Tooltip/Tooltip.js +2 -2
  529. package/dist/legacy/Tooltip/Tooltip.js.map +1 -1
  530. package/dist/legacy/Typography/Typography.js +2 -2
  531. package/dist/legacy/Typography/Typography.js.map +1 -1
  532. package/dist/legacy/UserPreferences/Action/Action.js +2 -2
  533. package/dist/legacy/UserPreferences/Action/Action.js.map +1 -1
  534. package/dist/legacy/UserPreferences/Actions/Actions.js +2 -2
  535. package/dist/legacy/UserPreferences/Actions/Actions.js.map +1 -1
  536. package/dist/legacy/UserPreferences/Options/Group/Group.js +2 -2
  537. package/dist/legacy/UserPreferences/Options/Group/Group.js.map +1 -1
  538. package/dist/legacy/UserPreferences/Options/Label/Label.js +2 -2
  539. package/dist/legacy/UserPreferences/Options/Label/Label.js.map +1 -1
  540. package/dist/legacy/UserPreferences/Options/Option.js +2 -2
  541. package/dist/legacy/UserPreferences/Options/Option.js.map +1 -1
  542. package/dist/legacy/UserPreferences/Options/Options.js +2 -2
  543. package/dist/legacy/UserPreferences/Options/Options.js.map +1 -1
  544. package/dist/legacy/UserPreferences/UserPreferences.js +2 -2
  545. package/dist/legacy/UserPreferences/UserPreferences.js.map +1 -1
  546. package/dist/legacy/VerticalNavigation/Actions/Action.js +2 -2
  547. package/dist/legacy/VerticalNavigation/Actions/Action.js.map +1 -1
  548. package/dist/legacy/VerticalNavigation/Actions/Actions.js +2 -2
  549. package/dist/legacy/VerticalNavigation/Actions/Actions.js.map +1 -1
  550. package/dist/legacy/VerticalNavigation/Navigation/Navigation.js +2 -2
  551. package/dist/legacy/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  552. package/dist/legacy/VerticalNavigation/TreeView/TreeView.js +2 -2
  553. package/dist/legacy/VerticalNavigation/TreeView/TreeView.js.map +1 -1
  554. package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.js +6 -3
  555. package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  556. package/dist/legacy/VerticalNavigation/TreeView/descendants.js +2 -2
  557. package/dist/legacy/VerticalNavigation/TreeView/descendants.js.map +1 -1
  558. package/dist/legacy/VerticalNavigation/VerticalContainer/VerticalContainer.js +6 -3
  559. package/dist/legacy/VerticalNavigation/VerticalContainer/VerticalContainer.js.map +1 -1
  560. package/dist/legacy/VerticalNavigation/VerticalNavigation.js +2 -2
  561. package/dist/legacy/VerticalNavigation/VerticalNavigation.js.map +1 -1
  562. package/dist/legacy/index.d.ts +3 -0
  563. package/dist/legacy/index.js +1 -0
  564. package/dist/legacy/index.js.map +1 -1
  565. package/dist/legacy/withId.js +2 -2
  566. package/dist/legacy/withId.js.map +1 -1
  567. package/dist/legacy/withTooltip.js +3 -1
  568. package/dist/legacy/withTooltip.js.map +1 -1
  569. package/dist/modern/Accordion/Accordion.js +2 -2
  570. package/dist/modern/Accordion/Accordion.js.map +1 -1
  571. package/dist/modern/ActionBar/ActionBar.js +2 -2
  572. package/dist/modern/ActionBar/ActionBar.js.map +1 -1
  573. package/dist/modern/ActionsGeneric/ActionsGeneric.js +2 -2
  574. package/dist/modern/ActionsGeneric/ActionsGeneric.js.map +1 -1
  575. package/dist/modern/AssetInventory/AssetInventory.js +2 -2
  576. package/dist/modern/AssetInventory/AssetInventory.js.map +1 -1
  577. package/dist/modern/AssetInventory/CardView/CardView.js +3 -3
  578. package/dist/modern/AssetInventory/CardView/CardView.js.map +1 -1
  579. package/dist/modern/AssetInventory/ListView/ListView.js +2 -2
  580. package/dist/modern/AssetInventory/ListView/ListView.js.map +1 -1
  581. package/dist/modern/AssetInventory/ListView/ListViewCell/ListViewCell.js +2 -2
  582. package/dist/modern/AssetInventory/ListView/ListViewCell/ListViewCell.js.map +1 -1
  583. package/dist/modern/AssetInventory/ListView/ListViewHeaderRow/ListViewHeaderRow.js +7 -4
  584. package/dist/modern/AssetInventory/ListView/ListViewHeaderRow/ListViewHeaderRow.js.map +1 -1
  585. package/dist/modern/AssetInventory/ListView/ListViewRow/ListViewRow.js +2 -2
  586. package/dist/modern/AssetInventory/ListView/ListViewRow/ListViewRow.js.map +1 -1
  587. package/dist/modern/AssetInventory/Multibutton/Multibutton.js +2 -2
  588. package/dist/modern/AssetInventory/Multibutton/Multibutton.js.map +1 -1
  589. package/dist/modern/AssetInventory/Search/Search.js +2 -2
  590. package/dist/modern/AssetInventory/Search/Search.js.map +1 -1
  591. package/dist/modern/AssetInventory/Sort/Sort.js +2 -2
  592. package/dist/modern/AssetInventory/Sort/Sort.js.map +1 -1
  593. package/dist/modern/Avatar/Avatar.js +2 -2
  594. package/dist/modern/Avatar/Avatar.js.map +1 -1
  595. package/dist/modern/Badge/Badge.js +2 -2
  596. package/dist/modern/Badge/Badge.js.map +1 -1
  597. package/dist/modern/Banner/Banner.js +2 -2
  598. package/dist/modern/Banner/Banner.js.map +1 -1
  599. package/dist/modern/Banner/BannerWrapper/ActionContainer/ActionContainer.js +2 -2
  600. package/dist/modern/Banner/BannerWrapper/ActionContainer/ActionContainer.js.map +1 -1
  601. package/dist/modern/Banner/BannerWrapper/BannerContentWrapper.js +2 -2
  602. package/dist/modern/Banner/BannerWrapper/BannerContentWrapper.js.map +1 -1
  603. package/dist/modern/Banner/BannerWrapper/MessageContainer/MessageContainer.js +2 -2
  604. package/dist/modern/Banner/BannerWrapper/MessageContainer/MessageContainer.js.map +1 -1
  605. package/dist/modern/Barchart/Barchart.js +2 -2
  606. package/dist/modern/Barchart/Barchart.js.map +1 -1
  607. package/dist/modern/BaseCheckBox/BaseCheckBox.js +2 -2
  608. package/dist/modern/BaseCheckBox/BaseCheckBox.js.map +1 -1
  609. package/dist/modern/BaseDropdown/BaseDropdown.js +2 -2
  610. package/dist/modern/BaseDropdown/BaseDropdown.js.map +1 -1
  611. package/dist/modern/BaseInput/BaseInput.js +2 -2
  612. package/dist/modern/BaseInput/BaseInput.js.map +1 -1
  613. package/dist/modern/BaseRadio/BaseRadio.js +2 -2
  614. package/dist/modern/BaseRadio/BaseRadio.js.map +1 -1
  615. package/dist/modern/BaseSwitch/BaseSwitch.js +2 -2
  616. package/dist/modern/BaseSwitch/BaseSwitch.js.map +1 -1
  617. package/dist/modern/BreadCrumb/BreadCrumb.js +6 -6
  618. package/dist/modern/BreadCrumb/BreadCrumb.js.map +1 -1
  619. package/dist/modern/BreadCrumb/utils.js +5 -2
  620. package/dist/modern/BreadCrumb/utils.js.map +1 -1
  621. package/dist/modern/BulkActions/BulkActions.js +2 -2
  622. package/dist/modern/BulkActions/BulkActions.js.map +1 -1
  623. package/dist/modern/Button/Button.js +2 -2
  624. package/dist/modern/Button/Button.js.map +1 -1
  625. package/dist/modern/Calendar/Calendar.js +2 -2
  626. package/dist/modern/Calendar/Calendar.js.map +1 -1
  627. package/dist/modern/Calendar/CalendarHeader/CalendarHeader.js +7 -4
  628. package/dist/modern/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  629. package/dist/modern/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js +2 -2
  630. package/dist/modern/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js.map +1 -1
  631. package/dist/modern/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js +2 -2
  632. package/dist/modern/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
  633. package/dist/modern/Calendar/CalendarNavigation/Navigation/Navigation.js +2 -2
  634. package/dist/modern/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
  635. package/dist/modern/Calendar/CalendarWeekLabels/CalendarWeekLabels.js +2 -2
  636. package/dist/modern/Calendar/CalendarWeekLabels/CalendarWeekLabels.js.map +1 -1
  637. package/dist/modern/Calendar/SingleCalendar/CalendarCell.js +2 -2
  638. package/dist/modern/Calendar/SingleCalendar/CalendarCell.js.map +1 -1
  639. package/dist/modern/Calendar/SingleCalendar/SingleCalendar.js +2 -2
  640. package/dist/modern/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  641. package/dist/modern/Card/Card.js +2 -2
  642. package/dist/modern/Card/Card.js.map +1 -1
  643. package/dist/modern/Card/Content/Content.js +2 -2
  644. package/dist/modern/Card/Content/Content.js.map +1 -1
  645. package/dist/modern/Card/Header/Header.js +2 -2
  646. package/dist/modern/Card/Header/Header.js.map +1 -1
  647. package/dist/modern/Card/Media/Media.js +2 -2
  648. package/dist/modern/Card/Media/Media.js.map +1 -1
  649. package/dist/modern/Chart/Chart.js +2 -2
  650. package/dist/modern/Chart/Chart.js.map +1 -1
  651. package/dist/modern/Chart/Plot/Plot.js +2 -2
  652. package/dist/modern/Chart/Plot/Plot.js.map +1 -1
  653. package/dist/modern/Chart/Tooltip/MultiTooltip/MultiTooltip.js +2 -2
  654. package/dist/modern/Chart/Tooltip/MultiTooltip/MultiTooltip.js.map +1 -1
  655. package/dist/modern/Chart/Tooltip/SingleTooltip/SingleTooltip.js +2 -2
  656. package/dist/modern/Chart/Tooltip/SingleTooltip/SingleTooltip.js.map +1 -1
  657. package/dist/modern/Chart/Tooltip/Tooltip.js +2 -2
  658. package/dist/modern/Chart/Tooltip/Tooltip.js.map +1 -1
  659. package/dist/modern/CheckBox/CheckBox.js +2 -2
  660. package/dist/modern/CheckBox/CheckBox.js.map +1 -1
  661. package/dist/modern/CheckBoxGroup/CheckBoxGroup.js +2 -2
  662. package/dist/modern/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  663. package/dist/modern/Container/Container.js +2 -2
  664. package/dist/modern/Container/Container.js.map +1 -1
  665. package/dist/modern/DatePicker/DatePicker.js +2 -2
  666. package/dist/modern/DatePicker/DatePicker.js.map +1 -1
  667. package/dist/modern/Dialog/Dialog.js +7 -4
  668. package/dist/modern/Dialog/Dialog.js.map +1 -1
  669. package/dist/modern/Dialog/DialogActions/DialogActions.js +2 -2
  670. package/dist/modern/Dialog/DialogActions/DialogActions.js.map +1 -1
  671. package/dist/modern/Dialog/DialogContent/DialogContent.js +2 -2
  672. package/dist/modern/Dialog/DialogContent/DialogContent.js.map +1 -1
  673. package/dist/modern/Dialog/DialogTitle/DialogTitle.js +2 -2
  674. package/dist/modern/Dialog/DialogTitle/DialogTitle.js.map +1 -1
  675. package/dist/modern/Donutchart/Donutchart.js +2 -2
  676. package/dist/modern/Donutchart/Donutchart.js.map +1 -1
  677. package/dist/modern/DropDownMenu/DropDownMenu.js +2 -2
  678. package/dist/modern/DropDownMenu/DropDownMenu.js.map +1 -1
  679. package/dist/modern/Dropdown/Dropdown.js +2 -2
  680. package/dist/modern/Dropdown/Dropdown.js.map +1 -1
  681. package/dist/modern/Dropdown/List/List.js +2 -2
  682. package/dist/modern/Dropdown/List/List.js.map +1 -1
  683. package/dist/modern/EmptyState/EmptyState.js +2 -2
  684. package/dist/modern/EmptyState/EmptyState.js.map +1 -1
  685. package/dist/modern/FileUploader/DropZone/DropZone.js +2 -2
  686. package/dist/modern/FileUploader/DropZone/DropZone.js.map +1 -1
  687. package/dist/modern/FileUploader/File/File.js +6 -4
  688. package/dist/modern/FileUploader/File/File.js.map +1 -1
  689. package/dist/modern/FileUploader/FileList/FileList.js +2 -2
  690. package/dist/modern/FileUploader/FileList/FileList.js.map +1 -1
  691. package/dist/modern/FileUploader/FileUploader.js +2 -2
  692. package/dist/modern/FileUploader/FileUploader.js.map +1 -1
  693. package/dist/modern/FileUploader/Preview/Preview.js +6 -3
  694. package/dist/modern/FileUploader/Preview/Preview.js.map +1 -1
  695. package/dist/modern/FilterGroup/Counter/Counter.js +2 -2
  696. package/dist/modern/FilterGroup/Counter/Counter.js.map +1 -1
  697. package/dist/modern/FilterGroup/FilterContent/FilterContent.js +7 -4
  698. package/dist/modern/FilterGroup/FilterContent/FilterContent.js.map +1 -1
  699. package/dist/modern/FilterGroup/FilterGroup.js +2 -2
  700. package/dist/modern/FilterGroup/FilterGroup.js.map +1 -1
  701. package/dist/modern/FilterGroup/FilterGroupContext.js +2 -2
  702. package/dist/modern/FilterGroup/FilterGroupContext.js.map +1 -1
  703. package/dist/modern/FilterGroup/LeftPanel/LeftPanel.js +2 -2
  704. package/dist/modern/FilterGroup/LeftPanel/LeftPanel.js.map +1 -1
  705. package/dist/modern/FilterGroup/RightPanel/RightPanel.js +2 -2
  706. package/dist/modern/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  707. package/dist/modern/Focus/Focus.js +2 -2
  708. package/dist/modern/Focus/Focus.js.map +1 -1
  709. package/dist/modern/Footer/Footer.js +2 -2
  710. package/dist/modern/Footer/Footer.js.map +1 -1
  711. package/dist/modern/Forms/Adornment/Adornment.js +2 -2
  712. package/dist/modern/Forms/Adornment/Adornment.js.map +1 -1
  713. package/dist/modern/Forms/CharCounter/CharCounter.js +2 -2
  714. package/dist/modern/Forms/CharCounter/CharCounter.js.map +1 -1
  715. package/dist/modern/Forms/FormElement/FormElement.js +2 -2
  716. package/dist/modern/Forms/FormElement/FormElement.js.map +1 -1
  717. package/dist/modern/Forms/InfoMessage/InfoMessage.js +2 -2
  718. package/dist/modern/Forms/InfoMessage/InfoMessage.js.map +1 -1
  719. package/dist/modern/Forms/Label/Label.js +7 -4
  720. package/dist/modern/Forms/Label/Label.js.map +1 -1
  721. package/dist/modern/Forms/Suggestions/Suggestions.js +2 -2
  722. package/dist/modern/Forms/Suggestions/Suggestions.js.map +1 -1
  723. package/dist/modern/Forms/WarningText/WarningText.js +2 -2
  724. package/dist/modern/Forms/WarningText/WarningText.js.map +1 -1
  725. package/dist/modern/GlobalActions/GlobalActions.js +9 -4
  726. package/dist/modern/GlobalActions/GlobalActions.js.map +1 -1
  727. package/dist/modern/Grid/Grid.js +3 -3
  728. package/dist/modern/Grid/Grid.js.map +1 -1
  729. package/dist/modern/Header/Actions/Actions.js +2 -2
  730. package/dist/modern/Header/Actions/Actions.js.map +1 -1
  731. package/dist/modern/Header/Brand/Brand.js +2 -2
  732. package/dist/modern/Header/Brand/Brand.js.map +1 -1
  733. package/dist/modern/Header/Header.js +2 -2
  734. package/dist/modern/Header/Header.js.map +1 -1
  735. package/dist/modern/Header/Navigation/MenuBar/MenuBar.js +2 -2
  736. package/dist/modern/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  737. package/dist/modern/Header/Navigation/MenuItem/MenuItem.js +2 -2
  738. package/dist/modern/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  739. package/dist/modern/Header/Navigation/Navigation.js +2 -2
  740. package/dist/modern/Header/Navigation/Navigation.js.map +1 -1
  741. package/dist/modern/Header/Navigation/utils/FocusContext.js +2 -2
  742. package/dist/modern/Header/Navigation/utils/FocusContext.js.map +1 -1
  743. package/dist/modern/Input/Input.js +8 -5
  744. package/dist/modern/Input/Input.js.map +1 -1
  745. package/dist/modern/Kpi/Kpi.js +2 -2
  746. package/dist/modern/Kpi/Kpi.js.map +1 -1
  747. package/dist/modern/Linechart/Linechart.js +2 -2
  748. package/dist/modern/Linechart/Linechart.js.map +1 -1
  749. package/dist/modern/Link/Link.js +2 -2
  750. package/dist/modern/Link/Link.js.map +1 -1
  751. package/dist/modern/List/List.js +4 -4
  752. package/dist/modern/List/List.js.map +1 -1
  753. package/dist/modern/ListContainer/ListContainer.js +2 -2
  754. package/dist/modern/ListContainer/ListContainer.js.map +1 -1
  755. package/dist/modern/ListContainer/ListItem/ListItem.js +2 -2
  756. package/dist/modern/ListContainer/ListItem/ListItem.js.map +1 -1
  757. package/dist/modern/Loading/Loading.js +2 -2
  758. package/dist/modern/Loading/Loading.js.map +1 -1
  759. package/dist/modern/Login/Login.js +2 -2
  760. package/dist/modern/Login/Login.js.map +1 -1
  761. package/dist/modern/MultiButton/MultiButton.js +2 -2
  762. package/dist/modern/MultiButton/MultiButton.js.map +1 -1
  763. package/dist/modern/OverflowTooltip/OverflowTooltip.d.ts +29 -0
  764. package/dist/modern/OverflowTooltip/OverflowTooltip.js +120 -0
  765. package/dist/modern/OverflowTooltip/OverflowTooltip.js.map +1 -0
  766. package/dist/modern/OverflowTooltip/index.d.ts +1 -0
  767. package/dist/modern/OverflowTooltip/index.js +2 -0
  768. package/dist/modern/OverflowTooltip/index.js.map +1 -0
  769. package/dist/modern/Pagination/Pagination.js +2 -2
  770. package/dist/modern/Pagination/Pagination.js.map +1 -1
  771. package/dist/modern/Panel/Panel.js +2 -2
  772. package/dist/modern/Panel/Panel.js.map +1 -1
  773. package/dist/modern/Provider/Provider.js +5 -3
  774. package/dist/modern/Provider/Provider.js.map +1 -1
  775. package/dist/modern/Radio/Radio.js +2 -2
  776. package/dist/modern/Radio/Radio.js.map +1 -1
  777. package/dist/modern/RadioGroup/RadioGroup.js +2 -2
  778. package/dist/modern/RadioGroup/RadioGroup.js.map +1 -1
  779. package/dist/modern/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js +2 -2
  780. package/dist/modern/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
  781. package/dist/modern/ScrollTo/Horizontal/ScrollToHorizontal.js +2 -2
  782. package/dist/modern/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  783. package/dist/modern/ScrollTo/Vertical/ScrollToVertical.js +2 -2
  784. package/dist/modern/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  785. package/dist/modern/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js +7 -4
  786. package/dist/modern/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
  787. package/dist/modern/SelectionList/SelectionList.js +2 -2
  788. package/dist/modern/SelectionList/SelectionList.js.map +1 -1
  789. package/dist/modern/Snackbar/Snackbar.js +2 -2
  790. package/dist/modern/Snackbar/Snackbar.js.map +1 -1
  791. package/dist/modern/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js +2 -2
  792. package/dist/modern/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js.map +1 -1
  793. package/dist/modern/Switch/Switch.js +2 -2
  794. package/dist/modern/Switch/Switch.js.map +1 -1
  795. package/dist/modern/Tab/Tab.js +2 -2
  796. package/dist/modern/Tab/Tab.js.map +1 -1
  797. package/dist/modern/Table/Header/Header.js +4 -2
  798. package/dist/modern/Table/Header/Header.js.map +1 -1
  799. package/dist/modern/Table/NoData/index.js +3 -1
  800. package/dist/modern/Table/NoData/index.js.map +1 -1
  801. package/dist/modern/Table/Table.js +5 -3
  802. package/dist/modern/Table/Table.js.map +1 -1
  803. package/dist/modern/Tabs/Tabs.js +6 -3
  804. package/dist/modern/Tabs/Tabs.js.map +1 -1
  805. package/dist/modern/Tag/Tag.js +6 -4
  806. package/dist/modern/Tag/Tag.js.map +1 -1
  807. package/dist/modern/TagsInput/TagsInput.js +2 -2
  808. package/dist/modern/TagsInput/TagsInput.js.map +1 -1
  809. package/dist/modern/TextArea/TextArea.js +2 -2
  810. package/dist/modern/TextArea/TextArea.js.map +1 -1
  811. package/dist/modern/ToggleButton/ToggleButton.js +2 -2
  812. package/dist/modern/ToggleButton/ToggleButton.js.map +1 -1
  813. package/dist/modern/Tooltip/Tooltip.js +2 -2
  814. package/dist/modern/Tooltip/Tooltip.js.map +1 -1
  815. package/dist/modern/Typography/Typography.js +2 -2
  816. package/dist/modern/Typography/Typography.js.map +1 -1
  817. package/dist/modern/UserPreferences/Action/Action.js +2 -2
  818. package/dist/modern/UserPreferences/Action/Action.js.map +1 -1
  819. package/dist/modern/UserPreferences/Actions/Actions.js +2 -2
  820. package/dist/modern/UserPreferences/Actions/Actions.js.map +1 -1
  821. package/dist/modern/UserPreferences/Options/Group/Group.js +2 -2
  822. package/dist/modern/UserPreferences/Options/Group/Group.js.map +1 -1
  823. package/dist/modern/UserPreferences/Options/Label/Label.js +2 -2
  824. package/dist/modern/UserPreferences/Options/Label/Label.js.map +1 -1
  825. package/dist/modern/UserPreferences/Options/Option.js +2 -2
  826. package/dist/modern/UserPreferences/Options/Option.js.map +1 -1
  827. package/dist/modern/UserPreferences/Options/Options.js +2 -2
  828. package/dist/modern/UserPreferences/Options/Options.js.map +1 -1
  829. package/dist/modern/UserPreferences/UserPreferences.js +2 -2
  830. package/dist/modern/UserPreferences/UserPreferences.js.map +1 -1
  831. package/dist/modern/VerticalNavigation/Actions/Action.js +2 -2
  832. package/dist/modern/VerticalNavigation/Actions/Action.js.map +1 -1
  833. package/dist/modern/VerticalNavigation/Actions/Actions.js +2 -2
  834. package/dist/modern/VerticalNavigation/Actions/Actions.js.map +1 -1
  835. package/dist/modern/VerticalNavigation/Navigation/Navigation.js +2 -2
  836. package/dist/modern/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  837. package/dist/modern/VerticalNavigation/TreeView/TreeView.js +2 -2
  838. package/dist/modern/VerticalNavigation/TreeView/TreeView.js.map +1 -1
  839. package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.js +6 -3
  840. package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  841. package/dist/modern/VerticalNavigation/TreeView/descendants.js +2 -2
  842. package/dist/modern/VerticalNavigation/TreeView/descendants.js.map +1 -1
  843. package/dist/modern/VerticalNavigation/VerticalContainer/VerticalContainer.js +6 -3
  844. package/dist/modern/VerticalNavigation/VerticalContainer/VerticalContainer.js.map +1 -1
  845. package/dist/modern/VerticalNavigation/VerticalNavigation.js +2 -2
  846. package/dist/modern/VerticalNavigation/VerticalNavigation.js.map +1 -1
  847. package/dist/modern/index.d.ts +3 -0
  848. package/dist/modern/index.js +1 -0
  849. package/dist/modern/index.js.map +1 -1
  850. package/dist/modern/withId.js +2 -2
  851. package/dist/modern/withId.js.map +1 -1
  852. package/dist/modern/withTooltip.js +32 -27
  853. package/dist/modern/withTooltip.js.map +1 -1
  854. package/dist/withId.js +2 -2
  855. package/dist/withId.js.map +1 -1
  856. package/dist/withTooltip.js +4 -2
  857. package/dist/withTooltip.js.map +1 -1
  858. package/package.json +5 -5
@@ -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);
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/VerticalNavigation/TreeView/TreeViewItem.js"],"names":["React","useCallback","useContext","useEffect","useMemo","useRef","useState","clsx","PropTypes","withStyles","DropDownXS","DropUpXS","HvTypography","TreeViewControlContext","TreeViewStateContext","setId","useForkRef","DescendantProvider","useDescendant","styles","preventSelection","event","disabled","shiftKey","ctrlKey","metaKey","preventDefault","TreeViewItem","forwardRef","props","ref","id","idProp","className","classes","disabledProp","selectable","selectableProp","nodeId","icon","label","payload","onClick","onMouseDown","onFocus","children","others","treeViewControlContext","isExpanded","isSelected","isFocused","isDisabled","treeId","mode","collapsible","toggleExpansion","multiSelect","selectNode","selectRange","disabledItemsFocusable","registerNode","unregisterNode","mapFirstChar","unMapFirstChar","focus","treeviewMode","treeitemElement","setTreeitemElement","contentRef","handleRef","descendant","element","index","parentId","level","expandable","Boolean","Array","isArray","length","expanded","focused","selected","idAttribute","undefined","current","textContent","substring","toLowerCase","ariaSelected","handleFocus","target","currentTarget","ownerDocument","document","getElementById","preventScroll","unfocusable","handleExpansion","multiple","handleSelection","end","handleMouseDown","handleClick","handleKeyDown","isEventHandled","key","altKey","stopPropagation","renderedContent","content","paddingLeft","role","tabIndex","onKeyDown","renderedChildren","group","node","unselected","unselectable","collapsed","propTypes","string","shape","isRequired","bool","any","func","name"],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\n\nimport { DropDownXS, DropUpXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport HvTypography from \"../../Typography\";\n\nimport { TreeViewControlContext, TreeViewStateContext } from \"./TreeViewContexts\";\n\nimport { setId, useForkRef } from \"../../utils\";\n\nimport { DescendantProvider, useDescendant } from \"./descendants\";\n\nimport styles from \"./styles\";\n\nconst preventSelection = (event, disabled) => {\n if (event.shiftKey || event.ctrlKey || event.metaKey || disabled) {\n // Prevent text selection\n event.preventDefault();\n }\n};\n\nconst TreeViewItem = React.forwardRef((props, ref) => {\n const {\n id: idProp,\n className,\n classes,\n\n disabled: disabledProp = false,\n\n selectable: selectableProp,\n\n nodeId,\n icon = null,\n label,\n payload,\n\n onClick,\n onMouseDown,\n onFocus,\n\n children,\n\n ...others\n } = props;\n\n const treeViewControlContext = useContext(TreeViewControlContext);\n const { isExpanded, isSelected, isFocused, isDisabled } = useContext(TreeViewStateContext);\n\n const {\n treeId,\n mode,\n collapsible,\n toggleExpansion,\n multiSelect,\n selectNode,\n selectRange,\n disabledItemsFocusable,\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n focus,\n } = treeViewControlContext;\n\n const treeviewMode = mode === \"treeview\";\n\n let id = null;\n\n if (idProp != null) {\n id = idProp;\n } else if (treeId && nodeId) {\n id = `${treeId}-${nodeId}`;\n }\n\n const [treeitemElement, setTreeitemElement] = useState(null);\n const contentRef = useRef(null);\n const handleRef = useForkRef(setTreeitemElement, ref);\n\n const descendant = useMemo(\n () => ({\n element: treeitemElement,\n id: nodeId,\n }),\n [nodeId, treeitemElement]\n );\n\n const { index, parentId, level } = useDescendant(descendant);\n\n const expandable = collapsible && Boolean(Array.isArray(children) ? children.length : children);\n const expanded = isExpanded ? isExpanded(nodeId) : false;\n const focused = isFocused ? isFocused(nodeId) : false;\n const selected = isSelected ? isSelected(nodeId) : false;\n const disabled = isDisabled ? isDisabled(nodeId) : false;\n\n const selectable = selectableProp != null ? selectableProp : !collapsible || !expandable;\n\n useEffect(() => {\n // On the first render a node's index will be -1. We want to wait for the real index.\n if (registerNode && unregisterNode && index !== -1) {\n registerNode({\n id: nodeId,\n idAttribute: id,\n index,\n parentId,\n selectable,\n expandable,\n disabled: disabledProp,\n onFocus,\n payload,\n });\n\n return () => {\n unregisterNode(nodeId);\n };\n }\n\n return undefined;\n }, [\n registerNode,\n unregisterNode,\n parentId,\n index,\n nodeId,\n expandable,\n disabledProp,\n id,\n selectable,\n onFocus,\n payload,\n ]);\n\n useEffect(() => {\n if (mapFirstChar && unMapFirstChar && label) {\n mapFirstChar(nodeId, contentRef.current.textContent.substring(0, 1).toLowerCase());\n\n return () => {\n unMapFirstChar(nodeId);\n };\n }\n return undefined;\n }, [mapFirstChar, unMapFirstChar, nodeId, label]);\n\n let ariaSelected;\n if (multiSelect) {\n ariaSelected = selected;\n } else if (selected) {\n /* single-selection trees unset aria-selected on un-selected items.\n *\n * If the tree does not support multiple selection, aria-selected\n * is set to true for the selected node and it is not present on any other node in the tree.\n * Source: https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\n ariaSelected = true;\n }\n\n const handleFocus = useCallback(\n (event) => {\n // DOM focus stays on the tree which manages focus with aria-activedescendant\n if (event.target === event.currentTarget) {\n (event.target.ownerDocument || document)\n .getElementById(treeId)\n .focus({ preventScroll: true });\n }\n\n const unfocusable = !disabledItemsFocusable && disabled;\n if (!focused && event.currentTarget === event.target && !unfocusable) {\n focus(event, nodeId);\n }\n },\n [disabled, disabledItemsFocusable, focus, focused, nodeId, treeId]\n );\n\n const handleExpansion = useCallback(\n (event) => {\n if (!disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n // If already expanded and trying to toggle selection don't close\n if (expandable && !(multiple && isExpanded(nodeId))) {\n toggleExpansion(event, nodeId);\n }\n }\n },\n [\n disabled,\n expandable,\n focus,\n focused,\n isExpanded,\n multiSelect,\n nodeId,\n toggleExpansion,\n treeviewMode,\n ]\n );\n\n const handleSelection = useCallback(\n (event) => {\n if (selectable && !disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n if (multiple) {\n if (event.shiftKey) {\n selectRange(event, { end: nodeId });\n } else {\n selectNode(event, nodeId, true);\n }\n } else {\n selectNode(event, nodeId);\n }\n }\n },\n [\n disabled,\n focus,\n focused,\n multiSelect,\n nodeId,\n selectNode,\n selectRange,\n selectable,\n treeviewMode,\n ]\n );\n\n const handleMouseDown = useCallback(\n (event) => {\n preventSelection(event, disabled);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n },\n [disabled, onMouseDown]\n );\n\n const handleClick = useCallback(\n (event) => {\n if (!disabled) {\n if (expandable) {\n handleExpansion(event);\n }\n\n if (selectable) {\n handleSelection(event);\n }\n }\n\n if (onClick) {\n onClick(event);\n }\n },\n [disabled, expandable, handleExpansion, handleSelection, onClick, selectable]\n );\n\n const handleKeyDown = useCallback(\n (event) => {\n let isEventHandled = false;\n const { key } = event;\n\n if (event.altKey || event.ctrlKey || event.metaKey || event.currentTarget !== event.target) {\n return;\n }\n if (contentRef.current === event.currentTarget) {\n if (key === \"Enter\" || key === \" \") {\n if (expandable) {\n isEventHandled = handleExpansion(event);\n }\n\n if (selectable) {\n isEventHandled = handleSelection(event);\n }\n }\n\n if (isEventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n },\n [expandable, handleExpansion, handleSelection, selectable]\n );\n\n const renderedContent = useMemo(\n () => (\n <HvTypography\n id={setId(id, \"button\")}\n component=\"div\"\n innerRef={contentRef}\n className={classes.content}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n style={{\n paddingLeft: (expandable || icon != null ? 0 : 10) + level * (collapsible ? 32 : 10),\n }}\n {...(treeviewMode\n ? {\n role: \"button\",\n tabIndex: -1,\n onFocus: handleFocus,\n }\n : {\n role: \"button\",\n tabIndex: selectable || expandable ? 0 : -1,\n onKeyDown: handleKeyDown,\n \"aria-current\": selectable && selected ? \"page\" : undefined,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-controls\": expandable ? setId(id, \"group\") : undefined,\n })}\n >\n {expandable && (expanded ? <DropUpXS /> : <DropDownXS />)}\n {icon}\n {label}\n </HvTypography>\n ),\n [\n id,\n classes.content,\n handleClick,\n handleMouseDown,\n expandable,\n level,\n collapsible,\n treeviewMode,\n handleFocus,\n handleKeyDown,\n selectable,\n selected,\n expanded,\n icon,\n label,\n ]\n );\n\n const renderedChildren = useMemo(\n () =>\n children && (\n <ul\n id={setId(id, \"group\")}\n className={classes.group}\n role={treeviewMode ? \"group\" : undefined}\n >\n {children}\n </ul>\n ),\n [children, classes.group, id, treeviewMode]\n );\n\n return (\n <li\n ref={handleRef}\n id={id}\n className={clsx(classes.node, className, {\n [classes.disabled]: disabled,\n [classes.expandable]: expandable,\n [classes.collapsed]: expandable && !expanded,\n [classes.expanded]: expandable && expanded,\n [classes.selectable]: !disabled && selectable,\n [classes.unselectable]: !disabled && !selectable,\n [classes.selected]: !disabled && selectable && selected,\n [classes.unselected]: !disabled && selectable && !selected,\n [classes.focused]: focused,\n })}\n data-hasicon={icon != null ? true : undefined}\n {...(mode === \"treeview\" && {\n role: \"treeitem\",\n \"aria-selected\": ariaSelected,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-disabled\": disabled ? true : undefined,\n })}\n {...others}\n >\n {renderedContent}\n <DescendantProvider id={nodeId} level={level + 1}>\n {renderedChildren}\n </DescendantProvider>\n </li>\n );\n});\n\nTreeViewItem.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 the root of the component.\n */\n node: PropTypes.string,\n /**\n * Style applied to the content.\n */\n content: PropTypes.string,\n /**\n * Style applied to the group.\n */\n group: PropTypes.string,\n /**\n * Style applied when item is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Style applied when item is expandable.\n */\n expandable: PropTypes.string,\n /**\n * Style applied when item is collapsed.\n */\n collapsed: PropTypes.string,\n /**\n * Style applied when item is expanded.\n */\n expanded: PropTypes.string,\n /**\n * Style applied when item is selectable.\n */\n selectable: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselectable: PropTypes.string,\n /**\n * Style applied when item is selected.\n */\n selected: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselected: PropTypes.string,\n /**\n * Style applied when item is focused.\n */\n focused: PropTypes.string,\n }).isRequired,\n /**\n * Is the node disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Can the node be selected.\n */\n selectable: PropTypes.bool,\n /**\n * The id of the node.\n */\n nodeId: PropTypes.string.isRequired,\n /**\n * The icon to display next to the node's label.\n */\n icon: PropTypes.node,\n /**\n * The item label.\n */\n label: PropTypes.node.isRequired,\n /**\n * The node payload.\n */\n // eslint-disable-next-line react/forbid-prop-types\n payload: PropTypes.any,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, {\n name: \"HvVerticalNavigationTreeViewItem\",\n})(TreeViewItem);\n"],"file":"TreeViewItem.js"}
1
+ {"version":3,"sources":["../../../../src/VerticalNavigation/TreeView/TreeViewItem.js"],"names":["React","useCallback","useContext","useEffect","useMemo","useRef","useState","clsx","PropTypes","withStyles","DropDownXS","DropUpXS","HvTypography","TreeViewControlContext","TreeViewStateContext","setId","useForkRef","DescendantProvider","useDescendant","styles","preventSelection","event","disabled","shiftKey","ctrlKey","metaKey","preventDefault","TreeViewItem","forwardRef","props","ref","id","idProp","className","classes","disabledProp","selectable","selectableProp","nodeId","icon","label","payload","onClick","onMouseDown","onFocus","children","others","treeViewControlContext","isExpanded","isSelected","isFocused","isDisabled","treeId","mode","collapsible","toggleExpansion","multiSelect","selectNode","selectRange","disabledItemsFocusable","registerNode","unregisterNode","mapFirstChar","unMapFirstChar","focus","treeviewMode","treeitemElement","setTreeitemElement","contentRef","handleRef","descendant","element","index","parentId","level","expandable","Boolean","Array","isArray","length","expanded","focused","selected","idAttribute","undefined","current","textContent","substring","toLowerCase","ariaSelected","handleFocus","target","currentTarget","ownerDocument","document","getElementById","preventScroll","unfocusable","handleExpansion","multiple","handleSelection","end","handleMouseDown","handleClick","handleKeyDown","isEventHandled","key","altKey","stopPropagation","renderedContent","content","paddingLeft","role","tabIndex","onKeyDown","renderedChildren","group","node","unselected","unselectable","collapsed","propTypes","string","shape","isRequired","bool","any","func","name"],"mappings":"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","sourcesContent":["import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\n\nimport { DropDownXS, DropUpXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport HvTypography from \"../../Typography\";\n\nimport { TreeViewControlContext, TreeViewStateContext } from \"./TreeViewContexts\";\n\nimport { setId, useForkRef } from \"../../utils\";\n\nimport { DescendantProvider, useDescendant } from \"./descendants\";\n\nimport styles from \"./styles\";\n\nconst preventSelection = (event, disabled) => {\n if (event.shiftKey || event.ctrlKey || event.metaKey || disabled) {\n // Prevent text selection\n event.preventDefault();\n }\n};\n\nconst TreeViewItem = React.forwardRef((props, ref) => {\n const {\n id: idProp,\n className,\n classes,\n\n disabled: disabledProp = false,\n\n selectable: selectableProp,\n\n nodeId,\n icon = null,\n label,\n payload,\n\n onClick,\n onMouseDown,\n onFocus,\n\n children,\n\n ...others\n } = props;\n\n const treeViewControlContext = useContext(TreeViewControlContext);\n const { isExpanded, isSelected, isFocused, isDisabled } = useContext(TreeViewStateContext);\n\n const {\n treeId,\n mode,\n collapsible,\n toggleExpansion,\n multiSelect,\n selectNode,\n selectRange,\n disabledItemsFocusable,\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n focus,\n } = treeViewControlContext;\n\n const treeviewMode = mode === \"treeview\";\n\n let id = null;\n\n if (idProp != null) {\n id = idProp;\n } else if (treeId && nodeId) {\n id = `${treeId}-${nodeId}`;\n }\n\n const [treeitemElement, setTreeitemElement] = useState(null);\n const contentRef = useRef(null);\n const handleRef = useForkRef(setTreeitemElement, ref);\n\n const descendant = useMemo(\n () => ({\n element: treeitemElement,\n id: nodeId,\n }),\n [nodeId, treeitemElement]\n );\n\n const { index, parentId, level } = useDescendant(descendant);\n\n const expandable = collapsible && Boolean(Array.isArray(children) ? children.length : children);\n const expanded = isExpanded ? isExpanded(nodeId) : false;\n const focused = isFocused ? isFocused(nodeId) : false;\n const selected = isSelected ? isSelected(nodeId) : false;\n const disabled = isDisabled ? isDisabled(nodeId) : false;\n\n const selectable = selectableProp != null ? selectableProp : !collapsible || !expandable;\n\n useEffect(() => {\n // On the first render a node's index will be -1. We want to wait for the real index.\n if (registerNode && unregisterNode && index !== -1) {\n registerNode({\n id: nodeId,\n idAttribute: id,\n index,\n parentId,\n selectable,\n expandable,\n disabled: disabledProp,\n onFocus,\n payload,\n });\n\n return () => {\n unregisterNode(nodeId);\n };\n }\n\n return undefined;\n }, [\n registerNode,\n unregisterNode,\n parentId,\n index,\n nodeId,\n expandable,\n disabledProp,\n id,\n selectable,\n onFocus,\n payload,\n ]);\n\n useEffect(() => {\n if (mapFirstChar && unMapFirstChar && label) {\n mapFirstChar(nodeId, contentRef.current.textContent.substring(0, 1).toLowerCase());\n\n return () => {\n unMapFirstChar(nodeId);\n };\n }\n return undefined;\n }, [mapFirstChar, unMapFirstChar, nodeId, label]);\n\n let ariaSelected;\n if (multiSelect) {\n ariaSelected = selected;\n } else if (selected) {\n /* single-selection trees unset aria-selected on un-selected items.\n *\n * If the tree does not support multiple selection, aria-selected\n * is set to true for the selected node and it is not present on any other node in the tree.\n * Source: https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\n ariaSelected = true;\n }\n\n const handleFocus = useCallback(\n (event) => {\n // DOM focus stays on the tree which manages focus with aria-activedescendant\n if (event.target === event.currentTarget) {\n (event.target.ownerDocument || document)\n .getElementById(treeId)\n .focus({ preventScroll: true });\n }\n\n const unfocusable = !disabledItemsFocusable && disabled;\n if (!focused && event.currentTarget === event.target && !unfocusable) {\n focus(event, nodeId);\n }\n },\n [disabled, disabledItemsFocusable, focus, focused, nodeId, treeId]\n );\n\n const handleExpansion = useCallback(\n (event) => {\n if (!disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n // If already expanded and trying to toggle selection don't close\n if (expandable && !(multiple && isExpanded(nodeId))) {\n toggleExpansion(event, nodeId);\n }\n }\n },\n [\n disabled,\n expandable,\n focus,\n focused,\n isExpanded,\n multiSelect,\n nodeId,\n toggleExpansion,\n treeviewMode,\n ]\n );\n\n const handleSelection = useCallback(\n (event) => {\n if (selectable && !disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n if (multiple) {\n if (event.shiftKey) {\n selectRange(event, { end: nodeId });\n } else {\n selectNode(event, nodeId, true);\n }\n } else {\n selectNode(event, nodeId);\n }\n }\n },\n [\n disabled,\n focus,\n focused,\n multiSelect,\n nodeId,\n selectNode,\n selectRange,\n selectable,\n treeviewMode,\n ]\n );\n\n const handleMouseDown = useCallback(\n (event) => {\n preventSelection(event, disabled);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n },\n [disabled, onMouseDown]\n );\n\n const handleClick = useCallback(\n (event) => {\n if (!disabled) {\n if (expandable) {\n handleExpansion(event);\n }\n\n if (selectable) {\n handleSelection(event);\n }\n }\n\n if (onClick) {\n onClick(event);\n }\n },\n [disabled, expandable, handleExpansion, handleSelection, onClick, selectable]\n );\n\n const handleKeyDown = useCallback(\n (event) => {\n let isEventHandled = false;\n const { key } = event;\n\n if (event.altKey || event.ctrlKey || event.metaKey || event.currentTarget !== event.target) {\n return;\n }\n if (contentRef.current === event.currentTarget) {\n if (key === \"Enter\" || key === \" \") {\n if (expandable) {\n isEventHandled = handleExpansion(event);\n }\n\n if (selectable) {\n isEventHandled = handleSelection(event);\n }\n }\n\n if (isEventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n },\n [expandable, handleExpansion, handleSelection, selectable]\n );\n\n const renderedContent = useMemo(\n () => (\n <HvTypography\n id={setId(id, \"button\")}\n component=\"div\"\n innerRef={contentRef}\n className={classes.content}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n style={{\n paddingLeft: (expandable || icon != null ? 0 : 10) + level * (collapsible ? 32 : 10),\n }}\n {...(treeviewMode\n ? {\n role: \"button\",\n tabIndex: -1,\n onFocus: handleFocus,\n }\n : {\n role: \"button\",\n tabIndex: selectable || expandable ? 0 : -1,\n onKeyDown: handleKeyDown,\n \"aria-current\": selectable && selected ? \"page\" : undefined,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-controls\": expandable ? setId(id, \"group\") : undefined,\n })}\n >\n {expandable && (expanded ? <DropUpXS /> : <DropDownXS />)}\n {icon}\n {label}\n </HvTypography>\n ),\n [\n id,\n classes.content,\n handleClick,\n handleMouseDown,\n expandable,\n level,\n collapsible,\n treeviewMode,\n handleFocus,\n handleKeyDown,\n selectable,\n selected,\n expanded,\n icon,\n label,\n ]\n );\n\n const renderedChildren = useMemo(\n () =>\n children && (\n <ul\n id={setId(id, \"group\")}\n className={classes.group}\n role={treeviewMode ? \"group\" : undefined}\n >\n {children}\n </ul>\n ),\n [children, classes.group, id, treeviewMode]\n );\n\n return (\n <li\n ref={handleRef}\n id={id}\n className={clsx(classes.node, className, {\n [classes.disabled]: disabled,\n [classes.expandable]: expandable,\n [classes.collapsed]: expandable && !expanded,\n [classes.expanded]: expandable && expanded,\n [classes.selectable]: !disabled && selectable,\n [classes.unselectable]: !disabled && !selectable,\n [classes.selected]: !disabled && selectable && selected,\n [classes.unselected]: !disabled && selectable && !selected,\n [classes.focused]: focused,\n })}\n data-hasicon={icon != null ? true : undefined}\n {...(mode === \"treeview\" && {\n role: \"treeitem\",\n \"aria-selected\": ariaSelected,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-disabled\": disabled ? true : undefined,\n })}\n {...others}\n >\n {renderedContent}\n <DescendantProvider id={nodeId} level={level + 1}>\n {renderedChildren}\n </DescendantProvider>\n </li>\n );\n});\n\nTreeViewItem.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 the root of the component.\n */\n node: PropTypes.string,\n /**\n * Style applied to the content.\n */\n content: PropTypes.string,\n /**\n * Style applied to the group.\n */\n group: PropTypes.string,\n /**\n * Style applied when item is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Style applied when item is expandable.\n */\n expandable: PropTypes.string,\n /**\n * Style applied when item is collapsed.\n */\n collapsed: PropTypes.string,\n /**\n * Style applied when item is expanded.\n */\n expanded: PropTypes.string,\n /**\n * Style applied when item is selectable.\n */\n selectable: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselectable: PropTypes.string,\n /**\n * Style applied when item is selected.\n */\n selected: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselected: PropTypes.string,\n /**\n * Style applied when item is focused.\n */\n focused: PropTypes.string,\n }).isRequired,\n /**\n * Is the node disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Can the node be selected.\n */\n selectable: PropTypes.bool,\n /**\n * The id of the node.\n */\n nodeId: PropTypes.string.isRequired,\n /**\n * The icon to display next to the node's label.\n */\n icon: PropTypes.node,\n /**\n * The item label.\n */\n label: PropTypes.node.isRequired,\n /**\n * The node payload.\n */\n // eslint-disable-next-line react/forbid-prop-types\n payload: PropTypes.any,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, {\n name: \"HvVerticalNavigationTreeViewItem\",\n})(TreeViewItem);\n"],"file":"TreeViewItem.js"}
@@ -206,9 +206,9 @@ export function DescendantProvider(props) {
206
206
  value: value
207
207
  }, children);
208
208
  }
209
- DescendantProvider.propTypes = {
209
+ process.env.NODE_ENV !== "production" ? DescendantProvider.propTypes = {
210
210
  children: PropTypes.node,
211
211
  id: PropTypes.string,
212
212
  level: PropTypes.number
213
- };
213
+ } : void 0;
214
214
  //# sourceMappingURL=descendants.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../../../../src/VerticalNavigation/TreeView/descendants.js"],"names":["React","PropTypes","useEnhancedEffect","findIndex","array","comp","i","length","binaryFindElement","element","start","end","middle","Math","floor","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DescendantContext","createContext","level","process","env","NODE_ENV","displayName","usePrevious","value","ref","useRef","useEffect","current","noop","useDescendant","descendant","forceUpdate","useState","registerDescendant","unregisterDescendant","descendants","parentId","useContext","index","item","previousDescendants","someDescendantsHaveChanged","some","newDescendant","position","undefined","DescendantProvider","props","children","id","items","set","useCallback","other","oldItems","newItems","newItem","slice","splice","forEach","filter","useMemo","propTypes","node","string","number"],"mappings":"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","sourcesContent":["/**\n * Copied from https://github.com/mui-org/material-ui/blob/8763de1633d80295e7b83d8c21040dad333e6699/packages/material-ui-lab/src/TreeView/descendants.js\n * Credit: https://github.com/reach/reach-ui/blob/86a046f54d53b6420e392b3fa56dd991d9d4e458/packages/descendants/README.md\n *\n * - Added level (depth) property.\n * - Use local copy of useEnhancedEffect.\n */\n\nimport * as React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { useEnhancedEffect } from \"../../utils\";\n\n// To replace with .findIndex() once we stop IE11 support.\nfunction findIndex(array, comp) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction binaryFindElement(array, element) {\n let start = 0;\n let end = array.length - 1;\n\n while (start <= end) {\n const middle = Math.floor((start + end) / 2);\n\n if (array[middle].element === element) {\n return middle;\n }\n\n // eslint-disable-next-line no-bitwise\n if (array[middle].element.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_PRECEDING) {\n end = middle - 1;\n } else {\n start = middle + 1;\n }\n }\n\n return start;\n}\n\nconst DescendantContext = React.createContext({ level: 0 });\n\nif (process.env.NODE_ENV !== \"production\") {\n DescendantContext.displayName = \"DescendantContext\";\n}\n\nfunction usePrevious(value) {\n const ref = React.useRef(null);\n React.useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nconst noop = () => {};\n\n/**\n * This hook registers our descendant by passing it into an array. We can then\n * search that array by to find its index when registering it in the component.\n * We use this for focus management, keyboard navigation, and typeahead\n * functionality for some components.\n *\n * The hook accepts the element node\n *\n * Our main goals with this are:\n * 1) maximum composability,\n * 2) minimal API friction\n * 3) SSR compatibility*\n * 4) concurrent safe\n * 5) index always up-to-date with the tree despite changes\n * 6) works with memoization of any component in the tree (hopefully)\n *\n * * As for SSR, the good news is that we don't actually need the index on the\n * server for most use-cases, as we are only using it to determine the order of\n * composed descendants for keyboard navigation.\n */\nexport function useDescendant(descendant) {\n const [, forceUpdate] = React.useState();\n const {\n registerDescendant = noop,\n unregisterDescendant = noop,\n descendants = [],\n parentId = null,\n level = 0,\n } = React.useContext(DescendantContext);\n\n // This will initially return -1 because we haven't registered the descendant\n // on the first render. After we register, this will then return the correct\n // index on the following render and we will re-register descendants\n // so that everything is up-to-date before the user interacts with a\n // collection.\n const index = findIndex(descendants, (item) => item.element === descendant.element);\n\n const previousDescendants = usePrevious(descendants);\n\n // We also need to re-register descendants any time ANY of the other\n // descendants have changed. My brain was melting when I wrote this and it\n // feels a little off, but checking in render and using the result in the\n // effect's dependency array works well enough.\n const someDescendantsHaveChanged = descendants.some((newDescendant, position) => {\n return (\n previousDescendants &&\n previousDescendants[position] &&\n previousDescendants[position].element !== newDescendant.element\n );\n });\n\n // Prevent any flashing\n useEnhancedEffect(() => {\n if (descendant.element) {\n registerDescendant({\n ...descendant,\n index,\n });\n return () => {\n unregisterDescendant(descendant.element);\n };\n }\n forceUpdate({});\n\n return undefined;\n }, [registerDescendant, unregisterDescendant, index, someDescendantsHaveChanged, descendant]);\n\n return { parentId, index, level };\n}\n\nexport function DescendantProvider(props) {\n const { children, id, level } = props;\n\n const [items, set] = React.useState([]);\n\n const registerDescendant = React.useCallback(({ element, ...other }) => {\n set((oldItems) => {\n let newItems;\n if (oldItems.length === 0) {\n // If there are no items, register at index 0 and bail.\n return [\n {\n ...other,\n element,\n index: 0,\n },\n ];\n }\n\n const index = binaryFindElement(oldItems, element);\n\n if (oldItems[index] && oldItems[index].element === element) {\n // If the element is already registered, just use the same array\n newItems = oldItems;\n } else {\n // When registering a descendant, we need to make sure we insert in\n // into the array in the same order that it appears in the DOM. So as\n // new descendants are added or maybe some are removed, we always know\n // that the array is up-to-date and correct.\n //\n // So here we look at our registered descendants and see if the new\n // element we are adding appears earlier than an existing descendant's\n // DOM node via `node.compareDocumentPosition`. If it does, we insert\n // the new element at this index. Because `registerDescendant` will be\n // called in an effect every time the descendants state value changes,\n // we should be sure that this index is accurate when descendent\n // elements come or go from our component.\n\n const newItem = {\n ...other,\n element,\n index,\n };\n\n // If an index is not found we will push the element to the end.\n newItems = oldItems.slice();\n newItems.splice(index, 0, newItem);\n }\n newItems.forEach((item, position) => {\n // eslint-disable-next-line no-param-reassign\n item.index = position;\n });\n return newItems;\n });\n }, []);\n\n const unregisterDescendant = React.useCallback((element) => {\n set((oldItems) => oldItems.filter((item) => element !== item.element));\n }, []);\n\n const value = React.useMemo(\n () => ({\n descendants: items,\n registerDescendant,\n unregisterDescendant,\n parentId: id,\n level,\n }),\n [items, registerDescendant, unregisterDescendant, id, level]\n );\n\n return <DescendantContext.Provider value={value}>{children}</DescendantContext.Provider>;\n}\n\nDescendantProvider.propTypes = {\n children: PropTypes.node,\n id: PropTypes.string,\n level: PropTypes.number,\n};\n"],"file":"descendants.js"}
1
+ {"version":3,"sources":["../../../../src/VerticalNavigation/TreeView/descendants.js"],"names":["React","PropTypes","useEnhancedEffect","findIndex","array","comp","i","length","binaryFindElement","element","start","end","middle","Math","floor","compareDocumentPosition","Node","DOCUMENT_POSITION_PRECEDING","DescendantContext","createContext","level","process","env","NODE_ENV","displayName","usePrevious","value","ref","useRef","useEffect","current","noop","useDescendant","descendant","forceUpdate","useState","registerDescendant","unregisterDescendant","descendants","parentId","useContext","index","item","previousDescendants","someDescendantsHaveChanged","some","newDescendant","position","undefined","DescendantProvider","props","children","id","items","set","useCallback","other","oldItems","newItems","newItem","slice","splice","forEach","filter","useMemo","propTypes","node","string","number"],"mappings":"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","sourcesContent":["/**\n * Copied from https://github.com/mui-org/material-ui/blob/8763de1633d80295e7b83d8c21040dad333e6699/packages/material-ui-lab/src/TreeView/descendants.js\n * Credit: https://github.com/reach/reach-ui/blob/86a046f54d53b6420e392b3fa56dd991d9d4e458/packages/descendants/README.md\n *\n * - Added level (depth) property.\n * - Use local copy of useEnhancedEffect.\n */\n\nimport * as React from \"react\";\nimport PropTypes from \"prop-types\";\n\nimport { useEnhancedEffect } from \"../../utils\";\n\n// To replace with .findIndex() once we stop IE11 support.\nfunction findIndex(array, comp) {\n for (let i = 0; i < array.length; i += 1) {\n if (comp(array[i])) {\n return i;\n }\n }\n\n return -1;\n}\n\nfunction binaryFindElement(array, element) {\n let start = 0;\n let end = array.length - 1;\n\n while (start <= end) {\n const middle = Math.floor((start + end) / 2);\n\n if (array[middle].element === element) {\n return middle;\n }\n\n // eslint-disable-next-line no-bitwise\n if (array[middle].element.compareDocumentPosition(element) & Node.DOCUMENT_POSITION_PRECEDING) {\n end = middle - 1;\n } else {\n start = middle + 1;\n }\n }\n\n return start;\n}\n\nconst DescendantContext = React.createContext({ level: 0 });\n\nif (process.env.NODE_ENV !== \"production\") {\n DescendantContext.displayName = \"DescendantContext\";\n}\n\nfunction usePrevious(value) {\n const ref = React.useRef(null);\n React.useEffect(() => {\n ref.current = value;\n }, [value]);\n return ref.current;\n}\n\nconst noop = () => {};\n\n/**\n * This hook registers our descendant by passing it into an array. We can then\n * search that array by to find its index when registering it in the component.\n * We use this for focus management, keyboard navigation, and typeahead\n * functionality for some components.\n *\n * The hook accepts the element node\n *\n * Our main goals with this are:\n * 1) maximum composability,\n * 2) minimal API friction\n * 3) SSR compatibility*\n * 4) concurrent safe\n * 5) index always up-to-date with the tree despite changes\n * 6) works with memoization of any component in the tree (hopefully)\n *\n * * As for SSR, the good news is that we don't actually need the index on the\n * server for most use-cases, as we are only using it to determine the order of\n * composed descendants for keyboard navigation.\n */\nexport function useDescendant(descendant) {\n const [, forceUpdate] = React.useState();\n const {\n registerDescendant = noop,\n unregisterDescendant = noop,\n descendants = [],\n parentId = null,\n level = 0,\n } = React.useContext(DescendantContext);\n\n // This will initially return -1 because we haven't registered the descendant\n // on the first render. After we register, this will then return the correct\n // index on the following render and we will re-register descendants\n // so that everything is up-to-date before the user interacts with a\n // collection.\n const index = findIndex(descendants, (item) => item.element === descendant.element);\n\n const previousDescendants = usePrevious(descendants);\n\n // We also need to re-register descendants any time ANY of the other\n // descendants have changed. My brain was melting when I wrote this and it\n // feels a little off, but checking in render and using the result in the\n // effect's dependency array works well enough.\n const someDescendantsHaveChanged = descendants.some((newDescendant, position) => {\n return (\n previousDescendants &&\n previousDescendants[position] &&\n previousDescendants[position].element !== newDescendant.element\n );\n });\n\n // Prevent any flashing\n useEnhancedEffect(() => {\n if (descendant.element) {\n registerDescendant({\n ...descendant,\n index,\n });\n return () => {\n unregisterDescendant(descendant.element);\n };\n }\n forceUpdate({});\n\n return undefined;\n }, [registerDescendant, unregisterDescendant, index, someDescendantsHaveChanged, descendant]);\n\n return { parentId, index, level };\n}\n\nexport function DescendantProvider(props) {\n const { children, id, level } = props;\n\n const [items, set] = React.useState([]);\n\n const registerDescendant = React.useCallback(({ element, ...other }) => {\n set((oldItems) => {\n let newItems;\n if (oldItems.length === 0) {\n // If there are no items, register at index 0 and bail.\n return [\n {\n ...other,\n element,\n index: 0,\n },\n ];\n }\n\n const index = binaryFindElement(oldItems, element);\n\n if (oldItems[index] && oldItems[index].element === element) {\n // If the element is already registered, just use the same array\n newItems = oldItems;\n } else {\n // When registering a descendant, we need to make sure we insert in\n // into the array in the same order that it appears in the DOM. So as\n // new descendants are added or maybe some are removed, we always know\n // that the array is up-to-date and correct.\n //\n // So here we look at our registered descendants and see if the new\n // element we are adding appears earlier than an existing descendant's\n // DOM node via `node.compareDocumentPosition`. If it does, we insert\n // the new element at this index. Because `registerDescendant` will be\n // called in an effect every time the descendants state value changes,\n // we should be sure that this index is accurate when descendent\n // elements come or go from our component.\n\n const newItem = {\n ...other,\n element,\n index,\n };\n\n // If an index is not found we will push the element to the end.\n newItems = oldItems.slice();\n newItems.splice(index, 0, newItem);\n }\n newItems.forEach((item, position) => {\n // eslint-disable-next-line no-param-reassign\n item.index = position;\n });\n return newItems;\n });\n }, []);\n\n const unregisterDescendant = React.useCallback((element) => {\n set((oldItems) => oldItems.filter((item) => element !== item.element));\n }, []);\n\n const value = React.useMemo(\n () => ({\n descendants: items,\n registerDescendant,\n unregisterDescendant,\n parentId: id,\n level,\n }),\n [items, registerDescendant, unregisterDescendant, id, level]\n );\n\n return <DescendantContext.Provider value={value}>{children}</DescendantContext.Provider>;\n}\n\nDescendantProvider.propTypes = {\n children: PropTypes.node,\n id: PropTypes.string,\n level: PropTypes.number,\n};\n"],"file":"descendants.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 _Menu;
5
+
3
6
  const _excluded = ["id", "className", "classes", "isAnchorBarVisible", "isOpen", "toggleOpenCallback", "buttonAriaLabel", "children", "position", "closeOnExit"];
4
7
  import "core-js/modules/web.dom-collections.iterator.js";
5
8
  import React, { useCallback, useEffect, useMemo, useRef, useState } from "react";
@@ -106,7 +109,7 @@ const VerticalContainer = _ref => {
106
109
  onClick: () => toggleOpen(),
107
110
  "aria-label": buttonAriaLabel || open && "close" || !open && "open",
108
111
  icon: true
109
- }, /*#__PURE__*/React.createElement(Menu, null))), [buttonAriaLabel, classes.anchorBar, classes.button, id, open, toggleOpen]);
112
+ }, _Menu || (_Menu = /*#__PURE__*/React.createElement(Menu, null)))), [buttonAriaLabel, classes.anchorBar, classes.button, id, open, toggleOpen]);
110
113
  const renderedContainer = useMemo(() => /*#__PURE__*/React.createElement(React.Fragment, null, isAnchorBarVisible && /*#__PURE__*/React.createElement("div", {
111
114
  className: classes.separator
112
115
  }), /*#__PURE__*/React.createElement("div", {
@@ -130,7 +133,7 @@ const VerticalContainer = _ref => {
130
133
  }, others), isAnchorBarVisible && renderedAnchorBar, open && renderedContainer)));
131
134
  };
132
135
 
133
- VerticalContainer.propTypes = {
136
+ process.env.NODE_ENV !== "production" ? VerticalContainer.propTypes = {
134
137
  /**
135
138
  * Identifier.
136
139
  */
@@ -235,7 +238,7 @@ VerticalContainer.propTypes = {
235
238
  * Defines if the content pane should close when losing focus / clicking outside.
236
239
  */
237
240
  closeOnExit: PropTypes.bool
238
- };
241
+ } : void 0;
239
242
  export default withStyles(styles, {
240
243
  name: "HvVerticalNavigationVerticalContainer"
241
244
  })(VerticalContainer);