UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

82 lines (81 loc) 2.9 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const jsxRuntime = require("react/jsx-runtime"); const ClickAwayListener = require("@mui/base/ClickAwayListener"); const Portal = require("@mui/base/Portal"); const uikitReactUtils = require("@hitachivantara/uikit-react-utils"); const document = require("../utils/document.cjs"); const context = require("./context.cjs"); const Panel = require("../Panel/Panel.cjs"); const BaseDropdownPanel = ({ classes, containerId, children, disablePortal, onContainerKeyDown, onClickAway }) => { const { cx } = uikitReactUtils.useCss(); const { popperPlacement, popper, referenceElement, setPopperElement } = context.useBaseDropdownContext(); const { rootId } = uikitReactUtils.useTheme(); const extensionWidth = referenceElement ? referenceElement?.offsetWidth : "inherit"; const container = ( // eslint-disable-next-line jsx-a11y/no-static-element-interactions /* @__PURE__ */ jsxRuntime.jsxs( "div", { ref: setPopperElement, className: classes.container, onKeyDown: onContainerKeyDown, style: popper?.styles.popper, ...popper?.attributes.popper, children: [ popperPlacement?.includes("bottom") && /* @__PURE__ */ jsxRuntime.jsx( "div", { style: { width: extensionWidth }, className: cx(classes.inputExtensionOpen, { [classes.inputExtensionLeftPosition]: popperPlacement.includes("end") }) } ), /* @__PURE__ */ jsxRuntime.jsx( Panel.HvPanel, { id: containerId, "data-popper-placement": popperPlacement, className: cx(classes.panel, { [classes.panelOpenedUp]: popperPlacement?.includes("top"), [classes.panelOpenedDown]: popperPlacement?.includes("bottom") }), children } ), popperPlacement?.includes("top") && /* @__PURE__ */ jsxRuntime.jsx( "div", { style: { width: extensionWidth }, className: cx( classes.inputExtensionOpen, classes.inputExtensionOpenShadow, { [classes.inputExtensionFloatRight]: popperPlacement.includes("end"), [classes.inputExtensionFloatLeft]: popperPlacement.includes("start") } ) } ) ] } ) ); return /* @__PURE__ */ jsxRuntime.jsx( Portal.Portal, { container: document.getContainerElement(rootId), disablePortal, children: /* @__PURE__ */ jsxRuntime.jsx(ClickAwayListener.ClickAwayListener, { onClickAway, children: container }) } ); }; exports.BaseDropdownPanel = BaseDropdownPanel;