@nexusui/components
Version:
These are custom components specially-developed for NexusUI applications. They will make your life easier by giving you out-of-the-box implementations for various high-level UI elements that you can drop directly into your application.
2 lines (1 loc) • 1.41 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),r=require("react"),o=require("@mui/material/Stack"),t=require("../common/FormCheckbox/FormCheckbox.js"),l=require("../common/FormToggle/FormToggle.js"),s=require("../common/FormSelect/FormSelect.js"),u=require("../common/FormRadio/FormRadio.js"),a=require("../common/FormInput/FormInput.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var i=n(o);const m=({type:r,id:o,label:n,name:i,rules:m,options:c=[],properties:d})=>{switch(r){case"text":return e.jsx(a.FormInput,{label:n,name:i,rules:m,id:o,...d},`text-${i}`);case"radio":return e.jsx(u.FormRadio,{controllerProps:{defaultValue:d?.defaultValue||""},options:c,name:i,rules:m,id:o,...d},`radio-${i}`);case"select":return e.jsx(s.FormSelect,{label:n,name:i,rules:m,options:c,id:o,...d},`select-${i}`);case"switch":return e.jsx(l.FormToggle,{label:n,name:i,rules:m,controllerProps:{defaultValue:d?.defaultValue||""},id:o,...d},`switch-${i}`);case"checkbox":return e.jsx(t.FormCheckbox,{label:n,name:i,rules:m,...d},`checkbox-${i}`);default:return null}};exports.ConditionalFormComponent=o=>{const{fields:t,visible:l=!0,...s}=o,u=r.useMemo((()=>t.map((r=>e.jsx(m,{...r},r.id)))),[t]);return r.useMemo((()=>"function"!=typeof l?l:l()),[l])?e.jsx(i.default,{className:"NexusConditionalForm-root",spacing:4,...s,children:u}):null};