@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) • 3.99 kB
JavaScript
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react/jsx-runtime"),t=require("react"),a=require("@mui/material/Typography"),r=require("@mui/material/Grid2"),l=require("react-hook-form"),o=require("@mui/icons-material/RadioButtonCheckedOutlined"),i=require("@mui/icons-material/RadioButtonUncheckedOutlined"),n=require("@mui/material/Box"),s=require("../locales/index.js"),u=require("./locale.json.js"),c=require("../util/constants.js"),d=require("../Dialog/Dialog.container.js"),m=require("../common/FormInput/FormInput.js"),x=require("../common/FormSelect/FormSelect.js"),h=require("../common/FormRadio/FormRadio.js");function p(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var j=p(a),b=p(r),f=p(o),g=p(i),C=p(n);const q="NexusCreateDocument";exports.CreateDocumentComponent=({title:a,initialDocumentName:r="",documentNameLabel:o,projectOptions:i=[],initialProject:n="",disableProject:p=!1,solutionOptions:v=[],initialSolution:y="",solutionConnectLabel:N="",onCancel:F,onCreate:$,sx:D,...P})=>{const S=s.useTranslate(u.default),k={name:r||S("Untitled"),project:n||i[0]?.value||"",solution:y||v[0]?.value||""},R=l.useForm({defaultValues:k,mode:"onChange"}),{handleSubmit:z,formState:L,getValues:M}=R,O=e=>{$(e)},{isValid:W}=L,w=t.useMemo((()=>((t,a)=>{const r=[];return t.forEach((t=>{const l={value:t.value,labelPlacement:"start",disabled:t.disabled,sx:e=>({height:"74px",mr:0,ml:0,mt:4,border:"1px solid",borderColor:"grey.100",bgcolor:a("solution")===t.value?e=>`rgba(${e.vars.palette.primary.mainChannel} / 0.12)`:"unset",borderRadius:2,p:4,...e.applyStyles("dark",{borderColor:"grey.600"}),".MuiFormControlLabel-label":{width:"100%"},...a("solution")===t.value&&{".NexusCreateDocument-solutionLabel":{fontWeight:700}}}),label:e.jsx(b.default,{container:!0,size:12,sx:{ml:0,mt:0},children:e.jsx(b.default,{container:!0,size:12,direction:"column",children:e.jsx(j.default,{className:`${q}-solutionLabel`,children:t.label})})})};r.push(l)})),r})(v,M)),[v,M]);return e.jsx(d.Dialog,{onClose:F,maxWidth:"lg",sx:[{"& .MuiPaper-root":{width:"448px",maxHeight:{xs:"calc(100% - 32px)",sm:"calc(100% - 64px)"}}},...Array.isArray(D)?D:[D]],className:`${q}-root`,title:a||S("Create Document"),rightActions:[{"data-testid":`${q}-cancel`,className:`${q}-cancel`,"aria-label":S("Cancel"),children:S("Cancel"),onClick:F},{"data-testid":`${q}-create`,className:`${q}-create`,"aria-label":S("Create"),children:S("Create"),variant:"contained",onClick:z(O),disabled:!W}],...P,children:e.jsx(C.default,{sx:{mt:4},children:e.jsxs(l.FormProvider,{...R,children:[e.jsxs(b.default,{container:!0,spacing:6,children:[e.jsx(b.default,{className:`${q}-name`,size:12,children:e.jsx(m.FormInput,{fullWidth:!0,name:"name",rules:{required:S("{{0}} is required",{0:o||S("Document Name")})},label:o||S("Document Name"),"aria-label":o||"Document Name","data-testid":`${q}-name`,onFocus:e=>{(e.target.value&&e.target.value===S("Untitled")||e.target.value===r)&&e.target.select()},autoFocus:!0,onKeyDown:e=>{e.key===c.KeyCodes.ENTER&&(e.stopPropagation(),e.preventDefault(),z(O)())}})}),i.length>0&&e.jsx(b.default,{className:`${q}-project`,size:12,children:e.jsx(x.FormSelect,{MenuProps:{PaperProps:{style:{maxHeight:"200px"}}},rules:{required:!0},disabled:p,fullWidth:!0,name:"project",label:S("Project"),"aria-label":"Project Select","data-testid":`${q}-project`,options:i})})]}),v.length>0&&e.jsxs(e.Fragment,{children:[e.jsx(b.default,{className:`${q}-solutionConnectLabel`,container:!0,spacing:4,sx:{mt:8},children:e.jsx(b.default,{size:12,children:e.jsx(j.default,{variant:"body2",sx:{fontWeight:700},children:N||S("Connect with Solution")})})}),e.jsx(b.default,{container:!0,spacing:4,children:e.jsx(b.default,{className:`${q}-solution`,size:12,children:e.jsx(h.FormRadio,{rules:{required:!0},name:"solution",options:w,radioProps:{checkedIcon:e.jsx(f.default,{}),icon:e.jsx(g.default,{})},"aria-label":"Solution","data-testid":`${q}-solution`})})})]})]})})})};