UNPKG

@hitachivantara/uikit-react-core

Version:
50 lines (49 loc) 1.71 kB
import { useQueryBuilderContext } from "../Context.js"; import "../types.js"; import { BooleanValue } from "./BooleanValue.js"; import { DateTimeValue } from "./DateTimeValue.js"; import { EmptyValue } from "./EmptyValue.js"; import { NumericValue } from "./NumericValue.js"; import { TextValue } from "./TextValue.js"; import { jsx } from "react/jsx-runtime"; //#region src/QueryBuilder/Value/Value.tsx var getRenderer = (renderer, operator) => typeof renderer === "function" && renderer || typeof renderer === "object" && operator && renderer[operator] || typeof renderer === "object" && renderer["DEFAULT"]; var Value = ({ id, attribute, operator, value: valueProp }) => { const { attributes, initialTouched, renderers, emptyRenderer } = useQueryBuilderContext(); const attrType = attributes?.[attribute]?.type; if (emptyRenderer?.find((op) => op === operator)) return /* @__PURE__ */ jsx(EmptyValue, { id }); if (attrType && renderers?.[attrType]) { const Renderer = getRenderer(renderers[attrType], operator) || getRenderer(renderers["DEFAULT"], operator) || void 0; if (Renderer) return /* @__PURE__ */ jsx(Renderer, { id, attribute, operator, value: valueProp }); } switch (attrType) { case "boolean": return /* @__PURE__ */ jsx(BooleanValue, { id, value: !!valueProp }); case "numeric": return /* @__PURE__ */ jsx(NumericValue, { id, operator, value: valueProp, initialTouched }); case "dateandtime": return /* @__PURE__ */ jsx(DateTimeValue, { id, operator, value: valueProp, initialTouched }); default: return /* @__PURE__ */ jsx(TextValue, { id, value: valueProp, initialTouched }); } }; //#endregion export { Value };