@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":"MenuItem.js","names":["React","useContext","clsx","PropTypes","withStyles","KeyboardCodes","isKeypress","HvTypography","SelectionContext","FocusContext","ConditionalWrapper","MenuBar","styles","isBrowser","MenuItem","classes","id","item","type","onClick","selectionPath","dispatch","data","isMenu","isSelected","hasSubLevel","length","actionHandler","event","Enter","SpaceBar","currentTarget","blur","handleFocus","itemFocused","focusWrapper","childrenToWrap","externalReference","isIe","label","root","selectedItem","notSelectedItem","button","propTypes","shape","string","falseFocus","isRequired","arrayOf","func","oneOf","name"],"sources":["../../../../../src/Header/Navigation/MenuItem/MenuItem.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport { KeyboardCodes, isKeypress } from \"../../../utils/KeyboardUtils\";\nimport HvTypography from \"../../../Typography\";\nimport SelectionContext from \"../utils/SelectionContext\";\nimport { FocusContext } from \"../utils/FocusContext\";\nimport ConditionalWrapper from \"../../../utils/ConditionalWrapper\";\nimport MenuBar from \"../MenuBar\";\nimport styles from \"./styles\";\nimport isBrowser from \"../../../utils/browser\";\n\nconst MenuItem = ({ classes, id, item, type, onClick }) => {\n const selectionPath = useContext(SelectionContext);\n const { dispatch } = useContext(FocusContext);\n\n const { data } = item;\n const isMenu = type === \"menu\";\n const isSelected = selectionPath[isMenu ? 1 : 0] === item.id;\n const hasSubLevel = data && data.length;\n\n const actionHandler = (event) => {\n if (\n event.type === \"click\" ||\n isKeypress(event, KeyboardCodes.Enter) ||\n isKeypress(event, KeyboardCodes.SpaceBar)\n ) {\n if (event.type === \"click\") {\n event.currentTarget.blur();\n }\n\n onClick?.(event, item);\n }\n };\n\n const handleFocus = (event) => {\n dispatch({ type: \"setItemFocused\", itemFocused: event.currentTarget });\n };\n\n const focusWrapper = (childrenToWrap) => (\n <div className={classes.externalReference}>{childrenToWrap}</div>\n );\n const isIe = isBrowser([\"ie\", \"edge\"]);\n return (\n <li\n id={id}\n key={item.label}\n className={clsx(classes.root, classes[`${type}Item`], {\n [classes.selectedItem]: !isMenu && isSelected,\n [classes.notSelectedItem]: !isMenu && !isSelected,\n })}\n >\n <ConditionalWrapper condition={isIe} wrapper={focusWrapper}>\n <div\n role=\"button\"\n className={clsx(classes.button)}\n onClick={actionHandler}\n onKeyDown={actionHandler}\n tabIndex={0}\n onFocus={handleFocus}\n >\n <HvTypography variant={isSelected ? \"selectedNavText\" : \"normalText\"}>\n {item.label}\n </HvTypography>\n </div>\n </ConditionalWrapper>\n {hasSubLevel && <MenuBar data={data} onClick={onClick} type=\"menu\" />}\n </li>\n );\n};\n\nMenuItem.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the first element in the hierarchy.\n */\n root: PropTypes.string,\n /**\n * Style applied to the li element when it is selected.\n */\n selectedItem: PropTypes.string,\n /**\n * Style applied to the li element when it isn't selected.\n */\n notSelectedItem: PropTypes.string,\n /**\n * Style applied to each item button.\n */\n button: PropTypes.string,\n /**\n * Style applied to the reference element used for ie focus.\n */\n externalReference: PropTypes.string,\n /**\n * Style applied to simulated a focus in ie.\n */\n falseFocus: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * An object 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 */\n item: PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n })\n ),\n }).isRequired,\n /**\n * Callback triggered when item is clicked.\n */\n onClick: PropTypes.func,\n /**\n * The type of menu.\n */\n type: PropTypes.oneOf([\"menubar\", \"menu\"]).isRequired,\n};\n\nexport default withStyles(styles, { name: \"HvHeaderMenuItem\" })(MenuItem);\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,aAAT,EAAwBC,UAAxB,QAA0C,8BAA1C;AACA,OAAOC,YAAP,MAAyB,qBAAzB;AACA,OAAOC,gBAAP,MAA6B,2BAA7B;AACA,SAASC,YAAT,QAA6B,uBAA7B;AACA,OAAOC,kBAAP,MAA+B,mCAA/B;AACA,OAAOC,OAAP,MAAoB,YAApB;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,OAAOC,SAAP,MAAsB,wBAAtB;;AAEA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,OAA0C;EAAA,IAAvCC,OAAuC,QAAvCA,OAAuC;EAAA,IAA9BC,EAA8B,QAA9BA,EAA8B;EAAA,IAA1BC,IAA0B,QAA1BA,IAA0B;EAAA,IAApBC,IAAoB,QAApBA,IAAoB;EAAA,IAAdC,OAAc,QAAdA,OAAc;EACzD,IAAMC,aAAa,GAAGnB,UAAU,CAACO,gBAAD,CAAhC;;EACA,kBAAqBP,UAAU,CAACQ,YAAD,CAA/B;EAAA,IAAQY,QAAR,eAAQA,QAAR;;EAEA,IAAQC,IAAR,GAAiBL,IAAjB,CAAQK,IAAR;EACA,IAAMC,MAAM,GAAGL,IAAI,KAAK,MAAxB;EACA,IAAMM,UAAU,GAAGJ,aAAa,CAACG,MAAM,GAAG,CAAH,GAAO,CAAd,CAAb,KAAkCN,IAAI,CAACD,EAA1D;EACA,IAAMS,WAAW,GAAGH,IAAI,IAAIA,IAAI,CAACI,MAAjC;;EAEA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACC,KAAD,EAAW;IAC/B,IACEA,KAAK,CAACV,IAAN,KAAe,OAAf,IACAZ,UAAU,CAACsB,KAAD,EAAQvB,aAAa,CAACwB,KAAtB,CADV,IAEAvB,UAAU,CAACsB,KAAD,EAAQvB,aAAa,CAACyB,QAAtB,CAHZ,EAIE;MACA,IAAIF,KAAK,CAACV,IAAN,KAAe,OAAnB,EAA4B;QAC1BU,KAAK,CAACG,aAAN,CAAoBC,IAApB;MACD;;MAEDb,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAGS,KAAH,EAAUX,IAAV,CAAP;IACD;EACF,CAZD;;EAcA,IAAMgB,WAAW,GAAG,SAAdA,WAAc,CAACL,KAAD,EAAW;IAC7BP,QAAQ,CAAC;MAAEH,IAAI,EAAE,gBAAR;MAA0BgB,WAAW,EAAEN,KAAK,CAACG;IAA7C,CAAD,CAAR;EACD,CAFD;;EAIA,IAAMI,YAAY,GAAG,SAAfA,YAAe,CAACC,cAAD;IAAA,oBACnB;MAAK,SAAS,EAAErB,OAAO,CAACsB;IAAxB,GAA4CD,cAA5C,CADmB;EAAA,CAArB;;EAGA,IAAME,IAAI,GAAGzB,SAAS,CAAC,CAAC,IAAD,EAAO,MAAP,CAAD,CAAtB;EACA,oBACE;IACE,EAAE,EAAEG,EADN;IAEE,GAAG,EAAEC,IAAI,CAACsB,KAFZ;IAGE,SAAS,EAAErC,IAAI,CAACa,OAAO,CAACyB,IAAT,EAAezB,OAAO,WAAIG,IAAJ,UAAtB,EACW,CAACK,MADZ,KACsBC,UADtB,GACZT,OAAO,CAAC0B,YADI,GAEZ1B,OAAO,CAAC2B,eAFI;EAHjB,gBAQE,oBAAC,kBAAD;IAAoB,SAAS,EAAEJ,IAA/B;IAAqC,OAAO,EAAEH;EAA9C,gBACE;IACE,IAAI,EAAC,QADP;IAEE,SAAS,EAAEjC,IAAI,CAACa,OAAO,CAAC4B,MAAT,CAFjB;IAGE,OAAO,EAAEhB,aAHX;IAIE,SAAS,EAAEA,aAJb;IAKE,QAAQ,EAAE,CALZ;IAME,OAAO,EAAEM;EANX,gBAQE,oBAAC,YAAD;IAAc,OAAO,EAAET,UAAU,GAAG,iBAAH,GAAuB;EAAxD,GACGP,IAAI,CAACsB,KADR,CARF,CADF,CARF,EAsBGd,WAAW,iBAAI,oBAAC,OAAD;IAAS,IAAI,EAAEH,IAAf;IAAqB,OAAO,EAAEH,OAA9B;IAAuC,IAAI,EAAC;EAA5C,EAtBlB,CADF;AA0BD,CAzDD;;AA2DA,wCAAAL,QAAQ,CAAC8B,SAAT,GAAqB;EACnB;AACF;AACA;EACE7B,OAAO,EAAEZ,SAAS,CAAC0C,KAAV,CAAgB;IACvB;AACJ;AACA;IACIL,IAAI,EAAErC,SAAS,CAAC2C,MAJO;;IAKvB;AACJ;AACA;IACIL,YAAY,EAAEtC,SAAS,CAAC2C,MARD;;IASvB;AACJ;AACA;IACIJ,eAAe,EAAEvC,SAAS,CAAC2C,MAZJ;;IAavB;AACJ;AACA;IACIH,MAAM,EAAExC,SAAS,CAAC2C,MAhBK;;IAiBvB;AACJ;AACA;IACIT,iBAAiB,EAAElC,SAAS,CAAC2C,MApBN;;IAqBvB;AACJ;AACA;IACIC,UAAU,EAAE5C,SAAS,CAAC2C;EAxBC,CAAhB,EAyBNE,UA7BgB;;EA8BnB;AACF;AACA;EACEhC,EAAE,EAAEb,SAAS,CAAC2C,MAjCK;;EAkCnB;AACF;AACA;AACA;AACA;AACA;EACE7B,IAAI,EAAEd,SAAS,CAAC0C,KAAV,CAAgB;IACpB7B,EAAE,EAAEb,SAAS,CAAC2C,MAAV,CAAiBE,UADD;IAEpBT,KAAK,EAAEpC,SAAS,CAAC2C,MAAV,CAAiBE,UAFJ;IAGpB1B,IAAI,EAAEnB,SAAS,CAAC8C,OAAV,CACJ9C,SAAS,CAAC0C,KAAV,CAAgB;MACd7B,EAAE,EAAEb,SAAS,CAAC2C,MAAV,CAAiBE,UADP;MAEdT,KAAK,EAAEpC,SAAS,CAAC2C,MAAV,CAAiBE;IAFV,CAAhB,CADI;EAHc,CAAhB,EASHA,UAjDgB;;EAkDnB;AACF;AACA;EACE7B,OAAO,EAAEhB,SAAS,CAAC+C,IArDA;;EAsDnB;AACF;AACA;EACEhC,IAAI,EAAEf,SAAS,CAACgD,KAAV,CAAgB,CAAC,SAAD,EAAY,MAAZ,CAAhB,EAAqCH;AAzDxB,CAArB;AA4DA,eAAe5C,UAAU,CAACQ,MAAD,EAAS;EAAEwC,IAAI,EAAE;AAAR,CAAT,CAAV,CAAiDtC,QAAjD,CAAf"}
1
+ {"version":3,"file":"MenuItem.js","names":["React","useContext","clsx","PropTypes","withStyles","KeyboardCodes","isKeypress","HvTypography","SelectionContext","FocusContext","ConditionalWrapper","MenuBar","styles","isBrowser","MenuItem","classes","id","item","type","onClick","selectionPath","dispatch","data","isMenu","isSelected","hasSubLevel","length","actionHandler","event","Enter","SpaceBar","currentTarget","blur","handleFocus","itemFocused","focusWrapper","childrenToWrap","externalReference","isIe","label","itemProps","onKeyDown","tabIndex","onFocus","root","selectedItem","notSelectedItem","href","button","link","target","propTypes","shape","string","falseFocus","isRequired","arrayOf","func","oneOf","name"],"sources":["../../../../../src/Header/Navigation/MenuItem/MenuItem.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport { KeyboardCodes, isKeypress } from \"../../../utils/KeyboardUtils\";\nimport HvTypography from \"../../../Typography\";\nimport SelectionContext from \"../utils/SelectionContext\";\nimport { FocusContext } from \"../utils/FocusContext\";\nimport ConditionalWrapper from \"../../../utils/ConditionalWrapper\";\nimport MenuBar from \"../MenuBar\";\nimport styles from \"./styles\";\nimport isBrowser from \"../../../utils/browser\";\n\nconst MenuItem = ({ classes, id, item, type, onClick }) => {\n const selectionPath = useContext(SelectionContext);\n const { dispatch } = useContext(FocusContext);\n\n const { data } = item;\n const isMenu = type === \"menu\";\n const isSelected = selectionPath[isMenu ? 1 : 0] === item.id;\n const hasSubLevel = data && data.length;\n\n const actionHandler = (event) => {\n if (\n event.type === \"click\" ||\n isKeypress(event, KeyboardCodes.Enter) ||\n isKeypress(event, KeyboardCodes.SpaceBar)\n ) {\n if (event.type === \"click\") {\n event.currentTarget.blur();\n }\n\n onClick?.(event, item);\n }\n };\n\n const handleFocus = (event) => {\n dispatch({ type: \"setItemFocused\", itemFocused: event.currentTarget });\n };\n\n const focusWrapper = (childrenToWrap) => (\n <div className={classes.externalReference}>{childrenToWrap}</div>\n );\n const isIe = isBrowser([\"ie\", \"edge\"]);\n const label = (\n <HvTypography variant={isSelected ? \"selectedNavText\" : \"normalText\"}>\n {item.label}\n </HvTypography>\n );\n const itemProps = {\n onClick: actionHandler,\n onKeyDown: actionHandler,\n tabIndex: 0,\n onFocus: handleFocus,\n };\n return (\n <li\n id={id}\n key={item.label}\n className={clsx(classes.root, classes[`${type}Item`], {\n [classes.selectedItem]: !isMenu && isSelected,\n [classes.notSelectedItem]: !isMenu && !isSelected,\n })}\n >\n <ConditionalWrapper condition={isIe} wrapper={focusWrapper}>\n {item?.href ? (\n <a\n className={clsx(classes.button, classes.link)}\n href={item?.href}\n target={item?.target}\n {...itemProps}\n >\n {label}\n </a>\n ) : (\n <div className={clsx(classes.button)} role=\"button\" {...itemProps}>\n {label}\n </div>\n )}\n </ConditionalWrapper>\n {hasSubLevel && <MenuBar data={data} onClick={onClick} type=\"menu\" />}\n </li>\n );\n};\n\nMenuItem.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the first element in the hierarchy.\n */\n root: PropTypes.string,\n /**\n * Style applied to the li element when it is selected.\n */\n selectedItem: PropTypes.string,\n /**\n * Style applied to the li element when it isn't selected.\n */\n notSelectedItem: PropTypes.string,\n /**\n * Style applied to each item button.\n */\n button: PropTypes.string,\n /**\n * Style applied to each item button when it is behaving as a.\n */\n link: PropTypes.string,\n /**\n * Style applied to the reference element used for ie focus.\n */\n externalReference: PropTypes.string,\n /**\n * Style applied to simulated a focus in ie.\n */\n falseFocus: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * An object 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 */\n item: PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n href: PropTypes.string,\n target: PropTypes.string,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n })\n ),\n }).isRequired,\n /**\n * Callback triggered when item is clicked.\n */\n onClick: PropTypes.func,\n /**\n * The type of menu.\n */\n type: PropTypes.oneOf([\"menubar\", \"menu\"]).isRequired,\n};\n\nexport default withStyles(styles, { name: \"HvHeaderMenuItem\" })(MenuItem);\n"],"mappings":"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"}
@@ -58,6 +58,10 @@ var styles = function styles(theme) {
58
58
  },
59
59
  "&.focus-visible": _objectSpread({}, outlineStyles)
60
60
  },
61
+ link: {
62
+ display: "block",
63
+ textDecoration: "none"
64
+ },
61
65
  externalReference: _objectSpread({}, externalReference),
62
66
  falseFocus: _objectSpread(_objectSpread({}, falseFocus), {}, {
63
67
  top: "4px"
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","names":["focusStyles","outlineStyles","externalReference","falseFocus","styles","theme","hoverColor","hv","palette","atmosphere","atmo3","root","display","backgroundColor","selectedItem","borderTop","accent","acce3","paddingTop","notSelectedItem","marginTop","button","border","cursor","padding","hvSpacing","outline","top"],"sources":["../../../../../src/Header/Navigation/MenuItem/styles.js"],"sourcesContent":["import \"focus-within-polyfill\";\nimport focusStyles, { outlineStyles } from \"../../../Focus/styles\";\n\nconst { externalReference, falseFocus } = focusStyles;\n\nconst styles = (theme) => {\n const hoverColor = theme.hv.palette.atmosphere.atmo3;\n\n return {\n root: {\n display: \"inline\",\n \"&:hover\": {\n \"& > [role='button']\": {\n backgroundColor: hoverColor,\n },\n \"&:focus-within\": {\n \"& > [role='button']\": {\n backgroundColor: hoverColor,\n },\n },\n },\n // IE fallback code (using focus-within-polyfill)\n \"&.focus-within\": {\n \"& > [role='button']\": {\n backgroundColor: hoverColor,\n },\n },\n },\n selectedItem: {\n borderTop: `2px solid ${theme.hv.palette.accent.acce3}`,\n paddingTop: \"2px\",\n },\n notSelectedItem: {\n marginTop: \"4px\",\n },\n button: {\n border: \"none\",\n cursor: \"pointer\",\n padding: theme.hvSpacing(\"8px\", \"sm\"),\n \"&:active\": {\n outline: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n backgroundColor: hoverColor,\n },\n \"&.focus-visible\": {\n ...outlineStyles,\n },\n },\n externalReference: {\n ...externalReference,\n },\n falseFocus: {\n ...falseFocus,\n top: \"4px\",\n },\n };\n};\n\nexport default styles;\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,uBAAP;AACA,OAAOA,WAAP,IAAsBC,aAAtB,QAA2C,uBAA3C;AAEA,IAAQC,iBAAR,GAA0CF,WAA1C,CAAQE,iBAAR;AAAA,IAA2BC,UAA3B,GAA0CH,WAA1C,CAA2BG,UAA3B;;AAEA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD,EAAW;EACxB,IAAMC,UAAU,GAAGD,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBC,UAAjB,CAA4BC,KAA/C;EAEA,OAAO;IACLC,IAAI,EAAE;MACJC,OAAO,EAAE,QADL;MAEJ,WAAW;QACT,uBAAuB;UACrBC,eAAe,EAAEP;QADI,CADd;QAIT,kBAAkB;UAChB,uBAAuB;YACrBO,eAAe,EAAEP;UADI;QADP;MAJT,CAFP;MAYJ;MACA,kBAAkB;QAChB,uBAAuB;UACrBO,eAAe,EAAEP;QADI;MADP;IAbd,CADD;IAoBLQ,YAAY,EAAE;MACZC,SAAS,sBAAeV,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBQ,MAAjB,CAAwBC,KAAvC,CADG;MAEZC,UAAU,EAAE;IAFA,CApBT;IAwBLC,eAAe,EAAE;MACfC,SAAS,EAAE;IADI,CAxBZ;IA2BLC,MAAM,EAAE;MACNC,MAAM,EAAE,MADF;MAENC,MAAM,EAAE,SAFF;MAGNC,OAAO,EAAEnB,KAAK,CAACoB,SAAN,CAAgB,KAAhB,EAAuB,IAAvB,CAHH;MAIN,YAAY;QACVC,OAAO,EAAE;MADC,CAJN;MAON,WAAW;QACTA,OAAO,EAAE,MADA;QAETb,eAAe,EAAEP;MAFR,CAPL;MAWN,qCACKL,aADL;IAXM,CA3BH;IA0CLC,iBAAiB,oBACZA,iBADY,CA1CZ;IA6CLC,UAAU,kCACLA,UADK;MAERwB,GAAG,EAAE;IAFG;EA7CL,CAAP;AAkDD,CArDD;;AAuDA,eAAevB,MAAf"}
1
+ {"version":3,"file":"styles.js","names":["focusStyles","outlineStyles","externalReference","falseFocus","styles","theme","hoverColor","hv","palette","atmosphere","atmo3","root","display","backgroundColor","selectedItem","borderTop","accent","acce3","paddingTop","notSelectedItem","marginTop","button","border","cursor","padding","hvSpacing","outline","link","textDecoration","top"],"sources":["../../../../../src/Header/Navigation/MenuItem/styles.js"],"sourcesContent":["import \"focus-within-polyfill\";\nimport focusStyles, { outlineStyles } from \"../../../Focus/styles\";\n\nconst { externalReference, falseFocus } = focusStyles;\n\nconst styles = (theme) => {\n const hoverColor = theme.hv.palette.atmosphere.atmo3;\n\n return {\n root: {\n display: \"inline\",\n \"&:hover\": {\n \"& > [role='button']\": {\n backgroundColor: hoverColor,\n },\n \"&:focus-within\": {\n \"& > [role='button']\": {\n backgroundColor: hoverColor,\n },\n },\n },\n // IE fallback code (using focus-within-polyfill)\n \"&.focus-within\": {\n \"& > [role='button']\": {\n backgroundColor: hoverColor,\n },\n },\n },\n selectedItem: {\n borderTop: `2px solid ${theme.hv.palette.accent.acce3}`,\n paddingTop: \"2px\",\n },\n notSelectedItem: {\n marginTop: \"4px\",\n },\n button: {\n border: \"none\",\n cursor: \"pointer\",\n padding: theme.hvSpacing(\"8px\", \"sm\"),\n \"&:active\": {\n outline: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n backgroundColor: hoverColor,\n },\n \"&.focus-visible\": {\n ...outlineStyles,\n },\n },\n link: {\n display: \"block\",\n textDecoration: \"none\",\n },\n externalReference: {\n ...externalReference,\n },\n falseFocus: {\n ...falseFocus,\n top: \"4px\",\n },\n };\n};\n\nexport default styles;\n"],"mappings":";;;;;;;;;;;;;AAAA,OAAO,uBAAP;AACA,OAAOA,WAAP,IAAsBC,aAAtB,QAA2C,uBAA3C;AAEA,IAAQC,iBAAR,GAA0CF,WAA1C,CAAQE,iBAAR;AAAA,IAA2BC,UAA3B,GAA0CH,WAA1C,CAA2BG,UAA3B;;AAEA,IAAMC,MAAM,GAAG,SAATA,MAAS,CAACC,KAAD,EAAW;EACxB,IAAMC,UAAU,GAAGD,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBC,UAAjB,CAA4BC,KAA/C;EAEA,OAAO;IACLC,IAAI,EAAE;MACJC,OAAO,EAAE,QADL;MAEJ,WAAW;QACT,uBAAuB;UACrBC,eAAe,EAAEP;QADI,CADd;QAIT,kBAAkB;UAChB,uBAAuB;YACrBO,eAAe,EAAEP;UADI;QADP;MAJT,CAFP;MAYJ;MACA,kBAAkB;QAChB,uBAAuB;UACrBO,eAAe,EAAEP;QADI;MADP;IAbd,CADD;IAoBLQ,YAAY,EAAE;MACZC,SAAS,sBAAeV,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBQ,MAAjB,CAAwBC,KAAvC,CADG;MAEZC,UAAU,EAAE;IAFA,CApBT;IAwBLC,eAAe,EAAE;MACfC,SAAS,EAAE;IADI,CAxBZ;IA2BLC,MAAM,EAAE;MACNC,MAAM,EAAE,MADF;MAENC,MAAM,EAAE,SAFF;MAGNC,OAAO,EAAEnB,KAAK,CAACoB,SAAN,CAAgB,KAAhB,EAAuB,IAAvB,CAHH;MAIN,YAAY;QACVC,OAAO,EAAE;MADC,CAJN;MAON,WAAW;QACTA,OAAO,EAAE,MADA;QAETb,eAAe,EAAEP;MAFR,CAPL;MAWN,qCACKL,aADL;IAXM,CA3BH;IA0CL0B,IAAI,EAAE;MACJf,OAAO,EAAE,OADL;MAEJgB,cAAc,EAAE;IAFZ,CA1CD;IA8CL1B,iBAAiB,oBACZA,iBADY,CA9CZ;IAiDLC,UAAU,kCACLA,UADK;MAER0B,GAAG,EAAE;IAFG;EAjDL,CAAP;AAsDD,CAzDD;;AA2DA,eAAezB,MAAf"}
@@ -5,6 +5,8 @@ export interface NavigationItemProp {
5
5
  id: string;
6
6
  label: string;
7
7
  path?: string;
8
+ href?: string;
9
+ target?: string;
8
10
  }
9
11
 
10
12
  export type HvHeaderNavigationClassKey = "root";
@@ -20,6 +22,8 @@ export interface HvHeaderNavigationProps
20
22
  *
21
23
  * id - the id to be applied to the root element.
22
24
  * label - the label to be rendered on the menu item.
25
+ * href - the url for navigation.
26
+ * target - the behavior when opening a link.
23
27
  */
24
28
  data: NavigationItemProp[];
25
29
  /**
@@ -57,10 +57,14 @@ process.env.NODE_ENV !== "production" ? Navigation.propTypes = {
57
57
  *
58
58
  * id - the id to be applied to the root element.
59
59
  * label - the label to be rendered on the menu item.
60
+ * href - the url used for navigation.
61
+ * target - the behavior when opening an url.
60
62
  */
61
63
  data: PropTypes.arrayOf(PropTypes.shape({
62
64
  id: PropTypes.string.isRequired,
63
- label: PropTypes.string.isRequired
65
+ label: PropTypes.string.isRequired,
66
+ href: PropTypes.string,
67
+ target: PropTypes.string
64
68
  })).isRequired,
65
69
 
66
70
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.js","names":["React","PropTypes","clsx","withStyles","FocusProvider","SelectionContext","useSelectionPath","MenuBar","styles","Navigation","classes","className","data","selected","onClick","others","selectionPath","handleClick","event","selection","root","propTypes","shape","string","isRequired","arrayOf","id","label","func","name"],"sources":["../../../../src/Header/Navigation/Navigation.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport { FocusProvider } from \"./utils/FocusContext\";\nimport SelectionContext from \"./utils/SelectionContext\";\nimport useSelectionPath from \"./utils/useSelectionPath\";\nimport MenuBar from \"./MenuBar\";\nimport styles from \"./styles\";\n\nconst Navigation = ({ classes, className, data, selected, onClick, ...others }) => {\n const selectionPath = useSelectionPath(data, selected);\n\n const handleClick = (event, selection) => {\n onClick?.(event, selection);\n };\n\n return (\n <SelectionContext.Provider value={selectionPath}>\n <FocusProvider>\n <nav className={clsx(className, classes.root)} {...others}>\n <MenuBar data={data} onClick={handleClick} type=\"menubar\" />\n </nav>\n </FocusProvider>\n </SelectionContext.Provider>\n );\n};\n\nNavigation.propTypes = {\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 }).isRequired,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\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 */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n })\n ).isRequired,\n /**\n * Menu item id selected.\n */\n selected: PropTypes.string,\n /**\n * Callback triggered when any item is clicked.\n */\n onClick: PropTypes.func,\n};\n\nexport default withStyles(styles, { name: \"HvHeaderNavigation\" })(Navigation);\n"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,aAAT,QAA8B,sBAA9B;AACA,OAAOC,gBAAP,MAA6B,0BAA7B;AACA,OAAOC,gBAAP,MAA6B,0BAA7B;AACA,OAAOC,OAAP,MAAoB,WAApB;AACA,OAAOC,MAAP,MAAmB,UAAnB;;AAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa,OAAgE;EAAA,IAA7DC,OAA6D,QAA7DA,OAA6D;EAAA,IAApDC,SAAoD,QAApDA,SAAoD;EAAA,IAAzCC,IAAyC,QAAzCA,IAAyC;EAAA,IAAnCC,QAAmC,QAAnCA,QAAmC;EAAA,IAAzBC,OAAyB,QAAzBA,OAAyB;EAAA,IAAbC,MAAa;;EACjF,IAAMC,aAAa,GAAGV,gBAAgB,CAACM,IAAD,EAAOC,QAAP,CAAtC;;EAEA,IAAMI,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAQC,SAAR,EAAsB;IACxCL,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAGI,KAAH,EAAUC,SAAV,CAAP;EACD,CAFD;;EAIA,oBACE,oBAAC,gBAAD,CAAkB,QAAlB;IAA2B,KAAK,EAAEH;EAAlC,gBACE,oBAAC,aAAD,qBACE;IAAK,SAAS,EAAEd,IAAI,CAACS,SAAD,EAAYD,OAAO,CAACU,IAApB;EAApB,GAAmDL,MAAnD,gBACE,oBAAC,OAAD;IAAS,IAAI,EAAEH,IAAf;IAAqB,OAAO,EAAEK,WAA9B;IAA2C,IAAI,EAAC;EAAhD,EADF,CADF,CADF,CADF;AASD,CAhBD;;AAkBA,wCAAAR,UAAU,CAACY,SAAX,GAAuB;EACrB;AACF;AACA;EACEX,OAAO,EAAET,SAAS,CAACqB,KAAV,CAAgB;IACvB;AACJ;AACA;IACIF,IAAI,EAAEnB,SAAS,CAACsB;EAJO,CAAhB,EAKNC,UATkB;;EAUrB;AACF;AACA;EACEb,SAAS,EAAEV,SAAS,CAACsB,MAbA;;EAcrB;AACF;AACA;AACA;AACA;AACA;EACEX,IAAI,EAAEX,SAAS,CAACwB,OAAV,CACJxB,SAAS,CAACqB,KAAV,CAAgB;IACdI,EAAE,EAAEzB,SAAS,CAACsB,MAAV,CAAiBC,UADP;IAEdG,KAAK,EAAE1B,SAAS,CAACsB,MAAV,CAAiBC;EAFV,CAAhB,CADI,EAKJA,UAzBmB;;EA0BrB;AACF;AACA;EACEX,QAAQ,EAAEZ,SAAS,CAACsB,MA7BC;;EA8BrB;AACF;AACA;EACET,OAAO,EAAEb,SAAS,CAAC2B;AAjCE,CAAvB;AAoCA,eAAezB,UAAU,CAACK,MAAD,EAAS;EAAEqB,IAAI,EAAE;AAAR,CAAT,CAAV,CAAmDpB,UAAnD,CAAf"}
1
+ {"version":3,"file":"Navigation.js","names":["React","PropTypes","clsx","withStyles","FocusProvider","SelectionContext","useSelectionPath","MenuBar","styles","Navigation","classes","className","data","selected","onClick","others","selectionPath","handleClick","event","selection","root","propTypes","shape","string","isRequired","arrayOf","id","label","href","target","func","name"],"sources":["../../../../src/Header/Navigation/Navigation.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport { FocusProvider } from \"./utils/FocusContext\";\nimport SelectionContext from \"./utils/SelectionContext\";\nimport useSelectionPath from \"./utils/useSelectionPath\";\nimport MenuBar from \"./MenuBar\";\nimport styles from \"./styles\";\n\nconst Navigation = ({ classes, className, data, selected, onClick, ...others }) => {\n const selectionPath = useSelectionPath(data, selected);\n\n const handleClick = (event, selection) => {\n onClick?.(event, selection);\n };\n\n return (\n <SelectionContext.Provider value={selectionPath}>\n <FocusProvider>\n <nav className={clsx(className, classes.root)} {...others}>\n <MenuBar data={data} onClick={handleClick} type=\"menubar\" />\n </nav>\n </FocusProvider>\n </SelectionContext.Provider>\n );\n};\n\nNavigation.propTypes = {\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 }).isRequired,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\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 * 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 href: PropTypes.string,\n target: PropTypes.string,\n })\n ).isRequired,\n /**\n * Menu item id selected.\n */\n selected: PropTypes.string,\n /**\n * Callback triggered when any item is clicked.\n */\n onClick: PropTypes.func,\n};\n\nexport default withStyles(styles, { name: \"HvHeaderNavigation\" })(Navigation);\n"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,aAAT,QAA8B,sBAA9B;AACA,OAAOC,gBAAP,MAA6B,0BAA7B;AACA,OAAOC,gBAAP,MAA6B,0BAA7B;AACA,OAAOC,OAAP,MAAoB,WAApB;AACA,OAAOC,MAAP,MAAmB,UAAnB;;AAEA,IAAMC,UAAU,GAAG,SAAbA,UAAa,OAAgE;EAAA,IAA7DC,OAA6D,QAA7DA,OAA6D;EAAA,IAApDC,SAAoD,QAApDA,SAAoD;EAAA,IAAzCC,IAAyC,QAAzCA,IAAyC;EAAA,IAAnCC,QAAmC,QAAnCA,QAAmC;EAAA,IAAzBC,OAAyB,QAAzBA,OAAyB;EAAA,IAAbC,MAAa;;EACjF,IAAMC,aAAa,GAAGV,gBAAgB,CAACM,IAAD,EAAOC,QAAP,CAAtC;;EAEA,IAAMI,WAAW,GAAG,SAAdA,WAAc,CAACC,KAAD,EAAQC,SAAR,EAAsB;IACxCL,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAGI,KAAH,EAAUC,SAAV,CAAP;EACD,CAFD;;EAIA,oBACE,oBAAC,gBAAD,CAAkB,QAAlB;IAA2B,KAAK,EAAEH;EAAlC,gBACE,oBAAC,aAAD,qBACE;IAAK,SAAS,EAAEd,IAAI,CAACS,SAAD,EAAYD,OAAO,CAACU,IAApB;EAApB,GAAmDL,MAAnD,gBACE,oBAAC,OAAD;IAAS,IAAI,EAAEH,IAAf;IAAqB,OAAO,EAAEK,WAA9B;IAA2C,IAAI,EAAC;EAAhD,EADF,CADF,CADF,CADF;AASD,CAhBD;;AAkBA,wCAAAR,UAAU,CAACY,SAAX,GAAuB;EACrB;AACF;AACA;EACEX,OAAO,EAAET,SAAS,CAACqB,KAAV,CAAgB;IACvB;AACJ;AACA;IACIF,IAAI,EAAEnB,SAAS,CAACsB;EAJO,CAAhB,EAKNC,UATkB;;EAUrB;AACF;AACA;EACEb,SAAS,EAAEV,SAAS,CAACsB,MAbA;;EAcrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEX,IAAI,EAAEX,SAAS,CAACwB,OAAV,CACJxB,SAAS,CAACqB,KAAV,CAAgB;IACdI,EAAE,EAAEzB,SAAS,CAACsB,MAAV,CAAiBC,UADP;IAEdG,KAAK,EAAE1B,SAAS,CAACsB,MAAV,CAAiBC,UAFV;IAGdI,IAAI,EAAE3B,SAAS,CAACsB,MAHF;IAIdM,MAAM,EAAE5B,SAAS,CAACsB;EAJJ,CAAhB,CADI,EAOJC,UA7BmB;;EA8BrB;AACF;AACA;EACEX,QAAQ,EAAEZ,SAAS,CAACsB,MAjCC;;EAkCrB;AACF;AACA;EACET,OAAO,EAAEb,SAAS,CAAC6B;AArCE,CAAvB;AAwCA,eAAe3B,UAAU,CAACK,MAAD,EAAS;EAAEuB,IAAI,EAAE;AAAR,CAAT,CAAV,CAAmDtB,UAAnD,CAAf"}
@@ -20,10 +20,10 @@ import "core-js/modules/es.symbol.js";
20
20
  import "core-js/modules/es.object.get-own-property-descriptor.js";
21
21
  import "core-js/modules/web.dom-collections.for-each.js";
22
22
  import "core-js/modules/es.object.get-own-property-descriptors.js";
23
- import React, { isValidElement, useEffect, memo } from "react";
23
+ import React, { isValidElement, useEffect, useCallback, forwardRef } from "react";
24
24
  import PropTypes from "prop-types";
25
25
  import clsx from "clsx";
26
- import { FixedSizeList, areEqual } from "react-window";
26
+ import { FixedSizeList } from "react-window";
27
27
  import { withStyles } from "@material-ui/core";
28
28
  import { DropRightXS } from "@hitachivantara/uikit-react-icons";
29
29
  import { parseList, wrapperTooltip } from "./utils";
@@ -238,7 +238,8 @@ var HvList = function HvList(props) {
238
238
  listRef.current.scrollToItem(selectedItemIndex);
239
239
  }
240
240
  }, [listRef, selectedItemIndex]);
241
- var ListItem = /*#__PURE__*/memo(function (_ref) {
241
+
242
+ var ListItem = function ListItem(_ref) {
242
243
  var index = _ref.index,
243
244
  style = _ref.style;
244
245
  var item = filteredList[index];
@@ -254,15 +255,31 @@ var HvList = function HvList(props) {
254
255
  condensed: condensed,
255
256
  disableGutters: useSelector
256
257
  });
257
- }, areEqual);
258
+ };
259
+
258
260
  process.env.NODE_ENV !== "production" ? ListItem.propTypes = {
259
- index: PropTypes.number.isRequired,
260
261
  style: PropTypes.shape({
261
262
  top: PropTypes.number.isRequired,
262
263
  left: PropTypes.number.isRequired,
263
264
  width: PropTypes.number.isRequired
264
265
  }).isRequired
265
266
  } : void 0;
267
+ var renderFixedList = useCallback(function () {
268
+ return /*#__PURE__*/forwardRef(function (_ref2, ref) {
269
+ var rest = _extends({}, _ref2);
270
+
271
+ return /*#__PURE__*/React.createElement(HvListContainer, _extends({
272
+ id: id,
273
+ className: clsx(className, classes.root),
274
+ role: selectable ? "listbox" : "menu",
275
+ interactive: true,
276
+ condensed: condensed,
277
+ disableGutters: useSelector,
278
+ "aria-multiselectable": selectable && multiSelect || undefined,
279
+ ref: ref
280
+ }, rest));
281
+ });
282
+ }, [id, useSelector, className, classes, condensed, selectable, multiSelect]);
266
283
  return /*#__PURE__*/React.createElement(React.Fragment, null, multiSelect && useSelector && showSelectAll && renderSelectAll(), filteredList.length > 0 && !virtualized && /*#__PURE__*/React.createElement(HvListContainer, _extends({
267
284
  id: id,
268
285
  className: clsx(className, classes.root),
@@ -280,20 +297,7 @@ var HvList = function HvList(props) {
280
297
  width: "100%",
281
298
  itemCount: filteredList.length,
282
299
  itemSize: condensed ? 32 : 40,
283
- innerElementType: /*#__PURE__*/React.forwardRef(function (_ref2, ref) {
284
- var rest = _extends({}, _ref2);
285
-
286
- return /*#__PURE__*/React.createElement(HvListContainer, _extends({
287
- id: id,
288
- className: clsx(className, classes.root),
289
- role: selectable ? "listbox" : "menu",
290
- interactive: true,
291
- condensed: condensed,
292
- disableGutters: useSelector,
293
- "aria-multiselectable": selectable && multiSelect || undefined,
294
- ref: ref
295
- }, rest));
296
- })
300
+ innerElementType: renderFixedList
297
301
  }, others), ListItem));
298
302
  };
299
303
 
@@ -1 +1 @@
1
- {"version":3,"file":"List.js","names":["React","isValidElement","useEffect","memo","PropTypes","clsx","FixedSizeList","areEqual","withStyles","DropRightXS","parseList","wrapperTooltip","useSelectableList","HvLink","HvCheckBox","HvListContainer","HvListItem","HvRadio","HvTypography","setId","styles","DEFAULT_LABELS","selectAll","selectionConjunction","HvList","props","id","classes","className","multiSelect","hasTooltips","showSelectAll","labels","useSelector","selectable","singleSelectionToggle","condensed","onChange","onClick","values","valuesProp","height","virtualized","others","list","setList","selection","listRef","useRef","passedProps","parsedList","handleSelect","evt","item","path","preventDefault","disabled","handleSelectAll","anySelectableSelected","some","elem","selected","renderLeftIcon","icon","isSelected","isDisabled","renderSelectAll","anySelected","length","allSelected","selectionLabel","selectAllSelector","renderItemText","ItemText","label","a","link","renderMultiSelectItem","itemId","Selection","root","selectorRoot","container","selectorContainer","truncate","renderSingleSelectItem","renderListItem","i","otherProps","startAdornment","undefined","itemSelector","showNavIcon","box","filteredList","filter","it","isHidden","map","reduce","result","selectedItemIndex","findIndex","current","scrollToItem","ListItem","index","style","tabIndex","top","parseFloat","left","width","interactive","disableGutters","propTypes","number","isRequired","shape","virtualizedRoot","forwardRef","ref","rest","string","arrayOf","oneOfType","node","bool","func","params","instanceOf","Object","name"],"sources":["../../../src/List/List.js"],"sourcesContent":["import React, { isValidElement, useEffect, memo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { FixedSizeList, areEqual } from \"react-window\";\n\nimport { withStyles } from \"@material-ui/core\";\nimport { DropRightXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { parseList, wrapperTooltip } from \"./utils\";\nimport useSelectableList from \"./useSelectableList\";\n\nimport { HvLink, HvCheckBox, HvListContainer, HvListItem, HvRadio, HvTypography, setId } from \"..\";\n\nimport styles from \"./styles\";\n\nconst DEFAULT_LABELS = {\n selectAll: \"Select All\",\n selectionConjunction: \"/\",\n};\n\n/**\n * Component used to show a set of related data to the user.\n */\nconst HvList = (props) => {\n const {\n id,\n classes,\n className,\n multiSelect = false,\n hasTooltips = false,\n showSelectAll = false,\n labels = DEFAULT_LABELS,\n useSelector = false,\n selectable = true,\n singleSelectionToggle = true,\n condensed = false,\n onChange,\n onClick,\n values: valuesProp = [],\n height,\n virtualized = false,\n ...others\n } = props;\n const [list, setList, selection] = useSelectableList(valuesProp);\n const listRef = React.useRef(null);\n\n useEffect(() => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList = parseList(valuesProp, null, passedProps);\n setList(parsedList);\n }, [valuesProp, multiSelect, selectable, singleSelectionToggle, setList]);\n\n const handleSelect = (evt, item) => {\n if (!item.path) evt.preventDefault();\n if (item.disabled) return;\n\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList = parseList(list, item, passedProps);\n setList(parsedList);\n\n onClick?.(evt, item);\n onChange?.(parsedList);\n };\n\n const handleSelectAll = () => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const anySelectableSelected = list.some((elem) => elem.selected || elem.disabled);\n const parsedList = parseList(list, null, passedProps, !anySelectableSelected);\n setList(parsedList);\n\n onChange?.(parsedList);\n };\n\n const renderLeftIcon = (item) =>\n isValidElement(item.icon)\n ? item.icon\n : item.icon?.({\n isSelected: item.selected,\n isDisabled: item.disabled,\n });\n\n const renderSelectAll = () => {\n const { selectAll, selectionConjunction } = labels;\n\n const anySelected = !!selection?.length;\n const allSelected = selection.length === list.length;\n\n const selectionLabel = (\n <HvTypography component=\"span\">\n {!anySelected ? (\n <>\n <b>{selectAll}</b>\n {` (${list.length})`}\n </>\n ) : (\n <>\n <b>{selection.length}</b>\n {`\\xa0${selectionConjunction}\\xa0`}\n {list.length}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={selectionLabel}\n onChange={handleSelectAll}\n className={classes.selectAllSelector}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n );\n };\n\n const renderItemText = (item) => {\n const ItemText = wrapperTooltip(hasTooltips, item.label, item.label);\n\n return !multiSelect && item.path ? (\n <HvLink key={item.label} route={item.path} classes={{ a: classes.link }}>\n <ItemText />\n </HvLink>\n ) : (\n <ItemText />\n );\n };\n\n const renderMultiSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <HvCheckBox\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n onChange={(evt) => handleSelect(evt, item)}\n classes={{\n root: classes.selectorRoot,\n container: classes.selectorContainer,\n label: classes.truncate,\n }}\n />,\n item.label\n );\n return <Selection />;\n }\n\n return renderItemText(item);\n };\n\n const renderSingleSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <HvRadio\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n classes={{\n root: classes.selectorRoot,\n container: classes.selectorContainer,\n label: classes.truncate,\n }}\n />,\n item.label\n );\n return <Selection />;\n }\n return renderItemText(item);\n };\n\n const renderListItem = (item, i, otherProps = {}) => {\n const itemId = setId(id, \"item\", i);\n const selected = item.selected || false;\n\n let startAdornment = null;\n if (!useSelector && item.icon) {\n startAdornment = renderLeftIcon(item);\n }\n\n return (\n <HvListItem\n key={i}\n id={itemId}\n role={selectable ? \"option\" : \"menuitem\"}\n disabled={item.disabled || undefined}\n className={classes.item}\n classes={{ selected: useSelector || multiSelect ? classes.itemSelector : \"\" }}\n selected={multiSelect || selected ? selected : undefined}\n onClick={(evt) => handleSelect(evt, item)}\n startAdornment={startAdornment}\n endAdornment={item.showNavIcon && <DropRightXS className={classes.box} iconSize=\"XS\" />}\n {...otherProps}\n >\n {multiSelect ? renderMultiSelectItem(item, itemId) : renderSingleSelectItem(item, itemId)}\n </HvListItem>\n );\n };\n\n const filteredList = list.filter((it) => !it.isHidden);\n const anySelected = list\n .map((item) => item.selected && !item.disabled)\n .reduce((result, selected) => result || selected, false);\n\n const selectedItemIndex = list.findIndex((item) => item.selected);\n useEffect(() => {\n if (selectedItemIndex >= 0 && listRef.current !== null) {\n listRef.current.scrollToItem(selectedItemIndex);\n }\n }, [listRef, selectedItemIndex]);\n\n const ListItem = memo(({ index, style }) => {\n const item = filteredList[index];\n const tabIndex =\n item.tabIndex || (!anySelected && index === 0) || (item.selected && !item.disabled) ? 0 : -1;\n\n return renderListItem(item, index, {\n style: {\n ...style,\n top: `${parseFloat(style.top) + 5}px`,\n left: `${parseFloat(style.left) + 5}px`,\n width: `calc(${parseFloat(style.width)}% - 10px)`,\n },\n tabIndex,\n interactive: true,\n condensed,\n disableGutters: useSelector,\n });\n }, areEqual);\n ListItem.propTypes = {\n index: PropTypes.number.isRequired,\n style: PropTypes.shape({\n top: PropTypes.number.isRequired,\n left: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n }).isRequired,\n };\n\n return (\n <>\n {multiSelect && useSelector && showSelectAll && renderSelectAll()}\n\n {filteredList.length > 0 && !virtualized && (\n <HvListContainer\n id={id}\n className={clsx(className, classes.root)}\n role={selectable ? \"listbox\" : \"menu\"}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={(selectable && multiSelect) || undefined}\n {...others}\n >\n {filteredList.map((item, i) => renderListItem(item, i))}\n </HvListContainer>\n )}\n {filteredList.length > 0 && virtualized && (\n <FixedSizeList\n ref={listRef}\n className={classes.virtualizedRoot}\n height={height + 5}\n width=\"100%\"\n itemCount={filteredList.length}\n itemSize={condensed ? 32 : 40}\n innerElementType={React.forwardRef(({ ...rest }, ref) => (\n <HvListContainer\n id={id}\n className={clsx(className, classes.root)}\n role={selectable ? \"listbox\" : \"menu\"}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={(selectable && multiSelect) || undefined}\n ref={ref}\n {...rest}\n />\n ))}\n {...others}\n >\n {ListItem}\n </FixedSizeList>\n )}\n </>\n );\n};\n\nHvList.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the component 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 to the component root class in virtualized form.\n */\n virtualizedRoot: PropTypes.string,\n /**\n * Styles applied to the list item selector.\n */\n selectorRoot: PropTypes.string,\n /**\n * Styles applied to the list item selector label container.\n */\n selectorContainer: PropTypes.string,\n /**\n * Style applied to the icon box.\n */\n box: PropTypes.string,\n /**\n * Styles applied when the list item text when truncate.\n */\n truncate: PropTypes.string,\n /**\n * Styles applied to the list item.\n */\n item: PropTypes.string,\n /**\n * Styles applied to the list item when it has a selector.\n */\n itemSelector: PropTypes.string,\n /**\n * Styles applied to the list item when it has a link path.\n */\n link: PropTypes.string,\n /**\n * Styles applied to the select all selector.\n */\n selectAllSelector: PropTypes.string,\n }).isRequired,\n /**\n * The id of the root element\n */\n id: PropTypes.string,\n /**\n * A list containing the elements to be rendered.\n *\n * - id: The id of the item.\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - isHidden: Is item visible.\n * - icon: The icon.\n * - showNavIcon: If true renders the navigation icon on the right.\n * - path: The path to navigate to.\n */\n // eslint-disable-next-line react/no-unused-prop-types\n values: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.node.isRequired,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n isHidden: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n showNavIcon: PropTypes.bool,\n path: PropTypes.string,\n params: PropTypes.instanceOf(Object),\n })\n ).isRequired,\n /**\n * If true renders a multi select list.\n */\n multiSelect: PropTypes.bool,\n /**\n * If true renders select all option for multi selection lists with selectors.\n * note: It will only be rendered if multiSelect and useSelector props are set to true.\n */\n showSelectAll: PropTypes.bool,\n /**\n * An object containing all the labels for the dropdown.\n */\n labels: PropTypes.shape({\n /**\n * The label used for the All checkbox action.\n */\n selectAll: PropTypes.string,\n /**\n * The label used in the middle of the multiselection count.\n */\n selectionConjunction: PropTypes.string,\n }),\n /**\n * If true renders list items with radio or checkbox selectors.\n */\n useSelector: PropTypes.bool,\n /**\n * Call back fired when list item is selected. Returns selection state.\n */\n onChange: PropTypes.func,\n /**\n * Call back fired when list item is selected. Returns selected item.\n */\n onClick: PropTypes.func,\n /**\n * If `true` the list items will show the selection state.\n */\n selectable: PropTypes.bool,\n /**\n * If `true`, selection can be toggled when single selection.\n */\n singleSelectionToggle: PropTypes.bool,\n /**\n * If `true` the list will be rendered without vertical spacing.\n */\n condensed: PropTypes.bool,\n /**\n * If `true` the dropdown will show tooltips when user mouseenter text in list\n */\n hasTooltips: PropTypes.bool,\n /**\n * Experimental. Height of the dropdown, in case you want to control it from a prop. Styles can also be used through dropdownListContainer class. Required in case virtualized is used\n */\n height: PropTypes.number,\n /**\n * Experimental. Uses dropdown in a virtualized form, where not all options are rendered initially. Good for use cases with a lot of options.\n */\n virtualized: PropTypes.bool,\n};\n\nexport default withStyles(styles, { name: \"HvList\" })(HvList);\n"],"mappings":"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"}
1
+ {"version":3,"file":"List.js","names":["React","isValidElement","useEffect","useCallback","forwardRef","PropTypes","clsx","FixedSizeList","withStyles","DropRightXS","parseList","wrapperTooltip","useSelectableList","HvLink","HvCheckBox","HvListContainer","HvListItem","HvRadio","HvTypography","setId","styles","DEFAULT_LABELS","selectAll","selectionConjunction","HvList","props","id","classes","className","multiSelect","hasTooltips","showSelectAll","labels","useSelector","selectable","singleSelectionToggle","condensed","onChange","onClick","values","valuesProp","height","virtualized","others","list","setList","selection","listRef","useRef","passedProps","parsedList","handleSelect","evt","item","path","preventDefault","disabled","handleSelectAll","anySelectableSelected","some","elem","selected","renderLeftIcon","icon","isSelected","isDisabled","renderSelectAll","anySelected","length","allSelected","selectionLabel","selectAllSelector","renderItemText","ItemText","label","a","link","renderMultiSelectItem","itemId","Selection","root","selectorRoot","container","selectorContainer","truncate","renderSingleSelectItem","renderListItem","i","otherProps","startAdornment","undefined","itemSelector","showNavIcon","box","filteredList","filter","it","isHidden","map","reduce","result","selectedItemIndex","findIndex","current","scrollToItem","ListItem","index","style","tabIndex","top","parseFloat","left","width","interactive","disableGutters","propTypes","shape","number","isRequired","renderFixedList","ref","rest","virtualizedRoot","string","arrayOf","oneOfType","node","bool","func","params","instanceOf","Object","name"],"sources":["../../../src/List/List.js"],"sourcesContent":["import React, { isValidElement, useEffect, useCallback, forwardRef } from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { FixedSizeList } from \"react-window\";\n\nimport { withStyles } from \"@material-ui/core\";\nimport { DropRightXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport { parseList, wrapperTooltip } from \"./utils\";\nimport useSelectableList from \"./useSelectableList\";\n\nimport { HvLink, HvCheckBox, HvListContainer, HvListItem, HvRadio, HvTypography, setId } from \"..\";\n\nimport styles from \"./styles\";\n\nconst DEFAULT_LABELS = {\n selectAll: \"Select All\",\n selectionConjunction: \"/\",\n};\n\n/**\n * Component used to show a set of related data to the user.\n */\nconst HvList = (props) => {\n const {\n id,\n classes,\n className,\n multiSelect = false,\n hasTooltips = false,\n showSelectAll = false,\n labels = DEFAULT_LABELS,\n useSelector = false,\n selectable = true,\n singleSelectionToggle = true,\n condensed = false,\n onChange,\n onClick,\n values: valuesProp = [],\n height,\n virtualized = false,\n ...others\n } = props;\n const [list, setList, selection] = useSelectableList(valuesProp);\n const listRef = React.useRef(null);\n\n useEffect(() => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList = parseList(valuesProp, null, passedProps);\n setList(parsedList);\n }, [valuesProp, multiSelect, selectable, singleSelectionToggle, setList]);\n\n const handleSelect = (evt, item) => {\n if (!item.path) evt.preventDefault();\n if (item.disabled) return;\n\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const parsedList = parseList(list, item, passedProps);\n setList(parsedList);\n\n onClick?.(evt, item);\n onChange?.(parsedList);\n };\n\n const handleSelectAll = () => {\n const passedProps = { multiSelect, selectable, singleSelectionToggle };\n const anySelectableSelected = list.some((elem) => elem.selected || elem.disabled);\n const parsedList = parseList(list, null, passedProps, !anySelectableSelected);\n setList(parsedList);\n\n onChange?.(parsedList);\n };\n\n const renderLeftIcon = (item) =>\n isValidElement(item.icon)\n ? item.icon\n : item.icon?.({\n isSelected: item.selected,\n isDisabled: item.disabled,\n });\n\n const renderSelectAll = () => {\n const { selectAll, selectionConjunction } = labels;\n\n const anySelected = !!selection?.length;\n const allSelected = selection.length === list.length;\n\n const selectionLabel = (\n <HvTypography component=\"span\">\n {!anySelected ? (\n <>\n <b>{selectAll}</b>\n {` (${list.length})`}\n </>\n ) : (\n <>\n <b>{selection.length}</b>\n {`\\xa0${selectionConjunction}\\xa0`}\n {list.length}\n </>\n )}\n </HvTypography>\n );\n\n return (\n <HvCheckBox\n id={setId(id, \"select-all\")}\n label={selectionLabel}\n onChange={handleSelectAll}\n className={classes.selectAllSelector}\n indeterminate={anySelected && !allSelected}\n checked={allSelected}\n />\n );\n };\n\n const renderItemText = (item) => {\n const ItemText = wrapperTooltip(hasTooltips, item.label, item.label);\n\n return !multiSelect && item.path ? (\n <HvLink key={item.label} route={item.path} classes={{ a: classes.link }}>\n <ItemText />\n </HvLink>\n ) : (\n <ItemText />\n );\n };\n\n const renderMultiSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <HvCheckBox\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n onChange={(evt) => handleSelect(evt, item)}\n classes={{\n root: classes.selectorRoot,\n container: classes.selectorContainer,\n label: classes.truncate,\n }}\n />,\n item.label\n );\n return <Selection />;\n }\n\n return renderItemText(item);\n };\n\n const renderSingleSelectItem = (item, itemId) => {\n if (useSelector) {\n const Selection = wrapperTooltip(\n hasTooltips,\n <HvRadio\n id={setId(itemId, \"selector\")}\n label={item.label}\n checked={item.selected}\n disabled={item.disabled}\n classes={{\n root: classes.selectorRoot,\n container: classes.selectorContainer,\n label: classes.truncate,\n }}\n />,\n item.label\n );\n return <Selection />;\n }\n return renderItemText(item);\n };\n\n const renderListItem = (item, i, otherProps = {}) => {\n const itemId = setId(id, \"item\", i);\n const selected = item.selected || false;\n\n let startAdornment = null;\n if (!useSelector && item.icon) {\n startAdornment = renderLeftIcon(item);\n }\n\n return (\n <HvListItem\n key={i}\n id={itemId}\n role={selectable ? \"option\" : \"menuitem\"}\n disabled={item.disabled || undefined}\n className={classes.item}\n classes={{ selected: useSelector || multiSelect ? classes.itemSelector : \"\" }}\n selected={multiSelect || selected ? selected : undefined}\n onClick={(evt) => handleSelect(evt, item)}\n startAdornment={startAdornment}\n endAdornment={item.showNavIcon && <DropRightXS className={classes.box} iconSize=\"XS\" />}\n {...otherProps}\n >\n {multiSelect ? renderMultiSelectItem(item, itemId) : renderSingleSelectItem(item, itemId)}\n </HvListItem>\n );\n };\n\n const filteredList = list.filter((it) => !it.isHidden);\n const anySelected = list\n .map((item) => item.selected && !item.disabled)\n .reduce((result, selected) => result || selected, false);\n\n const selectedItemIndex = list.findIndex((item) => item.selected);\n useEffect(() => {\n if (selectedItemIndex >= 0 && listRef.current !== null) {\n listRef.current.scrollToItem(selectedItemIndex);\n }\n }, [listRef, selectedItemIndex]);\n\n const ListItem = ({ index, style }) => {\n const item = filteredList[index];\n const tabIndex =\n item.tabIndex || (!anySelected && index === 0) || (item.selected && !item.disabled) ? 0 : -1;\n\n return renderListItem(item, index, {\n style: {\n ...style,\n top: `${parseFloat(style.top) + 5}px`,\n left: `${parseFloat(style.left) + 5}px`,\n width: `calc(${parseFloat(style.width)}% - 10px)`,\n },\n tabIndex,\n interactive: true,\n condensed,\n disableGutters: useSelector,\n });\n };\n\n ListItem.propTypes = {\n style: PropTypes.shape({\n top: PropTypes.number.isRequired,\n left: PropTypes.number.isRequired,\n width: PropTypes.number.isRequired,\n }).isRequired,\n };\n\n const renderFixedList = useCallback(() => {\n return forwardRef(({ ...rest }, ref) => (\n <HvListContainer\n id={id}\n className={clsx(className, classes.root)}\n role={selectable ? \"listbox\" : \"menu\"}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={(selectable && multiSelect) || undefined}\n ref={ref}\n {...rest}\n />\n ));\n }, [id, useSelector, className, classes, condensed, selectable, multiSelect]);\n\n return (\n <>\n {multiSelect && useSelector && showSelectAll && renderSelectAll()}\n\n {filteredList.length > 0 && !virtualized && (\n <HvListContainer\n id={id}\n className={clsx(className, classes.root)}\n role={selectable ? \"listbox\" : \"menu\"}\n interactive\n condensed={condensed}\n disableGutters={useSelector}\n aria-multiselectable={(selectable && multiSelect) || undefined}\n {...others}\n >\n {filteredList.map((item, i) => renderListItem(item, i))}\n </HvListContainer>\n )}\n {filteredList.length > 0 && virtualized && (\n <FixedSizeList\n ref={listRef}\n className={classes.virtualizedRoot}\n height={height + 5}\n width=\"100%\"\n itemCount={filteredList.length}\n itemSize={condensed ? 32 : 40}\n innerElementType={renderFixedList}\n {...others}\n >\n {ListItem}\n </FixedSizeList>\n )}\n </>\n );\n};\n\nHvList.propTypes = {\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the component 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 to the component root class in virtualized form.\n */\n virtualizedRoot: PropTypes.string,\n /**\n * Styles applied to the list item selector.\n */\n selectorRoot: PropTypes.string,\n /**\n * Styles applied to the list item selector label container.\n */\n selectorContainer: PropTypes.string,\n /**\n * Style applied to the icon box.\n */\n box: PropTypes.string,\n /**\n * Styles applied when the list item text when truncate.\n */\n truncate: PropTypes.string,\n /**\n * Styles applied to the list item.\n */\n item: PropTypes.string,\n /**\n * Styles applied to the list item when it has a selector.\n */\n itemSelector: PropTypes.string,\n /**\n * Styles applied to the list item when it has a link path.\n */\n link: PropTypes.string,\n /**\n * Styles applied to the select all selector.\n */\n selectAllSelector: PropTypes.string,\n }).isRequired,\n /**\n * The id of the root element\n */\n id: PropTypes.string,\n /**\n * A list containing the elements to be rendered.\n *\n * - id: The id of the item.\n * - label: The label of the element to be rendered.\n * - selected: The selection state of the element.\n * - disabled: The disabled state of the element.\n * - isHidden: Is item visible.\n * - icon: The icon.\n * - showNavIcon: If true renders the navigation icon on the right.\n * - path: The path to navigate to.\n */\n // eslint-disable-next-line react/no-unused-prop-types\n values: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.oneOfType([PropTypes.string, PropTypes.number]),\n label: PropTypes.node.isRequired,\n selected: PropTypes.bool,\n disabled: PropTypes.bool,\n isHidden: PropTypes.bool,\n icon: PropTypes.oneOfType([PropTypes.func, PropTypes.node]),\n showNavIcon: PropTypes.bool,\n path: PropTypes.string,\n params: PropTypes.instanceOf(Object),\n })\n ).isRequired,\n /**\n * If true renders a multi select list.\n */\n multiSelect: PropTypes.bool,\n /**\n * If true renders select all option for multi selection lists with selectors.\n * note: It will only be rendered if multiSelect and useSelector props are set to true.\n */\n showSelectAll: PropTypes.bool,\n /**\n * An object containing all the labels for the dropdown.\n */\n labels: PropTypes.shape({\n /**\n * The label used for the All checkbox action.\n */\n selectAll: PropTypes.string,\n /**\n * The label used in the middle of the multiselection count.\n */\n selectionConjunction: PropTypes.string,\n }),\n /**\n * If true renders list items with radio or checkbox selectors.\n */\n useSelector: PropTypes.bool,\n /**\n * Call back fired when list item is selected. Returns selection state.\n */\n onChange: PropTypes.func,\n /**\n * Call back fired when list item is selected. Returns selected item.\n */\n onClick: PropTypes.func,\n /**\n * If `true` the list items will show the selection state.\n */\n selectable: PropTypes.bool,\n /**\n * If `true`, selection can be toggled when single selection.\n */\n singleSelectionToggle: PropTypes.bool,\n /**\n * If `true` the list will be rendered without vertical spacing.\n */\n condensed: PropTypes.bool,\n /**\n * If `true` the dropdown will show tooltips when user mouseenter text in list\n */\n hasTooltips: PropTypes.bool,\n /**\n * Experimental. Height of the dropdown, in case you want to control it from a prop. Styles can also be used through dropdownListContainer class. Required in case virtualized is used\n */\n height: PropTypes.number,\n /**\n * Experimental. Uses dropdown in a virtualized form, where not all options are rendered initially. Good for use cases with a lot of options.\n */\n virtualized: PropTypes.bool,\n};\n\nexport default withStyles(styles, { name: \"HvList\" })(HvList);\n"],"mappings":"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"}
@@ -26,7 +26,7 @@ import "core-js/modules/es.string.fixed.js";
26
26
  import clsx from "clsx";
27
27
  import isNil from "lodash/isNil";
28
28
  import PropTypes from "prop-types";
29
- import React, { useState, useEffect, useMemo, useRef } from "react";
29
+ import React, { useState, useEffect, useCallback, useMemo, useRef } from "react";
30
30
  import ReactTable, { ReactTableDefaults } from "react-table";
31
31
  import withFixedColumns from "react-table-hoc-fixed-columns";
32
32
  import { withStyles } from "@material-ui/core";
@@ -221,27 +221,26 @@ var HvTable = function HvTable(props) {
221
221
  return newEntry;
222
222
  });
223
223
  };
224
+
225
+ var PaginationComponent = useCallback(function (tablePaginationProps) {
226
+ return /*#__PURE__*/React.createElement(HvPagination, _extends({
227
+ id: setId(id, "pagination"),
228
+ labels: paginationLabels,
229
+ pageSize: tablePaginationProps.pageSize,
230
+ pages: tablePaginationProps.pages,
231
+ page: tablePaginationProps.page,
232
+ canPrevious: tablePaginationProps.canPrevious,
233
+ canNext: tablePaginationProps.canNext,
234
+ onPageChange: tablePaginationProps.onPageChange,
235
+ onPageSizeChange: tablePaginationProps.onPageSizeChange,
236
+ showPageSizeOptions: tablePaginationProps.showPageSizeOptions
237
+ }, paginationProps));
238
+ }, [id, paginationLabels, paginationProps]);
224
239
  /**
225
240
  * Pagination customizations.
226
241
  */
227
242
 
228
-
229
243
  var getPaginationProps = function getPaginationProps() {
230
- var PaginationComponent = function PaginationComponent(tablePaginationProps) {
231
- return /*#__PURE__*/React.createElement(HvPagination, _extends({
232
- id: setId(id, "pagination"),
233
- labels: paginationLabels,
234
- pageSize: tablePaginationProps.pageSize,
235
- pages: tablePaginationProps.pages,
236
- page: tablePaginationProps.page,
237
- canPrevious: tablePaginationProps.canPrevious,
238
- canNext: tablePaginationProps.canNext,
239
- onPageChange: tablePaginationProps.onPageChange,
240
- onPageSizeChange: tablePaginationProps.onPageSizeChange,
241
- showPageSizeOptions: tablePaginationProps.showPageSizeOptions
242
- }, paginationProps));
243
- };
244
-
245
244
  return _objectSpread(_objectSpread({
246
245
  showPagination: data.length > 0 && showPagination,
247
246
  showPageSizeOptions: showPageSize
@@ -308,18 +307,17 @@ var HvTable = function HvTable(props) {
308
307
  */
309
308
 
310
309
 
311
- var onSortChange = function onSortChange(sortedColumn) {
310
+ var onSortChange = useCallback(function (sortedColumn) {
312
311
  setSorted(sortedColumn);
313
312
  setCurrentPage(0);
314
313
  setExpanded({});
315
- };
314
+ }, []);
316
315
  /**
317
316
  * Sort properties override to set onSortedChange
318
317
  *
319
318
  * @returns {{sortable: boolean, onSortedChange: onSortChange}}
320
319
  */
321
320
 
322
-
323
321
  var getSortProps = function getSortProps() {
324
322
  return _objectSpread(_objectSpread({
325
323
  sortable: sortable
@@ -632,7 +630,7 @@ var HvTable = function HvTable(props) {
632
630
 
633
631
  ReactTableDefaults.expanderDefaults.show = false; // eslint-disable-next-line react/prop-types
634
632
 
635
- ReactTableDefaults.column.Header = function (_ref) {
633
+ ReactTableDefaults.column.Header = useCallback(function (_ref) {
636
634
  var column = _ref.column;
637
635
  return /*#__PURE__*/React.createElement(Header, {
638
636
  id: id // eslint-disable-next-line react/prop-types
@@ -643,8 +641,7 @@ var HvTable = function HvTable(props) {
643
641
  tableSortable: sortable,
644
642
  onSortChange: onSortChange
645
643
  });
646
- }; // add expander button
647
-
644
+ }, [id, onSortChange, sorted, sortable]); // add expander button
648
645
 
649
646
  var expanderColumn = createExpanderButton(columns, subElementTemplate, classes, toggleExpand); // add expander
650
647