import{e as F,d as o,m as E,i as I,r as n,j as e,z as D,A as O,B as R,b as k,J as L,q as f}from"./index-3c1b2661.js";import{c as A,a as M,u as T}from"./index.esm-7989c879.js";import{S as w,u as Y}from"./updateMaxHeight-4e644a5f.js";import{Y as q,h as B,a as _,y as V,d as K}from"./instanceValidation-ad252104.js";import{D as U,N as $,R as z,S as H,a as Q,C as G,f as J,b as W,s as X,c as Z,d as ee}from"./NetworkDevicesForm-6bd7a471.js";import{M as p,P as se,D as te,N as ie,R as ae,S as oe,a as re,C as ne,Y as y}from"./ProfileFormMenu-402fd3a6.js";import{P as le,p as ce}from"./ProfileDetailsForm-2d8b9325.js";import"./instanceConfigInheritance-8da60590.js";import"./formFields-e7157cb4.js";import"./ConfigurationTable-5663621c.js";import"./ConfigFieldDescription-f8ae8325.js";import"./StorageVolumeForm-754dcb6d.js";import"./StorageVolumeFormMenu-3787a809.js";import"./FormMenuItem-c982b037.js";import"./DiskSizeSelector-f5c6feab.js";import"./networks-a82d149f.js";import"./AutoExpandingTextArea-38ef4775.js";const Ee=()=>{var u;const l=F(),r=o.useNotify(),{project:a}=E(),c=I(),h=n.useState(null),[i,S]=n.useState(p),[j,x]=n.useState(!1);if(!a)return e.jsx(e.Fragment,{children:"Missing project"});const C=A().shape({name:M().test("deduplicate","A profile with this name already exists",s=>D(s,a,h,"profiles")).required()}),m=()=>{Y("form-contents","p-bottom-controls")};n.useEffect(m,[(u=r.notification)==null?void 0:u.message,i]),O("resize",m);const t=T({initialValues:{name:"",devices:[],readOnly:!1,type:"profile"},validationSchema:C,onSubmit:s=>{const b=s.yaml?V(s.yaml):d(s);L(JSON.stringify(b),a).then(()=>{l(`/ui/project/${a}/profiles`,r.queue(r.success(`Profile ${s.name} created.`)))}).catch(v=>{t.setSubmitting(!1),r.failure("Profile creation failed",v)}).finally(()=>{c.invalidateQueries({queryKey:[f.profiles]}),c.invalidateQueries({queryKey:[f.projects,a]})})}}),d=s=>({...ce(s),devices:J(s.devices),config:{...W(s),...X(s),...Z(s),...ee(s)}}),g=s=>{t.values.yaml&&s!==y&&t.setFieldValue("yaml",void 0),S(s)},N=()=>{x(s=>!s)};function P(){const s=d(t.values);return K(s)}return e.jsxs(R,{title:"Create a profile",contentClassName:"create-profile",children:[e.jsxs(o.Form,{onSubmit:t.handleSubmit,stacked:!0,className:"form",children:[e.jsx(se,{active:i,setActive:g,isConfigOpen:j,toggleConfigOpen:N,hasName:!!t.values.name,formik:t}),e.jsx(o.Row,{className:"form-contents",children:e.jsxs(o.Col,{size:12,children:[e.jsx(k,{}),i===p&&e.jsx(le,{formik:t,isEdit:!1}),i===te&&e.jsx(U,{formik:t,project:a}),i===ie&&e.jsx($,{formik:t,project:a}),i===ae&&e.jsx(z,{formik:t}),i===oe&&e.jsx(H,{formik:t}),i===re&&e.jsx(Q,{formik:t}),i===ne&&e.jsx(G,{formik:t}),i===y&&e.jsx(q,{yaml:P(),setYaml:s=>void t.setFieldValue("yaml",s),children:e.jsx(o.Notification,{severity:"caution",title:"Before you edit the YAML",children:"Changes will be discarded, when switching back to the guided forms."})})]})},i)]}),e.jsxs("div",{className:"p-bottom-controls",id:"form-footer",children:[e.jsx("hr",{}),e.jsx(o.Row,{className:"u-align--right",children:e.jsxs(o.Col,{size:12,children:[e.jsx(o.Button,{appearance:"base",onClick:()=>l(`/ui/project/${a}/profiles`),children:"Cancel"}),e.jsx(w,{isSubmitting:t.isSubmitting,isDisabled:!t.isValid||!t.values.name||B(t)||_(t),buttonLabel:"Create",onClick:()=>void t.submitForm()})]})})]})]})};export{Ee as default};
