UNPKG

@hitachivantara/uikit-react-lab

Version:

Contributed React components for the NEXT UI Kit.

42 lines (41 loc) 1.49 kB
"use strict"; Object.defineProperties(exports, { __esModule: { value: true }, [Symbol.toStringTag]: { value: "Module" } }); const jsxRuntime = require("react/jsx-runtime"); const react = require("react"); const uikitReactCore = require("@hitachivantara/uikit-react-core"); const useFlowNode = require("../../hooks/useFlowNode.cjs"); const Select = ({ param, data }) => { const { id, label, multiple = false, options } = param; const { setNodeData } = useFlowNode.useFlowNodeUtils(); const [opts, setOpts] = react.useState( data[id] ? Array.isArray(data[id]) ? data[id] : [data[id]] : void 0 ); const handleChange = (item) => { const newOpts = Array.isArray(item) ? item.map((x) => x.id) : item?.id ?? void 0; setNodeData((prev) => ({ ...prev, [id]: newOpts })); setOpts( newOpts ? Array.isArray(newOpts) ? newOpts : [newOpts] : void 0 ); }; return /* @__PURE__ */ jsxRuntime.jsx( uikitReactCore.HvDropdown, { className: "nodrag", disablePortal: true, label, values: options?.map((option) => { const optionId = typeof option === "string" ? option : option.id; const optionLabel = typeof option === "string" ? option : option.label; return { id: optionId, label: optionLabel, selected: !!opts?.find((opt) => opt === optionId) }; }), onChange: handleChange, maxHeight: 100, multiSelect: multiple } ); }; exports.default = Select;