UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

87 lines (86 loc) 3.18 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const jsxRuntime = require("react/jsx-runtime"); const React = require("react"); const ClickAwayListener = require("@mui/base/ClickAwayListener"); const Popper = require("@mui/base/Popper"); const utils = require("@mui/material/utils"); const uikitReactUtils = require("@hitachivantara/uikit-react-utils"); const document = require("../../utils/document.cjs"); const setId = require("../../utils/setId.cjs"); const context = require("../context.cjs"); const Suggestions_styles = require("./Suggestions.styles.cjs"); const SelectionList = require("../../SelectionList/SelectionList.cjs"); const ListItem = require("../../ListContainer/ListItem/ListItem.cjs"); const HvSuggestions = React.forwardRef(function HvSuggestions2(props, extRef) { const { id: idProp, className, classes: classesProp, expanded = false, enablePortal, open: openProp, anchorEl, suggestionValues, onClose, onSuggestionSelected, popperProps, ...others } = uikitReactUtils.useDefaultProps("HvSuggestions", props); const { classes, cx } = Suggestions_styles.useClasses(classesProp); const { rootId } = uikitReactUtils.useTheme(); const context$1 = React.useContext(context.HvFormElementContext); const id = idProp ?? setId.setId(context$1.id, "suggestions"); const ref = React.useRef(null); const forkedRef = utils.useForkRef(ref, extRef); const [isOpen, setIsOpen] = React.useState(expanded); React.useEffect(() => { setIsOpen(expanded); }, [expanded]); return /* @__PURE__ */ jsxRuntime.jsx( "div", { id, ref: forkedRef, className: cx(classes.root, className), ...others, children: /* @__PURE__ */ jsxRuntime.jsx( ClickAwayListener.ClickAwayListener, { onClickAway: (event) => { setIsOpen(false); onClose?.(event); }, children: /* @__PURE__ */ jsxRuntime.jsx( Popper.Popper, { style: { // @ts-ignore "--popper-width": enablePortal ? `${anchorEl?.clientWidth}px` : "100%" }, open: openProp ?? isOpen, disablePortal: !enablePortal, container: enablePortal ? document.getContainerElement(rootId) : void 0, anchorEl, className: cx(classes.popper, { [classes.portal]: enablePortal }), ...popperProps, children: /* @__PURE__ */ jsxRuntime.jsx( SelectionList.HvSelectionList, { className: classes.list, id: setId.setId(id, "list"), onChange: onSuggestionSelected, children: suggestionValues?.map((item) => /* @__PURE__ */ jsxRuntime.jsx(ListItem.HvListItem, { value: item, disabled: item.disabled, children: item.label }, item.id)) } ) } ) } ) } ); }); exports.suggestionsClasses = Suggestions_styles.staticClasses; exports.HvSuggestions = HvSuggestions;