/
snap
/
lxd
/
35210
/
share
/
lxd-ui
/
assets
/
File Upload :
llllll
Current File: //snap/lxd/35210/share/lxd-ui/assets/SelectableMainTable-DeGTWeiA.js
import{r as Q,d as o,t as L,j as n,ah as A}from"./index-dL2n30-Z.js";const X=({filteredNames:b,itemName:g,parentName:I,selectedNames:t,setSelectedNames:c,disabledNames:M,rows:i,headers:w,indeterminateNames:x=[],disableSelect:r=!1,onToggleRow:p,hideContextualMenu:f,defaultSortKey:y,disableSelectAll:E,...N})=>{const[h,a]=Q.useState(),k=t.length===b.length&&t.length>0,S=t.length+x.length>0,R=e=>e.className==="p-checkbox__label";o.useListener(window,e=>{e.shiftKey&&R(e.target)&&e.preventDefault()},"mousedown");const D=()=>{c(b),a(void 0)},C=()=>{const e=i.filter(s=>!!s.name).map(s=>s.name??"");c(e),a(void 0)},$=()=>{c([],!0),a(void 0)},K=[{content:n.jsxs(n.Fragment,{children:[n.jsx(o.CheckboxInput,{label:n.jsx("div",{className:"u-off-screen",children:"Select all"}),labelClassName:"multiselect-checkbox",checked:k,indeterminate:S&&!k,onChange:S?$:C,disabled:r||E}),!f&&n.jsx(o.ContextualMenu,{className:"select-context-menu",position:"left",title:"Multiselect",toggleAppearance:"base",toggleClassName:"has-icon u-no-margin--bottom",toggleLabel:n.jsx(o.Icon,{name:"chevron-down"}),toggleProps:{"aria-label":"multiselect rows",disabled:r},links:[{children:`Select all ${A(g,2)} on this page`,onClick:C},{children:`Select all ${I} ${A(g,2)}`,onClick:D}]})]}),className:L("select select-header",{"no-menu":f}),"aria-label":"select"},...w??[]],P=new Set(t),T=new Set(M),U=new Set(x),W=i.map((e,s)=>{const l=P.has(e.name??""),j=T.has(e.name??""),_=U.has(e.name??""),z=G=>{if(p){p(e.name??"");return}if(G.nativeEvent.shiftKey&&h!==void 0&&!l){const m=new Set(t),v=[...t],J=Math.min(s,h),O=Math.max(s,h);for(let d=J;d<O+1;d++){const u=i[d].name;u&&!m.has(u)&&v.push(u)}c(v),a(s);return}const H=l?t.filter(m=>m!==e.name):[...t,e.name??""];c(H),a(l?void 0:s)},B=[{content:n.jsx(o.CheckboxInput,{label:n.jsxs("div",{className:"u-off-screen",children:["Select ",e.name??"row"]}),labelClassName:"u-no-margin--bottom",checked:l,onChange:z,disabled:j||!e.name||r,indeterminate:_&&!l}),role:"rowheader",className:"select"},...e.columns??[]],F=L(e.className,{"selected-row":l,"disabled-row":j}),q=e.key??e.name;return{...e,className:F,key:q,columns:B}});return n.jsx(o.MainTable,{expanding:!0,headers:K,rows:[...W],defaultSort:y,defaultSortDirection:"descending",...N})};export{X as S};
Copyright ©2k19 -
Hexid
|
Tex7ure