UNPKG

@hitachivantara/uikit-react-core

Version:

Core React components for the NEXT Design System.

77 lines (76 loc) 2.44 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 types = require("../../types.cjs"); const EmptyValue = require("./EmptyValue/EmptyValue.cjs"); const TextValue = require("./TextValue/TextValue.cjs"); const DateTimeValue = require("./DateTimeValue/DateTimeValue.cjs"); const NumericValue = require("./NumericValue/NumericValue.cjs"); const BooleanValue = require("./BooleanValue/BooleanValue.cjs"); const getRenderer = (renderer, operator) => ( // 1. Custom renderer typeof renderer === "function" && renderer || // 2. Custom operator renderer typeof renderer === "object" && operator && renderer[operator] || // 3. Custom DEFAULT renderer typeof renderer === "object" && renderer[types.defaultRendererKey] ); const Value = ({ id, attribute, operator, value: valueProp }) => { const { attributes, initialTouched, renderers, emptyRenderer } = Context.useQueryBuilderContext(); const attrType = attributes?.[attribute]?.type; if (emptyRenderer?.find((op) => op === operator)) { return /* @__PURE__ */ jsxRuntime.jsx(EmptyValue.EmptyValue, { id }); } if (attrType && renderers?.[attrType]) { const Renderer = getRenderer(renderers[attrType], operator) || getRenderer(renderers[types.defaultRendererKey], operator) || void 0; if (Renderer) { return /* @__PURE__ */ jsxRuntime.jsx( Renderer, { id, attribute, operator, value: valueProp } ); } } switch (attrType) { case "boolean": { return /* @__PURE__ */ jsxRuntime.jsx(BooleanValue.BooleanValue, { id, value: !!valueProp }); } case "numeric": { return /* @__PURE__ */ jsxRuntime.jsx( NumericValue.NumericValue, { id, operator, value: valueProp, initialTouched } ); } case "dateandtime": { return /* @__PURE__ */ jsxRuntime.jsx( DateTimeValue.DateTimeValue, { id, operator, value: valueProp, initialTouched } ); } case "text": case "textarea": default: return /* @__PURE__ */ jsxRuntime.jsx(TextValue.TextValue, { id, value: valueProp, initialTouched }); } }; React.memo(Value); exports.Value = Value;