UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

62 lines (61 loc) 1.93 kB
"use strict"; Object.defineProperty(exports, Symbol.toStringTag, { value: "Module" }); const jsxRuntime = require("react/jsx-runtime"); const React = require("react"); const Context = require("../../Context.cjs"); const index = require("../../utils/index.cjs"); const Dropdown = require("../../../Dropdown/Dropdown.cjs"); const Operator = ({ id, combinator, attribute, operator }) => { const { dispatchAction, attributes, operators, labels, readOnly } = Context.useQueryBuilderContext(); const value = operator ?? null; const values = React.useMemo(() => { const attributeSpec = attribute && attributes ? attributes[attribute] : null; const options = attributeSpec ? operators[attributeSpec.type].filter( (o) => o.combinators.includes(combinator) ) ?? [] : []; return options.map((key) => ({ id: key.operator, label: key.label, selected: key.operator === value })); }, [attribute, attributes, operators, combinator, value]); return /* @__PURE__ */ jsxRuntime.jsx( Dropdown.HvDropdown, { required: true, status: "valid", singleSelectionToggle: false, label: labels.rule.operator.label, placeholder: labels.rule.operator.placeholder, values, disabled: values.length === 0, readOnly, onChange: (selected) => { if (selected?.id) { dispatchAction({ type: "set-operator", id, operator: selected.id.toString(), value: value === "range" || selected.id === "range" ? null : void 0 }); } else { dispatchAction({ type: "set-operator", id, operator: null, value: null }); } }, showSearch: index.isBigList(values), ...index.isBigList(values) && { virtualized: true, height: 300 } } ); }; React.memo(Operator); exports.Operator = Operator;