| Current Path : /snap/lxd/38768/share/lxd-ui/assets/ |
| Current File : //snap/lxd/38768/share/lxd-ui/assets/GroupSelection-BCidmw-m.js |
import{r as k,T as R,s as x,j as a,d as s,L as P,R as $}from"./index-BsQN_SZU.js";import{P as L}from"./PermissionGroupsFilter-CX61qN2q.js";import{S as M}from"./SelectableMainTable-DBx4rRiq.js";import{u as v}from"./useSortTableData-DkMx8bMp.js";const I=({groups:o,modifiedGroups:l,parentItemName:i,parentItems:m,selectedGroups:r,indeterminateGroups:N,setSelectedGroups:b,toggleGroup:d,scrollDependencies:u,preselectedGroups:c,belowIds:p=[],disabled:t=!1})=>{const[n,w]=k.useState(""),S=[{content:"Group",sortKey:"name",className:"name"},{content:"Description",sortKey:"description",className:"description"},{content:"","aria-label":"Modified status",className:"modified-status"}],j=o.filter(e=>e.name.toLowerCase().includes(n)||!n).map(e=>{const g=r.has(e.name)&&l.has(e.name),C=!r.has(e.name)&&l.has(e.name),f=(m?.length||0)>1?`all selected ${R(i,2)}`:`${i} ${m?.[0]?.name}`,T=g?`Group will be added to ${f}`:C?`Group will be removed from ${f}`:"",h=()=>{t||d(e.name)};return{key:e.name,name:e.name,className:"u-row",columns:[{content:e.name,title:e.name,onClick:h,role:"rowheader",className:x("name u-truncate",{"clickable-cell":!t}),"aria-label":"Name"},{content:a.jsx("span",{children:e.description||""}),onClick:h,role:"cell",className:x("description",{"clickable-cell":!t}),"aria-label":"Description",title:e.description},{content:l.has(e.name)&&a.jsx(s.Icon,{name:"status-in-progress-small"}),role:"cell","aria-label":"Modified status",className:"modified-status u-align--right",title:i?T:void 0}],sortData:{name:e.name.toLowerCase(),description:e.description.toLowerCase(),isPreselected:c?.has(e.name)}}}),{rows:y}=v({rows:j,defaultSort:c?"isPreselected":"name",defaultSortDirection:c?"descending":"ascending"});return a.jsxs(s.ScrollableContainer,{dependencies:u,belowIds:["panel-footer",...p],className:"group-selection",children:[a.jsx(L,{onChange:w,value:n}),o.length?a.jsx(s.ScrollableTable,{dependencies:[...u,n],tableId:"group-selection-table",belowIds:["panel-footer",...p],children:a.jsx(M,{id:"group-selection-table",className:"group-selection-table",headers:S,rows:y,sortable:!0,emptyStateMsg:"No groups found",itemName:"group",parentName:"",selectedNames:Array.from(r),setSelectedNames:b,disabledNames:[],filteredNames:o.map(e=>e.name),indeterminateNames:Array.from(N??new Set),onToggleRow:d,hideContextualMenu:!0,disableSelect:t})}):a.jsxs(s.EmptyState,{className:"empty-state empty-state__full-width",image:a.jsx(s.Icon,{name:"user-group",className:"empty-state-icon"}),title:"No groups found",children:[a.jsx("p",{children:"Groups are an easy way to manage the structured assignment of permissions."}),a.jsxs(P,{to:`${$}/ui/permissions/groups?panel=create-groups`,children:["Create group",a.jsx(s.Icon,{className:"external-link-icon",name:"external-link"})]})]})]})};export{I as G};