@hitachivantara/uikit-react-core 3.68.1 → 3.68.4

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 (282) hide show
  1. package/dist/Accordion/Accordion.js.map +1 -1
  2. package/dist/ActionBar/ActionBar.js.map +1 -1
  3. package/dist/ActionsGeneric/ActionsGeneric.js.map +1 -1
  4. package/dist/AppSwitcher/Action/Action.js.map +1 -1
  5. package/dist/AppSwitcher/AppSwitcher.js.map +1 -1
  6. package/dist/AppSwitcher/TitleWithTooltip.js.map +1 -1
  7. package/dist/AssetInventory/AssetInventory.js.map +1 -1
  8. package/dist/AssetInventory/CardView/CardView.js.map +1 -1
  9. package/dist/AssetInventory/ListView/ListView.js.map +1 -1
  10. package/dist/AssetInventory/ListView/ListViewCell/ListViewCell.js.map +1 -1
  11. package/dist/AssetInventory/ListView/ListViewCell/styles.js.map +1 -1
  12. package/dist/AssetInventory/ListView/ListViewContext/ListViewContext.js.map +1 -1
  13. package/dist/AssetInventory/ListView/ListViewHeaderRow/ListViewHeaderRow.js.map +1 -1
  14. package/dist/AssetInventory/ListView/ListViewRow/ListViewRow.js.map +1 -1
  15. package/dist/AssetInventory/Multibutton/Multibutton.js.map +1 -1
  16. package/dist/AssetInventory/Search/Search.js.map +1 -1
  17. package/dist/AssetInventory/Sort/Sort.js.map +1 -1
  18. package/dist/AssetInventory/setActionsId.js.map +1 -1
  19. package/dist/Avatar/Avatar.js.map +1 -1
  20. package/dist/Badge/Badge.js.map +1 -1
  21. package/dist/Banner/Banner.js.map +1 -1
  22. package/dist/Banner/BannerWrapper/ActionContainer/ActionContainer.js.map +1 -1
  23. package/dist/Banner/BannerWrapper/ActionContainer/styles.js.map +1 -1
  24. package/dist/Banner/BannerWrapper/BannerContentWrapper.js.map +1 -1
  25. package/dist/Banner/BannerWrapper/MessageContainer/MessageContainer.js.map +1 -1
  26. package/dist/BaseCheckBox/BaseCheckBox.js.map +1 -1
  27. package/dist/BaseDropdown/BaseDropdown.js.map +1 -1
  28. package/dist/BaseDropdown/BaseDropdownContext/BaseDropdownContext.js.map +1 -1
  29. package/dist/BaseInput/BaseInput.js.map +1 -1
  30. package/dist/BaseInput/validations.js.map +1 -1
  31. package/dist/BaseRadio/BaseRadio.js.map +1 -1
  32. package/dist/BaseSwitch/BaseSwitch.js.map +1 -1
  33. package/dist/BreadCrumb/BreadCrumb.js.map +1 -1
  34. package/dist/BreadCrumb/utils.js.map +1 -1
  35. package/dist/BulkActions/BulkActions.js.map +1 -1
  36. package/dist/BulkActions/styles.js.map +1 -1
  37. package/dist/Button/Button.js.map +1 -1
  38. package/dist/Button/materialConfigurarion.js.map +1 -1
  39. package/dist/Button/styles.js.map +1 -1
  40. package/dist/Calendar/Calendar.js.map +1 -1
  41. package/dist/Calendar/CalendarHeader/CalendarHeader.js.map +1 -1
  42. package/dist/Calendar/CalendarNavigation/ComposedNavigation/ComposedNavigation.js.map +1 -1
  43. package/dist/Calendar/CalendarNavigation/MonthSelector/MonthSelector.js.map +1 -1
  44. package/dist/Calendar/CalendarNavigation/Navigation/Navigation.js.map +1 -1
  45. package/dist/Calendar/CalendarWeekLabels/CalendarWeekLabels.js.map +1 -1
  46. package/dist/Calendar/SingleCalendar/CalendarCell.js.map +1 -1
  47. package/dist/Calendar/SingleCalendar/SingleCalendar.js.map +1 -1
  48. package/dist/Calendar/model.js.map +1 -1
  49. package/dist/Calendar/utils.js.map +1 -1
  50. package/dist/Card/Card.js.map +1 -1
  51. package/dist/Card/Content/Content.js.map +1 -1
  52. package/dist/Card/Header/Header.js.map +1 -1
  53. package/dist/Card/Media/Media.js.map +1 -1
  54. package/dist/Card/styles.js.map +1 -1
  55. package/dist/CheckBox/CheckBox.js.map +1 -1
  56. package/dist/CheckBoxGroup/CheckBoxGroup.js.map +1 -1
  57. package/dist/Container/Container.js.map +1 -1
  58. package/dist/DatePicker/DatePicker.js.map +1 -1
  59. package/dist/DatePicker/useVisibleDate.js.map +1 -1
  60. package/dist/DatePicker/utils.js.map +1 -1
  61. package/dist/Dialog/Dialog.js.map +1 -1
  62. package/dist/Dialog/DialogActions/DialogActions.js.map +1 -1
  63. package/dist/Dialog/DialogContent/DialogContent.js.map +1 -1
  64. package/dist/Dialog/DialogTitle/DialogTitle.js.map +1 -1
  65. package/dist/Dialog/styles.js.map +1 -1
  66. package/dist/DropDownMenu/DropDownMenu.js.map +1 -1
  67. package/dist/Dropdown/Dropdown.js.map +1 -1
  68. package/dist/Dropdown/List/List.js.map +1 -1
  69. package/dist/EmptyState/EmptyState.js.map +1 -1
  70. package/dist/FileUploader/DropZone/DropZone.js.map +1 -1
  71. package/dist/FileUploader/File/File.js.map +1 -1
  72. package/dist/FileUploader/FileList/FileList.js.map +1 -1
  73. package/dist/FileUploader/FileUploader.js.map +1 -1
  74. package/dist/FileUploader/Preview/Preview.js.map +1 -1
  75. package/dist/FilterGroup/Counter/Counter.js.map +1 -1
  76. package/dist/FilterGroup/Counter/styles.js.map +1 -1
  77. package/dist/FilterGroup/FilterContent/FilterContent.js.map +1 -1
  78. package/dist/FilterGroup/FilterContent/styles.js.map +1 -1
  79. package/dist/FilterGroup/FilterGroup.js.map +1 -1
  80. package/dist/FilterGroup/FilterGroupContext.js.map +1 -1
  81. package/dist/FilterGroup/LeftPanel/LeftPanel.js.map +1 -1
  82. package/dist/FilterGroup/LeftPanel/styles.js.map +1 -1
  83. package/dist/FilterGroup/RightPanel/RightPanel.js.map +1 -1
  84. package/dist/FilterGroup/RightPanel/styles.js.map +1 -1
  85. package/dist/FilterGroup/styles.js.map +1 -1
  86. package/dist/Focus/Focus.js.map +1 -1
  87. package/dist/Focus/utils.js.map +1 -1
  88. package/dist/Footer/Footer.js.map +1 -1
  89. package/dist/Forms/Adornment/Adornment.js.map +1 -1
  90. package/dist/Forms/CharCounter/CharCounter.js.map +1 -1
  91. package/dist/Forms/FormElement/FormElement.js.map +1 -1
  92. package/dist/Forms/FormElement/context/FormElementContext.js.map +1 -1
  93. package/dist/Forms/FormElement/context/FormElementDescriptorsContext.js.map +1 -1
  94. package/dist/Forms/FormElement/context/FormElementValueContext.js.map +1 -1
  95. package/dist/Forms/FormElement/utils/FormUtils.js.map +1 -1
  96. package/dist/Forms/InfoMessage/InfoMessage.js.map +1 -1
  97. package/dist/Forms/Label/Label.js.map +1 -1
  98. package/dist/Forms/Suggestions/Suggestions.js.map +1 -1
  99. package/dist/Forms/WarningText/WarningText.js.map +1 -1
  100. package/dist/GlobalActions/GlobalActions.js.map +1 -1
  101. package/dist/Grid/Grid.js.map +1 -1
  102. package/dist/Header/Actions/Actions.js.map +1 -1
  103. package/dist/Header/Brand/Brand.js.map +1 -1
  104. package/dist/Header/Header.js.map +1 -1
  105. package/dist/Header/Navigation/MenuBar/MenuBar.js +5 -1
  106. package/dist/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  107. package/dist/Header/Navigation/MenuItem/MenuItem.js +29 -9
  108. package/dist/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  109. package/dist/Header/Navigation/MenuItem/styles.js +4 -0
  110. package/dist/Header/Navigation/MenuItem/styles.js.map +1 -1
  111. package/dist/Header/Navigation/Navigation.d.ts +4 -0
  112. package/dist/Header/Navigation/Navigation.js +5 -1
  113. package/dist/Header/Navigation/Navigation.js.map +1 -1
  114. package/dist/Header/Navigation/utils/FocusContext.js.map +1 -1
  115. package/dist/Header/Navigation/utils/SelectionContext.js.map +1 -1
  116. package/dist/Header/Navigation/utils/useSelectionPath.js.map +1 -1
  117. package/dist/Input/Input.js.map +1 -1
  118. package/dist/Kpi/Kpi.js.map +1 -1
  119. package/dist/Link/Link.js.map +1 -1
  120. package/dist/List/List.js +20 -16
  121. package/dist/List/List.js.map +1 -1
  122. package/dist/List/useSelectableList.js.map +1 -1
  123. package/dist/List/utils.js.map +1 -1
  124. package/dist/ListContainer/ListContainer.js.map +1 -1
  125. package/dist/ListContainer/ListContext/ListContext.js.map +1 -1
  126. package/dist/ListContainer/ListItem/ListItem.js.map +1 -1
  127. package/dist/Loading/Loading.js.map +1 -1
  128. package/dist/Login/Login.js.map +1 -1
  129. package/dist/Login/styles.js.map +1 -1
  130. package/dist/MultiButton/MultiButton.js.map +1 -1
  131. package/dist/OverflowTooltip/OverflowTooltip.js.map +1 -1
  132. package/dist/Pagination/Pagination.js.map +1 -1
  133. package/dist/Pagination/Select.js.map +1 -1
  134. package/dist/Pagination/utils.js.map +1 -1
  135. package/dist/Panel/Panel.js.map +1 -1
  136. package/dist/Provider/Provider.js.map +1 -1
  137. package/dist/Provider/context.js.map +1 -1
  138. package/dist/Provider/useLocale.js.map +1 -1
  139. package/dist/Radio/Radio.js.map +1 -1
  140. package/dist/RadioGroup/RadioGroup.js.map +1 -1
  141. package/dist/ScrollTo/Horizontal/HorizontalScrollListItem/HorizontalScrollListItem.js.map +1 -1
  142. package/dist/ScrollTo/Horizontal/ScrollToHorizontal.js.map +1 -1
  143. package/dist/ScrollTo/Horizontal/styles.js.map +1 -1
  144. package/dist/ScrollTo/Vertical/ScrollToVertical.js.map +1 -1
  145. package/dist/ScrollTo/Vertical/VerticalScrollListItem/VerticalScrollListItem.js.map +1 -1
  146. package/dist/ScrollTo/Vertical/styles.js.map +1 -1
  147. package/dist/ScrollTo/useScrollTo.js.map +1 -1
  148. package/dist/ScrollTo/withTooltip.js.map +1 -1
  149. package/dist/SelectionList/SelectionList.js.map +1 -1
  150. package/dist/SimpleGrid/SimpleGrid.js.map +1 -1
  151. package/dist/SimpleGrid/styles.js.map +1 -1
  152. package/dist/Slider/Slider.js.map +1 -1
  153. package/dist/Slider/SliderInput/SliderInput.js.map +1 -1
  154. package/dist/Slider/utils.js.map +1 -1
  155. package/dist/Snackbar/Snackbar.js.map +1 -1
  156. package/dist/Snackbar/SnackbarContentWrapper/SnackbarContentWrapper.js.map +1 -1
  157. package/dist/Snackbar/SnackbarProvider/SnackbarProvider.js.map +1 -1
  158. package/dist/Stack/Stack.js.map +1 -1
  159. package/dist/Switch/Switch.js.map +1 -1
  160. package/dist/Tab/Tab.js.map +1 -1
  161. package/dist/Table/CellWithTooltip/index.js.map +1 -1
  162. package/dist/Table/Header/Header.js.map +1 -1
  163. package/dist/Table/NoData/index.js.map +1 -1
  164. package/dist/Table/NoData/styles.js.map +1 -1
  165. package/dist/Table/Table.js +19 -22
  166. package/dist/Table/Table.js.map +1 -1
  167. package/dist/Table/columnUtils.js.map +1 -1
  168. package/dist/Table/selectTable.js.map +1 -1
  169. package/dist/Table/styles.js.map +1 -1
  170. package/dist/Tabs/Tabs.js.map +1 -1
  171. package/dist/Tag/Tag.js.map +1 -1
  172. package/dist/Tag/styles.js.map +1 -1
  173. package/dist/TagsInput/TagsInput.js.map +1 -1
  174. package/dist/TextArea/TextArea.js.map +1 -1
  175. package/dist/TimePicker/PeriodPicker/PeriodPicker.js.map +1 -1
  176. package/dist/TimePicker/PeriodPicker/index.js.map +1 -1
  177. package/dist/TimePicker/TimePicker.js.map +1 -1
  178. package/dist/TimePicker/UnitTimePicker/UnitTimePicker.js.map +1 -1
  179. package/dist/TimePicker/UnitTimePicker/index.js.map +1 -1
  180. package/dist/TimePicker/timePickerConverter.js.map +1 -1
  181. package/dist/TimePicker/timePickerFormatter.js.map +1 -1
  182. package/dist/TimePicker/timePickerUtils.js.map +1 -1
  183. package/dist/ToggleButton/ToggleButton.js.map +1 -1
  184. package/dist/Tooltip/Tooltip.js.map +1 -1
  185. package/dist/Typography/Typography.js.map +1 -1
  186. package/dist/UserPreferences/Action/Action.js.map +1 -1
  187. package/dist/UserPreferences/Action/styles.js.map +1 -1
  188. package/dist/UserPreferences/Actions/Actions.js.map +1 -1
  189. package/dist/UserPreferences/Options/Group/Group.js.map +1 -1
  190. package/dist/UserPreferences/Options/Label/Label.js.map +1 -1
  191. package/dist/UserPreferences/Options/Option.js.map +1 -1
  192. package/dist/UserPreferences/Options/Options.js.map +1 -1
  193. package/dist/UserPreferences/Options/OptionsContext.js.map +1 -1
  194. package/dist/UserPreferences/Options/styles.js.map +1 -1
  195. package/dist/UserPreferences/UserPreferences.js.map +1 -1
  196. package/dist/VerticalNavigation/Actions/Action.js.map +1 -1
  197. package/dist/VerticalNavigation/Actions/Actions.js.map +1 -1
  198. package/dist/VerticalNavigation/Navigation/Navigation.d.ts +8 -0
  199. package/dist/VerticalNavigation/Navigation/Navigation.js +10 -3
  200. package/dist/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  201. package/dist/VerticalNavigation/TreeView/TreeView.js.map +1 -1
  202. package/dist/VerticalNavigation/TreeView/TreeViewContexts.js.map +1 -1
  203. package/dist/VerticalNavigation/TreeView/TreeViewItem.d.ts +8 -0
  204. package/dist/VerticalNavigation/TreeView/TreeViewItem.js +25 -4
  205. package/dist/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  206. package/dist/VerticalNavigation/TreeView/descendants.js.map +1 -1
  207. package/dist/VerticalNavigation/TreeView/styles.js +3 -0
  208. package/dist/VerticalNavigation/TreeView/styles.js.map +1 -1
  209. package/dist/VerticalNavigation/VerticalContainer/VerticalContainer.js.map +1 -1
  210. package/dist/VerticalNavigation/VerticalNavigation.js.map +1 -1
  211. package/dist/legacy/Header/Navigation/MenuBar/MenuBar.js +5 -1
  212. package/dist/legacy/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  213. package/dist/legacy/Header/Navigation/MenuItem/MenuItem.js +25 -9
  214. package/dist/legacy/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  215. package/dist/legacy/Header/Navigation/MenuItem/styles.js +4 -0
  216. package/dist/legacy/Header/Navigation/MenuItem/styles.js.map +1 -1
  217. package/dist/legacy/Header/Navigation/Navigation.d.ts +4 -0
  218. package/dist/legacy/Header/Navigation/Navigation.js +5 -1
  219. package/dist/legacy/Header/Navigation/Navigation.js.map +1 -1
  220. package/dist/legacy/List/List.js +23 -19
  221. package/dist/legacy/List/List.js.map +1 -1
  222. package/dist/legacy/Table/Table.js +20 -23
  223. package/dist/legacy/Table/Table.js.map +1 -1
  224. package/dist/legacy/VerticalNavigation/Navigation/Navigation.d.ts +8 -0
  225. package/dist/legacy/VerticalNavigation/Navigation/Navigation.js +10 -3
  226. package/dist/legacy/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  227. package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.d.ts +8 -0
  228. package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.js +24 -4
  229. package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  230. package/dist/legacy/VerticalNavigation/TreeView/styles.js +3 -0
  231. package/dist/legacy/VerticalNavigation/TreeView/styles.js.map +1 -1
  232. package/dist/legacy/utils/ConditionalRenderer.js +1 -0
  233. package/dist/legacy/utils/ConditionalRenderer.js.map +1 -1
  234. package/dist/modern/Header/Navigation/MenuBar/MenuBar.js +5 -1
  235. package/dist/modern/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  236. package/dist/modern/Header/Navigation/MenuItem/MenuItem.js +24 -9
  237. package/dist/modern/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  238. package/dist/modern/Header/Navigation/MenuItem/styles.js +4 -0
  239. package/dist/modern/Header/Navigation/MenuItem/styles.js.map +1 -1
  240. package/dist/modern/Header/Navigation/Navigation.d.ts +4 -0
  241. package/dist/modern/Header/Navigation/Navigation.js +5 -1
  242. package/dist/modern/Header/Navigation/Navigation.js.map +1 -1
  243. package/dist/modern/List/List.js +25 -24
  244. package/dist/modern/List/List.js.map +1 -1
  245. package/dist/modern/Table/Table.js +20 -23
  246. package/dist/modern/Table/Table.js.map +1 -1
  247. package/dist/modern/VerticalNavigation/Navigation/Navigation.d.ts +8 -0
  248. package/dist/modern/VerticalNavigation/Navigation/Navigation.js +10 -2
  249. package/dist/modern/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  250. package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.d.ts +8 -0
  251. package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.js +23 -4
  252. package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  253. package/dist/modern/VerticalNavigation/TreeView/styles.js +3 -0
  254. package/dist/modern/VerticalNavigation/TreeView/styles.js.map +1 -1
  255. package/dist/modern/utils/ConditionalRenderer.js +1 -0
  256. package/dist/modern/utils/ConditionalRenderer.js.map +1 -1
  257. package/dist/theme/CssBaseline.js.map +1 -1
  258. package/dist/theme/ScopedCssBaseline.js.map +1 -1
  259. package/dist/theme/createGenerateClassName.js.map +1 -1
  260. package/dist/theme/index.js.map +1 -1
  261. package/dist/theme/overrides/muiButton.js.map +1 -1
  262. package/dist/theme/palette.js.map +1 -1
  263. package/dist/theme/typography.js.map +1 -1
  264. package/dist/useUniqueId.js.map +1 -1
  265. package/dist/utils/ConditionalRenderer.js +1 -0
  266. package/dist/utils/ConditionalRenderer.js.map +1 -1
  267. package/dist/utils/browser.js.map +1 -1
  268. package/dist/utils/hexToRgbA.js.map +1 -1
  269. package/dist/utils/refType.js.map +1 -1
  270. package/dist/utils/setId.js.map +1 -1
  271. package/dist/utils/useComputation.js.map +1 -1
  272. package/dist/utils/useDeprecated.js.map +1 -1
  273. package/dist/utils/useImageLoaded.js.map +1 -1
  274. package/dist/utils/useIsMounted.js.map +1 -1
  275. package/dist/utils/useLabels.js.map +1 -1
  276. package/dist/utils/usePropAsRef.js.map +1 -1
  277. package/dist/utils/useSavedState.js.map +1 -1
  278. package/dist/utils/useUpdated.js.map +1 -1
  279. package/dist/utils/useWidth.js.map +1 -1
  280. package/dist/withId.js.map +1 -1
  281. package/dist/withTooltip.js.map +1 -1
  282. package/package.json +6 -6
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","names":["styles","theme","root","action","li","listStyle","selected","outline","outlineStyles"],"sources":["../../../src/UserPreferences/Options/styles.js"],"sourcesContent":["import { outlineStyles } from \"../../Focus/styles\";\nimport { buttonStyles, selected } from \"../styles\";\n\nconst styles = (theme) => ({\n root: {},\n action: {\n ...buttonStyles(theme),\n },\n li: {\n listStyle: \"none\",\n },\n selected: {\n ...selected(theme),\n \"&:hover\": selected(theme),\n \"&:focus\": {\n outline: \"none\",\n },\n \"&.focus-visible\": {\n ...selected(theme),\n ...outlineStyles,\n },\n },\n});\n\nexport default styles;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;EAAA,OAAY;IACzBC,IAAI,EAAE,EADmB;IAEzBC,MAAM,oBACD,2BAAaF,KAAb,CADC,CAFmB;IAKzBG,EAAE,EAAE;MACFC,SAAS,EAAE;IADT,CALqB;IAQzBC,QAAQ,kCACH,uBAASL,KAAT,CADG;MAEN,WAAW,uBAASA,KAAT,CAFL;MAGN,WAAW;QACTM,OAAO,EAAE;MADA,CAHL;MAMN,mDACK,uBAASN,KAAT,CADL,GAEKO,qBAFL;IANM;EARiB,CAAZ;AAAA,CAAf;;eAqBeR,M"}
1
+ {"version":3,"file":"styles.js","names":["styles","theme","root","action","buttonStyles","li","listStyle","selected","outline","outlineStyles"],"sources":["../../../src/UserPreferences/Options/styles.js"],"sourcesContent":["import { outlineStyles } from \"../../Focus/styles\";\nimport { buttonStyles, selected } from \"../styles\";\n\nconst styles = (theme) => ({\n root: {},\n action: {\n ...buttonStyles(theme),\n },\n li: {\n listStyle: \"none\",\n },\n selected: {\n ...selected(theme),\n \"&:hover\": selected(theme),\n \"&:focus\": {\n outline: \"none\",\n },\n \"&.focus-visible\": {\n ...selected(theme),\n ...outlineStyles,\n },\n },\n});\n\nexport default styles;\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD;EAAA,OAAY;IACzBC,IAAI,EAAE,EADmB;IAEzBC,MAAM,oBACD,IAAAC,qBAAA,EAAaH,KAAb,CADC,CAFmB;IAKzBI,EAAE,EAAE;MACFC,SAAS,EAAE;IADT,CALqB;IAQzBC,QAAQ,kCACH,IAAAA,iBAAA,EAASN,KAAT,CADG;MAEN,WAAW,IAAAM,iBAAA,EAASN,KAAT,CAFL;MAGN,WAAW;QACTO,OAAO,EAAE;MADA,CAHL;MAMN,mDACK,IAAAD,iBAAA,EAASN,KAAT,CADL,GAEKQ,qBAFL;IANM;EARiB,CAAZ;AAAA,CAAf;;eAqBeT,M"}
@@ -1 +1 @@
1
- {"version":3,"file":"UserPreferences.js","names":["HvUserPreferences","className","classes","isOpen","toggleOpenCallback","children","position","closeOnExit","userInfo","others","open","setOpen","prevPropOpen","setPrevPropOpen","containerRef","focusableList","setTimeout","current","first","focus","toggleOpen","newState","prevState","handlerKeyContainer","event","KeyboardCodes","Tab","target","shiftKey","id","last","Esc","renderedContainer","contentContainer","label1","label2","root","static","relative","fixed","absolute","container","propTypes","PropTypes","string","shape","isRequired","bool","oneOf","node","func","styles","name"],"sources":["../../src/UserPreferences/UserPreferences.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\nimport { withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { getFirstAndLastFocus, isKeypress, KeyboardCodes } from \"../utils\";\nimport styles from \"./styles\";\nimport Typography from \"../Typography\";\n\n/**\n * User preferences are a group of configurable settings that can be customized for a particular user.\n *\n * Our implementation of the User Preferences component is divided in:\n * <ul>\n * <li>Actions - container for actions</li>\n * <li>Action - action button</li>\n * <li>Options - container for options</li>\n * <li>Group - creates a division between different sets of option, with the possibility of setting a label</li>\n * <li>Label - Label typography.</li>\n * <li>Option - Option button</li>\n * </ul>\n * To build the User Preferences component, a composition of these elements should be used.\n *\n */\nconst HvUserPreferences = ({\n className,\n classes,\n isOpen = false,\n toggleOpenCallback,\n children,\n position = \"static\",\n closeOnExit = false,\n userInfo,\n ...others\n}) => {\n const [open, setOpen] = useState(isOpen);\n const [prevPropOpen, setPrevPropOpen] = useState(null);\n const containerRef = useRef(null);\n const focusableList = useRef(null);\n\n if (isOpen !== prevPropOpen) {\n setOpen(isOpen);\n setPrevPropOpen(isOpen);\n }\n\n /**\n * Fills the object with the first and last focusable element inside the container.\n * When the container is open the first focusable element is focus.\n */\n useEffect(() => {\n setTimeout(() => {\n if (open) {\n focusableList.current = getFirstAndLastFocus(containerRef.current);\n if (focusableList.current.first) focusableList.current.first.focus();\n }\n });\n }, [open]);\n\n /**\n * Toggle the open state based on the received parameter.\n */\n const toggleOpen = useCallback(\n (newState = null) => {\n if (newState !== null) {\n if (newState !== open) {\n setOpen(newState);\n } else {\n return;\n }\n } else {\n setOpen((prevState) => !prevState);\n }\n toggleOpenCallback?.(newState);\n },\n [toggleOpenCallback, open]\n );\n\n /**\n * Handler of keyboard clicks.\n */\n const handlerKeyContainer = useCallback(\n (event) => {\n if (closeOnExit) {\n if (\n isKeypress(event, KeyboardCodes.Tab) &&\n !isNil(event.target) &&\n !isNil(focusableList.current) &&\n !isNil(focusableList.current.first)\n ) {\n if (\n (event.shiftKey && event.target.id === focusableList.current.first.id) ||\n (!event.shiftKey && event.target.id === focusableList.current.last.id)\n ) {\n toggleOpen(false);\n }\n }\n if (isKeypress(event, KeyboardCodes.Esc) === false) {\n return;\n }\n toggleOpen(false);\n }\n },\n [closeOnExit, toggleOpen]\n );\n\n const renderedContainer = useMemo(\n () => (\n <ClickAwayListener onClickAway={() => closeOnExit && toggleOpen(false)}>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={containerRef}\n className={classes.contentContainer}\n onKeyDown={handlerKeyContainer}\n >\n {userInfo && (\n <div className={classes.userInfo}>\n <Typography variant=\"highlightText\">{userInfo.label1}</Typography>\n <Typography>{userInfo.label2}</Typography>\n </div>\n )}\n {children}\n </div>\n </ClickAwayListener>\n ),\n [\n children,\n classes.userInfo,\n classes.contentContainer,\n handlerKeyContainer,\n userInfo,\n closeOnExit,\n toggleOpen,\n ]\n );\n\n return (\n <div\n className={clsx([\n classes.root,\n {\n [classes.static]: position === \"static\",\n [classes.relative]: position === \"relative\",\n [classes.fixed]: position === \"fixed\",\n [classes.absolute]: position === \"absolute\",\n },\n className,\n ])}\n >\n <div className={classes.container} {...others}>\n {open && renderedContainer}\n </div>\n </div>\n );\n};\n\nHvUserPreferences.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied when position is fixed.\n */\n fixed: PropTypes.string,\n /**\n * Styles applied when position is relative.\n */\n relative: PropTypes.string,\n /**\n * Styles applied when position is absolute.\n */\n absolute: PropTypes.string,\n /**\n * Styles applied when position is static.\n */\n static: PropTypes.string,\n /**\n * Styles applied to the container.\n */\n container: PropTypes.string,\n /**\n * Styles applied to the inside of the container.\n */\n contentContainer: PropTypes.string,\n /**\n * Styles applied to the user information.\n */\n userInfo: PropTypes.string,\n }).isRequired,\n /**\n * Defines if the user preferences is shown.\n */\n isOpen: PropTypes.bool,\n /**\n * Position of the component.\n */\n position: PropTypes.oneOf([\"static\", \"relative\", \"fixed\", \"absolute\"]),\n /**\n * Children component.\n */\n children: PropTypes.node.isRequired,\n /**\n * Callback when the navigation toggles between open and close.\n */\n toggleOpenCallback: PropTypes.func,\n /**\n * Defines if the content pane should close when losing focus / clicking outside.\n */\n closeOnExit: PropTypes.bool,\n /**\n * User information.\n */\n userInfo: PropTypes.shape({\n label1: PropTypes.string,\n label2: PropTypes.string,\n }),\n};\n\nexport default withStyles(styles, { name: \"HvUserPreferences\" })(HvUserPreferences);\n"],"mappings":"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"}
1
+ {"version":3,"file":"UserPreferences.js","names":["HvUserPreferences","className","classes","isOpen","toggleOpenCallback","children","position","closeOnExit","userInfo","others","useState","open","setOpen","prevPropOpen","setPrevPropOpen","containerRef","useRef","focusableList","useEffect","setTimeout","current","getFirstAndLastFocus","first","focus","toggleOpen","useCallback","newState","prevState","handlerKeyContainer","event","isKeypress","KeyboardCodes","Tab","isNil","target","shiftKey","id","last","Esc","renderedContainer","useMemo","contentContainer","label1","label2","clsx","root","static","relative","fixed","absolute","container","propTypes","PropTypes","string","shape","isRequired","bool","oneOf","node","func","withStyles","styles","name"],"sources":["../../src/UserPreferences/UserPreferences.js"],"sourcesContent":["import React, { useCallback, useEffect, useMemo, useRef, useState } from \"react\";\nimport PropTypes from \"prop-types\";\nimport ClickAwayListener from \"@material-ui/core/ClickAwayListener\";\nimport { withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport isNil from \"lodash/isNil\";\nimport { getFirstAndLastFocus, isKeypress, KeyboardCodes } from \"../utils\";\nimport styles from \"./styles\";\nimport Typography from \"../Typography\";\n\n/**\n * User preferences are a group of configurable settings that can be customized for a particular user.\n *\n * Our implementation of the User Preferences component is divided in:\n * <ul>\n * <li>Actions - container for actions</li>\n * <li>Action - action button</li>\n * <li>Options - container for options</li>\n * <li>Group - creates a division between different sets of option, with the possibility of setting a label</li>\n * <li>Label - Label typography.</li>\n * <li>Option - Option button</li>\n * </ul>\n * To build the User Preferences component, a composition of these elements should be used.\n *\n */\nconst HvUserPreferences = ({\n className,\n classes,\n isOpen = false,\n toggleOpenCallback,\n children,\n position = \"static\",\n closeOnExit = false,\n userInfo,\n ...others\n}) => {\n const [open, setOpen] = useState(isOpen);\n const [prevPropOpen, setPrevPropOpen] = useState(null);\n const containerRef = useRef(null);\n const focusableList = useRef(null);\n\n if (isOpen !== prevPropOpen) {\n setOpen(isOpen);\n setPrevPropOpen(isOpen);\n }\n\n /**\n * Fills the object with the first and last focusable element inside the container.\n * When the container is open the first focusable element is focus.\n */\n useEffect(() => {\n setTimeout(() => {\n if (open) {\n focusableList.current = getFirstAndLastFocus(containerRef.current);\n if (focusableList.current.first) focusableList.current.first.focus();\n }\n });\n }, [open]);\n\n /**\n * Toggle the open state based on the received parameter.\n */\n const toggleOpen = useCallback(\n (newState = null) => {\n if (newState !== null) {\n if (newState !== open) {\n setOpen(newState);\n } else {\n return;\n }\n } else {\n setOpen((prevState) => !prevState);\n }\n toggleOpenCallback?.(newState);\n },\n [toggleOpenCallback, open]\n );\n\n /**\n * Handler of keyboard clicks.\n */\n const handlerKeyContainer = useCallback(\n (event) => {\n if (closeOnExit) {\n if (\n isKeypress(event, KeyboardCodes.Tab) &&\n !isNil(event.target) &&\n !isNil(focusableList.current) &&\n !isNil(focusableList.current.first)\n ) {\n if (\n (event.shiftKey && event.target.id === focusableList.current.first.id) ||\n (!event.shiftKey && event.target.id === focusableList.current.last.id)\n ) {\n toggleOpen(false);\n }\n }\n if (isKeypress(event, KeyboardCodes.Esc) === false) {\n return;\n }\n toggleOpen(false);\n }\n },\n [closeOnExit, toggleOpen]\n );\n\n const renderedContainer = useMemo(\n () => (\n <ClickAwayListener onClickAway={() => closeOnExit && toggleOpen(false)}>\n {/* eslint-disable-next-line jsx-a11y/no-static-element-interactions */}\n <div\n ref={containerRef}\n className={classes.contentContainer}\n onKeyDown={handlerKeyContainer}\n >\n {userInfo && (\n <div className={classes.userInfo}>\n <Typography variant=\"highlightText\">{userInfo.label1}</Typography>\n <Typography>{userInfo.label2}</Typography>\n </div>\n )}\n {children}\n </div>\n </ClickAwayListener>\n ),\n [\n children,\n classes.userInfo,\n classes.contentContainer,\n handlerKeyContainer,\n userInfo,\n closeOnExit,\n toggleOpen,\n ]\n );\n\n return (\n <div\n className={clsx([\n classes.root,\n {\n [classes.static]: position === \"static\",\n [classes.relative]: position === \"relative\",\n [classes.fixed]: position === \"fixed\",\n [classes.absolute]: position === \"absolute\",\n },\n className,\n ])}\n >\n <div className={classes.container} {...others}>\n {open && renderedContainer}\n </div>\n </div>\n );\n};\n\nHvUserPreferences.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n /**\n * Styles applied when position is fixed.\n */\n fixed: PropTypes.string,\n /**\n * Styles applied when position is relative.\n */\n relative: PropTypes.string,\n /**\n * Styles applied when position is absolute.\n */\n absolute: PropTypes.string,\n /**\n * Styles applied when position is static.\n */\n static: PropTypes.string,\n /**\n * Styles applied to the container.\n */\n container: PropTypes.string,\n /**\n * Styles applied to the inside of the container.\n */\n contentContainer: PropTypes.string,\n /**\n * Styles applied to the user information.\n */\n userInfo: PropTypes.string,\n }).isRequired,\n /**\n * Defines if the user preferences is shown.\n */\n isOpen: PropTypes.bool,\n /**\n * Position of the component.\n */\n position: PropTypes.oneOf([\"static\", \"relative\", \"fixed\", \"absolute\"]),\n /**\n * Children component.\n */\n children: PropTypes.node.isRequired,\n /**\n * Callback when the navigation toggles between open and close.\n */\n toggleOpenCallback: PropTypes.func,\n /**\n * Defines if the content pane should close when losing focus / clicking outside.\n */\n closeOnExit: PropTypes.bool,\n /**\n * User information.\n */\n userInfo: PropTypes.shape({\n label1: PropTypes.string,\n label2: PropTypes.string,\n }),\n};\n\nexport default withStyles(styles, { name: \"HvUserPreferences\" })(HvUserPreferences);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Action.js","names":["Action","className","classes","id","label","icon","onClick","others","handleKeyDown","event","KeyboardCodes","Enter","SpaceBar","action","noIcon","propTypes","PropTypes","string","shape","isRequired","node","func","styles","name"],"sources":["../../../src/VerticalNavigation/Actions/Action.js"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport { KeyboardCodes, isKeypress } from \"../../utils/KeyboardUtils\";\nimport HvTypography from \"../../Typography\";\nimport { setId } from \"../../utils\";\nimport styles from \"./styles\";\n\nconst Action = ({ className, classes, id, label = \"\", icon, onClick, ...others }) => {\n const handleKeyDown = useCallback(\n (event) => {\n if (\n onClick == null ||\n (!isKeypress(event, KeyboardCodes.Enter) && !isKeypress(event, KeyboardCodes.SpaceBar))\n ) {\n return;\n }\n\n onClick(event);\n },\n [onClick]\n );\n\n return (\n <HvTypography\n id={setId(id, \"button\")}\n component=\"div\"\n role=\"button\"\n className={clsx(className, classes.action, { [classes.noIcon]: !icon })}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onClick={onClick}\n {...others}\n >\n {icon}\n {label}\n </HvTypography>\n );\n};\n\nAction.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the component.\n */\n action: PropTypes.string,\n /**\n * Style applied when no icon is present.\n */\n noIcon: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the action.\n */\n id: PropTypes.string,\n /**\n * Visual label.\n */\n label: PropTypes.string,\n /**\n * Icon.\n */\n icon: PropTypes.node,\n /**\n * Callback called when clicked.\n */\n onClick: PropTypes.func,\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationAction\" })(Action);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,OAAsE;EAAA,IAAnEC,SAAmE,QAAnEA,SAAmE;EAAA,IAAxDC,OAAwD,QAAxDA,OAAwD;EAAA,IAA/CC,EAA+C,QAA/CA,EAA+C;EAAA,sBAA3CC,KAA2C;EAAA,IAA3CA,KAA2C,2BAAnC,EAAmC;EAAA,IAA/BC,IAA+B,QAA/BA,IAA+B;EAAA,IAAzBC,OAAyB,QAAzBA,OAAyB;EAAA,IAAbC,MAAa;EACnF,IAAMC,aAAa,GAAG,wBACpB,UAACC,KAAD,EAAW;IACT,IACEH,OAAO,IAAI,IAAX,IACC,CAAC,+BAAWG,KAAX,EAAkBC,6BAAcC,KAAhC,CAAD,IAA2C,CAAC,+BAAWF,KAAX,EAAkBC,6BAAcE,QAAhC,CAF/C,EAGE;MACA;IACD;;IAEDN,OAAO,CAACG,KAAD,CAAP;EACD,CAVmB,EAWpB,CAACH,OAAD,CAXoB,CAAtB;EAcA,oBACE,6BAAC,mBAAD;IACE,EAAE,EAAE,kBAAMH,EAAN,EAAU,QAAV,CADN;IAEE,SAAS,EAAC,KAFZ;IAGE,IAAI,EAAC,QAHP;IAIE,SAAS,EAAE,mBAAKF,SAAL,EAAgBC,OAAO,CAACW,MAAxB,EAAoD,CAACR,IAArD,IAAmCH,OAAO,CAACY,MAA3C,CAJb;IAKE,QAAQ,EAAE,CALZ;IAME,SAAS,EAAEN,aANb;IAOE,OAAO,EAAEF;EAPX,GAQMC,MARN,GAUGF,IAVH,EAWGD,KAXH,CADF;AAeD,CA9BD;;AAgCA,wCAAAJ,MAAM,CAACe,SAAP,GAAmB;EACjB;AACF;AACA;EACEd,SAAS,EAAEe,mBAAUC,MAJJ;;EAKjB;AACF;AACA;EACEf,OAAO,EAAEc,mBAAUE,KAAV,CAAgB;IACvB;AACJ;AACA;IACIL,MAAM,EAAEG,mBAAUC,MAJK;;IAKvB;AACJ;AACA;IACIH,MAAM,EAAEE,mBAAUC;EARK,CAAhB,EASNE,UAjBc;;EAkBjB;AACF;AACA;EACEhB,EAAE,EAAEa,mBAAUC,MArBG;;EAsBjB;AACF;AACA;EACEb,KAAK,EAAEY,mBAAUC,MAzBA;;EA0BjB;AACF;AACA;EACEZ,IAAI,EAAEW,mBAAUI,IA7BC;;EA8BjB;AACF;AACA;EACEd,OAAO,EAAEU,mBAAUK;AAjCF,CAAnB;;eAoCe,sBAAWC,eAAX,EAAmB;EAAEC,IAAI,EAAE;AAAR,CAAnB,EAA2DvB,MAA3D,C"}
1
+ {"version":3,"file":"Action.js","names":["Action","className","classes","id","label","icon","onClick","others","handleKeyDown","useCallback","event","isKeypress","KeyboardCodes","Enter","SpaceBar","setId","clsx","action","noIcon","propTypes","PropTypes","string","shape","isRequired","node","func","withStyles","styles","name"],"sources":["../../../src/VerticalNavigation/Actions/Action.js"],"sourcesContent":["import React, { useCallback } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport { KeyboardCodes, isKeypress } from \"../../utils/KeyboardUtils\";\nimport HvTypography from \"../../Typography\";\nimport { setId } from \"../../utils\";\nimport styles from \"./styles\";\n\nconst Action = ({ className, classes, id, label = \"\", icon, onClick, ...others }) => {\n const handleKeyDown = useCallback(\n (event) => {\n if (\n onClick == null ||\n (!isKeypress(event, KeyboardCodes.Enter) && !isKeypress(event, KeyboardCodes.SpaceBar))\n ) {\n return;\n }\n\n onClick(event);\n },\n [onClick]\n );\n\n return (\n <HvTypography\n id={setId(id, \"button\")}\n component=\"div\"\n role=\"button\"\n className={clsx(className, classes.action, { [classes.noIcon]: !icon })}\n tabIndex={0}\n onKeyDown={handleKeyDown}\n onClick={onClick}\n {...others}\n >\n {icon}\n {label}\n </HvTypography>\n );\n};\n\nAction.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the component.\n */\n action: PropTypes.string,\n /**\n * Style applied when no icon is present.\n */\n noIcon: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the action.\n */\n id: PropTypes.string,\n /**\n * Visual label.\n */\n label: PropTypes.string,\n /**\n * Icon.\n */\n icon: PropTypes.node,\n /**\n * Callback called when clicked.\n */\n onClick: PropTypes.func,\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationAction\" })(Action);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,MAAM,GAAG,SAATA,MAAS,OAAsE;EAAA,IAAnEC,SAAmE,QAAnEA,SAAmE;EAAA,IAAxDC,OAAwD,QAAxDA,OAAwD;EAAA,IAA/CC,EAA+C,QAA/CA,EAA+C;EAAA,sBAA3CC,KAA2C;EAAA,IAA3CA,KAA2C,2BAAnC,EAAmC;EAAA,IAA/BC,IAA+B,QAA/BA,IAA+B;EAAA,IAAzBC,OAAyB,QAAzBA,OAAyB;EAAA,IAAbC,MAAa;EACnF,IAAMC,aAAa,GAAG,IAAAC,kBAAA,EACpB,UAACC,KAAD,EAAW;IACT,IACEJ,OAAO,IAAI,IAAX,IACC,CAAC,IAAAK,yBAAA,EAAWD,KAAX,EAAkBE,4BAAA,CAAcC,KAAhC,CAAD,IAA2C,CAAC,IAAAF,yBAAA,EAAWD,KAAX,EAAkBE,4BAAA,CAAcE,QAAhC,CAF/C,EAGE;MACA;IACD;;IAEDR,OAAO,CAACI,KAAD,CAAP;EACD,CAVmB,EAWpB,CAACJ,OAAD,CAXoB,CAAtB;EAcA,oBACE,6BAAC,mBAAD;IACE,EAAE,EAAE,IAAAS,YAAA,EAAMZ,EAAN,EAAU,QAAV,CADN;IAEE,SAAS,EAAC,KAFZ;IAGE,IAAI,EAAC,QAHP;IAIE,SAAS,EAAE,IAAAa,aAAA,EAAKf,SAAL,EAAgBC,OAAO,CAACe,MAAxB,EAAoD,CAACZ,IAArD,IAAmCH,OAAO,CAACgB,MAA3C,CAJb;IAKE,QAAQ,EAAE,CALZ;IAME,SAAS,EAAEV,aANb;IAOE,OAAO,EAAEF;EAPX,GAQMC,MARN,GAUGF,IAVH,EAWGD,KAXH,CADF;AAeD,CA9BD;;AAgCA,wCAAAJ,MAAM,CAACmB,SAAP,GAAmB;EACjB;AACF;AACA;EACElB,SAAS,EAAEmB,kBAAA,CAAUC,MAJJ;;EAKjB;AACF;AACA;EACEnB,OAAO,EAAEkB,kBAAA,CAAUE,KAAV,CAAgB;IACvB;AACJ;AACA;IACIL,MAAM,EAAEG,kBAAA,CAAUC,MAJK;;IAKvB;AACJ;AACA;IACIH,MAAM,EAAEE,kBAAA,CAAUC;EARK,CAAhB,EASNE,UAjBc;;EAkBjB;AACF;AACA;EACEpB,EAAE,EAAEiB,kBAAA,CAAUC,MArBG;;EAsBjB;AACF;AACA;EACEjB,KAAK,EAAEgB,kBAAA,CAAUC,MAzBA;;EA0BjB;AACF;AACA;EACEhB,IAAI,EAAEe,kBAAA,CAAUI,IA7BC;;EA8BjB;AACF;AACA;EACElB,OAAO,EAAEc,kBAAA,CAAUK;AAjCF,CAAnB;;eAoCe,IAAAC,gBAAA,EAAWC,eAAX,EAAmB;EAAEC,IAAI,EAAE;AAAR,CAAnB,EAA2D5B,MAA3D,C"}
@@ -1 +1 @@
1
- {"version":3,"file":"Actions.js","names":["Actions","className","classes","id","children","others","root","propTypes","PropTypes","string","shape","isRequired","node","styles","name"],"sources":["../../../src/VerticalNavigation/Actions/Actions.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport styles from \"./styles\";\n\nconst Actions = ({ className, classes, id, children, ...others }) => {\n return (\n <div id={id} className={clsx(className, classes.root)} {...others}>\n {children}\n </div>\n );\n};\n\nActions.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the component.\n */\n root: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the actions container.\n */\n id: PropTypes.string,\n /**\n * Node to be rendered\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationActions\" })(Actions);\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,OAAO,GAAG,SAAVA,OAAU,OAAqD;EAAA,IAAlDC,SAAkD,QAAlDA,SAAkD;EAAA,IAAvCC,OAAuC,QAAvCA,OAAuC;EAAA,IAA9BC,EAA8B,QAA9BA,EAA8B;EAAA,IAA1BC,QAA0B,QAA1BA,QAA0B;EAAA,IAAbC,MAAa;EACnE,oBACE;IAAK,EAAE,EAAEF,EAAT;IAAa,SAAS,EAAE,mBAAKF,SAAL,EAAgBC,OAAO,CAACI,IAAxB;EAAxB,GAA2DD,MAA3D,GACGD,QADH,CADF;AAKD,CAND;;AAQA,wCAAAJ,OAAO,CAACO,SAAR,GAAoB;EAClB;AACF;AACA;EACEN,SAAS,EAAEO,mBAAUC,MAJH;;EAKlB;AACF;AACA;EACEP,OAAO,EAAEM,mBAAUE,KAAV,CAAgB;IACvB;AACJ;AACA;IACIJ,IAAI,EAAEE,mBAAUC;EAJO,CAAhB,EAKNE,UAbe;;EAclB;AACF;AACA;EACER,EAAE,EAAEK,mBAAUC,MAjBI;;EAkBlB;AACF;AACA;EACEL,QAAQ,EAAEI,mBAAUI;AArBF,CAApB;;eAwBe,sBAAWC,eAAX,EAAmB;EAAEC,IAAI,EAAE;AAAR,CAAnB,EAA4Dd,OAA5D,C"}
1
+ {"version":3,"file":"Actions.js","names":["Actions","className","classes","id","children","others","clsx","root","propTypes","PropTypes","string","shape","isRequired","node","withStyles","styles","name"],"sources":["../../../src/VerticalNavigation/Actions/Actions.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport styles from \"./styles\";\n\nconst Actions = ({ className, classes, id, children, ...others }) => {\n return (\n <div id={id} className={clsx(className, classes.root)} {...others}>\n {children}\n </div>\n );\n};\n\nActions.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the component.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the component.\n */\n root: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the actions container.\n */\n id: PropTypes.string,\n /**\n * Node to be rendered\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationActions\" })(Actions);\n"],"mappings":";;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;;;AAEA,IAAMA,OAAO,GAAG,SAAVA,OAAU,OAAqD;EAAA,IAAlDC,SAAkD,QAAlDA,SAAkD;EAAA,IAAvCC,OAAuC,QAAvCA,OAAuC;EAAA,IAA9BC,EAA8B,QAA9BA,EAA8B;EAAA,IAA1BC,QAA0B,QAA1BA,QAA0B;EAAA,IAAbC,MAAa;EACnE,oBACE;IAAK,EAAE,EAAEF,EAAT;IAAa,SAAS,EAAE,IAAAG,aAAA,EAAKL,SAAL,EAAgBC,OAAO,CAACK,IAAxB;EAAxB,GAA2DF,MAA3D,GACGD,QADH,CADF;AAKD,CAND;;AAQA,wCAAAJ,OAAO,CAACQ,SAAR,GAAoB;EAClB;AACF;AACA;EACEP,SAAS,EAAEQ,kBAAA,CAAUC,MAJH;;EAKlB;AACF;AACA;EACER,OAAO,EAAEO,kBAAA,CAAUE,KAAV,CAAgB;IACvB;AACJ;AACA;IACIJ,IAAI,EAAEE,kBAAA,CAAUC;EAJO,CAAhB,EAKNE,UAbe;;EAclB;AACF;AACA;EACET,EAAE,EAAEM,kBAAA,CAAUC,MAjBI;;EAkBlB;AACF;AACA;EACEN,QAAQ,EAAEK,kBAAA,CAAUI;AArBF,CAApB;;eAwBe,IAAAC,gBAAA,EAAWC,eAAX,EAAmB;EAAEC,IAAI,EAAE;AAAR,CAAnB,EAA4DhB,OAA5D,C"}
@@ -10,6 +10,14 @@ export interface NavigationData {
10
10
  * the label to be rendered on the menu item.
11
11
  */
12
12
  label: string;
13
+ /**
14
+ * The url for the link.
15
+ */
16
+ href?: string;
17
+ /**
18
+ * The behavior when opening a link.
19
+ */
20
+ target?: string;
13
21
  /**
14
22
  * Icon to be render.
15
23
  */
@@ -70,11 +70,15 @@ var createListHierarchy = function createListHierarchy(items, id, classes) {
70
70
  icon = item.icon,
71
71
  children = item.data,
72
72
  selectable = item.selectable,
73
- disabled = item.disabled;
73
+ disabled = item.disabled,
74
+ href = item.href,
75
+ target = item.target;
74
76
  var ItemText = (0, _utils2.wrapperTooltip)(true, itemLabel, itemLabel);
75
77
  return /*#__PURE__*/_react.default.createElement(_TreeView.TreeViewItem, {
76
78
  id: (0, _utils.setId)(id, itemId),
77
79
  className: classes.listItem,
80
+ href: href,
81
+ target: target,
78
82
  key: itemId,
79
83
  nodeId: itemId,
80
84
  label: /*#__PURE__*/_react.default.createElement(ItemText, null),
@@ -167,7 +171,6 @@ var Navigation = function Navigation(_ref) {
167
171
  } // nothing is expanded
168
172
 
169
173
 
170
- // nothing is expanded
171
174
  return [];
172
175
  }
173
176
 
@@ -309,12 +312,16 @@ process.env.NODE_ENV !== "production" ? Navigation.propTypes = {
309
312
  * id - the id to be applied to the root element.
310
313
  * label - the label to be rendered on the menu item.
311
314
  * data - sub-menu items
315
+ * href - the url used for navigation.
316
+ * target - the behavior when opening an url.
312
317
  */
313
318
  data: _propTypes.default.arrayOf(_propTypes.default.shape({
314
319
  id: _propTypes.default.string.isRequired,
315
320
  label: _propTypes.default.string.isRequired,
316
321
  icon: _propTypes.default.node,
317
- data: _propTypes.default.array
322
+ data: _propTypes.default.array,
323
+ href: _propTypes.default.string,
324
+ target: _propTypes.default.string
318
325
  })).isRequired,
319
326
 
320
327
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.js","names":["createListHierarchy","items","id","classes","map","item","itemId","itemLabel","label","icon","children","data","selectable","disabled","ItemText","listItem","undefined","getAllParents","parents","filter","length","childParents","flatMap","pathToElement","targetId","path","i","push","subPaths","Navigation","className","mode","collapsible","expandedProp","expanded","defaultExpanded","onToggle","selectedProp","selected","defaultSelected","onChange","onClick","others","setSelected","slice","setExpanded","handleChange","event","selectedId","selectedItem","handleToggle","newExpanded","root","list","propTypes","PropTypes","string","shape","isRequired","oneOf","bool","func","arrayOf","oneOfType","node","array","styles","name"],"sources":["../../../src/VerticalNavigation/Navigation/Navigation.js"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { deprecatedPropType, withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport TreeView, { TreeViewItem } from \"../TreeView\";\nimport { setId, useControlled } from \"../../utils\";\nimport styles from \"./styles\";\nimport { wrapperTooltip } from \"../../List/utils\";\n\nconst createListHierarchy = (items, id, classes) =>\n items.map((item) => {\n const { id: itemId, label: itemLabel, icon, data: children, selectable, disabled } = item;\n\n const ItemText = wrapperTooltip(true, itemLabel, itemLabel);\n\n return (\n <TreeViewItem\n id={setId(id, itemId)}\n className={classes.listItem}\n key={itemId}\n nodeId={itemId}\n label={<ItemText />}\n icon={icon}\n payload={item}\n selectable={selectable}\n disabled={disabled}\n >\n {children ? createListHierarchy(children, id, classes) : undefined}\n </TreeViewItem>\n );\n });\n\nconst getAllParents = (items) => {\n const parents = items.filter((item) => item.data != null && item.data.length > 0);\n const childParents = parents.flatMap((item) => getAllParents(item.data));\n\n return [...parents, ...childParents];\n};\n\nfunction pathToElement(data, targetId) {\n const path = [];\n\n if (data != null && data.length > 0) {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i !== data.length; ++i) {\n const item = data[i];\n if (item.id === targetId) {\n path.push(item.id);\n break;\n }\n\n const subPaths = pathToElement(item.data, targetId);\n if (subPaths.length > 0) {\n path.push(item.id);\n path.push(...subPaths);\n break;\n }\n }\n }\n\n return path;\n}\n\nconst Navigation = ({\n id,\n\n className,\n classes,\n\n data,\n\n mode = \"navigation\",\n\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded,\n onToggle,\n\n selected: selectedProp,\n defaultSelected,\n onChange,\n\n label,\n onClick,\n\n ...others\n}) => {\n const [selected, setSelected] = useControlled(selectedProp, defaultSelected);\n const [expanded, setExpanded] = useControlled(expandedProp, () => {\n if (defaultExpanded === true) {\n // all parent nodes will be expanded by default\n return getAllParents(data).map((item) => item.id);\n }\n\n if (defaultExpanded === false) {\n // all parent nodes will be collapsed by default\n return [];\n }\n\n if (defaultExpanded == null) {\n if (selected != null) {\n // the path to the selected node will be expanded (default behaviour)\n const path = pathToElement(data, selected);\n return path.slice(0, -1);\n }\n\n // nothing is expanded\n return [];\n }\n\n return defaultExpanded;\n });\n\n const handleChange = useCallback(\n (event, selectedId, selectedItem) => {\n setSelected(selectedId);\n\n if (onChange) {\n onChange(event, selectedItem);\n }\n\n // deprecated\n if (onClick) {\n onClick(event, selectedItem);\n }\n },\n [onChange, onClick, setSelected]\n );\n\n const handleToggle = useCallback(\n (event, newExpanded) => {\n setExpanded(newExpanded);\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n\n // deprecated\n if (onClick) {\n onClick(event);\n }\n },\n [onClick, onToggle, setExpanded]\n );\n\n const children = useMemo(\n () => data && createListHierarchy(data, id, classes),\n [classes, data, id]\n );\n\n return (\n <nav id={id} className={clsx(className, classes.root)} aria-label={label} {...others}>\n <TreeView\n id={setId(id, \"tree\")}\n className={classes.list}\n selectable\n mode={mode}\n collapsible={collapsible}\n selected={selected}\n onChange={handleChange}\n expanded={expanded}\n onToggle={handleToggle}\n >\n {children}\n </TreeView>\n </nav>\n );\n};\n\nNavigation.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root element.\n */\n root: PropTypes.string,\n /**\n * Style applied to the list.\n */\n list: PropTypes.string,\n /**\n * Style applied to the list items.\n */\n listItem: PropTypes.string,\n }).isRequired,\n\n /**\n * Modus operandi (role) of the widget instance.\n */\n mode: PropTypes.oneOf([\"treeview\", \"navigation\"]),\n /**\n * Can non-leaf nodes be collapsed / expanded.\n */\n collapsible: PropTypes.bool,\n\n /**\n * The ID of the selected page.\n */\n selected: PropTypes.string,\n /**\n * When uncontrolled, defines the initial selected page ID.\n */\n defaultSelected: PropTypes.string,\n /**\n * Callback fired when a navigation item is selected.\n *\n * @param {object} event The event source of the callback.\n * @param {object} page The data of the selected page.\n */\n onChange: PropTypes.func,\n\n /**\n * Expanded nodes' ids.\n */\n expanded: PropTypes.arrayOf(PropTypes.string),\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n *\n * It also supports `true` for starting with all nodes expanded.\n * With `false` all nodes will be collapsed.\n *\n * By default it expands the needed nodes to display the current selection, if any.\n */\n defaultExpanded: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.bool]),\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {object} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes (old and new).\n */\n onToggle: PropTypes.func,\n\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * data - sub-menu items\n */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n icon: PropTypes.node,\n data: PropTypes.array,\n })\n ).isRequired,\n\n /**\n * Callback triggered when any item is clicked.\n *\n * @deprecated use `onChange` for selection and `onToggle` for node expansion/collapse.\n */\n onClick: deprecatedPropType(PropTypes.func),\n /**\n * The root element (nav) aria label.\n *\n * @deprecated Use directly the `aria-label` property instead.\n */\n label: deprecatedPropType(PropTypes.string),\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationNavigation\" })(Navigation);\n"],"mappings":"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"}
1
+ {"version":3,"file":"Navigation.js","names":["createListHierarchy","items","id","classes","map","item","itemId","itemLabel","label","icon","children","data","selectable","disabled","href","target","ItemText","wrapperTooltip","setId","listItem","undefined","getAllParents","parents","filter","length","childParents","flatMap","pathToElement","targetId","path","i","push","subPaths","Navigation","className","mode","collapsible","expandedProp","expanded","defaultExpanded","onToggle","selectedProp","selected","defaultSelected","onChange","onClick","others","useControlled","setSelected","slice","setExpanded","handleChange","useCallback","event","selectedId","selectedItem","handleToggle","newExpanded","useMemo","clsx","root","list","propTypes","PropTypes","string","shape","isRequired","oneOf","bool","func","arrayOf","oneOfType","node","array","deprecatedPropType","withStyles","styles","name"],"sources":["../../../src/VerticalNavigation/Navigation/Navigation.js"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { deprecatedPropType, withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport TreeView, { TreeViewItem } from \"../TreeView\";\nimport { setId, useControlled } from \"../../utils\";\nimport styles from \"./styles\";\nimport { wrapperTooltip } from \"../../List/utils\";\n\nconst createListHierarchy = (items, id, classes) =>\n items.map((item) => {\n const {\n id: itemId,\n label: itemLabel,\n icon,\n data: children,\n selectable,\n disabled,\n href,\n target,\n } = item;\n\n const ItemText = wrapperTooltip(true, itemLabel, itemLabel);\n\n return (\n <TreeViewItem\n id={setId(id, itemId)}\n className={classes.listItem}\n href={href}\n target={target}\n key={itemId}\n nodeId={itemId}\n label={<ItemText />}\n icon={icon}\n payload={item}\n selectable={selectable}\n disabled={disabled}\n >\n {children ? createListHierarchy(children, id, classes) : undefined}\n </TreeViewItem>\n );\n });\n\nconst getAllParents = (items) => {\n const parents = items.filter((item) => item.data != null && item.data.length > 0);\n const childParents = parents.flatMap((item) => getAllParents(item.data));\n\n return [...parents, ...childParents];\n};\n\nfunction pathToElement(data, targetId) {\n const path = [];\n\n if (data != null && data.length > 0) {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i !== data.length; ++i) {\n const item = data[i];\n if (item.id === targetId) {\n path.push(item.id);\n break;\n }\n\n const subPaths = pathToElement(item.data, targetId);\n if (subPaths.length > 0) {\n path.push(item.id);\n path.push(...subPaths);\n break;\n }\n }\n }\n\n return path;\n}\n\nconst Navigation = ({\n id,\n\n className,\n classes,\n\n data,\n\n mode = \"navigation\",\n\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded,\n onToggle,\n\n selected: selectedProp,\n defaultSelected,\n onChange,\n\n label,\n onClick,\n\n ...others\n}) => {\n const [selected, setSelected] = useControlled(selectedProp, defaultSelected);\n const [expanded, setExpanded] = useControlled(expandedProp, () => {\n if (defaultExpanded === true) {\n // all parent nodes will be expanded by default\n return getAllParents(data).map((item) => item.id);\n }\n\n if (defaultExpanded === false) {\n // all parent nodes will be collapsed by default\n return [];\n }\n\n if (defaultExpanded == null) {\n if (selected != null) {\n // the path to the selected node will be expanded (default behaviour)\n const path = pathToElement(data, selected);\n return path.slice(0, -1);\n }\n\n // nothing is expanded\n return [];\n }\n\n return defaultExpanded;\n });\n\n const handleChange = useCallback(\n (event, selectedId, selectedItem) => {\n setSelected(selectedId);\n\n if (onChange) {\n onChange(event, selectedItem);\n }\n\n // deprecated\n if (onClick) {\n onClick(event, selectedItem);\n }\n },\n [onChange, onClick, setSelected]\n );\n\n const handleToggle = useCallback(\n (event, newExpanded) => {\n setExpanded(newExpanded);\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n\n // deprecated\n if (onClick) {\n onClick(event);\n }\n },\n [onClick, onToggle, setExpanded]\n );\n\n const children = useMemo(\n () => data && createListHierarchy(data, id, classes),\n [classes, data, id]\n );\n\n return (\n <nav id={id} className={clsx(className, classes.root)} aria-label={label} {...others}>\n <TreeView\n id={setId(id, \"tree\")}\n className={classes.list}\n selectable\n mode={mode}\n collapsible={collapsible}\n selected={selected}\n onChange={handleChange}\n expanded={expanded}\n onToggle={handleToggle}\n >\n {children}\n </TreeView>\n </nav>\n );\n};\n\nNavigation.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root element.\n */\n root: PropTypes.string,\n /**\n * Style applied to the list.\n */\n list: PropTypes.string,\n /**\n * Style applied to the list items.\n */\n listItem: PropTypes.string,\n }).isRequired,\n\n /**\n * Modus operandi (role) of the widget instance.\n */\n mode: PropTypes.oneOf([\"treeview\", \"navigation\"]),\n /**\n * Can non-leaf nodes be collapsed / expanded.\n */\n collapsible: PropTypes.bool,\n\n /**\n * The ID of the selected page.\n */\n selected: PropTypes.string,\n /**\n * When uncontrolled, defines the initial selected page ID.\n */\n defaultSelected: PropTypes.string,\n /**\n * Callback fired when a navigation item is selected.\n *\n * @param {object} event The event source of the callback.\n * @param {object} page The data of the selected page.\n */\n onChange: PropTypes.func,\n\n /**\n * Expanded nodes' ids.\n */\n expanded: PropTypes.arrayOf(PropTypes.string),\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n *\n * It also supports `true` for starting with all nodes expanded.\n * With `false` all nodes will be collapsed.\n *\n * By default it expands the needed nodes to display the current selection, if any.\n */\n defaultExpanded: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.bool]),\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {object} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes (old and new).\n */\n onToggle: PropTypes.func,\n\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * data - sub-menu items\n * href - the url used for navigation.\n * target - the behavior when opening an url.\n */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n icon: PropTypes.node,\n data: PropTypes.array,\n href: PropTypes.string,\n target: PropTypes.string,\n })\n ).isRequired,\n\n /**\n * Callback triggered when any item is clicked.\n *\n * @deprecated use `onChange` for selection and `onToggle` for node expansion/collapse.\n */\n onClick: deprecatedPropType(PropTypes.func),\n /**\n * The root element (nav) aria label.\n *\n * @deprecated Use directly the `aria-label` property instead.\n */\n label: deprecatedPropType(PropTypes.string),\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationNavigation\" })(Navigation);\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeView.js","names":["isPrintableCharacter","string","length","match","findNextFirstChar","firstChars","startIndex","char","i","noopSelection","TreeView","React","forwardRef","props","ref","idProp","id","className","classes","mode","collapsible","expandedProp","expanded","defaultExpanded","onToggle","selectable","multiSelect","multiSelectProp","selectedProp","selected","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","PropTypes","shape","isRequired","oneOf","bool","oneOfType","arrayOf","func","styles","name"],"sources":["../../../src/VerticalNavigation/TreeView/TreeView.js"],"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"],"mappings":"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"}
1
+ {"version":3,"file":"TreeView.js","names":["isPrintableCharacter","string","length","match","findNextFirstChar","firstChars","startIndex","char","i","noopSelection","TreeView","React","forwardRef","props","ref","idProp","id","className","classes","mode","collapsible","expandedProp","expanded","defaultExpanded","onToggle","selectable","multiSelect","multiSelectProp","selectedProp","selected","defaultSelected","onChange","disabledItemsFocusable","onFocus","onBlur","onKeyDown","children","others","treeviewMode","treeId","useUniqueId","treeRef","useRef","handleRef","useForkRef","useControlled","setExpandedState","setSelectedState","useState","focusedNodeId","setFocusedNodeId","nodeMap","firstCharMap","isExpanded","useCallback","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","useMemo","treeStateContext","clsx","root","role","tabIndex","propTypes","PropTypes","shape","isRequired","oneOf","bool","oneOfType","arrayOf","func","withStyles","styles","name"],"sources":["../../../src/VerticalNavigation/TreeView/TreeView.js"],"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"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"TreeViewContexts.js","names":["TreeViewControlContext","React","createContext","displayName","TreeViewStateContext"],"sources":["../../../src/VerticalNavigation/TreeView/TreeViewContexts.js"],"sourcesContent":["import React from \"react\";\n\nconst TreeViewControlContext = React.createContext({});\nTreeViewControlContext.displayName = \"TreeViewControlContext\";\n\nconst TreeViewStateContext = React.createContext({});\nTreeViewStateContext.displayName = \"TreeViewStateContext\";\n\nexport { TreeViewControlContext, TreeViewStateContext };\n"],"mappings":";;;;;;;;;AAAA;;AAEA,IAAMA,sBAAsB,gBAAGC,eAAMC,aAAN,CAAoB,EAApB,CAA/B;;;AACAF,sBAAsB,CAACG,WAAvB,GAAqC,wBAArC;;AAEA,IAAMC,oBAAoB,gBAAGH,eAAMC,aAAN,CAAoB,EAApB,CAA7B;;;AACAE,oBAAoB,CAACD,WAArB,GAAmC,sBAAnC"}
1
+ {"version":3,"file":"TreeViewContexts.js","names":["TreeViewControlContext","React","createContext","displayName","TreeViewStateContext"],"sources":["../../../src/VerticalNavigation/TreeView/TreeViewContexts.js"],"sourcesContent":["import React from \"react\";\n\nconst TreeViewControlContext = React.createContext({});\nTreeViewControlContext.displayName = \"TreeViewControlContext\";\n\nconst TreeViewStateContext = React.createContext({});\nTreeViewStateContext.displayName = \"TreeViewStateContext\";\n\nexport { TreeViewControlContext, TreeViewStateContext };\n"],"mappings":";;;;;;;;;AAAA;;AAEA,IAAMA,sBAAsB,gBAAGC,cAAA,CAAMC,aAAN,CAAoB,EAApB,CAA/B;;;AACAF,sBAAsB,CAACG,WAAvB,GAAqC,wBAArC;;AAEA,IAAMC,oBAAoB,gBAAGH,cAAA,CAAMC,aAAN,CAAoB,EAApB,CAA7B;;;AACAE,oBAAoB,CAACD,WAArB,GAAmC,sBAAnC"}
@@ -40,6 +40,14 @@ export interface HvVerticalNavigationTreeViewItemProps
40
40
  * The item label.
41
41
  */
42
42
  label: React.ReactNode;
43
+ /**
44
+ * The url for the link.
45
+ */
46
+ href: string;
47
+ /**
48
+ * The behavior when opening a link.
49
+ */
50
+ target: string;
43
51
  /**
44
52
  * The node payload.
45
53
  */