File: //proc/self/root/opt/netdata/netdata-web-files/v3/2634.0fab6d404df054a649da.chunk.js
try{!function(){var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{},t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="d4b53884-9c5e-4007-91fd-5c3141dbfada",e._sentryDebugIdIdentifier="sentry-dbid-d4b53884-9c5e-4007-91fd-5c3141dbfada")}()}catch(e){}!function(){try{("undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{}).SENTRY_RELEASE={id:"4a6f9fc3e5ef7db74fd7e8c2578a2d2965fcfdc1"}}catch(e){}}(),(self.webpackChunkcloud_frontend=self.webpackChunkcloud_frontend||[]).push([[2634],{12634:(e,t,a)=>{a.r(t),a.d(t,{default:()=>xe});var l=a(96540),o=a(63766);a(98992),a(81454),a(72577);const s={label:"Included",value:"INCLUDE"},n=[s,{label:"Excluded",value:"EXCLUDE"}],r=[{label:"equals",value:"equals"},{label:"starts with",value:"starts_with"},{label:"ends with",value:"ends_with"},{label:"contains",value:"contains"}],i={action:"INCLUDE",clauses:[{}]},d="You cannot edit this rule before saving unsaved rules.";var u=a(74891),c=a(74848);const p=(0,u.A)(o.Flex),h=e=>{let{action:t,canEdit:a,onChange:r}=e;const i=(0,l.useMemo)((()=>n.find((e=>{let{value:a}=e;return a===t}))||s),[t]),u=(0,l.useMemo)((()=>({"data-testid":"node-membership-rule-action",column:!0,gap:1,...a?{}:{tooltip:d}})),[a]),h=(0,l.useCallback)((e=>{let{value:t}=e;return r(t)}),[r]);return(0,c.jsxs)(p,{...u,children:[(0,c.jsx)(o.Text,{children:"Action"}),(0,c.jsx)(o.Select,{options:n,value:i,menuPortalTarget:document.body,onChange:h,isDisabled:!a})]})};var m=a(33185);const g=(0,m.default)(o.Flex).attrs((e=>({height:{max:100},overflow:{vertical:"auto"},column:!0,gap:4,padding:[0,2,4,0],...e}))).withConfig({displayName:"styled__StyledRulesContainer",componentId:"sc-i1kqwo-0"})([""]),b=(0,m.default)(o.Box).withConfig({displayName:"styled__StyledRuleItemContainer",componentId:"sc-i1kqwo-1"})(["display:grid;align-items:baseline;grid-template-columns:160px auto 195px;gap:8px;"]),C=(0,m.default)(o.Flex).attrs((e=>({width:{min:80,max:80},padding:e.isEdit?[0]:[1,2],round:{side:"top",size:1},...e}))).withConfig({displayName:"styled__StyledDescriptionContainer",componentId:"sc-i1kqwo-2"})(["&:hover{background:",";cursor:",";}"],(e=>{let{canEdit:t}=e;return t?(0,o.getColor)("inputBg"):"transparent"}),(e=>{let{canEdit:t}=e;return t?"pointer":"default"})),v=(0,m.default)(o.Flex).attrs((e=>({height:{min:7},flexWrap:!0,background:"inputBg",padding:[.2,2],gap:1,round:!0,...e}))).withConfig({displayName:"styled__StyledClausesContainer",componentId:"sc-i1kqwo-3"})([""]),f=(0,m.default)(o.Button).attrs((e=>({neutral:!0,small:!0,flavour:"borderless",label:"Add clause",icon:"plus",...e}))).withConfig({displayName:"styled__StyledAddClauseButton",componentId:"sc-i1kqwo-4"})([""]),x=(0,m.default)(o.Flex).attrs((e=>{let{isDuplicate:t,...a}=e;return{height:"20px",alignItems:"center",justifyContent:"between",round:!0,margin:[.8,0,0,0],overflow:"hidden",...t?{border:{side:"all",color:"error"}}:{},...a}})).withConfig({displayName:"styled__StyledClauseContainer",componentId:"sc-i1kqwo-5"})([""]),y=(0,m.default)(o.Flex).attrs((e=>{let{isLastEmpty:t,...a}=e;return{width:{min:20},height:"100%",alignItems:"center",justifyContent:"between",padding:[0,1.5],...t?{}:{background:"clauseBg",border:{side:"all",color:"clauseBg"}},...a}})).withConfig({displayName:"styled__StyledClauseSectionContainer",componentId:"sc-i1kqwo-6"})(["&:hover{border:1px solid ",";","}"],(0,o.getColor)("textLite"),(e=>{let{canEdit:t}=e;return t?"":"border-color: transparent;"})),k=(0,m.default)(o.Flex).attrs((e=>({height:"20px",alignItems:"center",background:"clauseBg",padding:[0,2],...e}))).withConfig({displayName:"styled__StyledNegateContainer",componentId:"sc-i1kqwo-7"})([""]),E=(0,m.default)(o.TextSmall).attrs((e=>({fontSize:"12px",color:"clauseText",...e}))).withConfig({displayName:"styled__StyledClauseText",componentId:"sc-i1kqwo-8"})(["font-family:Arial;"]),w=(0,m.default)(o.Icon).attrs((e=>{let{canEdit:t,...a}=e;return{name:"chevron_right",width:"20px",color:"clauseText",cursor:t?"pointer":"default",rotate:1,...a}})).withConfig({displayName:"styled__StyledClauseSectionArrow",componentId:"sc-i1kqwo-9"})([""]),I=(0,m.default)(o.Flex).attrs((e=>({alignItems:"center",padding:[1.5,2],border:{side:"bottom",color:"border"},background:e.isSelected?"menuItemSelected":null,cursor:"pointer",...e}))).withConfig({displayName:"styled__StyledClauseOptionItem",componentId:"sc-i1kqwo-10"})(["&:hover{background:",";}"],(0,o.getColor)("secondaryHighlight")),j=(0,m.default)(o.Flex).attrs((e=>({height:"100%",alignItems:"center",padding:[0,1.5],cursor:"pointer",background:"clauseBg",...e}))).withConfig({displayName:"styled__StyledRemoveClauseIconContainer",componentId:"sc-i1kqwo-11"})([""]),R=(0,m.default)(o.Flex).attrs((e=>({position:"relative",top:"24px",gap:2,...e}))).withConfig({displayName:"styled__StyledRuleItemButtonsPositioner",componentId:"sc-i1kqwo-12"})([""]);var S=a(6304);const A=(0,u.A)(o.Flex),_=e=>{let{index:t,description:a,canEdit:s,onChange:n}=e;const r=(0,l.useRef)(),[i,,u,p]=(0,S.A)(),h=(0,l.useMemo)((()=>({width:"100%",tooltip:s?i?null:"Edit rule's description.":d,tooltipProps:{align:"top"},...s?{onClick:u}:{}})),[s,i,u]),m=(0,l.useCallback)((e=>n(e.target?.value||"")),[n]);return(0,l.useEffect)((()=>{r.current&&i&&r.current.focus()}),[i,r.current]),(0,c.jsx)(C,{isEdit:i,canEdit:s,children:i?(0,c.jsx)(o.TextInput,{inputRef:r,width:"100%",height:"24px",size:"small",value:a,onChange:m,onBlur:p,border:"none",_hover:{border:"none"},_focus:{border:"none"},containerStyles:{width:"100%"}}):(0,c.jsx)(A,{...h,children:(0,c.jsx)(o.Text,{children:a||`Rule ${t+1}`})})})};var L=a(51220);const T=e=>{let{value:t,item:a,onClick:s}=e;const n=(0,l.useCallback)((()=>s(a.value)),[a,s]);return(0,c.jsx)(I,{isSelected:t==a.value,onClick:n,children:(0,c.jsx)(o.Text,{children:a.label})})},D=e=>{let{value:t,options:a,onItemClick:o}=e;const s=(0,l.useRef)(),n=(0,L.Te)({count:a.length,getScrollElement:()=>s.current,estimateSize:()=>29});return(0,c.jsx)(c.Fragment,{children:(0,c.jsx)("div",{ref:s,style:{maxHeight:"300px",overflow:"auto"},children:(0,c.jsx)("div",{style:{height:`${n.getTotalSize()}px`,width:"100%",position:"relative"},children:n.getVirtualItems().map((e=>(0,c.jsx)("div",{style:{position:"absolute",top:0,left:0,width:"100%",height:`${e.size}px`,transform:`translateY(${e.start}px)`},children:(0,c.jsx)(T,{value:t,item:a[e.index],onClick:o})},e.key)))})})})};a(54520);const N=e=>{let{inputValue:t,options:a,isCreatable:o}=e;const[s,n]=(0,l.useState)(a);return(0,l.useEffect)((()=>{if(o)try{const e=new RegExp((t||"").toLowerCase());n(a.filter((t=>{let{label:a}=t;return e.test(a.toLowerCase())})))}catch(e){}}),[t,a,n,o]),{filteredOptions:s}},F=(0,u.A)(o.Flex),M=(0,m.css)(["color:",";"],(0,o.getColor)("text")),q=e=>{let{value:t,options:a,onChange:s,isCreatable:n,isLastEmpty:r,inputProps:i,dropProps:d,canEdit:u}=e;const p=(0,l.useRef)(),h=(0,l.useRef)(),[m,g,,b]=(0,S.A)(),[C,,v,f]=(0,S.A)(),[x,k]=(0,l.useState)(t),{filteredOptions:I}=N({inputValue:x,options:a,isCreatable:n}),j=(0,l.useMemo)((()=>({height:"100%",alignItems:"center",flex:"grow",cursor:!u||n?"default":"pointer"})),[u]),R=(0,l.useCallback)((()=>{u&&(n&&v(),g())}),[n,u,v,g]),A=(0,l.useCallback)((e=>k(e.target.value)),[k]),_=(0,l.useCallback)((()=>{s(x),f()}),[x,s,f]),L=(0,l.useCallback)((e=>{s(e),b()}),[s,b]);return(0,l.useEffect)((()=>{h.current&&C&&h.current.focus()}),[C,h.current]),(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(y,{ref:p,onClick:R,isLastEmpty:r,canEdit:u,children:[C?(0,c.jsx)(o.TextInput,{inputRef:h,width:"100%",height:"18px",size:"small",value:x,onChange:A,onBlur:_,border:"none",padding:[0],_hover:{border:"none"},_focus:{border:"none"},placeholderProps:M,...r?{}:{background:"clauseBg"},...i}):(0,c.jsx)(F,{...j,children:(0,c.jsx)(E,{color:t?"clauseText":"text",children:t||i?.placeholder||""})}),r?null:(0,c.jsx)(w,{canEdit:u})]}),m&&I.length&&p.current?(0,c.jsx)(o.Drop,{width:{base:55,max:100},target:p.current,align:{top:"bottom",left:"left"},background:"modalBackground",border:{side:"all",color:"border"},margin:[1,0,0],round:1,close:b,onClickOutside:b,onEsc:b,...d,children:(0,c.jsx)(D,{value:t,options:I,onItemClick:L})}):null]})};var B=a(52035),$=a(34843),P=a(84929),U=a(27965);const O=(0,P.Iz)((e=>(0,B.eU)((()=>(0,U.xq)(e)))));var z=a(24609),V=a(57377);const Y=(0,P.Iz)((e=>{let{spaceId:t,key:a}=e;return(0,B.eU)((async()=>{if(!a)return{values:[]};return await(0,U.wy)(t,a)}))}),V.Ay),J=e=>{let{label:t,canEdit:a,...o}=e;const{loaded:s,value:n=[],hasError:r}=(()=>{const e=(0,z.vt)(),t=(0,$.md)((0,P.Rq)(O(e)));return{loaded:"loading"!==t.state,value:t.data?.data?.keys,hasError:"hasError"===t.state}})(),i=(0,l.useMemo)((()=>s&&!r?n.map((e=>({label:e,value:e}))):[]),[s,n,r]);return(0,c.jsx)(q,{value:t,options:i,inputProps:{placeholder:"Select label..."},isCreatable:!0,canEdit:a,...o})},H=e=>{let{operator:t,...a}=e;return(0,c.jsx)(q,{value:t,options:r,inputProps:{placeholder:"Select operator..."},dropProps:{width:20},...a})},W=(0,u.A)(k),X=e=>{let{negate:t,canEdit:a,onChange:s}=e;const n=(0,l.useCallback)((e=>{a&&s(e)}),[a,s]);return(0,c.jsx)(W,{tooltip:a?"Check this to invert the selected operator evaluation":null,children:(0,c.jsx)(o.Checkbox,{label:"not",labelPosition:"left",labelProps:{color:"clauseText"},checked:t,onChange:n,...a?{}:{cursor:"default"}})})},G=e=>{let{selectedLabel:t,value:a,...o}=e;const{loaded:s,value:n=[],hasError:r}=(e=>{let{key:t}=e;const a=(0,z.vt)(),l=(0,$.md)((0,P.Rq)(Y({spaceId:a,key:t})));return{loaded:"loading"!==l.state,value:l.data?.data?.values,hasError:"hasError"===l.state}})({key:t}),i=(0,l.useMemo)((()=>s&&!r?n.map((e=>({label:e,value:e}))):[]),[s,n,r]);return(0,c.jsx)(q,{value:a,options:i,inputProps:{placeholder:"Select value..."},isCreatable:!0,...o})};var K=a(77148);const Q=e=>{let{index:t,clause:a,clauses:o,canEdit:s,onEditClause:n,onRemoveClause:r}=e;const[i,d]=(0,l.useState)(a),u=(0,l.useCallback)((e=>d((t=>({...t,label:e})))),[d]),c=(0,l.useCallback)((e=>d((t=>({...t,operator:e})))),[d]),p=(0,l.useCallback)((e=>d((t=>({...t,negate:e})))),[d]),h=(0,l.useCallback)((e=>d((t=>({...t,value:e})))),[d]),m=(0,l.useCallback)((()=>r(t)),[t,r]),g=(0,l.useMemo)((()=>(i.label&&i.operator&&i.value||!i.label&&!i.operator&&!i.value)&&o.length>1&&s),[o,i,s]),b=(0,l.useCallback)((e=>{switch(e){case"label":return!i.label&&!i.operator&&!i.value;case"operator":return!!i.label&&!i.operator;case"value":return!!i.label&&!!i.operator&&!i.value;default:return!1}}),[i]),C=(0,l.useMemo)((()=>({label:!0,operator:!!i.label||!!i.operator,value:!!i.operator||!!i.value})),[i]),v=(0,l.useMemo)((()=>!!o.slice(0,t).find((e=>e.label===i.label&&e.operator===i.operator&&e.value===i.value))),[t,o,i]);return(0,l.useEffect)((()=>{d(a)}),[a]),(0,l.useEffect)((()=>{n(i,t)}),[t,i,n]),{state:i,showRemoveIcon:g,onLabelChange:u,onOperatorChange:c,onNegateChange:p,onValueChange:h,onRemove:m,sectionsVisibility:C,isLastEmptyField:b,isDuplicate:v}},Z=(0,u.A)(x),ee=e=>{let{index:t,clause:a,clauses:s,canEdit:n,onEditClause:r,onRemoveClause:i}=e;const{state:u,showRemoveIcon:p,onLabelChange:h,onOperatorChange:m,onNegateChange:g,onValueChange:b,onRemove:C,sectionsVisibility:v,isLastEmptyField:f,isDuplicate:x}=Q({index:t,clause:a,clauses:s,canEdit:n,onEditClause:r,onRemoveClause:i}),y=(0,l.useMemo)((()=>({isDuplicate:x,...n?x?{tooltip:"Duplicate clause"}:{}:{tooltip:d}})),[x,n]);return(0,c.jsxs)(Z,{...y,children:[v.label?(0,c.jsx)(J,{label:u.label,canEdit:n,onChange:h,isLastEmpty:f("label")}):null,v.operator?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(X,{negate:u.negate,canEdit:n,onChange:g}),(0,c.jsx)(H,{operator:u.operator,canEdit:n,onChange:m,isLastEmpty:f("operator")})]}):null,v.value?(0,c.jsx)(G,{selectedLabel:u.label,value:u.value,canEdit:n,onChange:b,isLastEmpty:f("value")}):null,p?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(K.A,{vertical:!0,color:"textLite"}),(0,c.jsx)(j,{onClick:C,children:(0,c.jsx)(o.Icon,{name:"x",color:"bright"})})]}):null]})},te=e=>{let{clauses:t=[],onAddClause:a,onEditClause:o,onRemoveClause:s,hasIncompleteClause:n,canEdit:r}=e;const i=(0,l.useCallback)((()=>{a({})}),[a]);return(0,c.jsxs)(v,{children:[t.map(((e,a)=>(0,c.jsx)(ee,{index:a,clause:e,clauses:t,canEdit:r,onEditClause:o,onRemoveClause:s},`${e.label}-${e.operator}-${e.value}-${a}`))),!n&&r?(0,c.jsx)(f,{onClick:i}):null]})},ae=e=>{let{index:t,rule:a,onDescriptionChange:s,onAddClause:n,onEditClause:r,onRemoveClause:i,hasIncompleteClause:d,canEdit:u}=e;const{description:p,clauses:h=[]}=a||{},m=(0,l.useMemo)((()=>({"data-testid":"node-membership-rule",flex:"grow",column:!0,...u?{}:{opacity:.4}})),[u]);return(0,c.jsxs)(o.Flex,{...m,children:[(0,c.jsx)(_,{index:t,description:p,canEdit:u,onChange:s}),(0,c.jsx)(te,{clauses:h,onAddClause:n,onEditClause:r,onRemoveClause:i,hasIncompleteClause:d,canEdit:u})]})};var le=a(19186),oe=a(91130),se=a(39175);const ne=(0,B.eU)(0),re=(0,P.Iz)((e=>{let{spaceId:t,roomId:a}=e;return(0,B.eU)((e=>(e(ne),(e=>{let{spaceId:t,roomId:a}=e;return(0,se.ES)(t)?Promise.resolve({data:{}}):oe.A.get(`/api/v3/spaces/${t}/rooms/${a}/node-membership-rules`)})({spaceId:t,roomId:a}))))}),V.Ay),ie=()=>{const e=(0,z.vt)(),t=(0,le.ID)();return(0,l.useCallback)((a=>{let{id:l,...o}=a;return l?(e=>{let{spaceId:t,roomId:a,id:l,payload:o}=e;return oe.A.put(`/api/v3/spaces/${t}/rooms/${a}/node-membership-rules/${l}`,o)})({spaceId:e,roomId:t,id:l,payload:o}):(e=>{let{spaceId:t,roomId:a,payload:l}=e;return oe.A.post(`/api/v3/spaces/${t}/rooms/${a}/node-membership-rules`,l)})({spaceId:e,roomId:t,payload:o})}),[e,t])},de=()=>{const e=(0,z.vt)(),t=(0,le.ID)();return(0,l.useCallback)((a=>a?(e=>{let{spaceId:t,roomId:a,id:l}=e;return oe.A.delete(`/api/v3/spaces/${t}/rooms/${a}/node-membership-rules/${l}`)})({spaceId:e,roomId:t,id:a}):Promise.resolve()),[e,t])};var ue=a(63872);const ce=e=>{let{index:t,rule:a,onRemove:o,startLoading:s,stopLoading:n,unsaved:r,setUnsaved:i,refresh:d}=e;const u=(0,l.useRef)(a),[c,p]=(0,l.useState)(a),h=ie(),m=de(),[g,b]=(0,ue.A)(),C=(0,l.useCallback)((e=>p((t=>({...t,action:e})))),[p]),v=(0,l.useCallback)((e=>{p((t=>({...t,description:e})))}),[p]),f=(0,l.useCallback)((e=>p((t=>({...t,clauses:[...t.clauses,e]})))),[p]),x=(0,l.useCallback)(((e,t)=>{p((a=>({...a,clauses:a.clauses.map(((a,l)=>l===t?e:a))})))}),[p]),y=(0,l.useCallback)((e=>p((t=>({...t,clauses:[...t.clauses.slice(0,e),...t.clauses.slice(e+1)]})))),[p]),k=(0,l.useCallback)((()=>{s(),h(c).then((()=>{g({header:"Success",text:"Successfully saved rule."})})).catch(b).finally((()=>{n(),d()}))}),[c,h,s,n,d,g,b]),E=(0,l.useCallback)((()=>{p(a)}),[a,p]),w=(0,l.useCallback)((()=>{c.id?(s(),m(c.id).then((()=>{g({header:"Success",text:"Successfully deleted rule."})})).catch(b).finally((()=>{n(),d()}))):o(t)}),[t,c,m,o,s,n,d,g,b]),I=(0,l.useMemo)((()=>JSON.stringify(u.current||{})!==JSON.stringify(c)),[u.current,c]),j=(0,l.useMemo)((()=>c.clauses.find((e=>{let{label:t,operator:a,value:l}=e;return!t||!a||!l}))),[c]),R=(0,l.useMemo)((()=>!!c.action&&!!c.clauses.length&&!j&&JSON.stringify(a)!==JSON.stringify(c)),[a,c,j]),S=(0,l.useMemo)((()=>R?null:I?c.action?!c.clauses.length||1===c.clauses.length&&!Object.keys(c.clauses[0]).length?"Please add at least one clause.":j?"One or more clauses are incomplete.":null:"Please select an action.":"Nothing has changed."),[R,I,a,c,j]),A=(0,l.useMemo)((()=>!r||!!R),[r,R]),_=(0,l.useMemo)((()=>R&&A&&!!c.id),[R,c.id]);return(0,l.useEffect)((()=>{i(R)}),[R,i]),(0,l.useEffect)((()=>{p(a)}),[a]),{state:c,onActionChange:C,onDescriptionChange:v,onAddClause:f,onEditClause:x,onRemoveClause:y,canSave:R,saveTooltip:S,canReset:_,onSave:k,canEdit:A,onReset:E,onDelete:w,hasIncompleteClause:j}},pe=(0,u.A)(o.Button),he=e=>(0,c.jsx)(o.ConfirmationDialog,{title:"Delete rule",confirmLabel:"Yes, delete",declineLabel:"No",message:(0,c.jsxs)(o.Flex,{gap:2,column:!0,children:[(0,c.jsx)(o.TextBig,{children:"You are about to delete a node membership rule."}),(0,c.jsx)(o.TextBig,{children:"Are you sure you want to continue?"})]}),...e}),me={flavour:"hollow",small:!0},ge=e=>{let{index:t,item:a,onRemove:s,startLoading:n,stopLoading:r,unsaved:i,setUnsaved:d,refresh:u}=e;const{state:p,onActionChange:m,onDescriptionChange:g,onAddClause:C,onEditClause:v,onRemoveClause:f,canSave:x,saveTooltip:y,canReset:k,canEdit:E,onSave:w,onReset:I,onDelete:j,hasIncompleteClause:A}=ce({index:t,rule:a,onRemove:s,startLoading:n,stopLoading:r,unsaved:i,setUnsaved:d,refresh:u}),[_,,L,T]=(0,S.A)(),D=(0,l.useCallback)((()=>{p.id?L():j()}),[p,L,j]);return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(b,{"data-testid":"node-membership-rule-item-container",children:[(0,c.jsx)(h,{...p,canEdit:E,onChange:m}),(0,c.jsx)(ae,{index:t,rule:p,onDescriptionChange:g,onAddClause:C,onEditClause:v,onRemoveClause:f,hasIncompleteClause:A,canEdit:E}),(0,c.jsx)(o.Flex,{"data-testid":"node-membership-rule-buttons-container",padding:[0,0,1,0],children:(0,c.jsxs)(R,{children:[(0,c.jsx)(o.Button,{...me,danger:!0,label:"Remove",disabled:!E,onClick:D}),(0,c.jsx)(o.Button,{...me,label:"Reset",onClick:I,disabled:!k}),(0,c.jsx)(pe,{...me,label:"Save",onClick:w,disabled:!x||!E,tooltip:y})]})})]}),_?(0,c.jsx)(he,{handleConfirm:j,handleDecline:T}):null]})},be=e=>{let{items:t,onRemove:a,startLoading:l,stopLoading:s,unsaved:n,setUnsaved:r,refresh:i}=e;return(0,c.jsx)(o.Flex,{"data-testid":"node-membership-rules-list",column:!0,gap:1,children:t.map(((e,t)=>(0,c.jsx)(ge,{index:t,item:e,onRemove:a,startLoading:l,stopLoading:s,unsaved:n,setUnsaved:r,refresh:i},e.id||`new-rule-${t}`)))})};var Ce=a(99728);const ve=e=>{let{loaded:t,rules:a,error:o,roomUntouchable:s}=e;const[n,r]=(0,l.useState)(a),[d,u]=(0,l.useState)(!1),c=(0,Ce.JT)("room:AddNode"),p=(0,l.useMemo)((()=>!c),[c]),h=(0,l.useMemo)((()=>t&&!!n.length&&!s),[t,n,s]),m=(0,l.useMemo)((()=>!s&&!d&&!n.find((e=>{let{id:t}=e;return!t}))),[n,d,s]),g=(0,l.useMemo)((()=>s?"Rule-based assignment is not available.":p?c?null:"You cannot add another rule before saving unsaved rules.":"You don't have permission to add new rule."),[p,s,m]),b=(0,l.useMemo)((()=>t&&!n.length),[t,n]),C=(0,l.useMemo)((()=>b?s?"All nodes are included here by default. Rule-based assignment is not available.":"When a node in the space matches a rule, it will be automatically included in or excluded from this room.":""),[b,s]),v=(0,l.useCallback)((()=>{r((e=>[...e,{...i}]))}),[r]),f=(0,l.useCallback)((e=>{r((t=>[...t.slice(0,e),...t.slice(e+1)])),u(!1)}),[r,u]);return(0,l.useEffect)((()=>{t&&!o&&r(a)}),[a,t,o,r]),{state:n,noPermissions:p,showRulesList:h,placeholder:C,canAddRule:m,unsaved:d,buttonTooltip:g,setUnsaved:u,onAdd:v,onRemove:f}},fe=(0,u.A)(o.Button),xe=e=>{let{roomUntouchable:t}=e;const[a,,s,n]=(0,S.A)(),{loaded:r,value:i=[],error:d,refresh:u}=(()=>{const e=(0,z.vt)(),t=(0,le.ID)(),a=(0,$.md)((0,P.Rq)(re({spaceId:e,roomId:t}))),o="hasError"===P.Rq.state,s=(0,$.Xr)(ne),n=(0,l.useCallback)((()=>s((e=>e+1))),[s]);return{loaded:"loading"!==a.state,value:a.data?.data,hasError:o,error:a.error?.response?.data?.message||a.error?.response?.data||(o?"Something went wrong.":null),refresh:n}})(),{state:p,noPermissions:h,showRulesList:m,placeholder:b,canAddRule:C,unsaved:v,buttonTooltip:f,setUnsaved:x,onAdd:y,onRemove:k}=ve({loaded:r,rules:i,error:d,roomUntouchable:t}),E=(0,l.useMemo)((()=>({flavour:"hollow",small:!0,label:"Add new rule",disabled:h||!C,tooltip:f,onClick:y})),[h,C,f,y]);return a||!r?(0,c.jsx)(o.Text,{children:"Fetching rules..."}):d?(0,c.jsx)(o.Text,{color:"error",children:d}):(0,c.jsxs)(g,{"data-testid":"node-membership-rules-container",children:[m?(0,c.jsx)(be,{items:p,onRemove:k,startLoading:s,stopLoading:n,unsaved:v,setUnsaved:x,refresh:u}):null,(0,c.jsxs)(o.Flex,{alignItems:"center",gap:2,children:[(0,c.jsx)(fe,{...E}),b?(0,c.jsx)(o.Text,{children:b}):null]})]})}}}]);