MINI Sh3ll
import{j as t,d as a,r as w,bi as F,b as E}from"./index-13b2882d.js";import{F as m}from"./FormMenuItem-c8a1a121.js";import{f as r,I as h,c as l,o as d}from"./formFields-fc140429.js";import{A as N}from"./AutoExpandingTextArea-3a779a81.js";import{D as O}from"./DiskSizeSelector-dd5e138a.js";const f="Project details",y="Resource limits",V="Clusters",S="Instances",I="Device usage",R="Networks",P=({isRestrictionsOpen:e,toggleRestrictionsOpen:s,isRestrictionsDisabled:i,active:b,setActive:p})=>{const c={active:b,setActive:p};return t.jsx("div",{className:"p-side-navigation--accordion form-navigation",children:t.jsx("nav",{"aria-label":"Project form navigation",children:t.jsxs("ul",{className:"p-side-navigation__list",children:[t.jsx(m,{label:f,...c}),t.jsx(m,{label:y,...c}),t.jsxs("li",{className:"p-side-navigation__item",children:[t.jsx(a.Button,{type:"button",className:"p-side-navigation__accordion-button","aria-expanded":e?"true":"false",onClick:s,disabled:i,children:"Restrictions"}),t.jsxs("ul",{className:"p-side-navigation__list","aria-expanded":e?"true":"false",children:[t.jsx(m,{label:V,...c}),t.jsx(m,{label:S,...c}),t.jsx(m,{label:I,...c}),t.jsx(m,{label:R,...c})]})]})]})})})},$=e=>({name:e.name,description:e.description}),q=e=>{const s=i=>{if(i!==void 0)return i?"true":"false"};return{[r("restricted")]:s(e.restricted),[r("features_images")]:s(e.features_images),[r("features_profiles")]:s(e.features_profiles),[r("features_networks")]:s(e.features_networks),[r("features_networks_zones")]:s(e.features_networks_zones),[r("features_storage_buckets")]:s(e.features_storage_buckets),[r("features_storage_volumes")]:s(e.features_storage_volumes)}},k=({formik:e,project:s,isEdit:i})=>{const b=()=>e.values.features_images===void 0&&e.values.features_profiles===void 0&&e.values.features_networks===void 0&&e.values.features_networks_zones===void 0&&e.values.features_storage_buckets===void 0&&e.values.features_storage_volumes===void 0?"default":e.values.features_images!==!0||e.values.features_profiles!==!0||e.values.features_networks!==!1||e.values.features_networks_zones!==!1||e.values.features_storage_buckets!==!0||e.values.features_storage_volumes!==!0?"customised":"default",[p,c]=w.useState(b()),u=e.values.name==="default",_=e.values.readOnly,o=s?!F(s):!1,C=(s==null?void 0:s.config["features.networks"])==="true",g=(s==null?void 0:s.config["features.networks.zones"])==="true";return t.jsx("div",{className:"details",children:t.jsx(a.Row,{children:t.jsxs(a.Col,{size:8,children:[t.jsx(a.Input,{id:"name",name:"name",type:"text",label:"Project name",placeholder:"Enter name",onBlur:e.handleBlur,onChange:e.handleChange,value:e.values.name,error:e.touched.name?e.errors.name:null,disabled:e.values.name==="default"||i,help:e.values.name!=="default"&&"Click the name in the header to rename the project",required:!0}),t.jsx(N,{id:"description",name:"description",label:"Description",placeholder:"Enter description",onBlur:e.handleBlur,onChange:e.handleChange,value:e.values.description,disabled:e.values.readOnly,dynamicHeight:!0}),t.jsx(a.Select,{id:"features",name:"features",label:"Features",onChange:v=>{c(v.target.value),e.setFieldValue("features_images",!0),e.setFieldValue("features_profiles",!0),e.setFieldValue("features_networks",!1),e.setFieldValue("features_networks_zones",!1),e.setFieldValue("features_storage_buckets",!0),e.setFieldValue("features_storage_volumes",!0)},value:p,options:[{label:"Default LXD",value:"default"},{label:"Customised",value:"customised"}],disabled:_||u||o&&C||o&&g}),p==="customised"&&t.jsxs(t.Fragment,{children:["Allow the following features:",t.jsx(a.CheckboxInput,{id:"features_images",name:"features_images",label:"Images",onChange:()=>void e.setFieldValue("features_images",!e.values.features_images),checked:e.values.features_images,disabled:_||u||o}),t.jsx(a.CheckboxInput,{id:"features_profiles",name:"features_profiles",label:t.jsxs(t.Fragment,{children:["Profiles",t.jsx(a.Tooltip,{className:"checkbox-label-tooltip",message:`Allow profiles to enable custom
restrictions on a project level`,children:t.jsx(a.Icon,{name:"information"})})]}),onChange:()=>{const v=!e.values.features_profiles;e.setFieldValue("features_profiles",v),v||e.setFieldValue("restricted",!1)},checked:e.values.features_profiles,disabled:_||u||o}),t.jsx(a.CheckboxInput,{id:"features_networks",name:"features_networks",label:"Networks",onChange:()=>void e.setFieldValue("features_networks",!e.values.features_networks),checked:e.values.features_networks,disabled:_||u||o}),t.jsx(a.CheckboxInput,{id:"features_networks_zones",name:"features_networks_zones",label:"Network zones",onChange:()=>void e.setFieldValue("features_networks_zones",!e.values.features_networks_zones),checked:e.values.features_networks_zones,disabled:_||u||o&&g}),t.jsx(a.CheckboxInput,{id:"features_storage_buckets",name:"features_storage_buckets",label:"Storage buckets",onChange:()=>void e.setFieldValue("features_storage_buckets",!e.values.features_storage_buckets),checked:e.values.features_storage_buckets,disabled:_||u||o}),t.jsx(a.CheckboxInput,{id:"features_storage_volumes",name:"features_storage_volumes",label:"Storage volumes",onChange:()=>void e.setFieldValue("features_storage_volumes",!e.values.features_storage_volumes),checked:e.values.features_storage_volumes,disabled:_||u||o})]}),t.jsx("hr",{}),t.jsx(a.CheckboxInput,{id:"custom_restrictions",name:"custom_restrictions",label:t.jsxs(t.Fragment,{children:["Allow custom restrictions on a project level",t.jsx(a.Tooltip,{className:"checkbox-label-tooltip",message:`Custom restrictions are only available
to projects with enabled profiles`,children:t.jsx(a.Icon,{name:"information"})})]}),onChange:()=>void e.setFieldValue("restricted",!e.values.restricted),checked:e.values.restricted,disabled:e.values.readOnly||e.values.features_profiles===!1&&p==="customised"})]})})})},H=e=>{var s,i,b,p,c,u,_,o;return{[r("limits_instances")]:(s=e.limits_instances)==null?void 0:s.toString(),[r("limits_containers")]:(i=e.limits_containers)==null?void 0:i.toString(),[r("limits_virtual_machines")]:(b=e.limits_virtual_machines)==null?void 0:b.toString(),[r("limits_disk")]:(p=e.limits_disk)==null?void 0:p.toString(),[r("limits_networks")]:(c=e.limits_networks)==null?void 0:c.toString(),[r("limits_cpu")]:(u=e.limits_cpu)==null?void 0:u.toString(),[r("limits_memory")]:(_=e.limits_memory)==null?void 0:_.toString(),[r("limits_processes")]:(o=e.limits_processes)==null?void 0:o.toString()}},D=({formik:e})=>t.jsx(h,{rows:[l({formik:e,name:"limits_instances",label:"Max number of instances",defaultValue:"",children:t.jsx(a.Input,{placeholder:"Enter number",min:0,type:"number"})}),l({formik:e,name:"limits_containers",label:"Max number of containers",defaultValue:"",children:t.jsx(a.Input,{placeholder:"Enter number",min:0,type:"number"})}),l({formik:e,name:"limits_virtual_machines",label:"Max number of VMs",defaultValue:"",children:t.jsx(a.Input,{placeholder:"Enter number",min:0,type:"number"})}),l({formik:e,name:"limits_disk",label:"Max disk space (used by all instances)",defaultValue:"",children:t.jsx(O,{setMemoryLimit:s=>void e.setFieldValue("limits_disk",s)})}),l({formik:e,name:"limits_networks",label:"Max number of networks",defaultValue:"",children:t.jsx(a.Input,{placeholder:"Enter number",min:0,type:"number"})}),l({formik:e,name:"limits_cpu",label:"Max sum of CPU",defaultValue:"",children:t.jsx(a.Input,{placeholder:"Enter number",min:0,type:"number"})}),l({formik:e,name:"limits_memory",label:"Max sum of memory limits",defaultValue:"",children:t.jsx(a.Input,{placeholder:"Enter number",min:0,type:"number"})}),l({formik:e,name:"limits_processes",label:"Max sum of processes",defaultValue:"-",children:t.jsx(a.Input,{placeholder:"Enter number",min:0,type:"number"})})]}),n=[{label:"Select option",value:"",disabled:!0},{label:"Allow",value:"allow"},{label:"Block",value:"block"}],j=[{label:"Select option",value:"",disabled:!0},{label:"Allow",value:"allow"},{label:"Isolated",value:"isolated"},{label:"Unprivileged",value:"unprivileged"}],x=[{label:"Select option",value:"",disabled:!0},{label:"Allow",value:"allow"},{label:"Block",value:"block"},{label:"Managed",value:"managed"}],J=e=>({[r("restricted_cluster_groups")]:e.restricted_cluster_groups,[r("restricted_cluster_target")]:e.restricted_cluster_target}),z=({formik:e})=>t.jsx(h,{rows:[l({formik:e,name:"restricted_cluster_groups",label:"Cluster groups targeting",defaultValue:"",children:t.jsx(a.Input,{placeholder:"Enter value",type:"text"})}),l({formik:e,name:"restricted_cluster_target",label:"Direct cluster targeting",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})})]}),W=e=>({[r("restricted_virtual_machines_low_level")]:e.restricted_virtual_machines_low_level,[r("restricted_containers_low_level")]:e.restricted_containers_low_level,[r("restricted_containers_nesting")]:e.restricted_containers_nesting,[r("restricted_containers_privilege")]:e.restricted_containers_privilege,[r("restricted_container_interception")]:e.restricted_container_interception,[r("restrict_snapshots")]:e.restrict_snapshots,[r("restricted_idmap_uid")]:e.restricted_idmap_uid,[r("restricted_idmap_gid")]:e.restricted_idmap_gid}),A=({formik:e})=>t.jsx(h,{rows:[l({formik:e,name:"restricted_virtual_machines_low_level",label:"Low level VM operations",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})}),l({formik:e,name:"restricted_containers_low_level",label:"Low level container operations",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})}),l({formik:e,name:"restricted_containers_nesting",label:"Container nesting",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})}),l({formik:e,name:"restricted_containers_privilege",label:"Container privilege",defaultValue:"",readOnlyRenderer:s=>d(s,j),children:t.jsx(a.Select,{options:j})}),l({formik:e,name:"restricted_container_interception",label:"Container interception",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})}),l({formik:e,name:"restrict_snapshots",label:"Snapshot creation",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})}),l({formik:e,name:"restricted_idmap_uid",label:"Idmap UID",defaultValue:"",children:t.jsx(a.Input,{placeholder:"Enter UID ranges",type:"text"})}),l({formik:e,name:"restricted_idmap_gid",label:"Idmap GID",defaultValue:"",children:t.jsx(a.Input,{placeholder:"Enter GID ranges",type:"text"})})]}),X=e=>({[r("restricted_devices_disk")]:e.restricted_devices_disk,[r("restricted_devices_disk_paths")]:e.restricted_devices_disk_paths,[r("restricted_devices_gpu")]:e.restricted_devices_gpu,[r("restricted_devices_infiniband")]:e.restricted_devices_infiniband,[r("restricted_devices_nic")]:e.restricted_devices_nic,[r("restricted_devices_pci")]:e.restricted_devices_pci,[r("restricted_devices_unix_block")]:e.restricted_devices_unix_block,[r("restricted_devices_unix_char")]:e.restricted_devices_unix_char,[r("restricted_devices_unix_hotplug")]:e.restricted_devices_unix_hotplug,[r("restricted_devices_usb")]:e.restricted_devices_usb}),M=({formik:e})=>t.jsx(h,{rows:[l({formik:e,name:"restricted_devices_disk",label:t.jsxs(t.Fragment,{children:["Disk devices",t.jsx("br",{}),"(except the root one)"]}),defaultValue:"",readOnlyRenderer:s=>d(s,x),children:t.jsx(a.Select,{options:x})}),l({formik:e,name:"restricted_devices_disk_paths",label:"Disk devices path",defaultValue:"",children:t.jsx(a.Input,{placeholder:"Enter paths",type:"text"})}),l({formik:e,name:"restricted_devices_gpu",label:"GPU devices",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})}),l({formik:e,name:"restricted_devices_infiniband",label:"Infiniband devices",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})}),l({formik:e,name:"restricted_devices_nic",label:"Network devices",defaultValue:"",readOnlyRenderer:s=>d(s,x),children:t.jsx(a.Select,{options:x})}),l({formik:e,name:"restricted_devices_pci",label:"PCI devices",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})}),l({formik:e,name:"restricted_devices_unix_block",label:"Unix-block devices",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})}),l({formik:e,name:"restricted_devices_unix_char",label:"Unix-char devices",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})}),l({formik:e,name:"restricted_devices_unix_hotplug",label:"Unix-hotplug devices",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})}),l({formik:e,name:"restricted_devices_usb",label:"USB devices",defaultValue:"",readOnlyRenderer:s=>d(s,n),children:t.jsx(a.Select,{options:n})})]}),Z=e=>({[r("restricted_network_access")]:e.restricted_network_access,[r("restricted_network_subnets")]:e.restricted_network_subnets,[r("restricted_network_uplinks")]:e.restricted_network_uplinks,[r("restricted_network_zones")]:e.restricted_network_zones}),T=({formik:e})=>t.jsx(h,{rows:[l({formik:e,name:"restricted_network_access",label:"Available networks",defaultValue:"",children:t.jsx(a.Textarea,{placeholder:"Enter network names"})}),l({formik:e,name:"restricted_network_subnets",label:"Network subnets",defaultValue:"",children:t.jsx(a.Textarea,{placeholder:"Enter network subnets"})}),l({formik:e,name:"restricted_network_uplinks",label:"Network uplinks",defaultValue:"",children:t.jsx(a.Textarea,{placeholder:"Enter network names"})}),l({formik:e,name:"restricted_network_zones",label:"Network zones",defaultValue:"",children:t.jsx(a.Textarea,{placeholder:"Enter network zones"})})]}),Q=({formik:e,updateSection:s,section:i,project:b,isEdit:p})=>{const[c,u]=w.useState(!1),_=()=>{u(o=>!o)};return t.jsxs(a.Form,{onSubmit:e.handleSubmit,stacked:!0,className:"form",children:[t.jsx(P,{active:i,setActive:s,isRestrictionsOpen:c&&e.values.restricted,isRestrictionsDisabled:!e.values.restricted,toggleRestrictionsOpen:_}),t.jsxs("div",{className:"details-form-wrapper",children:[t.jsx(E,{}),t.jsx(a.Row,{className:"form-contents",children:t.jsxs(a.Col,{size:12,children:[i===f&&t.jsx(k,{formik:e,project:b,isEdit:p}),i===y&&t.jsx(D,{formik:e}),i===V&&t.jsx(z,{formik:e}),i===S&&t.jsx(A,{formik:e}),i===I&&t.jsx(M,{formik:e}),i===R&&t.jsx(T,{formik:e})]})},i)]})]})};export{f as P,Q as a,q as b,J as c,X as d,W as i,Z as n,$ as p,H as r};
OHA YOOOO