UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

64 lines (63 loc) 2.15 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const jsxRuntime = require("react/jsx-runtime"); const React = require("react"); const uikitReactUtils = require("@hitachivantara/uikit-react-utils"); const Select_styles = require("./Select.styles.cjs"); const BaseDropdown = require("../BaseDropdown/BaseDropdown.cjs"); const Panel = require("../Panel/Panel.cjs"); const SelectionList = require("../SelectionList/SelectionList.cjs"); const ListItem = require("../ListContainer/ListItem/ListItem.cjs"); const Option = ({ ...props }) => /* @__PURE__ */ jsxRuntime.jsx(ListItem.HvListItem, { ...props }); const HvSelect = (props) => { const { className, classes: classesProp, onChange, disabled, value, children, ...others } = uikitReactUtils.useDefaultProps("HvPaginationSelect", props); const { classes } = Select_styles.useClasses(classesProp); const [open, setOpen] = React.useState(false); const handleSelect = (evt, val) => { onChange?.(evt, val); setOpen(false); }; const handleToggle = (_evt, s) => { setOpen(s); }; const setFocusToContent = (containerRef) => { const listItems = containerRef != null ? [...containerRef.getElementsByTagName("li")] : []; listItems.every((listItem) => { if (listItem.tabIndex >= 0) { listItem.focus(); return false; } return true; }); }; return /* @__PURE__ */ jsxRuntime.jsx( BaseDropdown.HvBaseDropdown, { className, classes: { selection: classes.selection, header: classes.header, headerOpen: classes.headerOpen, root: classes.root }, expanded: open, onToggle: handleToggle, onContainerCreation: setFocusToContent, placeholder: value, disabled, variableWidth: true, ...others, children: /* @__PURE__ */ jsxRuntime.jsx(Panel.HvPanel, { children: /* @__PURE__ */ jsxRuntime.jsx(SelectionList.HvSelectionList, { value, onChange: handleSelect, children }) }) } ); }; exports.Option = Option; exports.default = HvSelect;