@hitachivantara/uikit-react-core 3.68.3 → 3.68.6

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 (64) hide show
  1. package/dist/Header/Navigation/MenuBar/MenuBar.js +5 -1
  2. package/dist/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  3. package/dist/Header/Navigation/MenuItem/MenuItem.js +29 -9
  4. package/dist/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  5. package/dist/Header/Navigation/MenuItem/styles.js +4 -0
  6. package/dist/Header/Navigation/MenuItem/styles.js.map +1 -1
  7. package/dist/Header/Navigation/Navigation.d.ts +4 -0
  8. package/dist/Header/Navigation/Navigation.js +5 -1
  9. package/dist/Header/Navigation/Navigation.js.map +1 -1
  10. package/dist/Login/Login.js +1 -3
  11. package/dist/Login/Login.js.map +1 -1
  12. package/dist/Slider/Slider.js +7 -2
  13. package/dist/Slider/Slider.js.map +1 -1
  14. package/dist/VerticalNavigation/Navigation/Navigation.d.ts +8 -0
  15. package/dist/VerticalNavigation/Navigation/Navigation.js +10 -2
  16. package/dist/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  17. package/dist/VerticalNavigation/TreeView/TreeViewItem.d.ts +8 -0
  18. package/dist/VerticalNavigation/TreeView/TreeViewItem.js +25 -4
  19. package/dist/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  20. package/dist/VerticalNavigation/TreeView/styles.js +3 -0
  21. package/dist/VerticalNavigation/TreeView/styles.js.map +1 -1
  22. package/dist/legacy/Header/Navigation/MenuBar/MenuBar.js +5 -1
  23. package/dist/legacy/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  24. package/dist/legacy/Header/Navigation/MenuItem/MenuItem.js +25 -9
  25. package/dist/legacy/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  26. package/dist/legacy/Header/Navigation/MenuItem/styles.js +4 -0
  27. package/dist/legacy/Header/Navigation/MenuItem/styles.js.map +1 -1
  28. package/dist/legacy/Header/Navigation/Navigation.d.ts +4 -0
  29. package/dist/legacy/Header/Navigation/Navigation.js +5 -1
  30. package/dist/legacy/Header/Navigation/Navigation.js.map +1 -1
  31. package/dist/legacy/Login/Login.js +1 -2
  32. package/dist/legacy/Login/Login.js.map +1 -1
  33. package/dist/legacy/Slider/Slider.js +4 -1
  34. package/dist/legacy/Slider/Slider.js.map +1 -1
  35. package/dist/legacy/VerticalNavigation/Navigation/Navigation.d.ts +8 -0
  36. package/dist/legacy/VerticalNavigation/Navigation/Navigation.js +10 -2
  37. package/dist/legacy/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  38. package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.d.ts +8 -0
  39. package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.js +24 -4
  40. package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  41. package/dist/legacy/VerticalNavigation/TreeView/styles.js +3 -0
  42. package/dist/legacy/VerticalNavigation/TreeView/styles.js.map +1 -1
  43. package/dist/modern/Header/Navigation/MenuBar/MenuBar.js +5 -1
  44. package/dist/modern/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
  45. package/dist/modern/Header/Navigation/MenuItem/MenuItem.js +24 -9
  46. package/dist/modern/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
  47. package/dist/modern/Header/Navigation/MenuItem/styles.js +4 -0
  48. package/dist/modern/Header/Navigation/MenuItem/styles.js.map +1 -1
  49. package/dist/modern/Header/Navigation/Navigation.d.ts +4 -0
  50. package/dist/modern/Header/Navigation/Navigation.js +5 -1
  51. package/dist/modern/Header/Navigation/Navigation.js.map +1 -1
  52. package/dist/modern/Login/Login.js +1 -2
  53. package/dist/modern/Login/Login.js.map +1 -1
  54. package/dist/modern/Slider/Slider.js +1 -1
  55. package/dist/modern/Slider/Slider.js.map +1 -1
  56. package/dist/modern/VerticalNavigation/Navigation/Navigation.d.ts +8 -0
  57. package/dist/modern/VerticalNavigation/Navigation/Navigation.js +10 -2
  58. package/dist/modern/VerticalNavigation/Navigation/Navigation.js.map +1 -1
  59. package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.d.ts +8 -0
  60. package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.js +23 -4
  61. package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
  62. package/dist/modern/VerticalNavigation/TreeView/styles.js +3 -0
  63. package/dist/modern/VerticalNavigation/TreeView/styles.js.map +1 -1
  64. package/package.json +7 -7
@@ -1 +1 @@
1
- {"version":3,"file":"Navigation.js","names":["createListHierarchy","items","id","classes","map","item","itemId","itemLabel","label","icon","children","data","selectable","disabled","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 { 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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;;;;;;;AAEA,IAAMA,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,KAAD,EAAQC,EAAR,EAAYC,OAAZ;EAAA,OAC1BF,KAAK,CAACG,GAAN,CAAU,UAACC,IAAD,EAAU;IAClB,IACMC,MADN,GASID,IATJ,CACEH,EADF;IAAA,IAESK,SAFT,GASIF,IATJ,CAEEG,KAFF;IAAA,IAGEC,IAHF,GASIJ,IATJ,CAGEI,IAHF;IAAA,IAIQC,QAJR,GASIL,IATJ,CAIEM,IAJF;IAAA,IAKEC,UALF,GASIP,IATJ,CAKEO,UALF;IAAA,IAMEC,QANF,GASIR,IATJ,CAMEQ,QANF;IAAA,IAOEC,IAPF,GASIT,IATJ,CAOES,IAPF;IAAA,IAQEC,MARF,GASIV,IATJ,CAQEU,MARF;IAWA,IAAMC,QAAQ,GAAG,IAAAC,sBAAA,EAAe,IAAf,EAAqBV,SAArB,EAAgCA,SAAhC,CAAjB;IAEA,oBACE,6BAAC,sBAAD;MACE,EAAE,EAAE,IAAAW,YAAA,EAAMhB,EAAN,EAAUI,MAAV,CADN;MAEE,SAAS,EAAEH,OAAO,CAACgB,QAFrB;MAGE,IAAI,EAAEL,IAHR;MAIE,MAAM,EAAEC,MAJV;MAKE,GAAG,EAAET,MALP;MAME,MAAM,EAAEA,MANV;MAOE,KAAK,eAAE,6BAAC,QAAD,OAPT;MAQE,IAAI,EAAEG,IARR;MASE,OAAO,EAAEJ,IATX;MAUE,UAAU,EAAEO,UAVd;MAWE,QAAQ,EAAEC;IAXZ,GAaGH,QAAQ,GAAGV,mBAAmB,CAACU,QAAD,EAAWR,EAAX,EAAeC,OAAf,CAAtB,GAAgDiB,SAb3D,CADF;EAiBD,CA/BD,CAD0B;AAAA,CAA5B;;AAkCA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAACpB,KAAD,EAAW;EAC/B,IAAMqB,OAAO,GAAGrB,KAAK,CAACsB,MAAN,CAAa,UAAClB,IAAD;IAAA,OAAUA,IAAI,CAACM,IAAL,IAAa,IAAb,IAAqBN,IAAI,CAACM,IAAL,CAAUa,MAAV,GAAmB,CAAlD;EAAA,CAAb,CAAhB;EACA,IAAMC,YAAY,GAAGH,OAAO,CAACI,OAAR,CAAgB,UAACrB,IAAD;IAAA,OAAUgB,aAAa,CAAChB,IAAI,CAACM,IAAN,CAAvB;EAAA,CAAhB,CAArB;EAEA,kDAAWW,OAAX,oCAAuBG,YAAvB;AACD,CALD;;AAOA,SAASE,aAAT,CAAuBhB,IAAvB,EAA6BiB,QAA7B,EAAuC;EACrC,IAAMC,IAAI,GAAG,EAAb;;EAEA,IAAIlB,IAAI,IAAI,IAAR,IAAgBA,IAAI,CAACa,MAAL,GAAc,CAAlC,EAAqC;IACnC;IACA,KAAK,IAAIM,CAAC,GAAG,CAAb,EAAgBA,CAAC,KAAKnB,IAAI,CAACa,MAA3B,EAAmC,EAAEM,CAArC,EAAwC;MACtC,IAAMzB,IAAI,GAAGM,IAAI,CAACmB,CAAD,CAAjB;;MACA,IAAIzB,IAAI,CAACH,EAAL,KAAY0B,QAAhB,EAA0B;QACxBC,IAAI,CAACE,IAAL,CAAU1B,IAAI,CAACH,EAAf;QACA;MACD;;MAED,IAAM8B,QAAQ,GAAGL,aAAa,CAACtB,IAAI,CAACM,IAAN,EAAYiB,QAAZ,CAA9B;;MACA,IAAII,QAAQ,CAACR,MAAT,GAAkB,CAAtB,EAAyB;QACvBK,IAAI,CAACE,IAAL,CAAU1B,IAAI,CAACH,EAAf;QACA2B,IAAI,CAACE,IAAL,OAAAF,IAAI,mCAASG,QAAT,EAAJ;QACA;MACD;IACF;EACF;;EAED,OAAOH,IAAP;AACD;;AAED,IAAMI,UAAU,GAAG,SAAbA,UAAa,OAuBb;EAAA,IAtBJ/B,EAsBI,QAtBJA,EAsBI;EAAA,IApBJgC,SAoBI,QApBJA,SAoBI;EAAA,IAnBJ/B,OAmBI,QAnBJA,OAmBI;EAAA,IAjBJQ,IAiBI,QAjBJA,IAiBI;EAAA,qBAfJwB,IAeI;EAAA,IAfJA,IAeI,0BAfG,YAeH;EAAA,4BAbJC,WAaI;EAAA,IAbJA,WAaI,iCAbU,KAaV;EAAA,IAZMC,YAYN,QAZJC,QAYI;EAAA,IAXJC,eAWI,QAXJA,eAWI;EAAA,IAVJC,QAUI,QAVJA,QAUI;EAAA,IARMC,YAQN,QARJC,QAQI;EAAA,IAPJC,eAOI,QAPJA,eAOI;EAAA,IANJC,QAMI,QANJA,QAMI;EAAA,IAJJpC,KAII,QAJJA,KAII;EAAA,IAHJqC,OAGI,QAHJA,OAGI;EAAA,IADDC,MACC;;EACJ,qBAAgC,IAAAC,oBAAA,EAAcN,YAAd,EAA4BE,eAA5B,CAAhC;EAAA;EAAA,IAAOD,QAAP;EAAA,IAAiBM,WAAjB;;EACA,sBAAgC,IAAAD,oBAAA,EAAcV,YAAd,EAA4B,YAAM;IAChE,IAAIE,eAAe,KAAK,IAAxB,EAA8B;MAC5B;MACA,OAAOlB,aAAa,CAACV,IAAD,CAAb,CAAoBP,GAApB,CAAwB,UAACC,IAAD;QAAA,OAAUA,IAAI,CAACH,EAAf;MAAA,CAAxB,CAAP;IACD;;IAED,IAAIqC,eAAe,KAAK,KAAxB,EAA+B;MAC7B;MACA,OAAO,EAAP;IACD;;IAED,IAAIA,eAAe,IAAI,IAAvB,EAA6B;MAC3B,IAAIG,QAAQ,IAAI,IAAhB,EAAsB;QACpB;QACA,IAAMb,IAAI,GAAGF,aAAa,CAAChB,IAAD,EAAO+B,QAAP,CAA1B;QACA,OAAOb,IAAI,CAACoB,KAAL,CAAW,CAAX,EAAc,CAAC,CAAf,CAAP;MACD,CAL0B,CAO3B;;;MACA,OAAO,EAAP;IACD;;IAED,OAAOV,eAAP;EACD,CAvB+B,CAAhC;EAAA;EAAA,IAAOD,QAAP;EAAA,IAAiBY,WAAjB;;EAyBA,IAAMC,YAAY,GAAG,IAAAC,kBAAA,EACnB,UAACC,KAAD,EAAQC,UAAR,EAAoBC,YAApB,EAAqC;IACnCP,WAAW,CAACM,UAAD,CAAX;;IAEA,IAAIV,QAAJ,EAAc;MACZA,QAAQ,CAACS,KAAD,EAAQE,YAAR,CAAR;IACD,CALkC,CAOnC;;;IACA,IAAIV,OAAJ,EAAa;MACXA,OAAO,CAACQ,KAAD,EAAQE,YAAR,CAAP;IACD;EACF,CAZkB,EAanB,CAACX,QAAD,EAAWC,OAAX,EAAoBG,WAApB,CAbmB,CAArB;EAgBA,IAAMQ,YAAY,GAAG,IAAAJ,kBAAA,EACnB,UAACC,KAAD,EAAQI,WAAR,EAAwB;IACtBP,WAAW,CAACO,WAAD,CAAX;;IAEA,IAAIjB,QAAJ,EAAc;MACZA,QAAQ,CAACa,KAAD,EAAQI,WAAR,CAAR;IACD,CALqB,CAOtB;;;IACA,IAAIZ,OAAJ,EAAa;MACXA,OAAO,CAACQ,KAAD,CAAP;IACD;EACF,CAZkB,EAanB,CAACR,OAAD,EAAUL,QAAV,EAAoBU,WAApB,CAbmB,CAArB;EAgBA,IAAMxC,QAAQ,GAAG,IAAAgD,cAAA,EACf;IAAA,OAAM/C,IAAI,IAAIX,mBAAmB,CAACW,IAAD,EAAOT,EAAP,EAAWC,OAAX,CAAjC;EAAA,CADe,EAEf,CAACA,OAAD,EAAUQ,IAAV,EAAgBT,EAAhB,CAFe,CAAjB;EAKA,oBACE;IAAK,EAAE,EAAEA,EAAT;IAAa,SAAS,EAAE,IAAAyD,aAAA,EAAKzB,SAAL,EAAgB/B,OAAO,CAACyD,IAAxB,CAAxB;IAAuD,cAAYpD;EAAnE,GAA8EsC,MAA9E,gBACE,6BAAC,iBAAD;IACE,EAAE,EAAE,IAAA5B,YAAA,EAAMhB,EAAN,EAAU,MAAV,CADN;IAEE,SAAS,EAAEC,OAAO,CAAC0D,IAFrB;IAGE,UAAU,MAHZ;IAIE,IAAI,EAAE1B,IAJR;IAKE,WAAW,EAAEC,WALf;IAME,QAAQ,EAAEM,QANZ;IAOE,QAAQ,EAAES,YAPZ;IAQE,QAAQ,EAAEb,QARZ;IASE,QAAQ,EAAEkB;EATZ,GAWG9C,QAXH,CADF,CADF;AAiBD,CAxGD;;AA0GA,wCAAAuB,UAAU,CAAC6B,SAAX,GAAuB;EACrB;AACF;AACA;EACE5D,EAAE,EAAE6D,kBAAA,CAAUC,MAJO;;EAMrB;AACF;AACA;EACE9B,SAAS,EAAE6B,kBAAA,CAAUC,MATA;;EAUrB;AACF;AACA;EACE7D,OAAO,EAAE4D,kBAAA,CAAUE,KAAV,CAAgB;IACvB;AACJ;AACA;IACIL,IAAI,EAAEG,kBAAA,CAAUC,MAJO;;IAKvB;AACJ;AACA;IACIH,IAAI,EAAEE,kBAAA,CAAUC,MARO;;IASvB;AACJ;AACA;IACI7C,QAAQ,EAAE4C,kBAAA,CAAUC;EAZG,CAAhB,EAaNE,UA1BkB;;EA4BrB;AACF;AACA;EACE/B,IAAI,EAAE4B,kBAAA,CAAUI,KAAV,CAAgB,CAAC,UAAD,EAAa,YAAb,CAAhB,CA/Be;;EAgCrB;AACF;AACA;EACE/B,WAAW,EAAE2B,kBAAA,CAAUK,IAnCF;;EAqCrB;AACF;AACA;EACE1B,QAAQ,EAAEqB,kBAAA,CAAUC,MAxCC;;EAyCrB;AACF;AACA;EACErB,eAAe,EAAEoB,kBAAA,CAAUC,MA5CN;;EA6CrB;AACF;AACA;AACA;AACA;AACA;EACEpB,QAAQ,EAAEmB,kBAAA,CAAUM,IAnDC;;EAqDrB;AACF;AACA;EACE/B,QAAQ,EAAEyB,kBAAA,CAAUO,OAAV,CAAkBP,kBAAA,CAAUC,MAA5B,CAxDW;;EAyDrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEzB,eAAe,EAAEwB,kBAAA,CAAUQ,SAAV,CAAoB,CAACR,kBAAA,CAAUO,OAAV,CAAkBP,kBAAA,CAAUC,MAA5B,CAAD,EAAsCD,kBAAA,CAAUK,IAAhD,CAApB,CAjEI;;EAkErB;AACF;AACA;AACA;AACA;AACA;EACE5B,QAAQ,EAAEuB,kBAAA,CAAUM,IAxEC;;EA0ErB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACE1D,IAAI,EAAEoD,kBAAA,CAAUO,OAAV,CACJP,kBAAA,CAAUE,KAAV,CAAgB;IACd/D,EAAE,EAAE6D,kBAAA,CAAUC,MAAV,CAAiBE,UADP;IAEd1D,KAAK,EAAEuD,kBAAA,CAAUC,MAAV,CAAiBE,UAFV;IAGdzD,IAAI,EAAEsD,kBAAA,CAAUS,IAHF;IAId7D,IAAI,EAAEoD,kBAAA,CAAUU,KAJF;IAKd3D,IAAI,EAAEiD,kBAAA,CAAUC,MALF;IAMdjD,MAAM,EAAEgD,kBAAA,CAAUC;EANJ,CAAhB,CADI,EASJE,UA5FmB;;EA8FrB;AACF;AACA;AACA;AACA;EACErB,OAAO,EAAE,IAAA6B,wBAAA,EAAmBX,kBAAA,CAAUM,IAA7B,CAnGY;;EAoGrB;AACF;AACA;AACA;AACA;EACE7D,KAAK,EAAE,IAAAkE,wBAAA,EAAmBX,kBAAA,CAAUC,MAA7B;AAzGc,CAAvB;;eA4Ge,IAAAW,gBAAA,EAAWC,eAAX,EAAmB;EAAEC,IAAI,EAAE;AAAR,CAAnB,EAA+D5C,UAA/D,C"}
@@ -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
  */
@@ -25,6 +25,8 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
25
25
 
26
26
  require("core-js/modules/es.array.concat.js");
27
27
 
28
+ require("core-js/modules/es.string.link.js");
29
+
28
30
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
29
31
 
30
32
  var _objectWithoutProperties2 = _interopRequireDefault(require("@babel/runtime/helpers/objectWithoutProperties"));
@@ -51,7 +53,7 @@ var _styles = _interopRequireDefault(require("./styles"));
51
53
 
52
54
  var _DropUpXS, _DropDownXS;
53
55
 
54
- var _excluded = ["id", "className", "classes", "disabled", "selectable", "nodeId", "icon", "label", "payload", "onClick", "onMouseDown", "onFocus", "children"];
56
+ var _excluded = ["id", "className", "classes", "disabled", "selectable", "nodeId", "icon", "label", "href", "target", "payload", "onClick", "onMouseDown", "onFocus", "children"];
55
57
 
56
58
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
57
59
 
@@ -75,6 +77,8 @@ var TreeViewItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
75
77
  _props$icon = props.icon,
76
78
  icon = _props$icon === void 0 ? null : _props$icon,
77
79
  label = props.label,
80
+ href = props.href,
81
+ target = props.target,
78
82
  payload = props.payload,
79
83
  onClick = props.onClick,
80
84
  onMouseDown = props.onMouseDown,
@@ -281,9 +285,11 @@ var TreeViewItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
281
285
  var renderedContent = (0, _react.useMemo)(function () {
282
286
  return /*#__PURE__*/_react.default.createElement(_Typography.default, (0, _extends2.default)({
283
287
  id: (0, _utils.setId)(id, "button"),
284
- component: "div",
288
+ component: href ? "a" : "div",
289
+ href: href,
290
+ target: target,
285
291
  innerRef: contentRef,
286
- className: classes.content,
292
+ className: (0, _clsx.default)(classes.content, href != null && classes.link),
287
293
  variant: disabled ? "placeholderText" : "normalText",
288
294
  onClick: handleClick,
289
295
  onMouseDown: handleMouseDown,
@@ -302,7 +308,7 @@ var TreeViewItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
302
308
  "aria-expanded": expandable ? expanded : undefined,
303
309
  "aria-controls": expandable ? (0, _utils.setId)(id, "group") : undefined
304
310
  }), expandable && (expanded ? _DropUpXS || (_DropUpXS = /*#__PURE__*/_react.default.createElement(_uikitReactIcons.DropUpXS, null)) : _DropDownXS || (_DropDownXS = /*#__PURE__*/_react.default.createElement(_uikitReactIcons.DropDownXS, null))), icon, label);
305
- }, [id, classes.content, handleClick, handleMouseDown, expandable, level, collapsible, treeviewMode, handleFocus, handleKeyDown, selectable, selected, expanded, icon, label, disabled]);
311
+ }, [id, href, target, classes.content, classes.link, disabled, handleClick, handleMouseDown, expandable, icon, level, collapsible, treeviewMode, handleFocus, selectable, handleKeyDown, selected, expanded, label]);
306
312
  var renderedChildren = (0, _react.useMemo)(function () {
307
313
  return children && /*#__PURE__*/_react.default.createElement("ul", {
308
314
  id: (0, _utils.setId)(id, "group"),
@@ -351,6 +357,11 @@ process.env.NODE_ENV !== "production" ? TreeViewItem.propTypes = {
351
357
  */
352
358
  content: _propTypes.default.string,
353
359
 
360
+ /**
361
+ * Style applied to the content when it is a link.
362
+ */
363
+ link: _propTypes.default.string,
364
+
354
365
  /**
355
366
  * Style applied to the group.
356
367
  */
@@ -427,6 +438,16 @@ process.env.NODE_ENV !== "production" ? TreeViewItem.propTypes = {
427
438
  */
428
439
  label: _propTypes.default.node.isRequired,
429
440
 
441
+ /**
442
+ * The url for the link.
443
+ */
444
+ href: _propTypes.default.string,
445
+
446
+ /**
447
+ * The behavior when opening a link.
448
+ */
449
+ target: _propTypes.default.string,
450
+
430
451
  /**
431
452
  * The node payload.
432
453
  */
@@ -1 +1 @@
1
- {"version":3,"file":"TreeViewItem.js","names":["preventSelection","event","disabled","shiftKey","ctrlKey","metaKey","preventDefault","TreeViewItem","React","forwardRef","props","ref","idProp","id","className","classes","disabledProp","selectableProp","selectable","nodeId","icon","label","payload","onClick","onMouseDown","onFocus","children","others","treeViewControlContext","useContext","TreeViewControlContext","TreeViewStateContext","isExpanded","isSelected","isFocused","isDisabled","treeId","mode","collapsible","toggleExpansion","multiSelect","selectNode","selectRange","disabledItemsFocusable","registerNode","unregisterNode","mapFirstChar","unMapFirstChar","focus","treeviewMode","useState","treeitemElement","setTreeitemElement","contentRef","useRef","handleRef","useForkRef","descendant","useMemo","element","useDescendant","index","parentId","level","expandable","Array","isArray","expanded","focused","selected","useEffect","idAttribute","undefined","current","textContent","substring","toLowerCase","ariaSelected","handleFocus","useCallback","target","currentTarget","ownerDocument","document","getElementById","preventScroll","unfocusable","handleExpansion","multiple","handleSelection","end","handleMouseDown","handleClick","handleKeyDown","isEventHandled","key","altKey","stopPropagation","renderedContent","setId","content","paddingLeft","role","tabIndex","onKeyDown","renderedChildren","group","clsx","node","unselected","unselectable","collapsed","propTypes","PropTypes","string","shape","isRequired","bool","any","func","withStyles","styles","name"],"sources":["../../../src/VerticalNavigation/TreeView/TreeViewItem.js"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\n\nimport { DropDownXS, DropUpXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport HvTypography from \"../../Typography\";\n\nimport { TreeViewControlContext, TreeViewStateContext } from \"./TreeViewContexts\";\n\nimport { setId, useForkRef } from \"../../utils\";\n\nimport { DescendantProvider, useDescendant } from \"./descendants\";\n\nimport styles from \"./styles\";\n\nconst preventSelection = (event, disabled) => {\n if (event.shiftKey || event.ctrlKey || event.metaKey || disabled) {\n // Prevent text selection\n event.preventDefault();\n }\n};\n\nconst TreeViewItem = React.forwardRef((props, ref) => {\n const {\n id: idProp,\n className,\n classes,\n\n disabled: disabledProp = false,\n\n selectable: selectableProp,\n\n nodeId,\n icon = null,\n label,\n payload,\n\n onClick,\n onMouseDown,\n onFocus,\n\n children,\n\n ...others\n } = props;\n\n const treeViewControlContext = useContext(TreeViewControlContext);\n const { isExpanded, isSelected, isFocused, isDisabled } = useContext(TreeViewStateContext);\n\n const {\n treeId,\n mode,\n collapsible,\n toggleExpansion,\n multiSelect,\n selectNode,\n selectRange,\n disabledItemsFocusable,\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n focus,\n } = treeViewControlContext;\n\n const treeviewMode = mode === \"treeview\";\n\n let id = null;\n\n if (idProp != null) {\n id = idProp;\n } else if (treeId && nodeId) {\n id = `${treeId}-${nodeId}`;\n }\n\n const [treeitemElement, setTreeitemElement] = useState(null);\n const contentRef = useRef(null);\n const handleRef = useForkRef(setTreeitemElement, ref);\n\n const descendant = useMemo(\n () => ({\n element: treeitemElement,\n id: nodeId,\n }),\n [nodeId, treeitemElement]\n );\n\n const { index, parentId, level } = useDescendant(descendant);\n\n const expandable = collapsible && Array.isArray(children);\n const expanded = isExpanded ? isExpanded(nodeId) : false;\n const focused = isFocused ? isFocused(nodeId) : false;\n const selected = isSelected ? isSelected(nodeId) : false;\n const disabled = isDisabled ? isDisabled(nodeId) : false;\n\n const selectable = selectableProp != null ? selectableProp : !collapsible || !expandable;\n\n useEffect(() => {\n // On the first render a node's index will be -1. We want to wait for the real index.\n if (registerNode && unregisterNode && index !== -1) {\n registerNode({\n id: nodeId,\n idAttribute: id,\n index,\n parentId,\n selectable,\n expandable,\n disabled: disabledProp,\n onFocus,\n payload,\n });\n\n return () => {\n unregisterNode(nodeId);\n };\n }\n\n return undefined;\n }, [\n registerNode,\n unregisterNode,\n parentId,\n index,\n nodeId,\n expandable,\n disabledProp,\n id,\n selectable,\n onFocus,\n payload,\n ]);\n\n useEffect(() => {\n if (mapFirstChar && unMapFirstChar && label) {\n mapFirstChar(nodeId, contentRef.current?.textContent.substring(0, 1).toLowerCase());\n\n return () => {\n unMapFirstChar(nodeId);\n };\n }\n return undefined;\n }, [mapFirstChar, unMapFirstChar, nodeId, label]);\n\n let ariaSelected;\n if (multiSelect) {\n ariaSelected = selected;\n } else if (selected) {\n /* single-selection trees unset aria-selected on un-selected items.\n *\n * If the tree does not support multiple selection, aria-selected\n * is set to true for the selected node and it is not present on any other node in the tree.\n * Source: https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\n ariaSelected = true;\n }\n\n const handleFocus = useCallback(\n (event) => {\n // DOM focus stays on the tree which manages focus with aria-activedescendant\n if (event.target === event.currentTarget) {\n (event.target.ownerDocument || document)\n .getElementById(treeId)\n .focus({ preventScroll: true });\n }\n\n const unfocusable = !disabledItemsFocusable && disabled;\n if (!focused && event.currentTarget === event.target && !unfocusable) {\n focus(event, nodeId);\n }\n },\n [disabled, disabledItemsFocusable, focus, focused, nodeId, treeId]\n );\n\n const handleExpansion = useCallback(\n (event) => {\n if (!disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n // If already expanded and trying to toggle selection don't close\n if (expandable && !(multiple && isExpanded(nodeId))) {\n toggleExpansion(event, nodeId);\n }\n }\n },\n [\n disabled,\n expandable,\n focus,\n focused,\n isExpanded,\n multiSelect,\n nodeId,\n toggleExpansion,\n treeviewMode,\n ]\n );\n\n const handleSelection = useCallback(\n (event) => {\n if (selectable && !disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n if (multiple) {\n if (event.shiftKey) {\n selectRange(event, { end: nodeId });\n } else {\n selectNode(event, nodeId, true);\n }\n } else {\n selectNode(event, nodeId);\n }\n }\n },\n [\n disabled,\n focus,\n focused,\n multiSelect,\n nodeId,\n selectNode,\n selectRange,\n selectable,\n treeviewMode,\n ]\n );\n\n const handleMouseDown = useCallback(\n (event) => {\n preventSelection(event, disabled);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n },\n [disabled, onMouseDown]\n );\n\n const handleClick = useCallback(\n (event) => {\n if (!disabled) {\n if (expandable) {\n handleExpansion(event);\n }\n\n if (selectable) {\n handleSelection(event);\n }\n }\n\n if (onClick) {\n onClick(event);\n }\n },\n [disabled, expandable, handleExpansion, handleSelection, onClick, selectable]\n );\n\n const handleKeyDown = useCallback(\n (event) => {\n let isEventHandled = false;\n const { key } = event;\n\n if (event.altKey || event.ctrlKey || event.metaKey || event.currentTarget !== event.target) {\n return;\n }\n if (contentRef.current === event.currentTarget) {\n if (key === \"Enter\" || key === \" \") {\n if (expandable) {\n isEventHandled = handleExpansion(event);\n }\n\n if (selectable) {\n isEventHandled = handleSelection(event);\n }\n }\n\n if (isEventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n },\n [expandable, handleExpansion, handleSelection, selectable]\n );\n\n const renderedContent = useMemo(\n () => (\n <HvTypography\n id={setId(id, \"button\")}\n component=\"div\"\n innerRef={contentRef}\n className={classes.content}\n variant={disabled ? \"placeholderText\" : \"normalText\"}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n style={{\n paddingLeft: (expandable || icon != null ? 0 : 10) + level * (collapsible ? 32 : 10),\n }}\n {...(treeviewMode\n ? {\n role: \"button\",\n tabIndex: -1,\n onFocus: handleFocus,\n }\n : {\n role: \"button\",\n tabIndex: selectable || expandable ? 0 : -1,\n onKeyDown: handleKeyDown,\n \"aria-current\": selectable && selected ? \"page\" : undefined,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-controls\": expandable ? setId(id, \"group\") : undefined,\n })}\n >\n {expandable && (expanded ? <DropUpXS /> : <DropDownXS />)}\n {icon}\n {label}\n </HvTypography>\n ),\n [\n id,\n classes.content,\n handleClick,\n handleMouseDown,\n expandable,\n level,\n collapsible,\n treeviewMode,\n handleFocus,\n handleKeyDown,\n selectable,\n selected,\n expanded,\n icon,\n label,\n disabled,\n ]\n );\n\n const renderedChildren = useMemo(\n () =>\n children && (\n <ul\n id={setId(id, \"group\")}\n className={classes.group}\n role={treeviewMode ? \"group\" : undefined}\n >\n {children}\n </ul>\n ),\n [children, classes.group, id, treeviewMode]\n );\n\n return (\n <li\n ref={handleRef}\n id={id}\n className={clsx(classes.node, className, {\n [classes.disabled]: disabled,\n [classes.expandable]: expandable,\n [classes.collapsed]: expandable && !expanded,\n [classes.expanded]: expandable && expanded,\n [classes.selectable]: !disabled && selectable,\n [classes.unselectable]: !disabled && !selectable,\n [classes.selected]: !disabled && selectable && selected,\n [classes.unselected]: !disabled && selectable && !selected,\n [classes.focused]: focused,\n })}\n data-hasicon={icon != null ? true : undefined}\n {...(mode === \"treeview\" && {\n role: \"treeitem\",\n \"aria-selected\": ariaSelected,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-disabled\": disabled ? true : undefined,\n })}\n {...others}\n >\n {renderedContent}\n <DescendantProvider id={nodeId} level={level + 1}>\n {renderedChildren}\n </DescendantProvider>\n </li>\n );\n});\n\nTreeViewItem.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the Radio button.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root of the component.\n */\n node: PropTypes.string,\n /**\n * Style applied to the content.\n */\n content: PropTypes.string,\n /**\n * Style applied to the group.\n */\n group: PropTypes.string,\n /**\n * Style applied when item is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Style applied when item is expandable.\n */\n expandable: PropTypes.string,\n /**\n * Style applied when item is collapsed.\n */\n collapsed: PropTypes.string,\n /**\n * Style applied when item is expanded.\n */\n expanded: PropTypes.string,\n /**\n * Style applied when item is selectable.\n */\n selectable: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselectable: PropTypes.string,\n /**\n * Style applied when item is selected.\n */\n selected: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselected: PropTypes.string,\n /**\n * Style applied when item is focused.\n */\n focused: PropTypes.string,\n }).isRequired,\n /**\n * Is the node disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Can the node be selected.\n */\n selectable: PropTypes.bool,\n /**\n * The id of the node.\n */\n nodeId: PropTypes.string.isRequired,\n /**\n * The icon to display next to the node's label.\n */\n icon: PropTypes.node,\n /**\n * The item label.\n */\n label: PropTypes.node.isRequired,\n /**\n * The node payload.\n */\n // eslint-disable-next-line react/forbid-prop-types\n payload: PropTypes.any,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, {\n name: \"HvVerticalNavigationTreeViewItem\",\n})(TreeViewItem);\n"],"mappings":"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"}
1
+ {"version":3,"file":"TreeViewItem.js","names":["preventSelection","event","disabled","shiftKey","ctrlKey","metaKey","preventDefault","TreeViewItem","React","forwardRef","props","ref","idProp","id","className","classes","disabledProp","selectableProp","selectable","nodeId","icon","label","href","target","payload","onClick","onMouseDown","onFocus","children","others","treeViewControlContext","useContext","TreeViewControlContext","TreeViewStateContext","isExpanded","isSelected","isFocused","isDisabled","treeId","mode","collapsible","toggleExpansion","multiSelect","selectNode","selectRange","disabledItemsFocusable","registerNode","unregisterNode","mapFirstChar","unMapFirstChar","focus","treeviewMode","useState","treeitemElement","setTreeitemElement","contentRef","useRef","handleRef","useForkRef","descendant","useMemo","element","useDescendant","index","parentId","level","expandable","Array","isArray","expanded","focused","selected","useEffect","idAttribute","undefined","current","textContent","substring","toLowerCase","ariaSelected","handleFocus","useCallback","currentTarget","ownerDocument","document","getElementById","preventScroll","unfocusable","handleExpansion","multiple","handleSelection","end","handleMouseDown","handleClick","handleKeyDown","isEventHandled","key","altKey","stopPropagation","renderedContent","setId","clsx","content","link","paddingLeft","role","tabIndex","onKeyDown","renderedChildren","group","node","unselected","unselectable","collapsed","propTypes","PropTypes","string","shape","isRequired","bool","any","func","withStyles","styles","name"],"sources":["../../../src/VerticalNavigation/TreeView/TreeViewItem.js"],"sourcesContent":["import React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\n\nimport { DropDownXS, DropUpXS } from \"@hitachivantara/uikit-react-icons\";\n\nimport HvTypography from \"../../Typography\";\n\nimport { TreeViewControlContext, TreeViewStateContext } from \"./TreeViewContexts\";\n\nimport { setId, useForkRef } from \"../../utils\";\n\nimport { DescendantProvider, useDescendant } from \"./descendants\";\n\nimport styles from \"./styles\";\n\nconst preventSelection = (event, disabled) => {\n if (event.shiftKey || event.ctrlKey || event.metaKey || disabled) {\n // Prevent text selection\n event.preventDefault();\n }\n};\n\nconst TreeViewItem = React.forwardRef((props, ref) => {\n const {\n id: idProp,\n className,\n classes,\n\n disabled: disabledProp = false,\n\n selectable: selectableProp,\n\n nodeId,\n icon = null,\n label,\n href,\n target,\n payload,\n\n onClick,\n onMouseDown,\n onFocus,\n\n children,\n\n ...others\n } = props;\n\n const treeViewControlContext = useContext(TreeViewControlContext);\n const { isExpanded, isSelected, isFocused, isDisabled } = useContext(TreeViewStateContext);\n\n const {\n treeId,\n mode,\n collapsible,\n toggleExpansion,\n multiSelect,\n selectNode,\n selectRange,\n disabledItemsFocusable,\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n focus,\n } = treeViewControlContext;\n\n const treeviewMode = mode === \"treeview\";\n\n let id = null;\n\n if (idProp != null) {\n id = idProp;\n } else if (treeId && nodeId) {\n id = `${treeId}-${nodeId}`;\n }\n\n const [treeitemElement, setTreeitemElement] = useState(null);\n const contentRef = useRef(null);\n const handleRef = useForkRef(setTreeitemElement, ref);\n\n const descendant = useMemo(\n () => ({\n element: treeitemElement,\n id: nodeId,\n }),\n [nodeId, treeitemElement]\n );\n\n const { index, parentId, level } = useDescendant(descendant);\n\n const expandable = collapsible && Array.isArray(children);\n const expanded = isExpanded ? isExpanded(nodeId) : false;\n const focused = isFocused ? isFocused(nodeId) : false;\n const selected = isSelected ? isSelected(nodeId) : false;\n const disabled = isDisabled ? isDisabled(nodeId) : false;\n\n const selectable = selectableProp != null ? selectableProp : !collapsible || !expandable;\n\n useEffect(() => {\n // On the first render a node's index will be -1. We want to wait for the real index.\n if (registerNode && unregisterNode && index !== -1) {\n registerNode({\n id: nodeId,\n idAttribute: id,\n index,\n parentId,\n selectable,\n expandable,\n disabled: disabledProp,\n onFocus,\n payload,\n });\n\n return () => {\n unregisterNode(nodeId);\n };\n }\n\n return undefined;\n }, [\n registerNode,\n unregisterNode,\n parentId,\n index,\n nodeId,\n expandable,\n disabledProp,\n id,\n selectable,\n onFocus,\n payload,\n ]);\n\n useEffect(() => {\n if (mapFirstChar && unMapFirstChar && label) {\n mapFirstChar(nodeId, contentRef.current?.textContent.substring(0, 1).toLowerCase());\n\n return () => {\n unMapFirstChar(nodeId);\n };\n }\n return undefined;\n }, [mapFirstChar, unMapFirstChar, nodeId, label]);\n\n let ariaSelected;\n if (multiSelect) {\n ariaSelected = selected;\n } else if (selected) {\n /* single-selection trees unset aria-selected on un-selected items.\n *\n * If the tree does not support multiple selection, aria-selected\n * is set to true for the selected node and it is not present on any other node in the tree.\n * Source: https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\n ariaSelected = true;\n }\n\n const handleFocus = useCallback(\n (event) => {\n // DOM focus stays on the tree which manages focus with aria-activedescendant\n if (event.target === event.currentTarget) {\n (event.target.ownerDocument || document)\n .getElementById(treeId)\n .focus({ preventScroll: true });\n }\n\n const unfocusable = !disabledItemsFocusable && disabled;\n if (!focused && event.currentTarget === event.target && !unfocusable) {\n focus(event, nodeId);\n }\n },\n [disabled, disabledItemsFocusable, focus, focused, nodeId, treeId]\n );\n\n const handleExpansion = useCallback(\n (event) => {\n if (!disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n // If already expanded and trying to toggle selection don't close\n if (expandable && !(multiple && isExpanded(nodeId))) {\n toggleExpansion(event, nodeId);\n }\n }\n },\n [\n disabled,\n expandable,\n focus,\n focused,\n isExpanded,\n multiSelect,\n nodeId,\n toggleExpansion,\n treeviewMode,\n ]\n );\n\n const handleSelection = useCallback(\n (event) => {\n if (selectable && !disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n if (multiple) {\n if (event.shiftKey) {\n selectRange(event, { end: nodeId });\n } else {\n selectNode(event, nodeId, true);\n }\n } else {\n selectNode(event, nodeId);\n }\n }\n },\n [\n disabled,\n focus,\n focused,\n multiSelect,\n nodeId,\n selectNode,\n selectRange,\n selectable,\n treeviewMode,\n ]\n );\n\n const handleMouseDown = useCallback(\n (event) => {\n preventSelection(event, disabled);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n },\n [disabled, onMouseDown]\n );\n\n const handleClick = useCallback(\n (event) => {\n if (!disabled) {\n if (expandable) {\n handleExpansion(event);\n }\n\n if (selectable) {\n handleSelection(event);\n }\n }\n\n if (onClick) {\n onClick(event);\n }\n },\n [disabled, expandable, handleExpansion, handleSelection, onClick, selectable]\n );\n\n const handleKeyDown = useCallback(\n (event) => {\n let isEventHandled = false;\n const { key } = event;\n\n if (event.altKey || event.ctrlKey || event.metaKey || event.currentTarget !== event.target) {\n return;\n }\n if (contentRef.current === event.currentTarget) {\n if (key === \"Enter\" || key === \" \") {\n if (expandable) {\n isEventHandled = handleExpansion(event);\n }\n\n if (selectable) {\n isEventHandled = handleSelection(event);\n }\n }\n\n if (isEventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n },\n [expandable, handleExpansion, handleSelection, selectable]\n );\n\n const renderedContent = useMemo(\n () => (\n <HvTypography\n id={setId(id, \"button\")}\n component={href ? \"a\" : \"div\"}\n href={href}\n target={target}\n innerRef={contentRef}\n className={clsx(classes.content, { [classes.link]: href != null })}\n variant={disabled ? \"placeholderText\" : \"normalText\"}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n style={{\n paddingLeft: (expandable || icon != null ? 0 : 10) + level * (collapsible ? 32 : 10),\n }}\n {...(treeviewMode\n ? {\n role: \"button\",\n tabIndex: -1,\n onFocus: handleFocus,\n }\n : {\n role: \"button\",\n tabIndex: selectable || expandable ? 0 : -1,\n onKeyDown: handleKeyDown,\n \"aria-current\": selectable && selected ? \"page\" : undefined,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-controls\": expandable ? setId(id, \"group\") : undefined,\n })}\n >\n {expandable && (expanded ? <DropUpXS /> : <DropDownXS />)}\n {icon}\n {label}\n </HvTypography>\n ),\n [\n id,\n href,\n target,\n classes.content,\n classes.link,\n disabled,\n handleClick,\n handleMouseDown,\n expandable,\n icon,\n level,\n collapsible,\n treeviewMode,\n handleFocus,\n selectable,\n handleKeyDown,\n selected,\n expanded,\n label,\n ]\n );\n\n const renderedChildren = useMemo(\n () =>\n children && (\n <ul\n id={setId(id, \"group\")}\n className={classes.group}\n role={treeviewMode ? \"group\" : undefined}\n >\n {children}\n </ul>\n ),\n [children, classes.group, id, treeviewMode]\n );\n\n return (\n <li\n ref={handleRef}\n id={id}\n className={clsx(classes.node, className, {\n [classes.disabled]: disabled,\n [classes.expandable]: expandable,\n [classes.collapsed]: expandable && !expanded,\n [classes.expanded]: expandable && expanded,\n [classes.selectable]: !disabled && selectable,\n [classes.unselectable]: !disabled && !selectable,\n [classes.selected]: !disabled && selectable && selected,\n [classes.unselected]: !disabled && selectable && !selected,\n [classes.focused]: focused,\n })}\n data-hasicon={icon != null ? true : undefined}\n {...(mode === \"treeview\" && {\n role: \"treeitem\",\n \"aria-selected\": ariaSelected,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-disabled\": disabled ? true : undefined,\n })}\n {...others}\n >\n {renderedContent}\n <DescendantProvider id={nodeId} level={level + 1}>\n {renderedChildren}\n </DescendantProvider>\n </li>\n );\n});\n\nTreeViewItem.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the Radio button.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root of the component.\n */\n node: PropTypes.string,\n /**\n * Style applied to the content.\n */\n content: PropTypes.string,\n /**\n * Style applied to the content when it is a link.\n */\n link: PropTypes.string,\n /**\n * Style applied to the group.\n */\n group: PropTypes.string,\n /**\n * Style applied when item is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Style applied when item is expandable.\n */\n expandable: PropTypes.string,\n /**\n * Style applied when item is collapsed.\n */\n collapsed: PropTypes.string,\n /**\n * Style applied when item is expanded.\n */\n expanded: PropTypes.string,\n /**\n * Style applied when item is selectable.\n */\n selectable: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselectable: PropTypes.string,\n /**\n * Style applied when item is selected.\n */\n selected: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselected: PropTypes.string,\n /**\n * Style applied when item is focused.\n */\n focused: PropTypes.string,\n }).isRequired,\n /**\n * Is the node disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Can the node be selected.\n */\n selectable: PropTypes.bool,\n /**\n * The id of the node.\n */\n nodeId: PropTypes.string.isRequired,\n /**\n * The icon to display next to the node's label.\n */\n icon: PropTypes.node,\n /**\n * The item label.\n */\n label: PropTypes.node.isRequired,\n /**\n * The url for the link.\n */\n href: PropTypes.string,\n /**\n * The behavior when opening a link.\n */\n target: PropTypes.string,\n /**\n * The node payload.\n */\n // eslint-disable-next-line react/forbid-prop-types\n payload: PropTypes.any,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, {\n name: \"HvVerticalNavigationTreeViewItem\",\n})(TreeViewItem);\n"],"mappings":"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"}
@@ -92,6 +92,9 @@ var styles = function styles(theme) {
92
92
  },
93
93
  selected: {},
94
94
  unselected: {},
95
+ link: {
96
+ textDecoration: "none"
97
+ },
95
98
  focused: {},
96
99
  noIcon: {},
97
100
  withIcon: {},
@@ -1 +1 @@
1
- {"version":3,"file":"styles.js","names":["selected","theme","background","hv","palette","atmosphere","atmo3","borderLeft","accent","acce3","hover","styles","root","display","atmo1","padding","margin","listStyle","outline","group","node","minHeight","marginBottom","disabled","selectable","unselectable","expandable","collapsed","expanded","unselected","focused","noIcon","withIcon","content","width","justifyContent","alignItems","height","paddingRight","spacing","xs","fontWeight","outlineStyles","cursor"],"sources":["../../../src/VerticalNavigation/TreeView/styles.js"],"sourcesContent":["import { outlineStyles } from \"../../Focus/styles\";\n\nconst selected = (theme) => ({\n background: theme.hv.palette.atmosphere.atmo3,\n borderLeft: `2px solid ${theme.hv.palette.accent.acce3}`,\n \"& *\": {\n background: theme.hv.palette.atmosphere.atmo3,\n },\n});\n\nconst hover = (theme) => ({\n background: theme.hv.palette.atmosphere.atmo3,\n \"& *\": {\n background: theme.hv.palette.atmosphere.atmo3,\n },\n});\n\nconst styles = (theme) => ({\n /* role=\"tree\" root element */\n root: {\n display: \"block\",\n background: theme.hv.palette.atmosphere.atmo1,\n padding: `0px`,\n margin: \"0\",\n listStyle: \"none\",\n\n outline: \"none\",\n },\n\n /* role=\"group\" element */\n group: {\n margin: \"8px 0 0 0\",\n padding: 0,\n },\n\n /* role=\"treeitem\" element */\n node: {\n listStyle: \"none\",\n minHeight: \"32px\",\n \"&:not(:last-child)\": {\n marginBottom: \"8px\",\n },\n },\n\n /* role=\"treeitem\" element states */\n disabled: {},\n selectable: {},\n unselectable: {},\n expandable: {},\n collapsed: {\n \"&>$group\": { display: \"none\" },\n },\n expanded: {\n \"&>$group\": { display: \"block\" },\n },\n selected: {},\n unselected: {},\n\n focused: {},\n\n noIcon: {},\n withIcon: {},\n\n /* role=\"button\" element */\n content: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"32px\",\n borderLeft: `2px solid transparent`,\n paddingRight: theme.hv.spacing.xs,\n\n \"$expandable>&\": {\n fontWeight: 600,\n },\n\n // selected state\n \"$selected>&\": selected(theme),\n\n // hover\n \":not($disabled):not($selected)>&:hover\": hover(theme),\n \":not($disabled)$selected>&:hover\": {},\n\n // focus\n \":not($disabled):not($selected)>&:focus-visible\": hover(theme),\n \":not($disabled):not($selected)>&.focus-visible\": hover(theme),\n\n \"*:focus-visible $focused>&\": {\n ...outlineStyles,\n },\n\n \".focus-visible $focused>&\": {\n ...outlineStyles,\n },\n\n \"$focused>&\": {\n ...hover(theme),\n },\n\n \"&[disabled], &:active\": {\n outline: \"none\",\n },\n\n \"&:focus\": {\n outline: \"none\",\n },\n\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n\n \"&.focus-visible\": {\n ...outlineStyles,\n },\n\n // cursor\n cursor: \"pointer\",\n \"& *\": {\n cursor: \"pointer\",\n },\n \"$disabled>&\": {\n cursor: \"not-allowed\",\n \"& *\": {\n cursor: \"not-allowed\",\n },\n },\n },\n});\n\nexport default styles;\n"],"mappings":"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"}
1
+ {"version":3,"file":"styles.js","names":["selected","theme","background","hv","palette","atmosphere","atmo3","borderLeft","accent","acce3","hover","styles","root","display","atmo1","padding","margin","listStyle","outline","group","node","minHeight","marginBottom","disabled","selectable","unselectable","expandable","collapsed","expanded","unselected","link","textDecoration","focused","noIcon","withIcon","content","width","justifyContent","alignItems","height","paddingRight","spacing","xs","fontWeight","outlineStyles","cursor"],"sources":["../../../src/VerticalNavigation/TreeView/styles.js"],"sourcesContent":["import { outlineStyles } from \"../../Focus/styles\";\n\nconst selected = (theme) => ({\n background: theme.hv.palette.atmosphere.atmo3,\n borderLeft: `2px solid ${theme.hv.palette.accent.acce3}`,\n \"& *\": {\n background: theme.hv.palette.atmosphere.atmo3,\n },\n});\n\nconst hover = (theme) => ({\n background: theme.hv.palette.atmosphere.atmo3,\n \"& *\": {\n background: theme.hv.palette.atmosphere.atmo3,\n },\n});\n\nconst styles = (theme) => ({\n /* role=\"tree\" root element */\n root: {\n display: \"block\",\n background: theme.hv.palette.atmosphere.atmo1,\n padding: `0px`,\n margin: \"0\",\n listStyle: \"none\",\n\n outline: \"none\",\n },\n\n /* role=\"group\" element */\n group: {\n margin: \"8px 0 0 0\",\n padding: 0,\n },\n\n /* role=\"treeitem\" element */\n node: {\n listStyle: \"none\",\n minHeight: \"32px\",\n \"&:not(:last-child)\": {\n marginBottom: \"8px\",\n },\n },\n\n /* role=\"treeitem\" element states */\n disabled: {},\n selectable: {},\n unselectable: {},\n expandable: {},\n collapsed: {\n \"&>$group\": { display: \"none\" },\n },\n expanded: {\n \"&>$group\": { display: \"block\" },\n },\n selected: {},\n unselected: {},\n link: {\n textDecoration: \"none\",\n },\n\n focused: {},\n\n noIcon: {},\n withIcon: {},\n\n /* role=\"button\" element */\n content: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"32px\",\n borderLeft: `2px solid transparent`,\n paddingRight: theme.hv.spacing.xs,\n\n \"$expandable>&\": {\n fontWeight: 600,\n },\n\n // selected state\n \"$selected>&\": selected(theme),\n\n // hover\n \":not($disabled):not($selected)>&:hover\": hover(theme),\n \":not($disabled)$selected>&:hover\": {},\n\n // focus\n \":not($disabled):not($selected)>&:focus-visible\": hover(theme),\n \":not($disabled):not($selected)>&.focus-visible\": hover(theme),\n\n \"*:focus-visible $focused>&\": {\n ...outlineStyles,\n },\n\n \".focus-visible $focused>&\": {\n ...outlineStyles,\n },\n\n \"$focused>&\": {\n ...hover(theme),\n },\n\n \"&[disabled], &:active\": {\n outline: \"none\",\n },\n\n \"&:focus\": {\n outline: \"none\",\n },\n\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n\n \"&.focus-visible\": {\n ...outlineStyles,\n },\n\n // cursor\n cursor: \"pointer\",\n \"& *\": {\n cursor: \"pointer\",\n },\n \"$disabled>&\": {\n cursor: \"not-allowed\",\n \"& *\": {\n cursor: \"not-allowed\",\n },\n },\n },\n});\n\nexport default styles;\n"],"mappings":"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"}
@@ -83,10 +83,14 @@ process.env.NODE_ENV !== "production" ? MenuBar.propTypes = {
83
83
  *
84
84
  * id - the id to be applied to the root element.
85
85
  * label - the label to be rendered on the menu item.
86
+ * href - the url used for navigation.
87
+ * target - the behavior when opening an url.
86
88
  */
87
89
  data: PropTypes.arrayOf(PropTypes.shape({
88
90
  id: PropTypes.string.isRequired,
89
- label: PropTypes.string.isRequired
91
+ label: PropTypes.string.isRequired,
92
+ href: PropTypes.string,
93
+ target: PropTypes.string
90
94
  })),
91
95
 
92
96
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"MenuBar.js","names":["React","useContext","clsx","PropTypes","withStyles","SelectionContext","MenuItem","styles","MenuBar","classes","id","data","onClick","type","selectionPath","isMenu","isActive","filter","item","length","root","hidden","active","list","map","propTypes","shape","string","menubar","menu","isRequired","arrayOf","label","func","oneOf","name"],"sources":["../../../../../src/Header/Navigation/MenuBar/MenuBar.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport SelectionContext from \"../utils/SelectionContext\";\nimport MenuItem from \"../MenuItem\";\nimport styles from \"./styles\";\n\nconst MenuBar = ({ classes, id, data = [], onClick, type }) => {\n const selectionPath = useContext(SelectionContext);\n\n const isMenu = type === \"menu\";\n const isActive = isMenu && data.filter((item) => item.id === selectionPath[1]).length > 0;\n\n return (\n <div\n className={clsx(classes.root, classes[`${type}`], {\n [classes.hidden]: isMenu,\n [classes.active]: isActive,\n })}\n >\n <ul id={id} className={classes.list} onFocus={() => {}}>\n {data.map((item) => (\n <MenuItem key={item.id} item={item} type={type} onClick={onClick} />\n ))}\n </ul>\n </div>\n );\n};\n\nMenuBar.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 root.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the menu bar.\n */\n menubar: PropTypes.string,\n /**\n * Styles applied to the menu.\n */\n menu: PropTypes.string,\n /**\n * Styles applied when in menu mode.\n */\n hidden: PropTypes.string,\n /**\n * Styles applied when active.\n */\n active: PropTypes.string,\n /**\n * Styles applied to the list.\n */\n list: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the root node.\n */\n id: 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 ),\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: \"HvHeaderMenuBar\" })(MenuBar);\n"],"mappings":"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"}
1
+ {"version":3,"file":"MenuBar.js","names":["React","useContext","clsx","PropTypes","withStyles","SelectionContext","MenuItem","styles","MenuBar","classes","id","data","onClick","type","selectionPath","isMenu","isActive","filter","item","length","root","hidden","active","list","map","propTypes","shape","string","menubar","menu","isRequired","arrayOf","label","href","target","func","oneOf","name"],"sources":["../../../../../src/Header/Navigation/MenuBar/MenuBar.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport SelectionContext from \"../utils/SelectionContext\";\nimport MenuItem from \"../MenuItem\";\nimport styles from \"./styles\";\n\nconst MenuBar = ({ classes, id, data = [], onClick, type }) => {\n const selectionPath = useContext(SelectionContext);\n\n const isMenu = type === \"menu\";\n const isActive = isMenu && data.filter((item) => item.id === selectionPath[1]).length > 0;\n\n return (\n <div\n className={clsx(classes.root, classes[`${type}`], {\n [classes.hidden]: isMenu,\n [classes.active]: isActive,\n })}\n >\n <ul id={id} className={classes.list} onFocus={() => {}}>\n {data.map((item) => (\n <MenuItem key={item.id} item={item} type={type} onClick={onClick} />\n ))}\n </ul>\n </div>\n );\n};\n\nMenuBar.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 root.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the menu bar.\n */\n menubar: PropTypes.string,\n /**\n * Styles applied to the menu.\n */\n menu: PropTypes.string,\n /**\n * Styles applied when in menu mode.\n */\n hidden: PropTypes.string,\n /**\n * Styles applied when active.\n */\n active: PropTypes.string,\n /**\n * Styles applied to the list.\n */\n list: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the root node.\n */\n id: 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 ),\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: \"HvHeaderMenuBar\" })(MenuBar);\n"],"mappings":"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"}
@@ -1,3 +1,5 @@
1
+ import _extends from "@babel/runtime/helpers/esm/extends";
2
+ import "core-js/modules/es.string.link.js";
1
3
  import React, { useContext } from "react";
2
4
  import clsx from "clsx";
3
5
  import PropTypes from "prop-types";
@@ -51,6 +53,15 @@ var MenuItem = function MenuItem(_ref) {
51
53
  };
52
54
 
53
55
  var isIe = isBrowser(["ie", "edge"]);
56
+ var label = /*#__PURE__*/React.createElement(HvTypography, {
57
+ variant: isSelected ? "selectedNavText" : "normalText"
58
+ }, item.label);
59
+ var itemProps = {
60
+ onClick: actionHandler,
61
+ onKeyDown: actionHandler,
62
+ tabIndex: 0,
63
+ onFocus: handleFocus
64
+ };
54
65
  return /*#__PURE__*/React.createElement("li", {
55
66
  id: id,
56
67
  key: item.label,
@@ -58,16 +69,14 @@ var MenuItem = function MenuItem(_ref) {
58
69
  }, /*#__PURE__*/React.createElement(ConditionalWrapper, {
59
70
  condition: isIe,
60
71
  wrapper: focusWrapper
61
- }, /*#__PURE__*/React.createElement("div", {
62
- role: "button",
72
+ }, item !== null && item !== void 0 && item.href ? /*#__PURE__*/React.createElement("a", _extends({
73
+ className: clsx(classes.button, classes.link),
74
+ href: item === null || item === void 0 ? void 0 : item.href,
75
+ target: item === null || item === void 0 ? void 0 : item.target
76
+ }, itemProps), label) : /*#__PURE__*/React.createElement("div", _extends({
63
77
  className: clsx(classes.button),
64
- onClick: actionHandler,
65
- onKeyDown: actionHandler,
66
- tabIndex: 0,
67
- onFocus: handleFocus
68
- }, /*#__PURE__*/React.createElement(HvTypography, {
69
- variant: isSelected ? "selectedNavText" : "normalText"
70
- }, item.label))), hasSubLevel && /*#__PURE__*/React.createElement(MenuBar, {
78
+ role: "button"
79
+ }, itemProps), label)), hasSubLevel && /*#__PURE__*/React.createElement(MenuBar, {
71
80
  data: data,
72
81
  onClick: onClick,
73
82
  type: "menu"
@@ -99,6 +108,11 @@ process.env.NODE_ENV !== "production" ? MenuItem.propTypes = {
99
108
  */
100
109
  button: PropTypes.string,
101
110
 
111
+ /**
112
+ * Style applied to each item button when it is behaving as a.
113
+ */
114
+ link: PropTypes.string,
115
+
102
116
  /**
103
117
  * Style applied to the reference element used for ie focus.
104
118
  */
@@ -124,6 +138,8 @@ process.env.NODE_ENV !== "production" ? MenuItem.propTypes = {
124
138
  item: PropTypes.shape({
125
139
  id: PropTypes.string.isRequired,
126
140
  label: PropTypes.string.isRequired,
141
+ href: PropTypes.string,
142
+ target: PropTypes.string,
127
143
  data: PropTypes.arrayOf(PropTypes.shape({
128
144
  id: PropTypes.string.isRequired,
129
145
  label: PropTypes.string.isRequired
@@ -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":"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"}
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"}