@hitachivantara/uikit-react-core 3.68.3 → 3.68.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/Header/Navigation/MenuBar/MenuBar.js +5 -1
- package/dist/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
- package/dist/Header/Navigation/MenuItem/MenuItem.js +29 -9
- package/dist/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
- package/dist/Header/Navigation/MenuItem/styles.js +4 -0
- package/dist/Header/Navigation/MenuItem/styles.js.map +1 -1
- package/dist/Header/Navigation/Navigation.d.ts +4 -0
- package/dist/Header/Navigation/Navigation.js +5 -1
- package/dist/Header/Navigation/Navigation.js.map +1 -1
- package/dist/Login/Login.js +1 -3
- package/dist/Login/Login.js.map +1 -1
- package/dist/Slider/Slider.js +7 -2
- package/dist/Slider/Slider.js.map +1 -1
- package/dist/VerticalNavigation/Navigation/Navigation.d.ts +8 -0
- package/dist/VerticalNavigation/Navigation/Navigation.js +10 -2
- package/dist/VerticalNavigation/Navigation/Navigation.js.map +1 -1
- package/dist/VerticalNavigation/TreeView/TreeViewItem.d.ts +8 -0
- package/dist/VerticalNavigation/TreeView/TreeViewItem.js +25 -4
- package/dist/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
- package/dist/VerticalNavigation/TreeView/styles.js +3 -0
- package/dist/VerticalNavigation/TreeView/styles.js.map +1 -1
- package/dist/legacy/Header/Navigation/MenuBar/MenuBar.js +5 -1
- package/dist/legacy/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
- package/dist/legacy/Header/Navigation/MenuItem/MenuItem.js +25 -9
- package/dist/legacy/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
- package/dist/legacy/Header/Navigation/MenuItem/styles.js +4 -0
- package/dist/legacy/Header/Navigation/MenuItem/styles.js.map +1 -1
- package/dist/legacy/Header/Navigation/Navigation.d.ts +4 -0
- package/dist/legacy/Header/Navigation/Navigation.js +5 -1
- package/dist/legacy/Header/Navigation/Navigation.js.map +1 -1
- package/dist/legacy/Login/Login.js +1 -2
- package/dist/legacy/Login/Login.js.map +1 -1
- package/dist/legacy/Slider/Slider.js +4 -1
- package/dist/legacy/Slider/Slider.js.map +1 -1
- package/dist/legacy/VerticalNavigation/Navigation/Navigation.d.ts +8 -0
- package/dist/legacy/VerticalNavigation/Navigation/Navigation.js +10 -2
- package/dist/legacy/VerticalNavigation/Navigation/Navigation.js.map +1 -1
- package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.d.ts +8 -0
- package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.js +24 -4
- package/dist/legacy/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
- package/dist/legacy/VerticalNavigation/TreeView/styles.js +3 -0
- package/dist/legacy/VerticalNavigation/TreeView/styles.js.map +1 -1
- package/dist/modern/Header/Navigation/MenuBar/MenuBar.js +5 -1
- package/dist/modern/Header/Navigation/MenuBar/MenuBar.js.map +1 -1
- package/dist/modern/Header/Navigation/MenuItem/MenuItem.js +24 -9
- package/dist/modern/Header/Navigation/MenuItem/MenuItem.js.map +1 -1
- package/dist/modern/Header/Navigation/MenuItem/styles.js +4 -0
- package/dist/modern/Header/Navigation/MenuItem/styles.js.map +1 -1
- package/dist/modern/Header/Navigation/Navigation.d.ts +4 -0
- package/dist/modern/Header/Navigation/Navigation.js +5 -1
- package/dist/modern/Header/Navigation/Navigation.js.map +1 -1
- package/dist/modern/Login/Login.js +1 -2
- package/dist/modern/Login/Login.js.map +1 -1
- package/dist/modern/Slider/Slider.js +1 -1
- package/dist/modern/Slider/Slider.js.map +1 -1
- package/dist/modern/VerticalNavigation/Navigation/Navigation.d.ts +8 -0
- package/dist/modern/VerticalNavigation/Navigation/Navigation.js +10 -2
- package/dist/modern/VerticalNavigation/Navigation/Navigation.js.map +1 -1
- package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.d.ts +8 -0
- package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.js +23 -4
- package/dist/modern/VerticalNavigation/TreeView/TreeViewItem.js.map +1 -1
- package/dist/modern/VerticalNavigation/TreeView/styles.js +3 -0
- package/dist/modern/VerticalNavigation/TreeView/styles.js.map +1 -1
- package/package.json +7 -7
|
@@ -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","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 disabled,\n ]\n );\n\n const renderedChildren = useMemo(\n () =>\n children && (\n <ul\n id={setId(id, \"group\")}\n className={classes.group}\n role={treeviewMode ? \"group\" : undefined}\n >\n {children}\n </ul>\n ),\n [children, classes.group, id, treeviewMode]\n );\n\n return (\n <li\n ref={handleRef}\n id={id}\n className={clsx(classes.node, className, {\n [classes.disabled]: disabled,\n [classes.expandable]: expandable,\n [classes.collapsed]: expandable && !expanded,\n [classes.expanded]: expandable && expanded,\n [classes.selectable]: !disabled && selectable,\n [classes.unselectable]: !disabled && !selectable,\n [classes.selected]: !disabled && selectable && selected,\n [classes.unselected]: !disabled && selectable && !selected,\n [classes.focused]: focused,\n })}\n data-hasicon={icon != null ? true : undefined}\n {...(mode === \"treeview\" && {\n role: \"treeitem\",\n \"aria-selected\": ariaSelected,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-disabled\": disabled ? true : undefined,\n })}\n {...others}\n >\n {renderedContent}\n <DescendantProvider id={nodeId} level={level + 1}>\n {renderedChildren}\n </DescendantProvider>\n </li>\n );\n});\n\nTreeViewItem.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the Radio button.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root of the component.\n */\n node: PropTypes.string,\n /**\n * Style applied to the content.\n */\n content: PropTypes.string,\n /**\n * Style applied to the group.\n */\n group: PropTypes.string,\n /**\n * Style applied when item is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Style applied when item is expandable.\n */\n expandable: PropTypes.string,\n /**\n * Style applied when item is collapsed.\n */\n collapsed: PropTypes.string,\n /**\n * Style applied when item is expanded.\n */\n expanded: PropTypes.string,\n /**\n * Style applied when item is selectable.\n */\n selectable: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselectable: PropTypes.string,\n /**\n * Style applied when item is selected.\n */\n selected: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselected: PropTypes.string,\n /**\n * Style applied when item is focused.\n */\n focused: PropTypes.string,\n }).isRequired,\n /**\n * Is the node disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Can the node be selected.\n */\n selectable: PropTypes.bool,\n /**\n * The id of the node.\n */\n nodeId: PropTypes.string.isRequired,\n /**\n * The icon to display next to the node's label.\n */\n icon: PropTypes.node,\n /**\n * The item label.\n */\n label: PropTypes.node.isRequired,\n /**\n * The node payload.\n */\n // eslint-disable-next-line react/forbid-prop-types\n payload: PropTypes.any,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, {\n name: \"HvVerticalNavigationTreeViewItem\",\n})(TreeViewItem);\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"TreeViewItem.js","names":["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","href","target","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","currentTarget","ownerDocument","document","getElementById","preventScroll","unfocusable","handleExpansion","multiple","handleSelection","end","handleMouseDown","handleClick","handleKeyDown","isEventHandled","key","altKey","stopPropagation","renderedContent","content","link","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 href,\n target,\n payload,\n\n onClick,\n onMouseDown,\n onFocus,\n\n children,\n\n ...others\n } = props;\n\n const treeViewControlContext = useContext(TreeViewControlContext);\n const { isExpanded, isSelected, isFocused, isDisabled } = useContext(TreeViewStateContext);\n\n const {\n treeId,\n mode,\n collapsible,\n toggleExpansion,\n multiSelect,\n selectNode,\n selectRange,\n disabledItemsFocusable,\n registerNode,\n unregisterNode,\n mapFirstChar,\n unMapFirstChar,\n focus,\n } = treeViewControlContext;\n\n const treeviewMode = mode === \"treeview\";\n\n let id = null;\n\n if (idProp != null) {\n id = idProp;\n } else if (treeId && nodeId) {\n id = `${treeId}-${nodeId}`;\n }\n\n const [treeitemElement, setTreeitemElement] = useState(null);\n const contentRef = useRef(null);\n const handleRef = useForkRef(setTreeitemElement, ref);\n\n const descendant = useMemo(\n () => ({\n element: treeitemElement,\n id: nodeId,\n }),\n [nodeId, treeitemElement]\n );\n\n const { index, parentId, level } = useDescendant(descendant);\n\n const expandable = collapsible && Array.isArray(children);\n const expanded = isExpanded ? isExpanded(nodeId) : false;\n const focused = isFocused ? isFocused(nodeId) : false;\n const selected = isSelected ? isSelected(nodeId) : false;\n const disabled = isDisabled ? isDisabled(nodeId) : false;\n\n const selectable = selectableProp != null ? selectableProp : !collapsible || !expandable;\n\n useEffect(() => {\n // On the first render a node's index will be -1. We want to wait for the real index.\n if (registerNode && unregisterNode && index !== -1) {\n registerNode({\n id: nodeId,\n idAttribute: id,\n index,\n parentId,\n selectable,\n expandable,\n disabled: disabledProp,\n onFocus,\n payload,\n });\n\n return () => {\n unregisterNode(nodeId);\n };\n }\n\n return undefined;\n }, [\n registerNode,\n unregisterNode,\n parentId,\n index,\n nodeId,\n expandable,\n disabledProp,\n id,\n selectable,\n onFocus,\n payload,\n ]);\n\n useEffect(() => {\n if (mapFirstChar && unMapFirstChar && label) {\n mapFirstChar(nodeId, contentRef.current?.textContent.substring(0, 1).toLowerCase());\n\n return () => {\n unMapFirstChar(nodeId);\n };\n }\n return undefined;\n }, [mapFirstChar, unMapFirstChar, nodeId, label]);\n\n let ariaSelected;\n if (multiSelect) {\n ariaSelected = selected;\n } else if (selected) {\n /* single-selection trees unset aria-selected on un-selected items.\n *\n * If the tree does not support multiple selection, aria-selected\n * is set to true for the selected node and it is not present on any other node in the tree.\n * Source: https://www.w3.org/TR/wai-aria-practices/#TreeView\n */\n ariaSelected = true;\n }\n\n const handleFocus = useCallback(\n (event) => {\n // DOM focus stays on the tree which manages focus with aria-activedescendant\n if (event.target === event.currentTarget) {\n (event.target.ownerDocument || document)\n .getElementById(treeId)\n .focus({ preventScroll: true });\n }\n\n const unfocusable = !disabledItemsFocusable && disabled;\n if (!focused && event.currentTarget === event.target && !unfocusable) {\n focus(event, nodeId);\n }\n },\n [disabled, disabledItemsFocusable, focus, focused, nodeId, treeId]\n );\n\n const handleExpansion = useCallback(\n (event) => {\n if (!disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n // If already expanded and trying to toggle selection don't close\n if (expandable && !(multiple && isExpanded(nodeId))) {\n toggleExpansion(event, nodeId);\n }\n }\n },\n [\n disabled,\n expandable,\n focus,\n focused,\n isExpanded,\n multiSelect,\n nodeId,\n toggleExpansion,\n treeviewMode,\n ]\n );\n\n const handleSelection = useCallback(\n (event) => {\n if (selectable && !disabled) {\n if (treeviewMode && !focused) {\n focus(event, nodeId);\n }\n\n const multiple = multiSelect && (event.shiftKey || event.ctrlKey || event.metaKey);\n\n if (multiple) {\n if (event.shiftKey) {\n selectRange(event, { end: nodeId });\n } else {\n selectNode(event, nodeId, true);\n }\n } else {\n selectNode(event, nodeId);\n }\n }\n },\n [\n disabled,\n focus,\n focused,\n multiSelect,\n nodeId,\n selectNode,\n selectRange,\n selectable,\n treeviewMode,\n ]\n );\n\n const handleMouseDown = useCallback(\n (event) => {\n preventSelection(event, disabled);\n\n if (onMouseDown) {\n onMouseDown(event);\n }\n },\n [disabled, onMouseDown]\n );\n\n const handleClick = useCallback(\n (event) => {\n if (!disabled) {\n if (expandable) {\n handleExpansion(event);\n }\n\n if (selectable) {\n handleSelection(event);\n }\n }\n\n if (onClick) {\n onClick(event);\n }\n },\n [disabled, expandable, handleExpansion, handleSelection, onClick, selectable]\n );\n\n const handleKeyDown = useCallback(\n (event) => {\n let isEventHandled = false;\n const { key } = event;\n\n if (event.altKey || event.ctrlKey || event.metaKey || event.currentTarget !== event.target) {\n return;\n }\n if (contentRef.current === event.currentTarget) {\n if (key === \"Enter\" || key === \" \") {\n if (expandable) {\n isEventHandled = handleExpansion(event);\n }\n\n if (selectable) {\n isEventHandled = handleSelection(event);\n }\n }\n\n if (isEventHandled) {\n event.preventDefault();\n event.stopPropagation();\n }\n }\n },\n [expandable, handleExpansion, handleSelection, selectable]\n );\n\n const renderedContent = useMemo(\n () => (\n <HvTypography\n id={setId(id, \"button\")}\n component={href ? \"a\" : \"div\"}\n href={href}\n target={target}\n innerRef={contentRef}\n className={clsx(classes.content, { [classes.link]: href != null })}\n variant={disabled ? \"placeholderText\" : \"normalText\"}\n onClick={handleClick}\n onMouseDown={handleMouseDown}\n style={{\n paddingLeft: (expandable || icon != null ? 0 : 10) + level * (collapsible ? 32 : 10),\n }}\n {...(treeviewMode\n ? {\n role: \"button\",\n tabIndex: -1,\n onFocus: handleFocus,\n }\n : {\n role: \"button\",\n tabIndex: selectable || expandable ? 0 : -1,\n onKeyDown: handleKeyDown,\n \"aria-current\": selectable && selected ? \"page\" : undefined,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-controls\": expandable ? setId(id, \"group\") : undefined,\n })}\n >\n {expandable && (expanded ? <DropUpXS /> : <DropDownXS />)}\n {icon}\n {label}\n </HvTypography>\n ),\n [\n id,\n href,\n target,\n classes.content,\n classes.link,\n disabled,\n handleClick,\n handleMouseDown,\n expandable,\n icon,\n level,\n collapsible,\n treeviewMode,\n handleFocus,\n selectable,\n handleKeyDown,\n selected,\n expanded,\n label,\n ]\n );\n\n const renderedChildren = useMemo(\n () =>\n children && (\n <ul\n id={setId(id, \"group\")}\n className={classes.group}\n role={treeviewMode ? \"group\" : undefined}\n >\n {children}\n </ul>\n ),\n [children, classes.group, id, treeviewMode]\n );\n\n return (\n <li\n ref={handleRef}\n id={id}\n className={clsx(classes.node, className, {\n [classes.disabled]: disabled,\n [classes.expandable]: expandable,\n [classes.collapsed]: expandable && !expanded,\n [classes.expanded]: expandable && expanded,\n [classes.selectable]: !disabled && selectable,\n [classes.unselectable]: !disabled && !selectable,\n [classes.selected]: !disabled && selectable && selected,\n [classes.unselected]: !disabled && selectable && !selected,\n [classes.focused]: focused,\n })}\n data-hasicon={icon != null ? true : undefined}\n {...(mode === \"treeview\" && {\n role: \"treeitem\",\n \"aria-selected\": ariaSelected,\n \"aria-expanded\": expandable ? expanded : undefined,\n \"aria-disabled\": disabled ? true : undefined,\n })}\n {...others}\n >\n {renderedContent}\n <DescendantProvider id={nodeId} level={level + 1}>\n {renderedChildren}\n </DescendantProvider>\n </li>\n );\n});\n\nTreeViewItem.propTypes = {\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * A Jss Object used to override or extend the styles applied to the Radio button.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the root of the component.\n */\n node: PropTypes.string,\n /**\n * Style applied to the content.\n */\n content: PropTypes.string,\n /**\n * Style applied to the content when it is a link.\n */\n link: PropTypes.string,\n /**\n * Style applied to the group.\n */\n group: PropTypes.string,\n /**\n * Style applied when item is disabled.\n */\n disabled: PropTypes.string,\n /**\n * Style applied when item is expandable.\n */\n expandable: PropTypes.string,\n /**\n * Style applied when item is collapsed.\n */\n collapsed: PropTypes.string,\n /**\n * Style applied when item is expanded.\n */\n expanded: PropTypes.string,\n /**\n * Style applied when item is selectable.\n */\n selectable: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselectable: PropTypes.string,\n /**\n * Style applied when item is selected.\n */\n selected: PropTypes.string,\n /**\n * Style applied when item is unselectable.\n */\n unselected: PropTypes.string,\n /**\n * Style applied when item is focused.\n */\n focused: PropTypes.string,\n }).isRequired,\n /**\n * Is the node disabled.\n */\n disabled: PropTypes.bool,\n /**\n * Can the node be selected.\n */\n selectable: PropTypes.bool,\n /**\n * The id of the node.\n */\n nodeId: PropTypes.string.isRequired,\n /**\n * The icon to display next to the node's label.\n */\n icon: PropTypes.node,\n /**\n * The item label.\n */\n label: PropTypes.node.isRequired,\n /**\n * The url for the link.\n */\n href: PropTypes.string,\n /**\n * The behavior when opening a link.\n */\n target: PropTypes.string,\n /**\n * The node payload.\n */\n // eslint-disable-next-line react/forbid-prop-types\n payload: PropTypes.any,\n /**\n * @ignore\n */\n onClick: PropTypes.func,\n /**\n * @ignore\n */\n onMouseDown: PropTypes.func,\n /**\n * @ignore\n */\n onFocus: PropTypes.func,\n /**\n * The content of the component.\n */\n children: PropTypes.node,\n};\n\nexport default withStyles(styles, {\n name: \"HvVerticalNavigationTreeViewItem\",\n})(TreeViewItem);\n"],"mappings":"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"}
|
|
@@ -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","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":";;;;;;;;;;;;;AAAA,SAASA,aAAT,QAA8B,oBAA9B;;AAEA,IAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,KAAD;EAAA,OAAY;IAC3BC,UAAU,EAAED,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBC,UAAjB,CAA4BC,KADb;IAE3BC,UAAU,sBAAeN,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBI,MAAjB,CAAwBC,KAAvC,CAFiB;IAG3B,OAAO;MACLP,UAAU,EAAED,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBC,UAAjB,CAA4BC;IADnC;EAHoB,CAAZ;AAAA,CAAjB;;AAQA,IAAMI,KAAK,GAAG,SAARA,KAAQ,CAACT,KAAD;EAAA,OAAY;IACxBC,UAAU,EAAED,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBC,UAAjB,CAA4BC,KADhB;IAExB,OAAO;MACLJ,UAAU,EAAED,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBC,UAAjB,CAA4BC;IADnC;EAFiB,CAAZ;AAAA,CAAd;;AAOA,IAAMK,MAAM,GAAG,SAATA,MAAS,CAACV,KAAD;EAAA,OAAY;IACzB;IACAW,IAAI,EAAE;MACJC,OAAO,EAAE,OADL;MAEJX,UAAU,EAAED,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBC,UAAjB,CAA4BS,KAFpC;MAGJC,OAAO,OAHH;MAIJC,MAAM,EAAE,GAJJ;MAKJC,SAAS,EAAE,MALP;MAOJC,OAAO,EAAE;IAPL,CAFmB;;IAYzB;IACAC,KAAK,EAAE;MACLH,MAAM,EAAE,WADH;MAELD,OAAO,EAAE;IAFJ,CAbkB;;IAkBzB;IACAK,IAAI,EAAE;MACJH,SAAS,EAAE,MADP;MAEJI,SAAS,EAAE,MAFP;MAGJ,sBAAsB;QACpBC,YAAY,EAAE;MADM;IAHlB,CAnBmB;;IA2BzB;IACAC,QAAQ,EAAE,EA5Be;IA6BzBC,UAAU,EAAE,EA7Ba;IA8BzBC,YAAY,EAAE,EA9BW;IA+BzBC,UAAU,EAAE,EA/Ba;IAgCzBC,SAAS,EAAE;MACT,YAAY;QAAEd,OAAO,EAAE;MAAX;IADH,CAhCc;IAmCzBe,QAAQ,EAAE;MACR,YAAY;QAAEf,OAAO,EAAE;MAAX;IADJ,CAnCe;IAsCzBb,QAAQ,EAAE,EAtCe;IAuCzB6B,UAAU,EAAE,EAvCa;
|
|
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","link","textDecoration","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 link: {\n textDecoration: \"none\",\n },\n\n focused: {},\n\n noIcon: {},\n withIcon: {},\n\n /* role=\"button\" element */\n content: {\n width: \"100%\",\n display: \"flex\",\n justifyContent: \"flex-start\",\n alignItems: \"center\",\n height: \"32px\",\n borderLeft: `2px solid transparent`,\n paddingRight: theme.hv.spacing.xs,\n\n \"$expandable>&\": {\n fontWeight: 600,\n },\n\n // selected state\n \"$selected>&\": selected(theme),\n\n // hover\n \":not($disabled):not($selected)>&:hover\": hover(theme),\n \":not($disabled)$selected>&:hover\": {},\n\n // focus\n \":not($disabled):not($selected)>&:focus-visible\": hover(theme),\n \":not($disabled):not($selected)>&.focus-visible\": hover(theme),\n\n \"*:focus-visible $focused>&\": {\n ...outlineStyles,\n },\n\n \".focus-visible $focused>&\": {\n ...outlineStyles,\n },\n\n \"$focused>&\": {\n ...hover(theme),\n },\n\n \"&[disabled], &:active\": {\n outline: \"none\",\n },\n\n \"&:focus\": {\n outline: \"none\",\n },\n\n \"&:focus-visible\": {\n ...outlineStyles,\n },\n\n \"&.focus-visible\": {\n ...outlineStyles,\n },\n\n // cursor\n cursor: \"pointer\",\n \"& *\": {\n cursor: \"pointer\",\n },\n \"$disabled>&\": {\n cursor: \"not-allowed\",\n \"& *\": {\n cursor: \"not-allowed\",\n },\n },\n },\n});\n\nexport default styles;\n"],"mappings":"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"}
|
|
@@ -76,10 +76,14 @@ process.env.NODE_ENV !== "production" ? MenuBar.propTypes = {
|
|
|
76
76
|
*
|
|
77
77
|
* id - the id to be applied to the root element.
|
|
78
78
|
* label - the label to be rendered on the menu item.
|
|
79
|
+
* href - the url used for navigation.
|
|
80
|
+
* target - the behavior when opening an url.
|
|
79
81
|
*/
|
|
80
82
|
data: PropTypes.arrayOf(PropTypes.shape({
|
|
81
83
|
id: PropTypes.string.isRequired,
|
|
82
|
-
label: PropTypes.string.isRequired
|
|
84
|
+
label: PropTypes.string.isRequired,
|
|
85
|
+
href: PropTypes.string,
|
|
86
|
+
target: PropTypes.string
|
|
83
87
|
})),
|
|
84
88
|
|
|
85
89
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuBar.js","names":["React","useContext","clsx","PropTypes","withStyles","SelectionContext","MenuItem","styles","MenuBar","classes","id","data","onClick","type","selectionPath","isMenu","isActive","filter","item","length","root","hidden","active","list","map","propTypes","shape","string","menubar","menu","isRequired","arrayOf","label","func","oneOf","name"],"sources":["../../../../../src/Header/Navigation/MenuBar/MenuBar.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport SelectionContext from \"../utils/SelectionContext\";\nimport MenuItem from \"../MenuItem\";\nimport styles from \"./styles\";\n\nconst MenuBar = ({ classes, id, data = [], onClick, type }) => {\n const selectionPath = useContext(SelectionContext);\n\n const isMenu = type === \"menu\";\n const isActive = isMenu && data.filter((item) => item.id === selectionPath[1]).length > 0;\n\n return (\n <div\n className={clsx(classes.root, classes[`${type}`], {\n [classes.hidden]: isMenu,\n [classes.active]: isActive,\n })}\n >\n <ul id={id} className={classes.list} onFocus={() => {}}>\n {data.map((item) => (\n <MenuItem key={item.id} item={item} type={type} onClick={onClick} />\n ))}\n </ul>\n </div>\n );\n};\n\nMenuBar.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the menu bar.\n */\n menubar: PropTypes.string,\n /**\n * Styles applied to the menu.\n */\n menu: PropTypes.string,\n /**\n * Styles applied when in menu mode.\n */\n hidden: PropTypes.string,\n /**\n * Styles applied when active.\n */\n active: PropTypes.string,\n /**\n * Styles applied to the list.\n */\n list: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n })\n ),\n /**\n * Callback triggered when item is clicked.\n */\n onClick: PropTypes.func,\n /**\n * The type of menu.\n */\n type: PropTypes.oneOf([\"menubar\", \"menu\"]).isRequired,\n};\n\nexport default withStyles(styles, { name: \"HvHeaderMenuBar\" })(MenuBar);\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,OAAOC,gBAAP,MAA6B,2BAA7B;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,OAAOC,MAAP,MAAmB,UAAnB;;AAEA,MAAMC,OAAO,GAAG,CAAC;EAAEC,OAAF;EAAWC,EAAX;EAAeC,IAAI,GAAG,EAAtB;EAA0BC,OAA1B;EAAmCC;AAAnC,CAAD,KAA+C;EAC7D,MAAMC,aAAa,GAAGb,UAAU,CAACI,gBAAD,CAAhC;EAEA,MAAMU,MAAM,GAAGF,IAAI,KAAK,MAAxB;EACA,MAAMG,QAAQ,GAAGD,MAAM,IAAIJ,IAAI,CAACM,MAAL,CAAaC,IAAD,IAAUA,IAAI,CAACR,EAAL,KAAYI,aAAa,CAAC,CAAD,CAA/C,EAAoDK,MAApD,GAA6D,CAAxF;EAEA,oBACE;IACE,SAAS,EAAEjB,IAAI,CAACO,OAAO,CAACW,IAAT,EAAeX,OAAO,CAAE,GAAEI,IAAK,EAAT,CAAtB,EACKE,MADL,IACZN,OAAO,CAACY,MADI,EAEKL,QAFL,IAEZP,OAAO,CAACa,MAFI;EADjB,gBAME;IAAI,EAAE,EAAEZ,EAAR;IAAY,SAAS,EAAED,OAAO,CAACc,IAA/B;IAAqC,OAAO,EAAE,MAAM,CAAE;EAAtD,GACGZ,IAAI,CAACa,GAAL,CAAUN,IAAD,iBACR,oBAAC,QAAD;IAAU,GAAG,EAAEA,IAAI,CAACR,EAApB;IAAwB,IAAI,EAAEQ,IAA9B;IAAoC,IAAI,EAAEL,IAA1C;IAAgD,OAAO,EAAED;EAAzD,EADD,CADH,CANF,CADF;AAcD,CApBD;;AAsBA,wCAAAJ,OAAO,CAACiB,SAAR,GAAoB;EAClB;AACF;AACA;EACEhB,OAAO,EAAEN,SAAS,CAACuB,KAAV,CAAgB;IACvB;AACJ;AACA;IACIN,IAAI,EAAEjB,SAAS,CAACwB,MAJO;;IAKvB;AACJ;AACA;IACIC,OAAO,EAAEzB,SAAS,CAACwB,MARI;;IASvB;AACJ;AACA;IACIE,IAAI,EAAE1B,SAAS,CAACwB,MAZO;;IAavB;AACJ;AACA;IACIN,MAAM,EAAElB,SAAS,CAACwB,MAhBK;;IAiBvB;AACJ;AACA;IACIL,MAAM,EAAEnB,SAAS,CAACwB,MApBK;;IAqBvB;AACJ;AACA;IACIJ,IAAI,EAAEpB,SAAS,CAACwB;EAxBO,CAAhB,EAyBNG,UA7Be;;EA8BlB;AACF;AACA;EACEpB,EAAE,EAAEP,SAAS,CAACwB,MAjCI;;EAkClB;AACF;AACA;AACA;AACA;AACA;EACEhB,IAAI,EAAER,SAAS,CAAC4B,OAAV,CACJ5B,SAAS,CAACuB,KAAV,CAAgB;IACdhB,EAAE,EAAEP,SAAS,CAACwB,MAAV,CAAiBG,UADP;IAEdE,KAAK,EAAE7B,SAAS,CAACwB,MAAV,CAAiBG;
|
|
1
|
+
{"version":3,"file":"MenuBar.js","names":["React","useContext","clsx","PropTypes","withStyles","SelectionContext","MenuItem","styles","MenuBar","classes","id","data","onClick","type","selectionPath","isMenu","isActive","filter","item","length","root","hidden","active","list","map","propTypes","shape","string","menubar","menu","isRequired","arrayOf","label","href","target","func","oneOf","name"],"sources":["../../../../../src/Header/Navigation/MenuBar/MenuBar.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport SelectionContext from \"../utils/SelectionContext\";\nimport MenuItem from \"../MenuItem\";\nimport styles from \"./styles\";\n\nconst MenuBar = ({ classes, id, data = [], onClick, type }) => {\n const selectionPath = useContext(SelectionContext);\n\n const isMenu = type === \"menu\";\n const isActive = isMenu && data.filter((item) => item.id === selectionPath[1]).length > 0;\n\n return (\n <div\n className={clsx(classes.root, classes[`${type}`], {\n [classes.hidden]: isMenu,\n [classes.active]: isActive,\n })}\n >\n <ul id={id} className={classes.list} onFocus={() => {}}>\n {data.map((item) => (\n <MenuItem key={item.id} item={item} type={type} onClick={onClick} />\n ))}\n </ul>\n </div>\n );\n};\n\nMenuBar.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the root.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the menu bar.\n */\n menubar: PropTypes.string,\n /**\n * Styles applied to the menu.\n */\n menu: PropTypes.string,\n /**\n * Styles applied when in menu mode.\n */\n hidden: PropTypes.string,\n /**\n * Styles applied when active.\n */\n active: PropTypes.string,\n /**\n * Styles applied to the list.\n */\n list: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * href - the url used for navigation.\n * target - the behavior when opening an url.\n */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n href: PropTypes.string,\n target: PropTypes.string,\n })\n ),\n /**\n * Callback triggered when item is clicked.\n */\n onClick: PropTypes.func,\n /**\n * The type of menu.\n */\n type: PropTypes.oneOf([\"menubar\", \"menu\"]).isRequired,\n};\n\nexport default withStyles(styles, { name: \"HvHeaderMenuBar\" })(MenuBar);\n"],"mappings":"AAAA,OAAOA,KAAP,IAAgBC,UAAhB,QAAkC,OAAlC;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,OAAOC,gBAAP,MAA6B,2BAA7B;AACA,OAAOC,QAAP,MAAqB,aAArB;AACA,OAAOC,MAAP,MAAmB,UAAnB;;AAEA,MAAMC,OAAO,GAAG,CAAC;EAAEC,OAAF;EAAWC,EAAX;EAAeC,IAAI,GAAG,EAAtB;EAA0BC,OAA1B;EAAmCC;AAAnC,CAAD,KAA+C;EAC7D,MAAMC,aAAa,GAAGb,UAAU,CAACI,gBAAD,CAAhC;EAEA,MAAMU,MAAM,GAAGF,IAAI,KAAK,MAAxB;EACA,MAAMG,QAAQ,GAAGD,MAAM,IAAIJ,IAAI,CAACM,MAAL,CAAaC,IAAD,IAAUA,IAAI,CAACR,EAAL,KAAYI,aAAa,CAAC,CAAD,CAA/C,EAAoDK,MAApD,GAA6D,CAAxF;EAEA,oBACE;IACE,SAAS,EAAEjB,IAAI,CAACO,OAAO,CAACW,IAAT,EAAeX,OAAO,CAAE,GAAEI,IAAK,EAAT,CAAtB,EACKE,MADL,IACZN,OAAO,CAACY,MADI,EAEKL,QAFL,IAEZP,OAAO,CAACa,MAFI;EADjB,gBAME;IAAI,EAAE,EAAEZ,EAAR;IAAY,SAAS,EAAED,OAAO,CAACc,IAA/B;IAAqC,OAAO,EAAE,MAAM,CAAE;EAAtD,GACGZ,IAAI,CAACa,GAAL,CAAUN,IAAD,iBACR,oBAAC,QAAD;IAAU,GAAG,EAAEA,IAAI,CAACR,EAApB;IAAwB,IAAI,EAAEQ,IAA9B;IAAoC,IAAI,EAAEL,IAA1C;IAAgD,OAAO,EAAED;EAAzD,EADD,CADH,CANF,CADF;AAcD,CApBD;;AAsBA,wCAAAJ,OAAO,CAACiB,SAAR,GAAoB;EAClB;AACF;AACA;EACEhB,OAAO,EAAEN,SAAS,CAACuB,KAAV,CAAgB;IACvB;AACJ;AACA;IACIN,IAAI,EAAEjB,SAAS,CAACwB,MAJO;;IAKvB;AACJ;AACA;IACIC,OAAO,EAAEzB,SAAS,CAACwB,MARI;;IASvB;AACJ;AACA;IACIE,IAAI,EAAE1B,SAAS,CAACwB,MAZO;;IAavB;AACJ;AACA;IACIN,MAAM,EAAElB,SAAS,CAACwB,MAhBK;;IAiBvB;AACJ;AACA;IACIL,MAAM,EAAEnB,SAAS,CAACwB,MApBK;;IAqBvB;AACJ;AACA;IACIJ,IAAI,EAAEpB,SAAS,CAACwB;EAxBO,CAAhB,EAyBNG,UA7Be;;EA8BlB;AACF;AACA;EACEpB,EAAE,EAAEP,SAAS,CAACwB,MAjCI;;EAkClB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEhB,IAAI,EAAER,SAAS,CAAC4B,OAAV,CACJ5B,SAAS,CAACuB,KAAV,CAAgB;IACdhB,EAAE,EAAEP,SAAS,CAACwB,MAAV,CAAiBG,UADP;IAEdE,KAAK,EAAE7B,SAAS,CAACwB,MAAV,CAAiBG,UAFV;IAGdG,IAAI,EAAE9B,SAAS,CAACwB,MAHF;IAIdO,MAAM,EAAE/B,SAAS,CAACwB;EAJJ,CAAhB,CADI,CA1CY;;EAkDlB;AACF;AACA;EACEf,OAAO,EAAET,SAAS,CAACgC,IArDD;;EAsDlB;AACF;AACA;EACEtB,IAAI,EAAEV,SAAS,CAACiC,KAAV,CAAgB,CAAC,SAAD,EAAY,MAAZ,CAAhB,EAAqCN;AAzDzB,CAApB;AA4DA,eAAe1B,UAAU,CAACG,MAAD,EAAS;EAAE8B,IAAI,EAAE;AAAR,CAAT,CAAV,CAAgD7B,OAAhD,CAAf"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import _extends from "@babel/runtime/helpers/esm/extends";
|
|
1
2
|
import React, { useContext } from "react";
|
|
2
3
|
import clsx from "clsx";
|
|
3
4
|
import PropTypes from "prop-types";
|
|
@@ -51,6 +52,15 @@ const MenuItem = ({
|
|
|
51
52
|
}, childrenToWrap);
|
|
52
53
|
|
|
53
54
|
const isIe = isBrowser(["ie", "edge"]);
|
|
55
|
+
const label = /*#__PURE__*/React.createElement(HvTypography, {
|
|
56
|
+
variant: isSelected ? "selectedNavText" : "normalText"
|
|
57
|
+
}, item.label);
|
|
58
|
+
const itemProps = {
|
|
59
|
+
onClick: actionHandler,
|
|
60
|
+
onKeyDown: actionHandler,
|
|
61
|
+
tabIndex: 0,
|
|
62
|
+
onFocus: handleFocus
|
|
63
|
+
};
|
|
54
64
|
return /*#__PURE__*/React.createElement("li", {
|
|
55
65
|
id: id,
|
|
56
66
|
key: item.label,
|
|
@@ -58,16 +68,14 @@ const MenuItem = ({
|
|
|
58
68
|
}, /*#__PURE__*/React.createElement(ConditionalWrapper, {
|
|
59
69
|
condition: isIe,
|
|
60
70
|
wrapper: focusWrapper
|
|
61
|
-
}, /*#__PURE__*/React.createElement("
|
|
62
|
-
|
|
71
|
+
}, item !== null && item !== void 0 && item.href ? /*#__PURE__*/React.createElement("a", _extends({
|
|
72
|
+
className: clsx(classes.button, classes.link),
|
|
73
|
+
href: item === null || item === void 0 ? void 0 : item.href,
|
|
74
|
+
target: item === null || item === void 0 ? void 0 : item.target
|
|
75
|
+
}, itemProps), label) : /*#__PURE__*/React.createElement("div", _extends({
|
|
63
76
|
className: clsx(classes.button),
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
tabIndex: 0,
|
|
67
|
-
onFocus: handleFocus
|
|
68
|
-
}, /*#__PURE__*/React.createElement(HvTypography, {
|
|
69
|
-
variant: isSelected ? "selectedNavText" : "normalText"
|
|
70
|
-
}, item.label))), hasSubLevel && /*#__PURE__*/React.createElement(MenuBar, {
|
|
77
|
+
role: "button"
|
|
78
|
+
}, itemProps), label)), hasSubLevel && /*#__PURE__*/React.createElement(MenuBar, {
|
|
71
79
|
data: data,
|
|
72
80
|
onClick: onClick,
|
|
73
81
|
type: "menu"
|
|
@@ -99,6 +107,11 @@ process.env.NODE_ENV !== "production" ? MenuItem.propTypes = {
|
|
|
99
107
|
*/
|
|
100
108
|
button: PropTypes.string,
|
|
101
109
|
|
|
110
|
+
/**
|
|
111
|
+
* Style applied to each item button when it is behaving as a.
|
|
112
|
+
*/
|
|
113
|
+
link: PropTypes.string,
|
|
114
|
+
|
|
102
115
|
/**
|
|
103
116
|
* Style applied to the reference element used for ie focus.
|
|
104
117
|
*/
|
|
@@ -124,6 +137,8 @@ process.env.NODE_ENV !== "production" ? MenuItem.propTypes = {
|
|
|
124
137
|
item: PropTypes.shape({
|
|
125
138
|
id: PropTypes.string.isRequired,
|
|
126
139
|
label: PropTypes.string.isRequired,
|
|
140
|
+
href: PropTypes.string,
|
|
141
|
+
target: PropTypes.string,
|
|
127
142
|
data: PropTypes.arrayOf(PropTypes.shape({
|
|
128
143
|
id: PropTypes.string.isRequired,
|
|
129
144
|
label: PropTypes.string.isRequired
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MenuItem.js","names":["React","useContext","clsx","PropTypes","withStyles","KeyboardCodes","isKeypress","HvTypography","SelectionContext","FocusContext","ConditionalWrapper","MenuBar","styles","isBrowser","MenuItem","classes","id","item","type","onClick","selectionPath","dispatch","data","isMenu","isSelected","hasSubLevel","length","actionHandler","event","Enter","SpaceBar","currentTarget","blur","handleFocus","itemFocused","focusWrapper","childrenToWrap","externalReference","isIe","label","root","selectedItem","notSelectedItem","button","propTypes","shape","string","falseFocus","isRequired","arrayOf","func","oneOf","name"],"sources":["../../../../../src/Header/Navigation/MenuItem/MenuItem.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport { KeyboardCodes, isKeypress } from \"../../../utils/KeyboardUtils\";\nimport HvTypography from \"../../../Typography\";\nimport SelectionContext from \"../utils/SelectionContext\";\nimport { FocusContext } from \"../utils/FocusContext\";\nimport ConditionalWrapper from \"../../../utils/ConditionalWrapper\";\nimport MenuBar from \"../MenuBar\";\nimport styles from \"./styles\";\nimport isBrowser from \"../../../utils/browser\";\n\nconst MenuItem = ({ classes, id, item, type, onClick }) => {\n const selectionPath = useContext(SelectionContext);\n const { dispatch } = useContext(FocusContext);\n\n const { data } = item;\n const isMenu = type === \"menu\";\n const isSelected = selectionPath[isMenu ? 1 : 0] === item.id;\n const hasSubLevel = data && data.length;\n\n const actionHandler = (event) => {\n if (\n event.type === \"click\" ||\n isKeypress(event, KeyboardCodes.Enter) ||\n isKeypress(event, KeyboardCodes.SpaceBar)\n ) {\n if (event.type === \"click\") {\n event.currentTarget.blur();\n }\n\n onClick?.(event, item);\n }\n };\n\n const handleFocus = (event) => {\n dispatch({ type: \"setItemFocused\", itemFocused: event.currentTarget });\n };\n\n const focusWrapper = (childrenToWrap) => (\n <div className={classes.externalReference}>{childrenToWrap}</div>\n );\n const isIe = isBrowser([\"ie\", \"edge\"]);\n return (\n <li\n id={id}\n key={item.label}\n className={clsx(classes.root, classes[`${type}Item`], {\n [classes.selectedItem]: !isMenu && isSelected,\n [classes.notSelectedItem]: !isMenu && !isSelected,\n })}\n >\n <ConditionalWrapper condition={isIe} wrapper={focusWrapper}>\n
|
|
1
|
+
{"version":3,"file":"MenuItem.js","names":["React","useContext","clsx","PropTypes","withStyles","KeyboardCodes","isKeypress","HvTypography","SelectionContext","FocusContext","ConditionalWrapper","MenuBar","styles","isBrowser","MenuItem","classes","id","item","type","onClick","selectionPath","dispatch","data","isMenu","isSelected","hasSubLevel","length","actionHandler","event","Enter","SpaceBar","currentTarget","blur","handleFocus","itemFocused","focusWrapper","childrenToWrap","externalReference","isIe","label","itemProps","onKeyDown","tabIndex","onFocus","root","selectedItem","notSelectedItem","href","button","link","target","propTypes","shape","string","falseFocus","isRequired","arrayOf","func","oneOf","name"],"sources":["../../../../../src/Header/Navigation/MenuItem/MenuItem.js"],"sourcesContent":["import React, { useContext } from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport { KeyboardCodes, isKeypress } from \"../../../utils/KeyboardUtils\";\nimport HvTypography from \"../../../Typography\";\nimport SelectionContext from \"../utils/SelectionContext\";\nimport { FocusContext } from \"../utils/FocusContext\";\nimport ConditionalWrapper from \"../../../utils/ConditionalWrapper\";\nimport MenuBar from \"../MenuBar\";\nimport styles from \"./styles\";\nimport isBrowser from \"../../../utils/browser\";\n\nconst MenuItem = ({ classes, id, item, type, onClick }) => {\n const selectionPath = useContext(SelectionContext);\n const { dispatch } = useContext(FocusContext);\n\n const { data } = item;\n const isMenu = type === \"menu\";\n const isSelected = selectionPath[isMenu ? 1 : 0] === item.id;\n const hasSubLevel = data && data.length;\n\n const actionHandler = (event) => {\n if (\n event.type === \"click\" ||\n isKeypress(event, KeyboardCodes.Enter) ||\n isKeypress(event, KeyboardCodes.SpaceBar)\n ) {\n if (event.type === \"click\") {\n event.currentTarget.blur();\n }\n\n onClick?.(event, item);\n }\n };\n\n const handleFocus = (event) => {\n dispatch({ type: \"setItemFocused\", itemFocused: event.currentTarget });\n };\n\n const focusWrapper = (childrenToWrap) => (\n <div className={classes.externalReference}>{childrenToWrap}</div>\n );\n const isIe = isBrowser([\"ie\", \"edge\"]);\n const label = (\n <HvTypography variant={isSelected ? \"selectedNavText\" : \"normalText\"}>\n {item.label}\n </HvTypography>\n );\n const itemProps = {\n onClick: actionHandler,\n onKeyDown: actionHandler,\n tabIndex: 0,\n onFocus: handleFocus,\n };\n return (\n <li\n id={id}\n key={item.label}\n className={clsx(classes.root, classes[`${type}Item`], {\n [classes.selectedItem]: !isMenu && isSelected,\n [classes.notSelectedItem]: !isMenu && !isSelected,\n })}\n >\n <ConditionalWrapper condition={isIe} wrapper={focusWrapper}>\n {item?.href ? (\n <a\n className={clsx(classes.button, classes.link)}\n href={item?.href}\n target={item?.target}\n {...itemProps}\n >\n {label}\n </a>\n ) : (\n <div className={clsx(classes.button)} role=\"button\" {...itemProps}>\n {label}\n </div>\n )}\n </ConditionalWrapper>\n {hasSubLevel && <MenuBar data={data} onClick={onClick} type=\"menu\" />}\n </li>\n );\n};\n\nMenuItem.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Style applied to the first element in the hierarchy.\n */\n root: PropTypes.string,\n /**\n * Style applied to the li element when it is selected.\n */\n selectedItem: PropTypes.string,\n /**\n * Style applied to the li element when it isn't selected.\n */\n notSelectedItem: PropTypes.string,\n /**\n * Style applied to each item button.\n */\n button: PropTypes.string,\n /**\n * Style applied to each item button when it is behaving as a.\n */\n link: PropTypes.string,\n /**\n * Style applied to the reference element used for ie focus.\n */\n externalReference: PropTypes.string,\n /**\n * Style applied to simulated a focus in ie.\n */\n falseFocus: PropTypes.string,\n }).isRequired,\n /**\n * Id to be applied to the root node.\n */\n id: PropTypes.string,\n /**\n * An object containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n */\n item: PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n href: PropTypes.string,\n target: PropTypes.string,\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n })\n ),\n }).isRequired,\n /**\n * Callback triggered when item is clicked.\n */\n onClick: PropTypes.func,\n /**\n * The type of menu.\n */\n type: PropTypes.oneOf([\"menubar\", \"menu\"]).isRequired,\n};\n\nexport default withStyles(styles, { name: \"HvHeaderMenuItem\" })(MenuItem);\n"],"mappings":"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"}
|
|
@@ -53,6 +53,10 @@ const styles = theme => {
|
|
|
53
53
|
},
|
|
54
54
|
"&.focus-visible": _objectSpread({}, outlineStyles)
|
|
55
55
|
},
|
|
56
|
+
link: {
|
|
57
|
+
display: "block",
|
|
58
|
+
textDecoration: "none"
|
|
59
|
+
},
|
|
56
60
|
externalReference: _objectSpread({}, externalReference),
|
|
57
61
|
falseFocus: _objectSpread(_objectSpread({}, falseFocus), {}, {
|
|
58
62
|
top: "4px"
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"styles.js","names":["focusStyles","outlineStyles","externalReference","falseFocus","styles","theme","hoverColor","hv","palette","atmosphere","atmo3","root","display","backgroundColor","selectedItem","borderTop","accent","acce3","paddingTop","notSelectedItem","marginTop","button","border","cursor","padding","hvSpacing","outline","top"],"sources":["../../../../../src/Header/Navigation/MenuItem/styles.js"],"sourcesContent":["import \"focus-within-polyfill\";\nimport focusStyles, { outlineStyles } from \"../../../Focus/styles\";\n\nconst { externalReference, falseFocus } = focusStyles;\n\nconst styles = (theme) => {\n const hoverColor = theme.hv.palette.atmosphere.atmo3;\n\n return {\n root: {\n display: \"inline\",\n \"&:hover\": {\n \"& > [role='button']\": {\n backgroundColor: hoverColor,\n },\n \"&:focus-within\": {\n \"& > [role='button']\": {\n backgroundColor: hoverColor,\n },\n },\n },\n // IE fallback code (using focus-within-polyfill)\n \"&.focus-within\": {\n \"& > [role='button']\": {\n backgroundColor: hoverColor,\n },\n },\n },\n selectedItem: {\n borderTop: `2px solid ${theme.hv.palette.accent.acce3}`,\n paddingTop: \"2px\",\n },\n notSelectedItem: {\n marginTop: \"4px\",\n },\n button: {\n border: \"none\",\n cursor: \"pointer\",\n padding: theme.hvSpacing(\"8px\", \"sm\"),\n \"&:active\": {\n outline: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n backgroundColor: hoverColor,\n },\n \"&.focus-visible\": {\n ...outlineStyles,\n },\n },\n externalReference: {\n ...externalReference,\n },\n falseFocus: {\n ...falseFocus,\n top: \"4px\",\n },\n };\n};\n\nexport default styles;\n"],"mappings":";;;;;;AAAA,OAAO,uBAAP;AACA,OAAOA,WAAP,IAAsBC,aAAtB,QAA2C,uBAA3C;AAEA,MAAM;EAAEC,iBAAF;EAAqBC;AAArB,IAAoCH,WAA1C;;AAEA,MAAMI,MAAM,GAAIC,KAAD,IAAW;EACxB,MAAMC,UAAU,GAAGD,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBC,UAAjB,CAA4BC,KAA/C;EAEA,OAAO;IACLC,IAAI,EAAE;MACJC,OAAO,EAAE,QADL;MAEJ,WAAW;QACT,uBAAuB;UACrBC,eAAe,EAAEP;QADI,CADd;QAIT,kBAAkB;UAChB,uBAAuB;YACrBO,eAAe,EAAEP;UADI;QADP;MAJT,CAFP;MAYJ;MACA,kBAAkB;QAChB,uBAAuB;UACrBO,eAAe,EAAEP;QADI;MADP;IAbd,CADD;IAoBLQ,YAAY,EAAE;MACZC,SAAS,EAAG,aAAYV,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBQ,MAAjB,CAAwBC,KAAM,EAD1C;MAEZC,UAAU,EAAE;IAFA,CApBT;IAwBLC,eAAe,EAAE;MACfC,SAAS,EAAE;IADI,CAxBZ;IA2BLC,MAAM,EAAE;MACNC,MAAM,EAAE,MADF;MAENC,MAAM,EAAE,SAFF;MAGNC,OAAO,EAAEnB,KAAK,CAACoB,SAAN,CAAgB,KAAhB,EAAuB,IAAvB,CAHH;MAIN,YAAY;QACVC,OAAO,EAAE;MADC,CAJN;MAON,WAAW;QACTA,OAAO,EAAE,MADA;QAETb,eAAe,EAAEP;MAFR,CAPL;MAWN,qCACKL,aADL;IAXM,CA3BH;
|
|
1
|
+
{"version":3,"file":"styles.js","names":["focusStyles","outlineStyles","externalReference","falseFocus","styles","theme","hoverColor","hv","palette","atmosphere","atmo3","root","display","backgroundColor","selectedItem","borderTop","accent","acce3","paddingTop","notSelectedItem","marginTop","button","border","cursor","padding","hvSpacing","outline","link","textDecoration","top"],"sources":["../../../../../src/Header/Navigation/MenuItem/styles.js"],"sourcesContent":["import \"focus-within-polyfill\";\nimport focusStyles, { outlineStyles } from \"../../../Focus/styles\";\n\nconst { externalReference, falseFocus } = focusStyles;\n\nconst styles = (theme) => {\n const hoverColor = theme.hv.palette.atmosphere.atmo3;\n\n return {\n root: {\n display: \"inline\",\n \"&:hover\": {\n \"& > [role='button']\": {\n backgroundColor: hoverColor,\n },\n \"&:focus-within\": {\n \"& > [role='button']\": {\n backgroundColor: hoverColor,\n },\n },\n },\n // IE fallback code (using focus-within-polyfill)\n \"&.focus-within\": {\n \"& > [role='button']\": {\n backgroundColor: hoverColor,\n },\n },\n },\n selectedItem: {\n borderTop: `2px solid ${theme.hv.palette.accent.acce3}`,\n paddingTop: \"2px\",\n },\n notSelectedItem: {\n marginTop: \"4px\",\n },\n button: {\n border: \"none\",\n cursor: \"pointer\",\n padding: theme.hvSpacing(\"8px\", \"sm\"),\n \"&:active\": {\n outline: \"none\",\n },\n \"&:focus\": {\n outline: \"none\",\n backgroundColor: hoverColor,\n },\n \"&.focus-visible\": {\n ...outlineStyles,\n },\n },\n link: {\n display: \"block\",\n textDecoration: \"none\",\n },\n externalReference: {\n ...externalReference,\n },\n falseFocus: {\n ...falseFocus,\n top: \"4px\",\n },\n };\n};\n\nexport default styles;\n"],"mappings":";;;;;;AAAA,OAAO,uBAAP;AACA,OAAOA,WAAP,IAAsBC,aAAtB,QAA2C,uBAA3C;AAEA,MAAM;EAAEC,iBAAF;EAAqBC;AAArB,IAAoCH,WAA1C;;AAEA,MAAMI,MAAM,GAAIC,KAAD,IAAW;EACxB,MAAMC,UAAU,GAAGD,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBC,UAAjB,CAA4BC,KAA/C;EAEA,OAAO;IACLC,IAAI,EAAE;MACJC,OAAO,EAAE,QADL;MAEJ,WAAW;QACT,uBAAuB;UACrBC,eAAe,EAAEP;QADI,CADd;QAIT,kBAAkB;UAChB,uBAAuB;YACrBO,eAAe,EAAEP;UADI;QADP;MAJT,CAFP;MAYJ;MACA,kBAAkB;QAChB,uBAAuB;UACrBO,eAAe,EAAEP;QADI;MADP;IAbd,CADD;IAoBLQ,YAAY,EAAE;MACZC,SAAS,EAAG,aAAYV,KAAK,CAACE,EAAN,CAASC,OAAT,CAAiBQ,MAAjB,CAAwBC,KAAM,EAD1C;MAEZC,UAAU,EAAE;IAFA,CApBT;IAwBLC,eAAe,EAAE;MACfC,SAAS,EAAE;IADI,CAxBZ;IA2BLC,MAAM,EAAE;MACNC,MAAM,EAAE,MADF;MAENC,MAAM,EAAE,SAFF;MAGNC,OAAO,EAAEnB,KAAK,CAACoB,SAAN,CAAgB,KAAhB,EAAuB,IAAvB,CAHH;MAIN,YAAY;QACVC,OAAO,EAAE;MADC,CAJN;MAON,WAAW;QACTA,OAAO,EAAE,MADA;QAETb,eAAe,EAAEP;MAFR,CAPL;MAWN,qCACKL,aADL;IAXM,CA3BH;IA0CL0B,IAAI,EAAE;MACJf,OAAO,EAAE,OADL;MAEJgB,cAAc,EAAE;IAFZ,CA1CD;IA8CL1B,iBAAiB,oBACZA,iBADY,CA9CZ;IAiDLC,UAAU,kCACLA,UADK;MAER0B,GAAG,EAAE;IAFG;EAjDL,CAAP;AAsDD,CAzDD;;AA2DA,eAAezB,MAAf"}
|
|
@@ -5,6 +5,8 @@ export interface NavigationItemProp {
|
|
|
5
5
|
id: string;
|
|
6
6
|
label: string;
|
|
7
7
|
path?: string;
|
|
8
|
+
href?: string;
|
|
9
|
+
target?: string;
|
|
8
10
|
}
|
|
9
11
|
|
|
10
12
|
export type HvHeaderNavigationClassKey = "root";
|
|
@@ -20,6 +22,8 @@ export interface HvHeaderNavigationProps
|
|
|
20
22
|
*
|
|
21
23
|
* id - the id to be applied to the root element.
|
|
22
24
|
* label - the label to be rendered on the menu item.
|
|
25
|
+
* href - the url for navigation.
|
|
26
|
+
* target - the behavior when opening a link.
|
|
23
27
|
*/
|
|
24
28
|
data: NavigationItemProp[];
|
|
25
29
|
/**
|
|
@@ -59,10 +59,14 @@ process.env.NODE_ENV !== "production" ? Navigation.propTypes = {
|
|
|
59
59
|
*
|
|
60
60
|
* id - the id to be applied to the root element.
|
|
61
61
|
* label - the label to be rendered on the menu item.
|
|
62
|
+
* href - the url used for navigation.
|
|
63
|
+
* target - the behavior when opening an url.
|
|
62
64
|
*/
|
|
63
65
|
data: PropTypes.arrayOf(PropTypes.shape({
|
|
64
66
|
id: PropTypes.string.isRequired,
|
|
65
|
-
label: PropTypes.string.isRequired
|
|
67
|
+
label: PropTypes.string.isRequired,
|
|
68
|
+
href: PropTypes.string,
|
|
69
|
+
target: PropTypes.string
|
|
66
70
|
})).isRequired,
|
|
67
71
|
|
|
68
72
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Navigation.js","names":["React","PropTypes","clsx","withStyles","FocusProvider","SelectionContext","useSelectionPath","MenuBar","styles","Navigation","classes","className","data","selected","onClick","others","selectionPath","handleClick","event","selection","root","propTypes","shape","string","isRequired","arrayOf","id","label","func","name"],"sources":["../../../../src/Header/Navigation/Navigation.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport { FocusProvider } from \"./utils/FocusContext\";\nimport SelectionContext from \"./utils/SelectionContext\";\nimport useSelectionPath from \"./utils/useSelectionPath\";\nimport MenuBar from \"./MenuBar\";\nimport styles from \"./styles\";\n\nconst Navigation = ({ classes, className, data, selected, onClick, ...others }) => {\n const selectionPath = useSelectionPath(data, selected);\n\n const handleClick = (event, selection) => {\n onClick?.(event, selection);\n };\n\n return (\n <SelectionContext.Provider value={selectionPath}>\n <FocusProvider>\n <nav className={clsx(className, classes.root)} {...others}>\n <MenuBar data={data} onClick={handleClick} type=\"menubar\" />\n </nav>\n </FocusProvider>\n </SelectionContext.Provider>\n );\n};\n\nNavigation.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n }).isRequired,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n })\n ).isRequired,\n /**\n * Menu item id selected.\n */\n selected: PropTypes.string,\n /**\n * Callback triggered when any item is clicked.\n */\n onClick: PropTypes.func,\n};\n\nexport default withStyles(styles, { name: \"HvHeaderNavigation\" })(Navigation);\n"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,aAAT,QAA8B,sBAA9B;AACA,OAAOC,gBAAP,MAA6B,0BAA7B;AACA,OAAOC,gBAAP,MAA6B,0BAA7B;AACA,OAAOC,OAAP,MAAoB,WAApB;AACA,OAAOC,MAAP,MAAmB,UAAnB;;AAEA,MAAMC,UAAU,GAAG,QAAgE;EAAA,IAA/D;IAAEC,OAAF;IAAWC,SAAX;IAAsBC,IAAtB;IAA4BC,QAA5B;IAAsCC;EAAtC,CAA+D;EAAA,IAAbC,MAAa;;EACjF,MAAMC,aAAa,GAAGV,gBAAgB,CAACM,IAAD,EAAOC,QAAP,CAAtC;;EAEA,MAAMI,WAAW,GAAG,CAACC,KAAD,EAAQC,SAAR,KAAsB;IACxCL,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAGI,KAAH,EAAUC,SAAV,CAAP;EACD,CAFD;;EAIA,oBACE,oBAAC,gBAAD,CAAkB,QAAlB;IAA2B,KAAK,EAAEH;EAAlC,gBACE,oBAAC,aAAD,qBACE;IAAK,SAAS,EAAEd,IAAI,CAACS,SAAD,EAAYD,OAAO,CAACU,IAApB;EAApB,GAAmDL,MAAnD,gBACE,oBAAC,OAAD;IAAS,IAAI,EAAEH,IAAf;IAAqB,OAAO,EAAEK,WAA9B;IAA2C,IAAI,EAAC;EAAhD,EADF,CADF,CADF,CADF;AASD,CAhBD;;AAkBA,wCAAAR,UAAU,CAACY,SAAX,GAAuB;EACrB;AACF;AACA;EACEX,OAAO,EAAET,SAAS,CAACqB,KAAV,CAAgB;IACvB;AACJ;AACA;IACIF,IAAI,EAAEnB,SAAS,CAACsB;EAJO,CAAhB,EAKNC,UATkB;;EAUrB;AACF;AACA;EACEb,SAAS,EAAEV,SAAS,CAACsB,MAbA;;EAcrB;AACF;AACA;AACA;AACA;AACA;EACEX,IAAI,EAAEX,SAAS,CAACwB,OAAV,CACJxB,SAAS,CAACqB,KAAV,CAAgB;IACdI,EAAE,EAAEzB,SAAS,CAACsB,MAAV,CAAiBC,UADP;IAEdG,KAAK,EAAE1B,SAAS,CAACsB,MAAV,CAAiBC;
|
|
1
|
+
{"version":3,"file":"Navigation.js","names":["React","PropTypes","clsx","withStyles","FocusProvider","SelectionContext","useSelectionPath","MenuBar","styles","Navigation","classes","className","data","selected","onClick","others","selectionPath","handleClick","event","selection","root","propTypes","shape","string","isRequired","arrayOf","id","label","href","target","func","name"],"sources":["../../../../src/Header/Navigation/Navigation.js"],"sourcesContent":["import React from \"react\";\nimport PropTypes from \"prop-types\";\nimport clsx from \"clsx\";\nimport { withStyles } from \"@material-ui/core\";\nimport { FocusProvider } from \"./utils/FocusContext\";\nimport SelectionContext from \"./utils/SelectionContext\";\nimport useSelectionPath from \"./utils/useSelectionPath\";\nimport MenuBar from \"./MenuBar\";\nimport styles from \"./styles\";\n\nconst Navigation = ({ classes, className, data, selected, onClick, ...others }) => {\n const selectionPath = useSelectionPath(data, selected);\n\n const handleClick = (event, selection) => {\n onClick?.(event, selection);\n };\n\n return (\n <SelectionContext.Provider value={selectionPath}>\n <FocusProvider>\n <nav className={clsx(className, classes.root)} {...others}>\n <MenuBar data={data} onClick={handleClick} type=\"menubar\" />\n </nav>\n </FocusProvider>\n </SelectionContext.Provider>\n );\n};\n\nNavigation.propTypes = {\n /**\n * A Jss Object used to override or extend the styles applied.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to the component root class.\n */\n root: PropTypes.string,\n }).isRequired,\n /**\n * Class names to be applied.\n */\n className: PropTypes.string,\n /**\n * An array containing the data for each menu item.\n *\n * id - the id to be applied to the root element.\n * label - the label to be rendered on the menu item.\n * href - the url used for navigation.\n * target - the behavior when opening an url.\n */\n data: PropTypes.arrayOf(\n PropTypes.shape({\n id: PropTypes.string.isRequired,\n label: PropTypes.string.isRequired,\n href: PropTypes.string,\n target: PropTypes.string,\n })\n ).isRequired,\n /**\n * Menu item id selected.\n */\n selected: PropTypes.string,\n /**\n * Callback triggered when any item is clicked.\n */\n onClick: PropTypes.func,\n};\n\nexport default withStyles(styles, { name: \"HvHeaderNavigation\" })(Navigation);\n"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,SAASC,aAAT,QAA8B,sBAA9B;AACA,OAAOC,gBAAP,MAA6B,0BAA7B;AACA,OAAOC,gBAAP,MAA6B,0BAA7B;AACA,OAAOC,OAAP,MAAoB,WAApB;AACA,OAAOC,MAAP,MAAmB,UAAnB;;AAEA,MAAMC,UAAU,GAAG,QAAgE;EAAA,IAA/D;IAAEC,OAAF;IAAWC,SAAX;IAAsBC,IAAtB;IAA4BC,QAA5B;IAAsCC;EAAtC,CAA+D;EAAA,IAAbC,MAAa;;EACjF,MAAMC,aAAa,GAAGV,gBAAgB,CAACM,IAAD,EAAOC,QAAP,CAAtC;;EAEA,MAAMI,WAAW,GAAG,CAACC,KAAD,EAAQC,SAAR,KAAsB;IACxCL,OAAO,SAAP,IAAAA,OAAO,WAAP,YAAAA,OAAO,CAAGI,KAAH,EAAUC,SAAV,CAAP;EACD,CAFD;;EAIA,oBACE,oBAAC,gBAAD,CAAkB,QAAlB;IAA2B,KAAK,EAAEH;EAAlC,gBACE,oBAAC,aAAD,qBACE;IAAK,SAAS,EAAEd,IAAI,CAACS,SAAD,EAAYD,OAAO,CAACU,IAApB;EAApB,GAAmDL,MAAnD,gBACE,oBAAC,OAAD;IAAS,IAAI,EAAEH,IAAf;IAAqB,OAAO,EAAEK,WAA9B;IAA2C,IAAI,EAAC;EAAhD,EADF,CADF,CADF,CADF;AASD,CAhBD;;AAkBA,wCAAAR,UAAU,CAACY,SAAX,GAAuB;EACrB;AACF;AACA;EACEX,OAAO,EAAET,SAAS,CAACqB,KAAV,CAAgB;IACvB;AACJ;AACA;IACIF,IAAI,EAAEnB,SAAS,CAACsB;EAJO,CAAhB,EAKNC,UATkB;;EAUrB;AACF;AACA;EACEb,SAAS,EAAEV,SAAS,CAACsB,MAbA;;EAcrB;AACF;AACA;AACA;AACA;AACA;AACA;AACA;EACEX,IAAI,EAAEX,SAAS,CAACwB,OAAV,CACJxB,SAAS,CAACqB,KAAV,CAAgB;IACdI,EAAE,EAAEzB,SAAS,CAACsB,MAAV,CAAiBC,UADP;IAEdG,KAAK,EAAE1B,SAAS,CAACsB,MAAV,CAAiBC,UAFV;IAGdI,IAAI,EAAE3B,SAAS,CAACsB,MAHF;IAIdM,MAAM,EAAE5B,SAAS,CAACsB;EAJJ,CAAhB,CADI,EAOJC,UA7BmB;;EA8BrB;AACF;AACA;EACEX,QAAQ,EAAEZ,SAAS,CAACsB,MAjCC;;EAkCrB;AACF;AACA;EACET,OAAO,EAAEb,SAAS,CAAC6B;AArCE,CAAvB;AAwCA,eAAe3B,UAAU,CAACK,MAAD,EAAS;EAAEuB,IAAI,EAAE;AAAR,CAAT,CAAV,CAAmDtB,UAAnD,CAAf"}
|
|
@@ -6,7 +6,6 @@ import clsx from "clsx";
|
|
|
6
6
|
import PropTypes from "prop-types";
|
|
7
7
|
import { withStyles } from "@material-ui/core";
|
|
8
8
|
import styles from "./styles";
|
|
9
|
-
import bg from "./resources/background.svg";
|
|
10
9
|
/**
|
|
11
10
|
* Container layout for the login form.
|
|
12
11
|
*/
|
|
@@ -25,7 +24,7 @@ const HvLogin = _ref => {
|
|
|
25
24
|
id: id,
|
|
26
25
|
className: clsx(className, classes.root),
|
|
27
26
|
style: {
|
|
28
|
-
backgroundImage: `url(${background
|
|
27
|
+
backgroundImage: background && `url(${background})`
|
|
29
28
|
}
|
|
30
29
|
}, others), /*#__PURE__*/React.createElement("div", {
|
|
31
30
|
className: classes.formContainer
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Login.js","names":["React","clsx","PropTypes","withStyles","styles","
|
|
1
|
+
{"version":3,"file":"Login.js","names":["React","clsx","PropTypes","withStyles","styles","HvLogin","id","className","classes","children","background","others","root","backgroundImage","formContainer","propTypes","string","shape","isRequired","node","name"],"sources":["../../../src/Login/Login.js"],"sourcesContent":["import React from \"react\";\nimport clsx from \"clsx\";\nimport PropTypes from \"prop-types\";\nimport { withStyles } from \"@material-ui/core\";\nimport styles from \"./styles\";\n\n/**\n * Container layout for the login form.\n */\nconst HvLogin = ({ id, className, classes, children, background, ...others }) => {\n return (\n <div\n id={id}\n className={clsx(className, classes.root)}\n style={{\n backgroundImage: background && `url(${background})`,\n }}\n {...others}\n >\n <div className={classes.formContainer}>{children}</div>\n </div>\n );\n};\n\nHvLogin.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.\n */\n classes: PropTypes.shape({\n /**\n * Styles applied to root.\n */\n root: PropTypes.string,\n /**\n * Styles applied to the form container.\n */\n formContainer: PropTypes.string,\n }).isRequired,\n /**\n * The form to be rendered.\n */\n children: PropTypes.node.isRequired,\n /**\n * The path for the background image.\n */\n background: PropTypes.string,\n};\n\nexport default withStyles(styles, { name: \"HvLogin\" })(HvLogin);\n"],"mappings":";;;AAAA,OAAOA,KAAP,MAAkB,OAAlB;AACA,OAAOC,IAAP,MAAiB,MAAjB;AACA,OAAOC,SAAP,MAAsB,YAAtB;AACA,SAASC,UAAT,QAA2B,mBAA3B;AACA,OAAOC,MAAP,MAAmB,UAAnB;AAEA;AACA;AACA;;AACA,MAAMC,OAAO,GAAG,QAAiE;EAAA,IAAhE;IAAEC,EAAF;IAAMC,SAAN;IAAiBC,OAAjB;IAA0BC,QAA1B;IAAoCC;EAApC,CAAgE;EAAA,IAAbC,MAAa;;EAC/E,oBACE;IACE,EAAE,EAAEL,EADN;IAEE,SAAS,EAAEL,IAAI,CAACM,SAAD,EAAYC,OAAO,CAACI,IAApB,CAFjB;IAGE,KAAK,EAAE;MACLC,eAAe,EAAEH,UAAU,IAAK,OAAMA,UAAW;IAD5C;EAHT,GAMMC,MANN,gBAQE;IAAK,SAAS,EAAEH,OAAO,CAACM;EAAxB,GAAwCL,QAAxC,CARF,CADF;AAYD,CAbD;;AAeA,wCAAAJ,OAAO,CAACU,SAAR,GAAoB;EAClB;AACF;AACA;EACET,EAAE,EAAEJ,SAAS,CAACc,MAJI;;EAKlB;AACF;AACA;EACET,SAAS,EAAEL,SAAS,CAACc,MARH;;EASlB;AACF;AACA;EACER,OAAO,EAAEN,SAAS,CAACe,KAAV,CAAgB;IACvB;AACJ;AACA;IACIL,IAAI,EAAEV,SAAS,CAACc,MAJO;;IAKvB;AACJ;AACA;IACIF,aAAa,EAAEZ,SAAS,CAACc;EARF,CAAhB,EASNE,UArBe;;EAsBlB;AACF;AACA;EACET,QAAQ,EAAEP,SAAS,CAACiB,IAAV,CAAeD,UAzBP;;EA0BlB;AACF;AACA;EACER,UAAU,EAAER,SAAS,CAACc;AA7BJ,CAApB;AAgCA,eAAeb,UAAU,CAACC,MAAD,EAAS;EAAEgB,IAAI,EAAE;AAAR,CAAT,CAAV,CAAwCf,OAAxC,CAAf"}
|
|
@@ -9,7 +9,6 @@ import clsx from "clsx";
|
|
|
9
9
|
import PropTypes from "prop-types";
|
|
10
10
|
import Slider from "rc-slider";
|
|
11
11
|
import Tooltip from "rc-tooltip";
|
|
12
|
-
import "rc-slider/assets/index.css";
|
|
13
12
|
import { withStyles } from "@material-ui/core";
|
|
14
13
|
import { HvFormElement, useControlled, useUniqueId, HvLabel, setId, HvWarningText } from "..";
|
|
15
14
|
import validationStates from "../Forms/FormElement/validationStates";
|
|
@@ -103,6 +102,7 @@ const HvSlider = props => {
|
|
|
103
102
|
|
|
104
103
|
setValidationMessage("");
|
|
105
104
|
}, [knobsPositions, requiredMessage, setValidationMessage, setValidationState]);
|
|
105
|
+
useEffect(() => import("rc-slider/assets/index.css"), []);
|
|
106
106
|
useEffect(() => {
|
|
107
107
|
const stepVl = calculateStepValue(maxPointValue, minPointValue, divisionQuantity);
|
|
108
108
|
const inverseStepVl = 1 / stepVl;
|