@hitachivantara/uikit-react-core 3.67.7 → 3.67.8
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.
- package/dist/VerticalNavigation/Navigation/Navigation.d.ts +8 -0
- package/dist/VerticalNavigation/Navigation/Navigation.js +4 -2
- package/dist/VerticalNavigation/Navigation/Navigation.js.map +1 -1
- package/dist/VerticalNavigation/TreeView/TreeViewItem.js +2 -1
- package/dist/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
- package/dist/VerticalNavigation/TreeView/styles.js +0 -1
- package/dist/VerticalNavigation/TreeView/styles.js.map +1 -1
- package/dist/legacy/VerticalNavigation/Navigation/Navigation.d.ts +8 -0
- package/dist/legacy/VerticalNavigation/Navigation/Navigation.js +4 -2
- package/dist/legacy/VerticalNavigation/Navigation/Navigation.js.map +1 -1
- package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.js +2 -1
- package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
- package/dist/legacy/VerticalNavigation/TreeView/styles.js +0 -1
- package/dist/legacy/VerticalNavigation/TreeView/styles.js.map +1 -1
- package/dist/modern/VerticalNavigation/Navigation/Navigation.d.ts +8 -0
- package/dist/modern/VerticalNavigation/Navigation/Navigation.js +4 -2
- package/dist/modern/VerticalNavigation/Navigation/Navigation.js.map +1 -1
- package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.js +2 -1
- package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
- package/dist/modern/VerticalNavigation/TreeView/styles.js +0 -1
- package/dist/modern/VerticalNavigation/TreeView/styles.js.map +1 -1
- package/package.json +2 -2
|
@@ -18,6 +18,14 @@ export interface NavigationData {
|
|
|
18
18
|
* Data subset.
|
|
19
19
|
*/
|
|
20
20
|
data?: NavigationData[];
|
|
21
|
+
/**
|
|
22
|
+
* if `true` the item is disabled and is not interactive.
|
|
23
|
+
*/
|
|
24
|
+
disabled: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* if `true` the item doesn't have a selected state.
|
|
27
|
+
*/
|
|
28
|
+
selectable: boolean;
|
|
21
29
|
/**
|
|
22
30
|
* Any other properties.
|
|
23
31
|
*/
|
|
@@ -69,7 +69,8 @@ var createListHierarchy = function createListHierarchy(items, id, classes) {
|
|
|
69
69
|
itemLabel = item.label,
|
|
70
70
|
icon = item.icon,
|
|
71
71
|
children = item.data,
|
|
72
|
-
selectable = item.selectable
|
|
72
|
+
selectable = item.selectable,
|
|
73
|
+
disabled = item.disabled;
|
|
73
74
|
var ItemText = (0, _utils2.wrapperTooltip)(true, itemLabel, itemLabel);
|
|
74
75
|
return /*#__PURE__*/_react.default.createElement(_TreeView.TreeViewItem, {
|
|
75
76
|
id: (0, _utils.setId)(id, itemId),
|
|
@@ -79,7 +80,8 @@ var createListHierarchy = function createListHierarchy(items, id, classes) {
|
|
|
79
80
|
label: /*#__PURE__*/_react.default.createElement(ItemText, null),
|
|
80
81
|
icon: icon,
|
|
81
82
|
payload: item,
|
|
82
|
-
selectable: selectable
|
|
83
|
+
selectable: selectable,
|
|
84
|
+
disabled: disabled
|
|
83
85
|
}, children ? createListHierarchy(children, id, classes) : undefined);
|
|
84
86
|
});
|
|
85
87
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigation.js","names":["createListHierarchy","items","id","classes","map","item","itemId","itemLabel","label","icon","children","data","selectable","ItemText","listItem","undefined","getAllParents","parents","filter","length","childParents","flatMap","pathToElement","targetId","path","i","push","subPaths","Navigation","className","mode","collapsible","expandedProp","expanded","defaultExpanded","onToggle","selectedProp","selected","defaultSelected","onChange","onClick","others","setSelected","slice","setExpanded","handleChange","event","selectedId","selectedItem","handleToggle","newExpanded","root","list","propTypes","PropTypes","string","shape","isRequired","oneOf","bool","func","arrayOf","oneOfType","node","array","styles","name"],"sources":["../../../src/VerticalNavigation/Navigation/Navigation.js"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { deprecatedPropType, withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport TreeView, { TreeViewItem } from \"../TreeView\";\nimport { setId, useControlled } from \"../../utils\";\nimport styles from \"./styles\";\nimport { wrapperTooltip } from \"../../List/utils\";\n\nconst createListHierarchy = (items, id, classes) =>\n items.map((item) => {\n const { id: itemId, label: itemLabel, icon, data: children, selectable } = item;\n\n const ItemText = wrapperTooltip(true, itemLabel, itemLabel);\n\n return (\n <TreeViewItem\n id={setId(id, itemId)}\n className={classes.listItem}\n key={itemId}\n nodeId={itemId}\n label={<ItemText />}\n icon={icon}\n payload={item}\n selectable={selectable}\n >\n {children ? createListHierarchy(children, id, classes) : undefined}\n </TreeViewItem>\n );\n });\n\nconst getAllParents = (items) => {\n const parents = items.filter((item) => item.data != null && item.data.length > 0);\n const childParents = parents.flatMap((item) => getAllParents(item.data));\n\n return [...parents, ...childParents];\n};\n\nfunction pathToElement(data, targetId) {\n const path = [];\n\n if (data != null && data.length > 0) {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i !== data.length; ++i) {\n const item = data[i];\n if (item.id === targetId) {\n path.push(item.id);\n break;\n }\n\n const subPaths = pathToElement(item.data, targetId);\n if (subPaths.length > 0) {\n path.push(item.id);\n path.push(...subPaths);\n break;\n }\n }\n }\n\n return path;\n}\n\nconst Navigation = ({\n id,\n\n className,\n classes,\n\n data,\n\n mode = \"navigation\",\n\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded,\n onToggle,\n\n selected: selectedProp,\n defaultSelected,\n onChange,\n\n label,\n onClick,\n\n ...others\n}) => {\n const [selected, setSelected] = useControlled(selectedProp, defaultSelected);\n const [expanded, setExpanded] = useControlled(expandedProp, () => {\n if (defaultExpanded === true) {\n // all parent nodes will be expanded by default\n return getAllParents(data).map((item) => item.id);\n }\n\n if (defaultExpanded === false) {\n // all parent nodes will be collapsed by default\n return [];\n }\n\n if (defaultExpanded == null) {\n if (selected != null) {\n // the path to the selected node will be expanded (default behaviour)\n const path = pathToElement(data, selected);\n return path.slice(0, -1);\n }\n\n // nothing is expanded\n return [];\n }\n\n return defaultExpanded;\n });\n\n const handleChange = useCallback(\n (event, selectedId, selectedItem) => {\n setSelected(selectedId);\n\n if (onChange) {\n onChange(event, selectedItem);\n }\n\n // deprecated\n if (onClick) {\n onClick(event, selectedItem);\n }\n },\n [onChange, onClick, setSelected]\n );\n\n const handleToggle = useCallback(\n (event, newExpanded) => {\n setExpanded(newExpanded);\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n\n // deprecated\n if (onClick) {\n onClick(event);\n }\n },\n [onClick, onToggle, setExpanded]\n );\n\n const children = useMemo(\n () => data && createListHierarchy(data, id, classes),\n [classes, data, id]\n );\n\n return (\n <nav id={id} className={clsx(className, classes.root)} aria-label={label} {...others}>\n <TreeView\n id={setId(id, \"tree\")}\n className={classes.list}\n selectable\n mode={mode}\n collapsible={collapsible}\n selected={selected}\n onChange={handleChange}\n expanded={expanded}\n onToggle={handleToggle}\n >\n {children}\n </TreeView>\n </nav>\n );\n};\n\nNavigation.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root element.\n */\n root: PropTypes.string,\n /**\n * Style applied to the list.\n */\n list: PropTypes.string,\n /**\n * Style applied to the list items.\n */\n listItem: PropTypes.string,\n }).isRequired,\n\n /**\n * Modus operandi (role) of the widget instance.\n */\n mode: PropTypes.oneOf([\"treeview\", \"navigation\"]),\n /**\n * Can non-leaf nodes be collapsed / expanded.\n */\n collapsible: PropTypes.bool,\n\n /**\n * The ID of the selected page.\n */\n selected: PropTypes.string,\n /**\n * When uncontrolled, defines the initial selected page ID.\n */\n defaultSelected: PropTypes.string,\n /**\n * Callback fired when a navigation item is selected.\n *\n * @param {object} event The event source of the callback.\n * @param {object} page The data of the selected page.\n */\n onChange: PropTypes.func,\n\n /**\n * Expanded nodes' ids.\n */\n expanded: PropTypes.arrayOf(PropTypes.string),\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n *\n * It also supports `true` for starting with all nodes expanded.\n * With `false` all nodes will be collapsed.\n *\n * By default it expands the needed nodes to display the current selection, if any.\n */\n defaultExpanded: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.bool]),\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {object} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes (old and new).\n */\n onToggle: PropTypes.func,\n\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * data - sub-menu items\n */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n icon: PropTypes.node,\n data: PropTypes.array,\n })\n ).isRequired,\n\n /**\n * Callback triggered when any item is clicked.\n *\n * @deprecated use `onChange` for selection and `onToggle` for node expansion/collapse.\n */\n onClick: deprecatedPropType(PropTypes.func),\n /**\n * The root element (nav) aria label.\n *\n * @deprecated Use directly the `aria-label` property instead.\n */\n label: deprecatedPropType(PropTypes.string),\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationNavigation\" })(Navigation);\n"],"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","ItemText","listItem","undefined","getAllParents","parents","filter","length","childParents","flatMap","pathToElement","targetId","path","i","push","subPaths","Navigation","className","mode","collapsible","expandedProp","expanded","defaultExpanded","onToggle","selectedProp","selected","defaultSelected","onChange","onClick","others","setSelected","slice","setExpanded","handleChange","event","selectedId","selectedItem","handleToggle","newExpanded","root","list","propTypes","PropTypes","string","shape","isRequired","oneOf","bool","func","arrayOf","oneOfType","node","array","styles","name"],"sources":["../../../src/VerticalNavigation/Navigation/Navigation.js"],"sourcesContent":["import React, { useCallback, useMemo } from \"react\";\nimport PropTypes from \"prop-types\";\nimport { deprecatedPropType, withStyles } from \"@material-ui/core\";\nimport clsx from \"clsx\";\nimport TreeView, { TreeViewItem } from \"../TreeView\";\nimport { setId, useControlled } from \"../../utils\";\nimport styles from \"./styles\";\nimport { wrapperTooltip } from \"../../List/utils\";\n\nconst createListHierarchy = (items, id, classes) =>\n items.map((item) => {\n const { id: itemId, label: itemLabel, icon, data: children, selectable, disabled } = item;\n\n const ItemText = wrapperTooltip(true, itemLabel, itemLabel);\n\n return (\n <TreeViewItem\n id={setId(id, itemId)}\n className={classes.listItem}\n key={itemId}\n nodeId={itemId}\n label={<ItemText />}\n icon={icon}\n payload={item}\n selectable={selectable}\n disabled={disabled}\n >\n {children ? createListHierarchy(children, id, classes) : undefined}\n </TreeViewItem>\n );\n });\n\nconst getAllParents = (items) => {\n const parents = items.filter((item) => item.data != null && item.data.length > 0);\n const childParents = parents.flatMap((item) => getAllParents(item.data));\n\n return [...parents, ...childParents];\n};\n\nfunction pathToElement(data, targetId) {\n const path = [];\n\n if (data != null && data.length > 0) {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i !== data.length; ++i) {\n const item = data[i];\n if (item.id === targetId) {\n path.push(item.id);\n break;\n }\n\n const subPaths = pathToElement(item.data, targetId);\n if (subPaths.length > 0) {\n path.push(item.id);\n path.push(...subPaths);\n break;\n }\n }\n }\n\n return path;\n}\n\nconst Navigation = ({\n id,\n\n className,\n classes,\n\n data,\n\n mode = \"navigation\",\n\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded,\n onToggle,\n\n selected: selectedProp,\n defaultSelected,\n onChange,\n\n label,\n onClick,\n\n ...others\n}) => {\n const [selected, setSelected] = useControlled(selectedProp, defaultSelected);\n const [expanded, setExpanded] = useControlled(expandedProp, () => {\n if (defaultExpanded === true) {\n // all parent nodes will be expanded by default\n return getAllParents(data).map((item) => item.id);\n }\n\n if (defaultExpanded === false) {\n // all parent nodes will be collapsed by default\n return [];\n }\n\n if (defaultExpanded == null) {\n if (selected != null) {\n // the path to the selected node will be expanded (default behaviour)\n const path = pathToElement(data, selected);\n return path.slice(0, -1);\n }\n\n // nothing is expanded\n return [];\n }\n\n return defaultExpanded;\n });\n\n const handleChange = useCallback(\n (event, selectedId, selectedItem) => {\n setSelected(selectedId);\n\n if (onChange) {\n onChange(event, selectedItem);\n }\n\n // deprecated\n if (onClick) {\n onClick(event, selectedItem);\n }\n },\n [onChange, onClick, setSelected]\n );\n\n const handleToggle = useCallback(\n (event, newExpanded) => {\n setExpanded(newExpanded);\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n\n // deprecated\n if (onClick) {\n onClick(event);\n }\n },\n [onClick, onToggle, setExpanded]\n );\n\n const children = useMemo(\n () => data && createListHierarchy(data, id, classes),\n [classes, data, id]\n );\n\n return (\n <nav id={id} className={clsx(className, classes.root)} aria-label={label} {...others}>\n <TreeView\n id={setId(id, \"tree\")}\n className={classes.list}\n selectable\n mode={mode}\n collapsible={collapsible}\n selected={selected}\n onChange={handleChange}\n expanded={expanded}\n onToggle={handleToggle}\n >\n {children}\n </TreeView>\n </nav>\n );\n};\n\nNavigation.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root element.\n */\n root: PropTypes.string,\n /**\n * Style applied to the list.\n */\n list: PropTypes.string,\n /**\n * Style applied to the list items.\n */\n listItem: PropTypes.string,\n }).isRequired,\n\n /**\n * Modus operandi (role) of the widget instance.\n */\n mode: PropTypes.oneOf([\"treeview\", \"navigation\"]),\n /**\n * Can non-leaf nodes be collapsed / expanded.\n */\n collapsible: PropTypes.bool,\n\n /**\n * The ID of the selected page.\n */\n selected: PropTypes.string,\n /**\n * When uncontrolled, defines the initial selected page ID.\n */\n defaultSelected: PropTypes.string,\n /**\n * Callback fired when a navigation item is selected.\n *\n * @param {object} event The event source of the callback.\n * @param {object} page The data of the selected page.\n */\n onChange: PropTypes.func,\n\n /**\n * Expanded nodes' ids.\n */\n expanded: PropTypes.arrayOf(PropTypes.string),\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n *\n * It also supports `true` for starting with all nodes expanded.\n * With `false` all nodes will be collapsed.\n *\n * By default it expands the needed nodes to display the current selection, if any.\n */\n defaultExpanded: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.bool]),\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {object} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes (old and new).\n */\n onToggle: PropTypes.func,\n\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * data - sub-menu items\n */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n icon: PropTypes.node,\n data: PropTypes.array,\n })\n ).isRequired,\n\n /**\n * Callback triggered when any item is clicked.\n *\n * @deprecated use `onChange` for selection and `onToggle` for node expansion/collapse.\n */\n onClick: deprecatedPropType(PropTypes.func),\n /**\n * The root element (nav) aria label.\n *\n * @deprecated Use directly the `aria-label` property instead.\n */\n label: deprecatedPropType(PropTypes.string),\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationNavigation\" })(Navigation);\n"],"mappings":"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"}
|
|
@@ -130,7 +130,7 @@ var TreeViewItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
130
130
|
parentId = _useDescendant.parentId,
|
|
131
131
|
level = _useDescendant.level;
|
|
132
132
|
|
|
133
|
-
var expandable = collapsible &&
|
|
133
|
+
var expandable = collapsible && Array.isArray(children);
|
|
134
134
|
var expanded = isExpanded ? isExpanded(nodeId) : false;
|
|
135
135
|
var focused = isFocused ? isFocused(nodeId) : false;
|
|
136
136
|
var selected = isSelected ? isSelected(nodeId) : false;
|
|
@@ -284,6 +284,7 @@ var TreeViewItem = /*#__PURE__*/_react.default.forwardRef(function (props, ref)
|
|
|
284
284
|
component: "div",
|
|
285
285
|
innerRef: contentRef,
|
|
286
286
|
className: classes.content,
|
|
287
|
+
variant: disabled ? "placeholderText" : "normalText",
|
|
287
288
|
onClick: handleClick,
|
|
288
289
|
onMouseDown: handleMouseDown,
|
|
289
290
|
style: {
|
|
@@ -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","TreeViewControlContext","TreeViewStateContext","isExpanded","isSelected","isFocused","isDisabled","treeId","mode","collapsible","toggleExpansion","multiSelect","selectNode","selectRange","disabledItemsFocusable","registerNode","unregisterNode","mapFirstChar","unMapFirstChar","focus","treeviewMode","treeitemElement","setTreeitemElement","contentRef","handleRef","descendant","element","index","parentId","level","expandable","Boolean","Array","isArray","length","expanded","focused","selected","idAttribute","undefined","current","textContent","substring","toLowerCase","ariaSelected","handleFocus","target","currentTarget","ownerDocument","document","getElementById","preventScroll","unfocusable","handleExpansion","multiple","handleSelection","end","handleMouseDown","handleClick","handleKeyDown","isEventHandled","key","altKey","stopPropagation","renderedContent","content","paddingLeft","role","tabIndex","onKeyDown","renderedChildren","group","node","unselected","unselectable","collapsed","propTypes","PropTypes","string","shape","isRequired","bool","any","func","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 && Boolean(Array.isArray(children) ? children.length : children);\n const expanded = isExpanded ? isExpanded(nodeId) : false;\n const focused = isFocused ? isFocused(nodeId) : false;\n const selected = isSelected ? isSelected(nodeId) : false;\n const disabled = isDisabled ? isDisabled(nodeId) : false;\n\n const selectable = selectableProp != null ? selectableProp : !collapsible || !expandable;\n\n useEffect(() => {\n // On the first render a node's index will be -1. We want to wait for the real index.\n if (registerNode && unregisterNode && index !== -1) {\n registerNode({\n id: nodeId,\n idAttribute: id,\n index,\n parentId,\n selectable,\n expandable,\n disabled: disabledProp,\n onFocus,\n payload,\n });\n\n return () => {\n unregisterNode(nodeId);\n };\n }\n\n return undefined;\n }, [\n registerNode,\n unregisterNode,\n parentId,\n index,\n nodeId,\n expandable,\n disabledProp,\n id,\n selectable,\n onFocus,\n payload,\n ]);\n\n useEffect(() => {\n if (mapFirstChar && unMapFirstChar && label) {\n mapFirstChar(nodeId, contentRef.current?.textContent.substring(0, 1).toLowerCase());\n\n return () => {\n unMapFirstChar(nodeId);\n };\n }\n return undefined;\n }, [mapFirstChar, unMapFirstChar, nodeId, label]);\n\n let ariaSelected;\n if (multiSelect) {\n ariaSelected = selected;\n } else if (selected) {\n /* single-selection trees unset aria-selected on un-selected items.\n *\n * If the tree does not support multiple selection, aria-selected\n * is set to true for the selected node and it is not present on any other node in the tree.\n * Source: https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\n ariaSelected = true;\n }\n\n const handleFocus = useCallback(\n (event) => {\n // DOM focus stays on the tree which manages focus with aria-activedescendant\n if (event.target === event.currentTarget) {\n (event.target.ownerDocument || document)\n .getElementById(treeId)\n .focus({ preventScroll: true });\n }\n\n const unfocusable = !disabledItemsFocusable && disabled;\n if (!focused && event.currentTarget === event.target && !unfocusable) {\n focus(event, nodeId);\n }\n },\n [disabled, disabledItemsFocusable, focus, focused, nodeId, treeId]\n );\n\n const handleExpansion = useCallback(\n (event) => {\n if (!disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n // If already expanded and trying to toggle selection don't close\n if (expandable && !(multiple && isExpanded(nodeId))) {\n toggleExpansion(event, nodeId);\n }\n }\n },\n [\n disabled,\n expandable,\n focus,\n focused,\n isExpanded,\n multiSelect,\n nodeId,\n toggleExpansion,\n treeviewMode,\n ]\n );\n\n const handleSelection = useCallback(\n (event) => {\n if (selectable && !disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n if (multiple) {\n if (event.shiftKey) {\n selectRange(event, { end: nodeId });\n } else {\n selectNode(event, nodeId, true);\n }\n } else {\n selectNode(event, nodeId);\n }\n }\n },\n [\n disabled,\n focus,\n focused,\n multiSelect,\n nodeId,\n selectNode,\n selectRange,\n selectable,\n treeviewMode,\n ]\n );\n\n const handleMouseDown = useCallback(\n (event) => {\n preventSelection(event, disabled);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n },\n [disabled, onMouseDown]\n );\n\n const handleClick = useCallback(\n (event) => {\n if (!disabled) {\n if (expandable) {\n handleExpansion(event);\n }\n\n if (selectable) {\n handleSelection(event);\n }\n }\n\n if (onClick) {\n onClick(event);\n }\n },\n [disabled, expandable, handleExpansion, handleSelection, onClick, selectable]\n );\n\n const handleKeyDown = useCallback(\n (event) => {\n let isEventHandled = false;\n const { key } = event;\n\n if (event.altKey || event.ctrlKey || event.metaKey || event.currentTarget !== event.target) {\n return;\n }\n if (contentRef.current === event.currentTarget) {\n if (key === \"Enter\" || key === \" \") {\n if (expandable) {\n isEventHandled = handleExpansion(event);\n }\n\n if (selectable) {\n isEventHandled = handleSelection(event);\n }\n }\n\n if (isEventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n },\n [expandable, handleExpansion, handleSelection, selectable]\n );\n\n const renderedContent = useMemo(\n () => (\n <HvTypography\n id={setId(id, \"button\")}\n component=\"div\"\n innerRef={contentRef}\n className={classes.content}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n style={{\n paddingLeft: (expandable || icon != null ? 0 : 10) + level * (collapsible ? 32 : 10),\n }}\n {...(treeviewMode\n ? {\n role: \"button\",\n tabIndex: -1,\n onFocus: handleFocus,\n }\n : {\n role: \"button\",\n tabIndex: selectable || expandable ? 0 : -1,\n onKeyDown: handleKeyDown,\n \"aria-current\": selectable && selected ? \"page\" : undefined,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-controls\": expandable ? setId(id, \"group\") : undefined,\n })}\n >\n {expandable && (expanded ? <DropUpXS /> : <DropDownXS />)}\n {icon}\n {label}\n </HvTypography>\n ),\n [\n id,\n classes.content,\n handleClick,\n handleMouseDown,\n expandable,\n level,\n collapsible,\n treeviewMode,\n handleFocus,\n handleKeyDown,\n selectable,\n selected,\n expanded,\n icon,\n label,\n ]\n );\n\n const renderedChildren = useMemo(\n () =>\n children && (\n <ul\n id={setId(id, \"group\")}\n className={classes.group}\n role={treeviewMode ? \"group\" : undefined}\n >\n {children}\n </ul>\n ),\n [children, classes.group, id, treeviewMode]\n );\n\n return (\n <li\n ref={handleRef}\n id={id}\n className={clsx(classes.node, className, {\n [classes.disabled]: disabled,\n [classes.expandable]: expandable,\n [classes.collapsed]: expandable && !expanded,\n [classes.expanded]: expandable && expanded,\n [classes.selectable]: !disabled && selectable,\n [classes.unselectable]: !disabled && !selectable,\n [classes.selected]: !disabled && selectable && selected,\n [classes.unselected]: !disabled && selectable && !selected,\n [classes.focused]: focused,\n })}\n data-hasicon={icon != null ? true : undefined}\n {...(mode === \"treeview\" && {\n role: \"treeitem\",\n \"aria-selected\": ariaSelected,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-disabled\": disabled ? true : undefined,\n })}\n {...others}\n >\n {renderedContent}\n <DescendantProvider id={nodeId} level={level + 1}>\n {renderedChildren}\n </DescendantProvider>\n </li>\n );\n});\n\nTreeViewItem.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the Radio button.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root of the component.\n */\n node: PropTypes.string,\n /**\n * Style applied to the content.\n */\n content: PropTypes.string,\n /**\n * Style applied to the group.\n */\n group: PropTypes.string,\n /**\n * Style applied when item is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Style applied when item is expandable.\n */\n expandable: PropTypes.string,\n /**\n * Style applied when item is collapsed.\n */\n collapsed: PropTypes.string,\n /**\n * Style applied when item is expanded.\n */\n expanded: PropTypes.string,\n /**\n * Style applied when item is selectable.\n */\n selectable: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselectable: PropTypes.string,\n /**\n * Style applied when item is selected.\n */\n selected: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselected: PropTypes.string,\n /**\n * Style applied when item is focused.\n */\n focused: PropTypes.string,\n }).isRequired,\n /**\n * Is the node disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Can the node be selected.\n */\n selectable: PropTypes.bool,\n /**\n * The id of the node.\n */\n nodeId: PropTypes.string.isRequired,\n /**\n * The icon to display next to the node's label.\n */\n icon: PropTypes.node,\n /**\n * The item label.\n */\n label: PropTypes.node.isRequired,\n /**\n * The node payload.\n */\n // eslint-disable-next-line react/forbid-prop-types\n payload: PropTypes.any,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, {\n name: \"HvVerticalNavigationTreeViewItem\",\n})(TreeViewItem);\n"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;;AACA;;AACA;;AACA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;AAEA;;;;;;;;;;AAEA,IAAMA,gBAAgB,GAAG,SAAnBA,gBAAmB,CAACC,KAAD,EAAQC,QAAR,EAAqB;EAC5C,IAAID,KAAK,CAACE,QAAN,IAAkBF,KAAK,CAACG,OAAxB,IAAmCH,KAAK,CAACI,OAAzC,IAAoDH,QAAxD,EAAkE;IAChE;IACAD,KAAK,CAACK,cAAN;EACD;AACF,CALD;;AAOA,IAAMC,YAAY,gBAAGC,eAAMC,UAAN,CAAiB,UAACC,KAAD,EAAQC,GAAR,EAAgB;EACpD,IACMC,MADN,GAqBIF,KArBJ,CACEG,EADF;EAAA,IAEEC,SAFF,GAqBIJ,KArBJ,CAEEI,SAFF;EAAA,IAGEC,OAHF,GAqBIL,KArBJ,CAGEK,OAHF;EAAA,sBAqBIL,KArBJ,CAKER,QALF;EAAA,IAKYc,YALZ,gCAK2B,KAL3B;EAAA,IAOcC,cAPd,GAqBIP,KArBJ,CAOEQ,UAPF;EAAA,IASEC,MATF,GAqBIT,KArBJ,CASES,MATF;EAAA,kBAqBIT,KArBJ,CAUEU,IAVF;EAAA,IAUEA,IAVF,4BAUS,IAVT;EAAA,IAWEC,KAXF,GAqBIX,KArBJ,CAWEW,KAXF;EAAA,IAYEC,OAZF,GAqBIZ,KArBJ,CAYEY,OAZF;EAAA,IAcEC,OAdF,GAqBIb,KArBJ,CAcEa,OAdF;EAAA,IAeEC,WAfF,GAqBId,KArBJ,CAeEc,WAfF;EAAA,IAgBEC,OAhBF,GAqBIf,KArBJ,CAgBEe,OAhBF;EAAA,IAkBEC,QAlBF,GAqBIhB,KArBJ,CAkBEgB,QAlBF;EAAA,IAoBKC,MApBL,0CAqBIjB,KArBJ;EAuBA,IAAMkB,sBAAsB,GAAG,uBAAWC,wCAAX,CAA/B;;EACA,kBAA0D,uBAAWC,sCAAX,CAA1D;EAAA,IAAQC,UAAR,eAAQA,UAAR;EAAA,IAAoBC,UAApB,eAAoBA,UAApB;EAAA,IAAgCC,SAAhC,eAAgCA,SAAhC;EAAA,IAA2CC,UAA3C,eAA2CA,UAA3C;;EAEA,IACEC,MADF,GAcIP,sBAdJ,CACEO,MADF;EAAA,IAEEC,IAFF,GAcIR,sBAdJ,CAEEQ,IAFF;EAAA,IAGEC,WAHF,GAcIT,sBAdJ,CAGES,WAHF;EAAA,IAIEC,eAJF,GAcIV,sBAdJ,CAIEU,eAJF;EAAA,IAKEC,WALF,GAcIX,sBAdJ,CAKEW,WALF;EAAA,IAMEC,UANF,GAcIZ,sBAdJ,CAMEY,UANF;EAAA,IAOEC,WAPF,GAcIb,sBAdJ,CAOEa,WAPF;EAAA,IAQEC,sBARF,GAcId,sBAdJ,CAQEc,sBARF;EAAA,IASEC,YATF,GAcIf,sBAdJ,CASEe,YATF;EAAA,IAUEC,cAVF,GAcIhB,sBAdJ,CAUEgB,cAVF;EAAA,IAWEC,YAXF,GAcIjB,sBAdJ,CAWEiB,YAXF;EAAA,IAYEC,cAZF,GAcIlB,sBAdJ,CAYEkB,cAZF;EAAA,IAaEC,KAbF,GAcInB,sBAdJ,CAaEmB,KAbF;EAgBA,IAAMC,YAAY,GAAGZ,IAAI,KAAK,UAA9B;EAEA,IAAIvB,EAAE,GAAG,IAAT;;EAEA,IAAID,MAAM,IAAI,IAAd,EAAoB;IAClBC,EAAE,GAAGD,MAAL;EACD,CAFD,MAEO,IAAIuB,MAAM,IAAIhB,MAAd,EAAsB;IAC3BN,EAAE,aAAMsB,MAAN,cAAgBhB,MAAhB,CAAF;EACD;;EAED,gBAA8C,qBAAS,IAAT,CAA9C;EAAA;EAAA,IAAO8B,eAAP;EAAA,IAAwBC,kBAAxB;;EACA,IAAMC,UAAU,GAAG,mBAAO,IAAP,CAAnB;EACA,IAAMC,SAAS,GAAG,uBAAWF,kBAAX,EAA+BvC,GAA/B,CAAlB;EAEA,IAAM0C,UAAU,GAAG,oBACjB;IAAA,OAAO;MACLC,OAAO,EAAEL,eADJ;MAELpC,EAAE,EAAEM;IAFC,CAAP;EAAA,CADiB,EAKjB,CAACA,MAAD,EAAS8B,eAAT,CALiB,CAAnB;;EAQA,qBAAmC,gCAAcI,UAAd,CAAnC;EAAA,IAAQE,KAAR,kBAAQA,KAAR;EAAA,IAAeC,QAAf,kBAAeA,QAAf;EAAA,IAAyBC,KAAzB,kBAAyBA,KAAzB;;EAEA,IAAMC,UAAU,GAAGrB,WAAW,IAAIsB,OAAO,CAACC,KAAK,CAACC,OAAN,CAAcnC,QAAd,IAA0BA,QAAQ,CAACoC,MAAnC,GAA4CpC,QAA7C,CAAzC;EACA,IAAMqC,QAAQ,GAAGhC,UAAU,GAAGA,UAAU,CAACZ,MAAD,CAAb,GAAwB,KAAnD;EACA,IAAM6C,OAAO,GAAG/B,SAAS,GAAGA,SAAS,CAACd,MAAD,CAAZ,GAAuB,KAAhD;EACA,IAAM8C,QAAQ,GAAGjC,UAAU,GAAGA,UAAU,CAACb,MAAD,CAAb,GAAwB,KAAnD;EACA,IAAMjB,QAAQ,GAAGgC,UAAU,GAAGA,UAAU,CAACf,MAAD,CAAb,GAAwB,KAAnD;EAEA,IAAMD,UAAU,GAAGD,cAAc,IAAI,IAAlB,GAAyBA,cAAzB,GAA0C,CAACoB,WAAD,IAAgB,CAACqB,UAA9E;EAEA,sBAAU,YAAM;IACd;IACA,IAAIf,YAAY,IAAIC,cAAhB,IAAkCW,KAAK,KAAK,CAAC,CAAjD,EAAoD;MAClDZ,YAAY,CAAC;QACX9B,EAAE,EAAEM,MADO;QAEX+C,WAAW,EAAErD,EAFF;QAGX0C,KAAK,EAALA,KAHW;QAIXC,QAAQ,EAARA,QAJW;QAKXtC,UAAU,EAAVA,UALW;QAMXwC,UAAU,EAAVA,UANW;QAOXxD,QAAQ,EAAEc,YAPC;QAQXS,OAAO,EAAPA,OARW;QASXH,OAAO,EAAPA;MATW,CAAD,CAAZ;MAYA,OAAO,YAAM;QACXsB,cAAc,CAACzB,MAAD,CAAd;MACD,CAFD;IAGD;;IAED,OAAOgD,SAAP;EACD,CArBD,EAqBG,CACDxB,YADC,EAEDC,cAFC,EAGDY,QAHC,EAIDD,KAJC,EAKDpC,MALC,EAMDuC,UANC,EAOD1C,YAPC,EAQDH,EARC,EASDK,UATC,EAUDO,OAVC,EAWDH,OAXC,CArBH;EAmCA,sBAAU,YAAM;IACd,IAAIuB,YAAY,IAAIC,cAAhB,IAAkCzB,KAAtC,EAA6C;MAAA;;MAC3CwB,YAAY,CAAC1B,MAAD,yBAASgC,UAAU,CAACiB,OAApB,wDAAS,oBAAoBC,WAApB,CAAgCC,SAAhC,CAA0C,CAA1C,EAA6C,CAA7C,EAAgDC,WAAhD,EAAT,CAAZ;MAEA,OAAO,YAAM;QACXzB,cAAc,CAAC3B,MAAD,CAAd;MACD,CAFD;IAGD;;IACD,OAAOgD,SAAP;EACD,CATD,EASG,CAACtB,YAAD,EAAeC,cAAf,EAA+B3B,MAA/B,EAAuCE,KAAvC,CATH;EAWA,IAAImD,YAAJ;;EACA,IAAIjC,WAAJ,EAAiB;IACfiC,YAAY,GAAGP,QAAf;EACD,CAFD,MAEO,IAAIA,QAAJ,EAAc;IACnB;AACJ;AACA;AACA;AACA;AACA;IACIO,YAAY,GAAG,IAAf;EACD;;EAED,IAAMC,WAAW,GAAG,wBAClB,UAACxE,KAAD,EAAW;IACT;IACA,IAAIA,KAAK,CAACyE,MAAN,KAAiBzE,KAAK,CAAC0E,aAA3B,EAA0C;MACxC,CAAC1E,KAAK,CAACyE,MAAN,CAAaE,aAAb,IAA8BC,QAA/B,EACGC,cADH,CACkB3C,MADlB,EAEGY,KAFH,CAES;QAAEgC,aAAa,EAAE;MAAjB,CAFT;IAGD;;IAED,IAAMC,WAAW,GAAG,CAACtC,sBAAD,IAA2BxC,QAA/C;;IACA,IAAI,CAAC8D,OAAD,IAAY/D,KAAK,CAAC0E,aAAN,KAAwB1E,KAAK,CAACyE,MAA1C,IAAoD,CAACM,WAAzD,EAAsE;MACpEjC,KAAK,CAAC9C,KAAD,EAAQkB,MAAR,CAAL;IACD;EACF,CAbiB,EAclB,CAACjB,QAAD,EAAWwC,sBAAX,EAAmCK,KAAnC,EAA0CiB,OAA1C,EAAmD7C,MAAnD,EAA2DgB,MAA3D,CAdkB,CAApB;EAiBA,IAAM8C,eAAe,GAAG,wBACtB,UAAChF,KAAD,EAAW;IACT,IAAI,CAACC,QAAL,EAAe;MACb,IAAI8C,YAAY,IAAI,CAACgB,OAArB,EAA8B;QAC5BjB,KAAK,CAAC9C,KAAD,EAAQkB,MAAR,CAAL;MACD;;MAED,IAAM+D,QAAQ,GAAG3C,WAAW,KAAKtC,KAAK,CAACE,QAAN,IAAkBF,KAAK,CAACG,OAAxB,IAAmCH,KAAK,CAACI,OAA9C,CAA5B,CALa,CAOb;;MACA,IAAIqD,UAAU,IAAI,EAAEwB,QAAQ,IAAInD,UAAU,CAACZ,MAAD,CAAxB,CAAlB,EAAqD;QACnDmB,eAAe,CAACrC,KAAD,EAAQkB,MAAR,CAAf;MACD;IACF;EACF,CAdqB,EAetB,CACEjB,QADF,EAEEwD,UAFF,EAGEX,KAHF,EAIEiB,OAJF,EAKEjC,UALF,EAMEQ,WANF,EAOEpB,MAPF,EAQEmB,eARF,EASEU,YATF,CAfsB,CAAxB;EA4BA,IAAMmC,eAAe,GAAG,wBACtB,UAAClF,KAAD,EAAW;IACT,IAAIiB,UAAU,IAAI,CAAChB,QAAnB,EAA6B;MAC3B,IAAI8C,YAAY,IAAI,CAACgB,OAArB,EAA8B;QAC5BjB,KAAK,CAAC9C,KAAD,EAAQkB,MAAR,CAAL;MACD;;MAED,IAAM+D,QAAQ,GAAG3C,WAAW,KAAKtC,KAAK,CAACE,QAAN,IAAkBF,KAAK,CAACG,OAAxB,IAAmCH,KAAK,CAACI,OAA9C,CAA5B;;MAEA,IAAI6E,QAAJ,EAAc;QACZ,IAAIjF,KAAK,CAACE,QAAV,EAAoB;UAClBsC,WAAW,CAACxC,KAAD,EAAQ;YAAEmF,GAAG,EAAEjE;UAAP,CAAR,CAAX;QACD,CAFD,MAEO;UACLqB,UAAU,CAACvC,KAAD,EAAQkB,MAAR,EAAgB,IAAhB,CAAV;QACD;MACF,CAND,MAMO;QACLqB,UAAU,CAACvC,KAAD,EAAQkB,MAAR,CAAV;MACD;IACF;EACF,CAnBqB,EAoBtB,CACEjB,QADF,EAEE6C,KAFF,EAGEiB,OAHF,EAIEzB,WAJF,EAKEpB,MALF,EAMEqB,UANF,EAOEC,WAPF,EAQEvB,UARF,EASE8B,YATF,CApBsB,CAAxB;EAiCA,IAAMqC,eAAe,GAAG,wBACtB,UAACpF,KAAD,EAAW;IACTD,gBAAgB,CAACC,KAAD,EAAQC,QAAR,CAAhB;;IAEA,IAAIsB,WAAJ,EAAiB;MACfA,WAAW,CAACvB,KAAD,CAAX;IACD;EACF,CAPqB,EAQtB,CAACC,QAAD,EAAWsB,WAAX,CARsB,CAAxB;EAWA,IAAM8D,WAAW,GAAG,wBAClB,UAACrF,KAAD,EAAW;IACT,IAAI,CAACC,QAAL,EAAe;MACb,IAAIwD,UAAJ,EAAgB;QACduB,eAAe,CAAChF,KAAD,CAAf;MACD;;MAED,IAAIiB,UAAJ,EAAgB;QACdiE,eAAe,CAAClF,KAAD,CAAf;MACD;IACF;;IAED,IAAIsB,OAAJ,EAAa;MACXA,OAAO,CAACtB,KAAD,CAAP;IACD;EACF,CAfiB,EAgBlB,CAACC,QAAD,EAAWwD,UAAX,EAAuBuB,eAAvB,EAAwCE,eAAxC,EAAyD5D,OAAzD,EAAkEL,UAAlE,CAhBkB,CAApB;EAmBA,IAAMqE,aAAa,GAAG,wBACpB,UAACtF,KAAD,EAAW;IACT,IAAIuF,cAAc,GAAG,KAArB;IACA,IAAQC,GAAR,GAAgBxF,KAAhB,CAAQwF,GAAR;;IAEA,IAAIxF,KAAK,CAACyF,MAAN,IAAgBzF,KAAK,CAACG,OAAtB,IAAiCH,KAAK,CAACI,OAAvC,IAAkDJ,KAAK,CAAC0E,aAAN,KAAwB1E,KAAK,CAACyE,MAApF,EAA4F;MAC1F;IACD;;IACD,IAAIvB,UAAU,CAACiB,OAAX,KAAuBnE,KAAK,CAAC0E,aAAjC,EAAgD;MAC9C,IAAIc,GAAG,KAAK,OAAR,IAAmBA,GAAG,KAAK,GAA/B,EAAoC;QAClC,IAAI/B,UAAJ,EAAgB;UACd8B,cAAc,GAAGP,eAAe,CAAChF,KAAD,CAAhC;QACD;;QAED,IAAIiB,UAAJ,EAAgB;UACdsE,cAAc,GAAGL,eAAe,CAAClF,KAAD,CAAhC;QACD;MACF;;MAED,IAAIuF,cAAJ,EAAoB;QAClBvF,KAAK,CAACK,cAAN;QACAL,KAAK,CAAC0F,eAAN;MACD;IACF;EACF,CAxBmB,EAyBpB,CAACjC,UAAD,EAAauB,eAAb,EAA8BE,eAA9B,EAA+CjE,UAA/C,CAzBoB,CAAtB;EA4BA,IAAM0E,eAAe,GAAG,oBACtB;IAAA,oBACE,6BAAC,mBAAD;MACE,EAAE,EAAE,kBAAM/E,EAAN,EAAU,QAAV,CADN;MAEE,SAAS,EAAC,KAFZ;MAGE,QAAQ,EAAEsC,UAHZ;MAIE,SAAS,EAAEpC,OAAO,CAAC8E,OAJrB;MAKE,OAAO,EAAEP,WALX;MAME,WAAW,EAAED,eANf;MAOE,KAAK,EAAE;QACLS,WAAW,EAAE,CAACpC,UAAU,IAAItC,IAAI,IAAI,IAAtB,GAA6B,CAA7B,GAAiC,EAAlC,IAAwCqC,KAAK,IAAIpB,WAAW,GAAG,EAAH,GAAQ,EAAvB;MADrD;IAPT,GAUOW,YAAY,GACb;MACE+C,IAAI,EAAE,QADR;MAEEC,QAAQ,EAAE,CAAC,CAFb;MAGEvE,OAAO,EAAEgD;IAHX,CADa,GAMb;MACEsB,IAAI,EAAE,QADR;MAEEC,QAAQ,EAAE9E,UAAU,IAAIwC,UAAd,GAA2B,CAA3B,GAA+B,CAAC,CAF5C;MAGEuC,SAAS,EAAEV,aAHb;MAIE,gBAAgBrE,UAAU,IAAI+C,QAAd,GAAyB,MAAzB,GAAkCE,SAJpD;MAKE,iBAAiBT,UAAU,GAAGK,QAAH,GAAcI,SAL3C;MAME,iBAAiBT,UAAU,GAAG,kBAAM7C,EAAN,EAAU,OAAV,CAAH,GAAwBsD;IANrD,CAhBN,GAyBGT,UAAU,KAAKK,QAAQ,0CAAG,6BAAC,yBAAD,OAAH,+CAAkB,6BAAC,2BAAD,OAAlB,CAAb,CAzBb,EA0BG3C,IA1BH,EA2BGC,KA3BH,CADF;EAAA,CADsB,EAgCtB,CACER,EADF,EAEEE,OAAO,CAAC8E,OAFV,EAGEP,WAHF,EAIED,eAJF,EAKE3B,UALF,EAMED,KANF,EAOEpB,WAPF,EAQEW,YARF,EASEyB,WATF,EAUEc,aAVF,EAWErE,UAXF,EAYE+C,QAZF,EAaEF,QAbF,EAcE3C,IAdF,EAeEC,KAfF,CAhCsB,CAAxB;EAmDA,IAAM6E,gBAAgB,GAAG,oBACvB;IAAA,OACExE,QAAQ,iBACN;MACE,EAAE,EAAE,kBAAMb,EAAN,EAAU,OAAV,CADN;MAEE,SAAS,EAAEE,OAAO,CAACoF,KAFrB;MAGE,IAAI,EAAEnD,YAAY,GAAG,OAAH,GAAamB;IAHjC,GAKGzC,QALH,CAFJ;EAAA,CADuB,EAWvB,CAACA,QAAD,EAAWX,OAAO,CAACoF,KAAnB,EAA0BtF,EAA1B,EAA8BmC,YAA9B,CAXuB,CAAzB;EAcA,oBACE;IACE,GAAG,EAAEI,SADP;IAEE,EAAE,EAAEvC,EAFN;IAGE,SAAS,EAAE,mBAAKE,OAAO,CAACqF,IAAb,EAAmBtF,SAAnB,EACWZ,QADX,GACRa,OAAO,CAACb,QADA,GAK0BgB,UAL1B,IAKRH,OAAO,CAACG,UALA,EAOsC+C,QAPtC,GAORlD,OAAO,CAACkD,QAPA,GAQRlD,OAAO,CAACsF,UARA,IAMRtF,OAAO,CAACuF,YANA,EAEa5C,UAFb,KAER3C,OAAO,CAAC2C,UAFA,EAIyBK,QAJzB,GAIRhD,OAAO,CAACgD,QAJA,GAGRhD,OAAO,CAACwF,SAHA,GASUvC,OATV,IASRjD,OAAO,CAACiD,OATA,CAHb;IAcE,gBAAc5C,IAAI,IAAI,IAAR,GAAe,IAAf,GAAsB+C;EAdtC,GAeO/B,IAAI,KAAK,UAAT,IAAuB;IAC1B2D,IAAI,EAAE,UADoB;IAE1B,iBAAiBvB,YAFS;IAG1B,iBAAiBd,UAAU,GAAGK,QAAH,GAAcI,SAHf;IAI1B,iBAAiBjE,QAAQ,GAAG,IAAH,GAAUiE;EAJT,CAf9B,EAqBMxC,MArBN,GAuBGiE,eAvBH,eAwBE,6BAAC,+BAAD;IAAoB,EAAE,EAAEzE,MAAxB;IAAgC,KAAK,EAAEsC,KAAK,GAAG;EAA/C,GACGyC,gBADH,CAxBF,CADF;AA8BD,CA7WoB,CAArB;;AA+WA,wCAAA3F,YAAY,CAACiG,SAAb,GAAyB;EACvB;AACF;AACA;EACE3F,EAAE,EAAE4F,mBAAUC,MAJS;;EAKvB;AACF;AACA;EACE5F,SAAS,EAAE2F,mBAAUC,MARE;;EASvB;AACF;AACA;EACE3F,OAAO,EAAE0F,mBAAUE,KAAV,CAAgB;IACvB;AACJ;AACA;IACIP,IAAI,EAAEK,mBAAUC,MAJO;;IAKvB;AACJ;AACA;IACIb,OAAO,EAAEY,mBAAUC,MARI;;IASvB;AACJ;AACA;IACIP,KAAK,EAAEM,mBAAUC,MAZM;;IAavB;AACJ;AACA;IACIxG,QAAQ,EAAEuG,mBAAUC,MAhBG;;IAiBvB;AACJ;AACA;IACIhD,UAAU,EAAE+C,mBAAUC,MApBC;;IAqBvB;AACJ;AACA;IACIH,SAAS,EAAEE,mBAAUC,MAxBE;;IAyBvB;AACJ;AACA;IACI3C,QAAQ,EAAE0C,mBAAUC,MA5BG;;IA6BvB;AACJ;AACA;IACIxF,UAAU,EAAEuF,mBAAUC,MAhCC;;IAiCvB;AACJ;AACA;IACIJ,YAAY,EAAEG,mBAAUC,MApCD;;IAqCvB;AACJ;AACA;IACIzC,QAAQ,EAAEwC,mBAAUC,MAxCG;;IAyCvB;AACJ;AACA;IACIL,UAAU,EAAEI,mBAAUC,MA5CC;;IA6CvB;AACJ;AACA;IACI1C,OAAO,EAAEyC,mBAAUC;EAhDI,CAAhB,EAiDNE,UA7DoB;;EA8DvB;AACF;AACA;EACE1G,QAAQ,EAAEuG,mBAAUI,IAjEG;;EAkEvB;AACF;AACA;EACE3F,UAAU,EAAEuF,mBAAUI,IArEC;;EAsEvB;AACF;AACA;EACE1F,MAAM,EAAEsF,mBAAUC,MAAV,CAAiBE,UAzEF;;EA0EvB;AACF;AACA;EACExF,IAAI,EAAEqF,mBAAUL,IA7EO;;EA8EvB;AACF;AACA;EACE/E,KAAK,EAAEoF,mBAAUL,IAAV,CAAeQ,UAjFC;;EAkFvB;AACF;AACA;EACE;EACAtF,OAAO,EAAEmF,mBAAUK,GAtFI;;EAuFvB;AACF;AACA;EACEvF,OAAO,EAAEkF,mBAAUM,IA1FI;;EA2FvB;AACF;AACA;EACEvF,WAAW,EAAEiF,mBAAUM,IA9FA;;EA+FvB;AACF;AACA;EACEtF,OAAO,EAAEgF,mBAAUM,IAlGI;;EAmGvB;AACF;AACA;EACErF,QAAQ,EAAE+E,mBAAUL;AAtGG,CAAzB;;eAyGe,sBAAWY,eAAX,EAAmB;EAChCC,IAAI,EAAE;AAD0B,CAAnB,EAEZ1G,YAFY,C"}
|
|
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","TreeViewControlContext","TreeViewStateContext","isExpanded","isSelected","isFocused","isDisabled","treeId","mode","collapsible","toggleExpansion","multiSelect","selectNode","selectRange","disabledItemsFocusable","registerNode","unregisterNode","mapFirstChar","unMapFirstChar","focus","treeviewMode","treeitemElement","setTreeitemElement","contentRef","handleRef","descendant","element","index","parentId","level","expandable","Array","isArray","expanded","focused","selected","idAttribute","undefined","current","textContent","substring","toLowerCase","ariaSelected","handleFocus","target","currentTarget","ownerDocument","document","getElementById","preventScroll","unfocusable","handleExpansion","multiple","handleSelection","end","handleMouseDown","handleClick","handleKeyDown","isEventHandled","key","altKey","stopPropagation","renderedContent","content","paddingLeft","role","tabIndex","onKeyDown","renderedChildren","group","node","unselected","unselectable","collapsed","propTypes","PropTypes","string","shape","isRequired","bool","any","func","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 ]\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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"}
|
|
@@ -103,7 +103,6 @@ var styles = function styles(theme) {
|
|
|
103
103
|
justifyContent: "flex-start",
|
|
104
104
|
alignItems: "center",
|
|
105
105
|
height: "32px",
|
|
106
|
-
color: theme.hv.palette.accent.acce1,
|
|
107
106
|
borderLeft: "2px solid transparent",
|
|
108
107
|
paddingRight: theme.hv.spacing.xs,
|
|
109
108
|
"$expandable>&": {
|
|
@@ -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","
|
|
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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"}
|
|
@@ -18,6 +18,14 @@ export interface NavigationData {
|
|
|
18
18
|
* Data subset.
|
|
19
19
|
*/
|
|
20
20
|
data?: NavigationData[];
|
|
21
|
+
/**
|
|
22
|
+
* if `true` the item is disabled and is not interactive.
|
|
23
|
+
*/
|
|
24
|
+
disabled: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* if `true` the item doesn't have a selected state.
|
|
27
|
+
*/
|
|
28
|
+
selectable: boolean;
|
|
21
29
|
/**
|
|
22
30
|
* Any other properties.
|
|
23
31
|
*/
|
|
@@ -25,7 +25,8 @@ var createListHierarchy = function createListHierarchy(items, id, classes) {
|
|
|
25
25
|
itemLabel = item.label,
|
|
26
26
|
icon = item.icon,
|
|
27
27
|
children = item.data,
|
|
28
|
-
selectable = item.selectable
|
|
28
|
+
selectable = item.selectable,
|
|
29
|
+
disabled = item.disabled;
|
|
29
30
|
var ItemText = wrapperTooltip(true, itemLabel, itemLabel);
|
|
30
31
|
return /*#__PURE__*/React.createElement(TreeViewItem, {
|
|
31
32
|
id: setId(id, itemId),
|
|
@@ -35,7 +36,8 @@ var createListHierarchy = function createListHierarchy(items, id, classes) {
|
|
|
35
36
|
label: /*#__PURE__*/React.createElement(ItemText, null),
|
|
36
37
|
icon: icon,
|
|
37
38
|
payload: item,
|
|
38
|
-
selectable: selectable
|
|
39
|
+
selectable: selectable,
|
|
40
|
+
disabled: disabled
|
|
39
41
|
}, children ? createListHierarchy(children, id, classes) : undefined);
|
|
40
42
|
});
|
|
41
43
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigation.js","names":["React","useCallback","useMemo","PropTypes","deprecatedPropType","withStyles","clsx","TreeView","TreeViewItem","setId","useControlled","styles","wrapperTooltip","createListHierarchy","items","id","classes","map","item","itemId","itemLabel","label","icon","children","data","selectable","ItemText","listItem","undefined","getAllParents","parents","filter","length","childParents","flatMap","pathToElement","targetId","path","i","push","subPaths","Navigation","className","mode","collapsible","expandedProp","expanded","defaultExpanded","onToggle","selectedProp","selected","defaultSelected","onChange","onClick","others","setSelected","slice","setExpanded","handleChange","event","selectedId","selectedItem","handleToggle","newExpanded","root","list","propTypes","string","shape","isRequired","oneOf","bool","func","arrayOf","oneOfType","node","array","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 } = item;\n\n const ItemText = wrapperTooltip(true, itemLabel, itemLabel);\n\n return (\n <TreeViewItem\n id={setId(id, itemId)}\n className={classes.listItem}\n key={itemId}\n nodeId={itemId}\n label={<ItemText />}\n icon={icon}\n payload={item}\n selectable={selectable}\n >\n {children ? createListHierarchy(children, id, classes) : undefined}\n </TreeViewItem>\n );\n });\n\nconst getAllParents = (items) => {\n const parents = items.filter((item) => item.data != null && item.data.length > 0);\n const childParents = parents.flatMap((item) => getAllParents(item.data));\n\n return [...parents, ...childParents];\n};\n\nfunction pathToElement(data, targetId) {\n const path = [];\n\n if (data != null && data.length > 0) {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i !== data.length; ++i) {\n const item = data[i];\n if (item.id === targetId) {\n path.push(item.id);\n break;\n }\n\n const subPaths = pathToElement(item.data, targetId);\n if (subPaths.length > 0) {\n path.push(item.id);\n path.push(...subPaths);\n break;\n }\n }\n }\n\n return path;\n}\n\nconst Navigation = ({\n id,\n\n className,\n classes,\n\n data,\n\n mode = \"navigation\",\n\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded,\n onToggle,\n\n selected: selectedProp,\n defaultSelected,\n onChange,\n\n label,\n onClick,\n\n ...others\n}) => {\n const [selected, setSelected] = useControlled(selectedProp, defaultSelected);\n const [expanded, setExpanded] = useControlled(expandedProp, () => {\n if (defaultExpanded === true) {\n // all parent nodes will be expanded by default\n return getAllParents(data).map((item) => item.id);\n }\n\n if (defaultExpanded === false) {\n // all parent nodes will be collapsed by default\n return [];\n }\n\n if (defaultExpanded == null) {\n if (selected != null) {\n // the path to the selected node will be expanded (default behaviour)\n const path = pathToElement(data, selected);\n return path.slice(0, -1);\n }\n\n // nothing is expanded\n return [];\n }\n\n return defaultExpanded;\n });\n\n const handleChange = useCallback(\n (event, selectedId, selectedItem) => {\n setSelected(selectedId);\n\n if (onChange) {\n onChange(event, selectedItem);\n }\n\n // deprecated\n if (onClick) {\n onClick(event, selectedItem);\n }\n },\n [onChange, onClick, setSelected]\n );\n\n const handleToggle = useCallback(\n (event, newExpanded) => {\n setExpanded(newExpanded);\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n\n // deprecated\n if (onClick) {\n onClick(event);\n }\n },\n [onClick, onToggle, setExpanded]\n );\n\n const children = useMemo(\n () => data && createListHierarchy(data, id, classes),\n [classes, data, id]\n );\n\n return (\n <nav id={id} className={clsx(className, classes.root)} aria-label={label} {...others}>\n <TreeView\n id={setId(id, \"tree\")}\n className={classes.list}\n selectable\n mode={mode}\n collapsible={collapsible}\n selected={selected}\n onChange={handleChange}\n expanded={expanded}\n onToggle={handleToggle}\n >\n {children}\n </TreeView>\n </nav>\n );\n};\n\nNavigation.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root element.\n */\n root: PropTypes.string,\n /**\n * Style applied to the list.\n */\n list: PropTypes.string,\n /**\n * Style applied to the list items.\n */\n listItem: PropTypes.string,\n }).isRequired,\n\n /**\n * Modus operandi (role) of the widget instance.\n */\n mode: PropTypes.oneOf([\"treeview\", \"navigation\"]),\n /**\n * Can non-leaf nodes be collapsed / expanded.\n */\n collapsible: PropTypes.bool,\n\n /**\n * The ID of the selected page.\n */\n selected: PropTypes.string,\n /**\n * When uncontrolled, defines the initial selected page ID.\n */\n defaultSelected: PropTypes.string,\n /**\n * Callback fired when a navigation item is selected.\n *\n * @param {object} event The event source of the callback.\n * @param {object} page The data of the selected page.\n */\n onChange: PropTypes.func,\n\n /**\n * Expanded nodes' ids.\n */\n expanded: PropTypes.arrayOf(PropTypes.string),\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n *\n * It also supports `true` for starting with all nodes expanded.\n * With `false` all nodes will be collapsed.\n *\n * By default it expands the needed nodes to display the current selection, if any.\n */\n defaultExpanded: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.bool]),\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {object} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes (old and new).\n */\n onToggle: PropTypes.func,\n\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * data - sub-menu items\n */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n icon: PropTypes.node,\n data: PropTypes.array,\n })\n ).isRequired,\n\n /**\n * Callback triggered when any item is clicked.\n *\n * @deprecated use `onChange` for selection and `onToggle` for node expansion/collapse.\n */\n onClick: deprecatedPropType(PropTypes.func),\n /**\n * The root element (nav) aria label.\n *\n * @deprecated Use directly the `aria-label` property instead.\n */\n label: deprecatedPropType(PropTypes.string),\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationNavigation\" })(Navigation);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Navigation.js","names":["React","useCallback","useMemo","PropTypes","deprecatedPropType","withStyles","clsx","TreeView","TreeViewItem","setId","useControlled","styles","wrapperTooltip","createListHierarchy","items","id","classes","map","item","itemId","itemLabel","label","icon","children","data","selectable","disabled","ItemText","listItem","undefined","getAllParents","parents","filter","length","childParents","flatMap","pathToElement","targetId","path","i","push","subPaths","Navigation","className","mode","collapsible","expandedProp","expanded","defaultExpanded","onToggle","selectedProp","selected","defaultSelected","onChange","onClick","others","setSelected","slice","setExpanded","handleChange","event","selectedId","selectedItem","handleToggle","newExpanded","root","list","propTypes","string","shape","isRequired","oneOf","bool","func","arrayOf","oneOfType","node","array","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":";;;;;;;;;;;;AAAA,OAAOA,KAAP,IAAgBC,WAAhB,EAA6BC,OAA7B,QAA4C,OAA5C;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,kBAAT,EAA6BC,UAA7B,QAA+C,mBAA/C;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,OAAOC,QAAP,IAAmBC,YAAnB,QAAuC,aAAvC;AACA,SAASC,KAAT,EAAgBC,aAAhB,QAAqC,aAArC;AACA,OAAOC,MAAP,MAAmB,UAAnB;AACA,SAASC,cAAT,QAA+B,kBAA/B;;AAEA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,KAAD,EAAQC,EAAR,EAAYC,OAAZ;EAAA,OAC1BF,KAAK,CAACG,GAAN,CAAU,UAACC,IAAD,EAAU;IAClB,IAAYC,MAAZ,GAAqFD,IAArF,CAAQH,EAAR;IAAA,IAA2BK,SAA3B,GAAqFF,IAArF,CAAoBG,KAApB;IAAA,IAAsCC,IAAtC,GAAqFJ,IAArF,CAAsCI,IAAtC;IAAA,IAAkDC,QAAlD,GAAqFL,IAArF,CAA4CM,IAA5C;IAAA,IAA4DC,UAA5D,GAAqFP,IAArF,CAA4DO,UAA5D;IAAA,IAAwEC,QAAxE,GAAqFR,IAArF,CAAwEQ,QAAxE;IAEA,IAAMC,QAAQ,GAAGf,cAAc,CAAC,IAAD,EAAOQ,SAAP,EAAkBA,SAAlB,CAA/B;IAEA,oBACE,oBAAC,YAAD;MACE,EAAE,EAAEX,KAAK,CAACM,EAAD,EAAKI,MAAL,CADX;MAEE,SAAS,EAAEH,OAAO,CAACY,QAFrB;MAGE,GAAG,EAAET,MAHP;MAIE,MAAM,EAAEA,MAJV;MAKE,KAAK,eAAE,oBAAC,QAAD,OALT;MAME,IAAI,EAAEG,IANR;MAOE,OAAO,EAAEJ,IAPX;MAQE,UAAU,EAAEO,UARd;MASE,QAAQ,EAAEC;IATZ,GAWGH,QAAQ,GAAGV,mBAAmB,CAACU,QAAD,EAAWR,EAAX,EAAeC,OAAf,CAAtB,GAAgDa,SAX3D,CADF;EAeD,CApBD,CAD0B;AAAA,CAA5B;;AAuBA,IAAMC,aAAa,GAAG,SAAhBA,aAAgB,CAAChB,KAAD,EAAW;EAC/B,IAAMiB,OAAO,GAAGjB,KAAK,CAACkB,MAAN,CAAa,UAACd,IAAD;IAAA,OAAUA,IAAI,CAACM,IAAL,IAAa,IAAb,IAAqBN,IAAI,CAACM,IAAL,CAAUS,MAAV,GAAmB,CAAlD;EAAA,CAAb,CAAhB;EACA,IAAMC,YAAY,GAAGH,OAAO,CAACI,OAAR,CAAgB,UAACjB,IAAD;IAAA,OAAUY,aAAa,CAACZ,IAAI,CAACM,IAAN,CAAvB;EAAA,CAAhB,CAArB;EAEA,oCAAWO,OAAX,sBAAuBG,YAAvB;AACD,CALD;;AAOA,SAASE,aAAT,CAAuBZ,IAAvB,EAA6Ba,QAA7B,EAAuC;EACrC,IAAMC,IAAI,GAAG,EAAb;;EAEA,IAAId,IAAI,IAAI,IAAR,IAAgBA,IAAI,CAACS,MAAL,GAAc,CAAlC,EAAqC;IACnC;IACA,KAAK,IAAIM,CAAC,GAAG,CAAb,EAAgBA,CAAC,KAAKf,IAAI,CAACS,MAA3B,EAAmC,EAAEM,CAArC,EAAwC;MACtC,IAAMrB,IAAI,GAAGM,IAAI,CAACe,CAAD,CAAjB;;MACA,IAAIrB,IAAI,CAACH,EAAL,KAAYsB,QAAhB,EAA0B;QACxBC,IAAI,CAACE,IAAL,CAAUtB,IAAI,CAACH,EAAf;QACA;MACD;;MAED,IAAM0B,QAAQ,GAAGL,aAAa,CAAClB,IAAI,CAACM,IAAN,EAAYa,QAAZ,CAA9B;;MACA,IAAII,QAAQ,CAACR,MAAT,GAAkB,CAAtB,EAAyB;QACvBK,IAAI,CAACE,IAAL,CAAUtB,IAAI,CAACH,EAAf;QACAuB,IAAI,CAACE,IAAL,OAAAF,IAAI,qBAASG,QAAT,EAAJ;QACA;MACD;IACF;EACF;;EAED,OAAOH,IAAP;AACD;;AAED,IAAMI,UAAU,GAAG,SAAbA,UAAa,OAuBb;EAAA,IAtBJ3B,EAsBI,QAtBJA,EAsBI;EAAA,IApBJ4B,SAoBI,QApBJA,SAoBI;EAAA,IAnBJ3B,OAmBI,QAnBJA,OAmBI;EAAA,IAjBJQ,IAiBI,QAjBJA,IAiBI;EAAA,qBAfJoB,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,IAJJhC,KAII,QAJJA,KAII;EAAA,IAHJiC,OAGI,QAHJA,OAGI;EAAA,IADDC,MACC;;EACJ,qBAAgC7C,aAAa,CAACwC,YAAD,EAAeE,eAAf,CAA7C;EAAA;EAAA,IAAOD,QAAP;EAAA,IAAiBK,WAAjB;;EACA,sBAAgC9C,aAAa,CAACoC,YAAD,EAAe,YAAM;IAChE,IAAIE,eAAe,KAAK,IAAxB,EAA8B;MAC5B;MACA,OAAOlB,aAAa,CAACN,IAAD,CAAb,CAAoBP,GAApB,CAAwB,UAACC,IAAD;QAAA,OAAUA,IAAI,CAACH,EAAf;MAAA,CAAxB,CAAP;IACD;;IAED,IAAIiC,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,CAACZ,IAAD,EAAO2B,QAAP,CAA1B;QACA,OAAOb,IAAI,CAACmB,KAAL,CAAW,CAAX,EAAc,CAAC,CAAf,CAAP;MACD,CAL0B,CAO3B;;;MAAA;MACA,OAAO,EAAP;IACD;;IAED,OAAOT,eAAP;EACD,CAvB4C,CAA7C;EAAA;EAAA,IAAOD,QAAP;EAAA,IAAiBW,WAAjB;;EAyBA,IAAMC,YAAY,GAAG1D,WAAW,CAC9B,UAAC2D,KAAD,EAAQC,UAAR,EAAoBC,YAApB,EAAqC;IACnCN,WAAW,CAACK,UAAD,CAAX;;IAEA,IAAIR,QAAJ,EAAc;MACZA,QAAQ,CAACO,KAAD,EAAQE,YAAR,CAAR;IACD,CALkC,CAOnC;;;IACA,IAAIR,OAAJ,EAAa;MACXA,OAAO,CAACM,KAAD,EAAQE,YAAR,CAAP;IACD;EACF,CAZ6B,EAa9B,CAACT,QAAD,EAAWC,OAAX,EAAoBE,WAApB,CAb8B,CAAhC;EAgBA,IAAMO,YAAY,GAAG9D,WAAW,CAC9B,UAAC2D,KAAD,EAAQI,WAAR,EAAwB;IACtBN,WAAW,CAACM,WAAD,CAAX;;IAEA,IAAIf,QAAJ,EAAc;MACZA,QAAQ,CAACW,KAAD,EAAQI,WAAR,CAAR;IACD,CALqB,CAOtB;;;IACA,IAAIV,OAAJ,EAAa;MACXA,OAAO,CAACM,KAAD,CAAP;IACD;EACF,CAZ6B,EAa9B,CAACN,OAAD,EAAUL,QAAV,EAAoBS,WAApB,CAb8B,CAAhC;EAgBA,IAAMnC,QAAQ,GAAGrB,OAAO,CACtB;IAAA,OAAMsB,IAAI,IAAIX,mBAAmB,CAACW,IAAD,EAAOT,EAAP,EAAWC,OAAX,CAAjC;EAAA,CADsB,EAEtB,CAACA,OAAD,EAAUQ,IAAV,EAAgBT,EAAhB,CAFsB,CAAxB;EAKA,oBACE;IAAK,EAAE,EAAEA,EAAT;IAAa,SAAS,EAAET,IAAI,CAACqC,SAAD,EAAY3B,OAAO,CAACiD,IAApB,CAA5B;IAAuD,cAAY5C;EAAnE,GAA8EkC,MAA9E,gBACE,oBAAC,QAAD;IACE,EAAE,EAAE9C,KAAK,CAACM,EAAD,EAAK,MAAL,CADX;IAEE,SAAS,EAAEC,OAAO,CAACkD,IAFrB;IAGE,UAAU,MAHZ;IAIE,IAAI,EAAEtB,IAJR;IAKE,WAAW,EAAEC,WALf;IAME,QAAQ,EAAEM,QANZ;IAOE,QAAQ,EAAEQ,YAPZ;IAQE,QAAQ,EAAEZ,QARZ;IASE,QAAQ,EAAEgB;EATZ,GAWGxC,QAXH,CADF,CADF;AAiBD,CAxGD;;AA0GA,wCAAAmB,UAAU,CAACyB,SAAX,GAAuB;EACrB;AACF;AACA;EACEpD,EAAE,EAAEZ,SAAS,CAACiE,MAJO;;EAMrB;AACF;AACA;EACEzB,SAAS,EAAExC,SAAS,CAACiE,MATA;;EAUrB;AACF;AACA;EACEpD,OAAO,EAAEb,SAAS,CAACkE,KAAV,CAAgB;IACvB;AACJ;AACA;IACIJ,IAAI,EAAE9D,SAAS,CAACiE,MAJO;;IAKvB;AACJ;AACA;IACIF,IAAI,EAAE/D,SAAS,CAACiE,MARO;;IASvB;AACJ;AACA;IACIxC,QAAQ,EAAEzB,SAAS,CAACiE;EAZG,CAAhB,EAaNE,UA1BkB;;EA4BrB;AACF;AACA;EACE1B,IAAI,EAAEzC,SAAS,CAACoE,KAAV,CAAgB,CAAC,UAAD,EAAa,YAAb,CAAhB,CA/Be;;EAgCrB;AACF;AACA;EACE1B,WAAW,EAAE1C,SAAS,CAACqE,IAnCF;;EAqCrB;AACF;AACA;EACErB,QAAQ,EAAEhD,SAAS,CAACiE,MAxCC;;EAyCrB;AACF;AACA;EACEhB,eAAe,EAAEjD,SAAS,CAACiE,MA5CN;;EA6CrB;AACF;AACA;AACA;AACA;AACA;EACEf,QAAQ,EAAElD,SAAS,CAACsE,IAnDC;;EAqDrB;AACF;AACA;EACE1B,QAAQ,EAAE5C,SAAS,CAACuE,OAAV,CAAkBvE,SAAS,CAACiE,MAA5B,CAxDW;;EAyDrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEpB,eAAe,EAAE7C,SAAS,CAACwE,SAAV,CAAoB,CAACxE,SAAS,CAACuE,OAAV,CAAkBvE,SAAS,CAACiE,MAA5B,CAAD,EAAsCjE,SAAS,CAACqE,IAAhD,CAApB,CAjEI;;EAkErB;AACF;AACA;AACA;AACA;AACA;EACEvB,QAAQ,EAAE9C,SAAS,CAACsE,IAxEC;;EA0ErB;AACF;AACA;AACA;AACA;AACA;AACA;EACEjD,IAAI,EAAErB,SAAS,CAACuE,OAAV,CACJvE,SAAS,CAACkE,KAAV,CAAgB;IACdtD,EAAE,EAAEZ,SAAS,CAACiE,MAAV,CAAiBE,UADP;IAEdjD,KAAK,EAAElB,SAAS,CAACiE,MAAV,CAAiBE,UAFV;IAGdhD,IAAI,EAAEnB,SAAS,CAACyE,IAHF;IAIdpD,IAAI,EAAErB,SAAS,CAAC0E;EAJF,CAAhB,CADI,EAOJP,UAxFmB;;EA0FrB;AACF;AACA;AACA;AACA;EACEhB,OAAO,EAAElD,kBAAkB,CAACD,SAAS,CAACsE,IAAX,CA/FN;;EAgGrB;AACF;AACA;AACA;AACA;EACEpD,KAAK,EAAEjB,kBAAkB,CAACD,SAAS,CAACiE,MAAX;AArGJ,CAAvB;AAwGA,eAAe/D,UAAU,CAACM,MAAD,EAAS;EAAEmE,IAAI,EAAE;AAAR,CAAT,CAAV,CAA+DpC,UAA/D,CAAf"}
|
|
@@ -91,7 +91,7 @@ var TreeViewItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
91
91
|
parentId = _useDescendant.parentId,
|
|
92
92
|
level = _useDescendant.level;
|
|
93
93
|
|
|
94
|
-
var expandable = collapsible &&
|
|
94
|
+
var expandable = collapsible && Array.isArray(children);
|
|
95
95
|
var expanded = isExpanded ? isExpanded(nodeId) : false;
|
|
96
96
|
var focused = isFocused ? isFocused(nodeId) : false;
|
|
97
97
|
var selected = isSelected ? isSelected(nodeId) : false;
|
|
@@ -245,6 +245,7 @@ var TreeViewItem = /*#__PURE__*/React.forwardRef(function (props, ref) {
|
|
|
245
245
|
component: "div",
|
|
246
246
|
innerRef: contentRef,
|
|
247
247
|
className: classes.content,
|
|
248
|
+
variant: disabled ? "placeholderText" : "normalText",
|
|
248
249
|
onClick: handleClick,
|
|
249
250
|
onMouseDown: handleMouseDown,
|
|
250
251
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeViewItem.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","useState","clsx","PropTypes","withStyles","DropDownXS","DropUpXS","HvTypography","TreeViewControlContext","TreeViewStateContext","setId","useForkRef","DescendantProvider","useDescendant","styles","preventSelection","event","disabled","shiftKey","ctrlKey","metaKey","preventDefault","TreeViewItem","forwardRef","props","ref","idProp","id","className","classes","disabledProp","selectableProp","selectable","nodeId","icon","label","payload","onClick","onMouseDown","onFocus","children","others","treeViewControlContext","isExpanded","isSelected","isFocused","isDisabled","treeId","mode","collapsible","toggleExpansion","multiSelect","selectNode","selectRange","disabledItemsFocusable","registerNode","unregisterNode","mapFirstChar","unMapFirstChar","focus","treeviewMode","treeitemElement","setTreeitemElement","contentRef","handleRef","descendant","element","index","parentId","level","expandable","Boolean","Array","isArray","length","expanded","focused","selected","idAttribute","undefined","current","textContent","substring","toLowerCase","ariaSelected","handleFocus","target","currentTarget","ownerDocument","document","getElementById","preventScroll","unfocusable","handleExpansion","multiple","handleSelection","end","handleMouseDown","handleClick","handleKeyDown","isEventHandled","key","altKey","stopPropagation","renderedContent","content","paddingLeft","role","tabIndex","onKeyDown","renderedChildren","group","node","unselected","unselectable","collapsed","propTypes","string","shape","isRequired","bool","any","func","name"],"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 && Boolean(Array.isArray(children) ? children.length : children);\n const expanded = isExpanded ? isExpanded(nodeId) : false;\n const focused = isFocused ? isFocused(nodeId) : false;\n const selected = isSelected ? isSelected(nodeId) : false;\n const disabled = isDisabled ? isDisabled(nodeId) : false;\n\n const selectable = selectableProp != null ? selectableProp : !collapsible || !expandable;\n\n useEffect(() => {\n // On the first render a node's index will be -1. We want to wait for the real index.\n if (registerNode && unregisterNode && index !== -1) {\n registerNode({\n id: nodeId,\n idAttribute: id,\n index,\n parentId,\n selectable,\n expandable,\n disabled: disabledProp,\n onFocus,\n payload,\n });\n\n return () => {\n unregisterNode(nodeId);\n };\n }\n\n return undefined;\n }, [\n registerNode,\n unregisterNode,\n parentId,\n index,\n nodeId,\n expandable,\n disabledProp,\n id,\n selectable,\n onFocus,\n payload,\n ]);\n\n useEffect(() => {\n if (mapFirstChar && unMapFirstChar && label) {\n mapFirstChar(nodeId, contentRef.current?.textContent.substring(0, 1).toLowerCase());\n\n return () => {\n unMapFirstChar(nodeId);\n };\n }\n return undefined;\n }, [mapFirstChar, unMapFirstChar, nodeId, label]);\n\n let ariaSelected;\n if (multiSelect) {\n ariaSelected = selected;\n } else if (selected) {\n /* single-selection trees unset aria-selected on un-selected items.\n *\n * If the tree does not support multiple selection, aria-selected\n * is set to true for the selected node and it is not present on any other node in the tree.\n * Source: https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\n ariaSelected = true;\n }\n\n const handleFocus = useCallback(\n (event) => {\n // DOM focus stays on the tree which manages focus with aria-activedescendant\n if (event.target === event.currentTarget) {\n (event.target.ownerDocument || document)\n .getElementById(treeId)\n .focus({ preventScroll: true });\n }\n\n const unfocusable = !disabledItemsFocusable && disabled;\n if (!focused && event.currentTarget === event.target && !unfocusable) {\n focus(event, nodeId);\n }\n },\n [disabled, disabledItemsFocusable, focus, focused, nodeId, treeId]\n );\n\n const handleExpansion = useCallback(\n (event) => {\n if (!disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n // If already expanded and trying to toggle selection don't close\n if (expandable && !(multiple && isExpanded(nodeId))) {\n toggleExpansion(event, nodeId);\n }\n }\n },\n [\n disabled,\n expandable,\n focus,\n focused,\n isExpanded,\n multiSelect,\n nodeId,\n toggleExpansion,\n treeviewMode,\n ]\n );\n\n const handleSelection = useCallback(\n (event) => {\n if (selectable && !disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n if (multiple) {\n if (event.shiftKey) {\n selectRange(event, { end: nodeId });\n } else {\n selectNode(event, nodeId, true);\n }\n } else {\n selectNode(event, nodeId);\n }\n }\n },\n [\n disabled,\n focus,\n focused,\n multiSelect,\n nodeId,\n selectNode,\n selectRange,\n selectable,\n treeviewMode,\n ]\n );\n\n const handleMouseDown = useCallback(\n (event) => {\n preventSelection(event, disabled);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n },\n [disabled, onMouseDown]\n );\n\n const handleClick = useCallback(\n (event) => {\n if (!disabled) {\n if (expandable) {\n handleExpansion(event);\n }\n\n if (selectable) {\n handleSelection(event);\n }\n }\n\n if (onClick) {\n onClick(event);\n }\n },\n [disabled, expandable, handleExpansion, handleSelection, onClick, selectable]\n );\n\n const handleKeyDown = useCallback(\n (event) => {\n let isEventHandled = false;\n const { key } = event;\n\n if (event.altKey || event.ctrlKey || event.metaKey || event.currentTarget !== event.target) {\n return;\n }\n if (contentRef.current === event.currentTarget) {\n if (key === \"Enter\" || key === \" \") {\n if (expandable) {\n isEventHandled = handleExpansion(event);\n }\n\n if (selectable) {\n isEventHandled = handleSelection(event);\n }\n }\n\n if (isEventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n },\n [expandable, handleExpansion, handleSelection, selectable]\n );\n\n const renderedContent = useMemo(\n () => (\n <HvTypography\n id={setId(id, \"button\")}\n component=\"div\"\n innerRef={contentRef}\n className={classes.content}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n style={{\n paddingLeft: (expandable || icon != null ? 0 : 10) + level * (collapsible ? 32 : 10),\n }}\n {...(treeviewMode\n ? {\n role: \"button\",\n tabIndex: -1,\n onFocus: handleFocus,\n }\n : {\n role: \"button\",\n tabIndex: selectable || expandable ? 0 : -1,\n onKeyDown: handleKeyDown,\n \"aria-current\": selectable && selected ? \"page\" : undefined,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-controls\": expandable ? setId(id, \"group\") : undefined,\n })}\n >\n {expandable && (expanded ? <DropUpXS /> : <DropDownXS />)}\n {icon}\n {label}\n </HvTypography>\n ),\n [\n id,\n classes.content,\n handleClick,\n handleMouseDown,\n expandable,\n level,\n collapsible,\n treeviewMode,\n handleFocus,\n handleKeyDown,\n selectable,\n selected,\n expanded,\n icon,\n label,\n ]\n );\n\n const renderedChildren = useMemo(\n () =>\n children && (\n <ul\n id={setId(id, \"group\")}\n className={classes.group}\n role={treeviewMode ? \"group\" : undefined}\n >\n {children}\n </ul>\n ),\n [children, classes.group, id, treeviewMode]\n );\n\n return (\n <li\n ref={handleRef}\n id={id}\n className={clsx(classes.node, className, {\n [classes.disabled]: disabled,\n [classes.expandable]: expandable,\n [classes.collapsed]: expandable && !expanded,\n [classes.expanded]: expandable && expanded,\n [classes.selectable]: !disabled && selectable,\n [classes.unselectable]: !disabled && !selectable,\n [classes.selected]: !disabled && selectable && selected,\n [classes.unselected]: !disabled && selectable && !selected,\n [classes.focused]: focused,\n })}\n data-hasicon={icon != null ? true : undefined}\n {...(mode === \"treeview\" && {\n role: \"treeitem\",\n \"aria-selected\": ariaSelected,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-disabled\": disabled ? true : undefined,\n })}\n {...others}\n >\n {renderedContent}\n <DescendantProvider id={nodeId} level={level + 1}>\n {renderedChildren}\n </DescendantProvider>\n </li>\n );\n});\n\nTreeViewItem.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the Radio button.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root of the component.\n */\n node: PropTypes.string,\n /**\n * Style applied to the content.\n */\n content: PropTypes.string,\n /**\n * Style applied to the group.\n */\n group: PropTypes.string,\n /**\n * Style applied when item is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Style applied when item is expandable.\n */\n expandable: PropTypes.string,\n /**\n * Style applied when item is collapsed.\n */\n collapsed: PropTypes.string,\n /**\n * Style applied when item is expanded.\n */\n expanded: PropTypes.string,\n /**\n * Style applied when item is selectable.\n */\n selectable: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselectable: PropTypes.string,\n /**\n * Style applied when item is selected.\n */\n selected: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselected: PropTypes.string,\n /**\n * Style applied when item is focused.\n */\n focused: PropTypes.string,\n }).isRequired,\n /**\n * Is the node disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Can the node be selected.\n */\n selectable: PropTypes.bool,\n /**\n * The id of the node.\n */\n nodeId: PropTypes.string.isRequired,\n /**\n * The icon to display next to the node's label.\n */\n icon: PropTypes.node,\n /**\n * The item label.\n */\n label: PropTypes.node.isRequired,\n /**\n * The node payload.\n */\n // eslint-disable-next-line react/forbid-prop-types\n payload: PropTypes.any,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, {\n name: \"HvVerticalNavigationTreeViewItem\",\n})(TreeViewItem);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TreeViewItem.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","useState","clsx","PropTypes","withStyles","DropDownXS","DropUpXS","HvTypography","TreeViewControlContext","TreeViewStateContext","setId","useForkRef","DescendantProvider","useDescendant","styles","preventSelection","event","disabled","shiftKey","ctrlKey","metaKey","preventDefault","TreeViewItem","forwardRef","props","ref","idProp","id","className","classes","disabledProp","selectableProp","selectable","nodeId","icon","label","payload","onClick","onMouseDown","onFocus","children","others","treeViewControlContext","isExpanded","isSelected","isFocused","isDisabled","treeId","mode","collapsible","toggleExpansion","multiSelect","selectNode","selectRange","disabledItemsFocusable","registerNode","unregisterNode","mapFirstChar","unMapFirstChar","focus","treeviewMode","treeitemElement","setTreeitemElement","contentRef","handleRef","descendant","element","index","parentId","level","expandable","Array","isArray","expanded","focused","selected","idAttribute","undefined","current","textContent","substring","toLowerCase","ariaSelected","handleFocus","target","currentTarget","ownerDocument","document","getElementById","preventScroll","unfocusable","handleExpansion","multiple","handleSelection","end","handleMouseDown","handleClick","handleKeyDown","isEventHandled","key","altKey","stopPropagation","renderedContent","content","paddingLeft","role","tabIndex","onKeyDown","renderedChildren","group","node","unselected","unselectable","collapsed","propTypes","string","shape","isRequired","bool","any","func","name"],"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 ]\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","names":["outlineStyles","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","
|
|
1
|
+
{"version":3,"file":"styles.js","names":["outlineStyles","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","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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"}
|
|
@@ -18,6 +18,14 @@ export interface NavigationData {
|
|
|
18
18
|
* Data subset.
|
|
19
19
|
*/
|
|
20
20
|
data?: NavigationData[];
|
|
21
|
+
/**
|
|
22
|
+
* if `true` the item is disabled and is not interactive.
|
|
23
|
+
*/
|
|
24
|
+
disabled: boolean;
|
|
25
|
+
/**
|
|
26
|
+
* if `true` the item doesn't have a selected state.
|
|
27
|
+
*/
|
|
28
|
+
selectable: boolean;
|
|
21
29
|
/**
|
|
22
30
|
* Any other properties.
|
|
23
31
|
*/
|
|
@@ -18,7 +18,8 @@ const createListHierarchy = (items, id, classes) => items.map(item => {
|
|
|
18
18
|
label: itemLabel,
|
|
19
19
|
icon,
|
|
20
20
|
data: children,
|
|
21
|
-
selectable
|
|
21
|
+
selectable,
|
|
22
|
+
disabled
|
|
22
23
|
} = item;
|
|
23
24
|
const ItemText = wrapperTooltip(true, itemLabel, itemLabel);
|
|
24
25
|
return /*#__PURE__*/React.createElement(TreeViewItem, {
|
|
@@ -29,7 +30,8 @@ const createListHierarchy = (items, id, classes) => items.map(item => {
|
|
|
29
30
|
label: /*#__PURE__*/React.createElement(ItemText, null),
|
|
30
31
|
icon: icon,
|
|
31
32
|
payload: item,
|
|
32
|
-
selectable: selectable
|
|
33
|
+
selectable: selectable,
|
|
34
|
+
disabled: disabled
|
|
33
35
|
}, children ? createListHierarchy(children, id, classes) : undefined);
|
|
34
36
|
});
|
|
35
37
|
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigation.js","names":["React","useCallback","useMemo","PropTypes","deprecatedPropType","withStyles","clsx","TreeView","TreeViewItem","setId","useControlled","styles","wrapperTooltip","createListHierarchy","items","id","classes","map","item","itemId","label","itemLabel","icon","data","children","selectable","ItemText","listItem","undefined","getAllParents","parents","filter","length","childParents","flatMap","pathToElement","targetId","path","i","push","subPaths","Navigation","className","mode","collapsible","expanded","expandedProp","defaultExpanded","onToggle","selected","selectedProp","defaultSelected","onChange","onClick","others","setSelected","setExpanded","slice","handleChange","event","selectedId","selectedItem","handleToggle","newExpanded","root","list","propTypes","string","shape","isRequired","oneOf","bool","func","arrayOf","oneOfType","node","array","name"],"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 } = item;\n\n const ItemText = wrapperTooltip(true, itemLabel, itemLabel);\n\n return (\n <TreeViewItem\n id={setId(id, itemId)}\n className={classes.listItem}\n key={itemId}\n nodeId={itemId}\n label={<ItemText />}\n icon={icon}\n payload={item}\n selectable={selectable}\n >\n {children ? createListHierarchy(children, id, classes) : undefined}\n </TreeViewItem>\n );\n });\n\nconst getAllParents = (items) => {\n const parents = items.filter((item) => item.data != null && item.data.length > 0);\n const childParents = parents.flatMap((item) => getAllParents(item.data));\n\n return [...parents, ...childParents];\n};\n\nfunction pathToElement(data, targetId) {\n const path = [];\n\n if (data != null && data.length > 0) {\n // eslint-disable-next-line no-plusplus\n for (let i = 0; i !== data.length; ++i) {\n const item = data[i];\n if (item.id === targetId) {\n path.push(item.id);\n break;\n }\n\n const subPaths = pathToElement(item.data, targetId);\n if (subPaths.length > 0) {\n path.push(item.id);\n path.push(...subPaths);\n break;\n }\n }\n }\n\n return path;\n}\n\nconst Navigation = ({\n id,\n\n className,\n classes,\n\n data,\n\n mode = \"navigation\",\n\n collapsible = false,\n expanded: expandedProp,\n defaultExpanded,\n onToggle,\n\n selected: selectedProp,\n defaultSelected,\n onChange,\n\n label,\n onClick,\n\n ...others\n}) => {\n const [selected, setSelected] = useControlled(selectedProp, defaultSelected);\n const [expanded, setExpanded] = useControlled(expandedProp, () => {\n if (defaultExpanded === true) {\n // all parent nodes will be expanded by default\n return getAllParents(data).map((item) => item.id);\n }\n\n if (defaultExpanded === false) {\n // all parent nodes will be collapsed by default\n return [];\n }\n\n if (defaultExpanded == null) {\n if (selected != null) {\n // the path to the selected node will be expanded (default behaviour)\n const path = pathToElement(data, selected);\n return path.slice(0, -1);\n }\n\n // nothing is expanded\n return [];\n }\n\n return defaultExpanded;\n });\n\n const handleChange = useCallback(\n (event, selectedId, selectedItem) => {\n setSelected(selectedId);\n\n if (onChange) {\n onChange(event, selectedItem);\n }\n\n // deprecated\n if (onClick) {\n onClick(event, selectedItem);\n }\n },\n [onChange, onClick, setSelected]\n );\n\n const handleToggle = useCallback(\n (event, newExpanded) => {\n setExpanded(newExpanded);\n\n if (onToggle) {\n onToggle(event, newExpanded);\n }\n\n // deprecated\n if (onClick) {\n onClick(event);\n }\n },\n [onClick, onToggle, setExpanded]\n );\n\n const children = useMemo(\n () => data && createListHierarchy(data, id, classes),\n [classes, data, id]\n );\n\n return (\n <nav id={id} className={clsx(className, classes.root)} aria-label={label} {...others}>\n <TreeView\n id={setId(id, \"tree\")}\n className={classes.list}\n selectable\n mode={mode}\n collapsible={collapsible}\n selected={selected}\n onChange={handleChange}\n expanded={expanded}\n onToggle={handleToggle}\n >\n {children}\n </TreeView>\n </nav>\n );\n};\n\nNavigation.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root element.\n */\n root: PropTypes.string,\n /**\n * Style applied to the list.\n */\n list: PropTypes.string,\n /**\n * Style applied to the list items.\n */\n listItem: PropTypes.string,\n }).isRequired,\n\n /**\n * Modus operandi (role) of the widget instance.\n */\n mode: PropTypes.oneOf([\"treeview\", \"navigation\"]),\n /**\n * Can non-leaf nodes be collapsed / expanded.\n */\n collapsible: PropTypes.bool,\n\n /**\n * The ID of the selected page.\n */\n selected: PropTypes.string,\n /**\n * When uncontrolled, defines the initial selected page ID.\n */\n defaultSelected: PropTypes.string,\n /**\n * Callback fired when a navigation item is selected.\n *\n * @param {object} event The event source of the callback.\n * @param {object} page The data of the selected page.\n */\n onChange: PropTypes.func,\n\n /**\n * Expanded nodes' ids.\n */\n expanded: PropTypes.arrayOf(PropTypes.string),\n /**\n * When uncontrolled, defines the initial expanded nodes' ids.\n *\n * It also supports `true` for starting with all nodes expanded.\n * With `false` all nodes will be collapsed.\n *\n * By default it expands the needed nodes to display the current selection, if any.\n */\n defaultExpanded: PropTypes.oneOfType([PropTypes.arrayOf(PropTypes.string), PropTypes.bool]),\n /**\n * Callback fired when tree items are expanded/collapsed.\n *\n * @param {object} event The event source of the callback.\n * @param {array} nodeIds The ids of the expanded nodes (old and new).\n */\n onToggle: PropTypes.func,\n\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * data - sub-menu items\n */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n icon: PropTypes.node,\n data: PropTypes.array,\n })\n ).isRequired,\n\n /**\n * Callback triggered when any item is clicked.\n *\n * @deprecated use `onChange` for selection and `onToggle` for node expansion/collapse.\n */\n onClick: deprecatedPropType(PropTypes.func),\n /**\n * The root element (nav) aria label.\n *\n * @deprecated Use directly the `aria-label` property instead.\n */\n label: deprecatedPropType(PropTypes.string),\n};\n\nexport default withStyles(styles, { name: \"HvVerticalNavigationNavigation\" })(Navigation);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Navigation.js","names":["React","useCallback","useMemo","PropTypes","deprecatedPropType","withStyles","clsx","TreeView","TreeViewItem","setId","useControlled","styles","wrapperTooltip","createListHierarchy","items","id","classes","map","item","itemId","label","itemLabel","icon","data","children","selectable","disabled","ItemText","listItem","undefined","getAllParents","parents","filter","length","childParents","flatMap","pathToElement","targetId","path","i","push","subPaths","Navigation","className","mode","collapsible","expanded","expandedProp","defaultExpanded","onToggle","selected","selectedProp","defaultSelected","onChange","onClick","others","setSelected","setExpanded","slice","handleChange","event","selectedId","selectedItem","handleToggle","newExpanded","root","list","propTypes","string","shape","isRequired","oneOf","bool","func","arrayOf","oneOfType","node","array","name"],"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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"}
|
|
@@ -84,7 +84,7 @@ const TreeViewItem = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
84
84
|
parentId,
|
|
85
85
|
level
|
|
86
86
|
} = useDescendant(descendant);
|
|
87
|
-
const expandable = collapsible &&
|
|
87
|
+
const expandable = collapsible && Array.isArray(children);
|
|
88
88
|
const expanded = isExpanded ? isExpanded(nodeId) : false;
|
|
89
89
|
const focused = isFocused ? isFocused(nodeId) : false;
|
|
90
90
|
const selected = isSelected ? isSelected(nodeId) : false;
|
|
@@ -239,6 +239,7 @@ const TreeViewItem = /*#__PURE__*/React.forwardRef((props, ref) => {
|
|
|
239
239
|
component: "div",
|
|
240
240
|
innerRef: contentRef,
|
|
241
241
|
className: classes.content,
|
|
242
|
+
variant: disabled ? "placeholderText" : "normalText",
|
|
242
243
|
onClick: handleClick,
|
|
243
244
|
onMouseDown: handleMouseDown,
|
|
244
245
|
style: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TreeViewItem.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","useState","clsx","PropTypes","withStyles","DropDownXS","DropUpXS","HvTypography","TreeViewControlContext","TreeViewStateContext","setId","useForkRef","DescendantProvider","useDescendant","styles","preventSelection","event","disabled","shiftKey","ctrlKey","metaKey","preventDefault","TreeViewItem","forwardRef","props","ref","id","idProp","className","classes","disabledProp","selectable","selectableProp","nodeId","icon","label","payload","onClick","onMouseDown","onFocus","children","others","treeViewControlContext","isExpanded","isSelected","isFocused","isDisabled","treeId","mode","collapsible","toggleExpansion","multiSelect","selectNode","selectRange","disabledItemsFocusable","registerNode","unregisterNode","mapFirstChar","unMapFirstChar","focus","treeviewMode","treeitemElement","setTreeitemElement","contentRef","handleRef","descendant","element","index","parentId","level","expandable","Boolean","Array","isArray","length","expanded","focused","selected","idAttribute","undefined","current","textContent","substring","toLowerCase","ariaSelected","handleFocus","target","currentTarget","ownerDocument","document","getElementById","preventScroll","unfocusable","handleExpansion","multiple","handleSelection","end","handleMouseDown","handleClick","handleKeyDown","isEventHandled","key","altKey","stopPropagation","renderedContent","content","paddingLeft","role","tabIndex","onKeyDown","renderedChildren","group","node","unselected","unselectable","collapsed","propTypes","string","shape","isRequired","bool","any","func","name"],"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 && Boolean(Array.isArray(children) ? children.length : children);\n const expanded = isExpanded ? isExpanded(nodeId) : false;\n const focused = isFocused ? isFocused(nodeId) : false;\n const selected = isSelected ? isSelected(nodeId) : false;\n const disabled = isDisabled ? isDisabled(nodeId) : false;\n\n const selectable = selectableProp != null ? selectableProp : !collapsible || !expandable;\n\n useEffect(() => {\n // On the first render a node's index will be -1. We want to wait for the real index.\n if (registerNode && unregisterNode && index !== -1) {\n registerNode({\n id: nodeId,\n idAttribute: id,\n index,\n parentId,\n selectable,\n expandable,\n disabled: disabledProp,\n onFocus,\n payload,\n });\n\n return () => {\n unregisterNode(nodeId);\n };\n }\n\n return undefined;\n }, [\n registerNode,\n unregisterNode,\n parentId,\n index,\n nodeId,\n expandable,\n disabledProp,\n id,\n selectable,\n onFocus,\n payload,\n ]);\n\n useEffect(() => {\n if (mapFirstChar && unMapFirstChar && label) {\n mapFirstChar(nodeId, contentRef.current?.textContent.substring(0, 1).toLowerCase());\n\n return () => {\n unMapFirstChar(nodeId);\n };\n }\n return undefined;\n }, [mapFirstChar, unMapFirstChar, nodeId, label]);\n\n let ariaSelected;\n if (multiSelect) {\n ariaSelected = selected;\n } else if (selected) {\n /* single-selection trees unset aria-selected on un-selected items.\n *\n * If the tree does not support multiple selection, aria-selected\n * is set to true for the selected node and it is not present on any other node in the tree.\n * Source: https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\n ariaSelected = true;\n }\n\n const handleFocus = useCallback(\n (event) => {\n // DOM focus stays on the tree which manages focus with aria-activedescendant\n if (event.target === event.currentTarget) {\n (event.target.ownerDocument || document)\n .getElementById(treeId)\n .focus({ preventScroll: true });\n }\n\n const unfocusable = !disabledItemsFocusable && disabled;\n if (!focused && event.currentTarget === event.target && !unfocusable) {\n focus(event, nodeId);\n }\n },\n [disabled, disabledItemsFocusable, focus, focused, nodeId, treeId]\n );\n\n const handleExpansion = useCallback(\n (event) => {\n if (!disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n // If already expanded and trying to toggle selection don't close\n if (expandable && !(multiple && isExpanded(nodeId))) {\n toggleExpansion(event, nodeId);\n }\n }\n },\n [\n disabled,\n expandable,\n focus,\n focused,\n isExpanded,\n multiSelect,\n nodeId,\n toggleExpansion,\n treeviewMode,\n ]\n );\n\n const handleSelection = useCallback(\n (event) => {\n if (selectable && !disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n if (multiple) {\n if (event.shiftKey) {\n selectRange(event, { end: nodeId });\n } else {\n selectNode(event, nodeId, true);\n }\n } else {\n selectNode(event, nodeId);\n }\n }\n },\n [\n disabled,\n focus,\n focused,\n multiSelect,\n nodeId,\n selectNode,\n selectRange,\n selectable,\n treeviewMode,\n ]\n );\n\n const handleMouseDown = useCallback(\n (event) => {\n preventSelection(event, disabled);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n },\n [disabled, onMouseDown]\n );\n\n const handleClick = useCallback(\n (event) => {\n if (!disabled) {\n if (expandable) {\n handleExpansion(event);\n }\n\n if (selectable) {\n handleSelection(event);\n }\n }\n\n if (onClick) {\n onClick(event);\n }\n },\n [disabled, expandable, handleExpansion, handleSelection, onClick, selectable]\n );\n\n const handleKeyDown = useCallback(\n (event) => {\n let isEventHandled = false;\n const { key } = event;\n\n if (event.altKey || event.ctrlKey || event.metaKey || event.currentTarget !== event.target) {\n return;\n }\n if (contentRef.current === event.currentTarget) {\n if (key === \"Enter\" || key === \" \") {\n if (expandable) {\n isEventHandled = handleExpansion(event);\n }\n\n if (selectable) {\n isEventHandled = handleSelection(event);\n }\n }\n\n if (isEventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n },\n [expandable, handleExpansion, handleSelection, selectable]\n );\n\n const renderedContent = useMemo(\n () => (\n <HvTypography\n id={setId(id, \"button\")}\n component=\"div\"\n innerRef={contentRef}\n className={classes.content}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n style={{\n paddingLeft: (expandable || icon != null ? 0 : 10) + level * (collapsible ? 32 : 10),\n }}\n {...(treeviewMode\n ? {\n role: \"button\",\n tabIndex: -1,\n onFocus: handleFocus,\n }\n : {\n role: \"button\",\n tabIndex: selectable || expandable ? 0 : -1,\n onKeyDown: handleKeyDown,\n \"aria-current\": selectable && selected ? \"page\" : undefined,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-controls\": expandable ? setId(id, \"group\") : undefined,\n })}\n >\n {expandable && (expanded ? <DropUpXS /> : <DropDownXS />)}\n {icon}\n {label}\n </HvTypography>\n ),\n [\n id,\n classes.content,\n handleClick,\n handleMouseDown,\n expandable,\n level,\n collapsible,\n treeviewMode,\n handleFocus,\n handleKeyDown,\n selectable,\n selected,\n expanded,\n icon,\n label,\n ]\n );\n\n const renderedChildren = useMemo(\n () =>\n children && (\n <ul\n id={setId(id, \"group\")}\n className={classes.group}\n role={treeviewMode ? \"group\" : undefined}\n >\n {children}\n </ul>\n ),\n [children, classes.group, id, treeviewMode]\n );\n\n return (\n <li\n ref={handleRef}\n id={id}\n className={clsx(classes.node, className, {\n [classes.disabled]: disabled,\n [classes.expandable]: expandable,\n [classes.collapsed]: expandable && !expanded,\n [classes.expanded]: expandable && expanded,\n [classes.selectable]: !disabled && selectable,\n [classes.unselectable]: !disabled && !selectable,\n [classes.selected]: !disabled && selectable && selected,\n [classes.unselected]: !disabled && selectable && !selected,\n [classes.focused]: focused,\n })}\n data-hasicon={icon != null ? true : undefined}\n {...(mode === \"treeview\" && {\n role: \"treeitem\",\n \"aria-selected\": ariaSelected,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-disabled\": disabled ? true : undefined,\n })}\n {...others}\n >\n {renderedContent}\n <DescendantProvider id={nodeId} level={level + 1}>\n {renderedChildren}\n </DescendantProvider>\n </li>\n );\n});\n\nTreeViewItem.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the Radio button.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root of the component.\n */\n node: PropTypes.string,\n /**\n * Style applied to the content.\n */\n content: PropTypes.string,\n /**\n * Style applied to the group.\n */\n group: PropTypes.string,\n /**\n * Style applied when item is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Style applied when item is expandable.\n */\n expandable: PropTypes.string,\n /**\n * Style applied when item is collapsed.\n */\n collapsed: PropTypes.string,\n /**\n * Style applied when item is expanded.\n */\n expanded: PropTypes.string,\n /**\n * Style applied when item is selectable.\n */\n selectable: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselectable: PropTypes.string,\n /**\n * Style applied when item is selected.\n */\n selected: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselected: PropTypes.string,\n /**\n * Style applied when item is focused.\n */\n focused: PropTypes.string,\n }).isRequired,\n /**\n * Is the node disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Can the node be selected.\n */\n selectable: PropTypes.bool,\n /**\n * The id of the node.\n */\n nodeId: PropTypes.string.isRequired,\n /**\n * The icon to display next to the node's label.\n */\n icon: PropTypes.node,\n /**\n * The item label.\n */\n label: PropTypes.node.isRequired,\n /**\n * The node payload.\n */\n // eslint-disable-next-line react/forbid-prop-types\n payload: PropTypes.any,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, {\n name: \"HvVerticalNavigationTreeViewItem\",\n})(TreeViewItem);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TreeViewItem.js","names":["React","useCallback","useContext","useEffect","useMemo","useRef","useState","clsx","PropTypes","withStyles","DropDownXS","DropUpXS","HvTypography","TreeViewControlContext","TreeViewStateContext","setId","useForkRef","DescendantProvider","useDescendant","styles","preventSelection","event","disabled","shiftKey","ctrlKey","metaKey","preventDefault","TreeViewItem","forwardRef","props","ref","id","idProp","className","classes","disabledProp","selectable","selectableProp","nodeId","icon","label","payload","onClick","onMouseDown","onFocus","children","others","treeViewControlContext","isExpanded","isSelected","isFocused","isDisabled","treeId","mode","collapsible","toggleExpansion","multiSelect","selectNode","selectRange","disabledItemsFocusable","registerNode","unregisterNode","mapFirstChar","unMapFirstChar","focus","treeviewMode","treeitemElement","setTreeitemElement","contentRef","handleRef","descendant","element","index","parentId","level","expandable","Array","isArray","expanded","focused","selected","idAttribute","undefined","current","textContent","substring","toLowerCase","ariaSelected","handleFocus","target","currentTarget","ownerDocument","document","getElementById","preventScroll","unfocusable","handleExpansion","multiple","handleSelection","end","handleMouseDown","handleClick","handleKeyDown","isEventHandled","key","altKey","stopPropagation","renderedContent","content","paddingLeft","role","tabIndex","onKeyDown","renderedChildren","group","node","unselected","unselectable","collapsed","propTypes","string","shape","isRequired","bool","any","func","name"],"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 ]\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","names":["outlineStyles","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","
|
|
1
|
+
{"version":3,"file":"styles.js","names":["outlineStyles","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","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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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@hitachivantara/uikit-react-core",
|
|
3
|
-
"version": "3.67.
|
|
3
|
+
"version": "3.67.8",
|
|
4
4
|
"description": "A collection of React components for the Hitachi Vantara's Design System.",
|
|
5
5
|
"homepage": "https://github.com/lumada-design/hv-uikit-react",
|
|
6
6
|
"license": "Apache-2.0",
|
|
@@ -105,5 +105,5 @@
|
|
|
105
105
|
"publishConfig": {
|
|
106
106
|
"access": "public"
|
|
107
107
|
},
|
|
108
|
-
"gitHead": "
|
|
108
|
+
"gitHead": "451ea660c25b7e67b858cc109e553bd5cbeba79d"
|
|
109
109
|
}
|