File: //opt/netdata/usr/local/local/share/netdata/web/v3/2634.8afcad91d7ddddd028c3.chunk.js
!function(){try{var e="undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof globalThis?globalThis:"undefined"!=typeof self?self:{};e.SENTRY_RELEASE={id:"161df38a3ce485b0993d5667ea290f6097b8818b"};var t=(new e.Error).stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="8d09ed8c-e512-46f2-9cdd-120be7036c79",e._sentryDebugIdIdentifier="sentry-dbid-8d09ed8c-e512-46f2-9cdd-120be7036c79")}catch(e){}}(),(globalThis.webpackChunkcloud_frontend=globalThis.webpackChunkcloud_frontend||[]).push([[2634],{12634(e,t,a){a.r(t),a.d(t,{default:()=>ke});var l=a(96540),o=a(38429);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(882);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"})([""]),x=(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"})([""]),f=(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;"]),I=(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"})([""]),w=(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"})([""]),S=(0,m.default)(o.Flex).attrs(e=>({position:"relative",top:"24px",gap:2,...e})).withConfig({displayName:"styled__StyledRuleItemButtonsPositioner",componentId:"sc-i1kqwo-12"})([""]);var R=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,R.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)(w,{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")),B=e=>{let{value:t,options:a,onChange:s,isCreatable:n,isLastEmpty:r,inputProps:i,dropProps:d,canEdit:u,changeOnBlur:p}=e;const h=(0,l.useRef)(),m=(0,l.useRef)(),[g,b,,C]=(0,R.A)(),[v,,x,f]=(0,R.A)(),[k,w]=(0,l.useState)(t),{filteredOptions:j}=N({inputValue:k,options:a,isCreatable:n}),S=(0,l.useMemo)(()=>({height:"100%",alignItems:"center",flex:"grow",cursor:!u||n?"default":"pointer"}),[u]),A=(0,l.useCallback)(()=>{u&&(n&&x(),b())},[n,u,x,b]),_=(0,l.useCallback)(e=>w(e.target.value),[w]),L=(0,l.useCallback)(()=>{p&&s(k)},[p,k,s]),T=(0,l.useCallback)(e=>{w(e),s(e),C(),f()},[s,C,f]);return(0,l.useEffect)(()=>{m.current&&v&&m.current.focus()},[v]),(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(y,{ref:h,onClick:A,isLastEmpty:r,canEdit:u,children:[v?(0,c.jsx)(o.TextInput,{inputRef:m,width:"100%",height:"18px",size:"small",value:k,onChange:_,onBlur:L,border:"none",padding:[0],_hover:{border:"none"},_focus:{border:"none"},placeholderProps:M,...r?{}:{background:"clauseBg"},...i}):(0,c.jsx)(F,{...S,children:(0,c.jsx)(E,{color:t?"clauseText":"text",children:t||i?.placeholder||""})}),r?null:(0,c.jsx)(I,{canEdit:u})]}),g&&j.length&&h.current?(0,c.jsx)(o.Drop,{width:{base:55,max:100},target:h.current,align:{top:"bottom",left:"left"},background:"modalBackground",border:{side:"all",color:"border"},margin:[1,0,0],round:1,close:C,onClickOutside:C,onEsc:C,...d,children:(0,c.jsx)(D,{value:t,options:j,onItemClick:T})}):null]})};var $=a(52035),P=a(34843),U=a(18790),q=a(25316),O=a(27965);const z=(0,U.I)(e=>(0,$.eU)(()=>(0,O.xq)(e)));var V=a(24609),Y=a(57377);const J=(0,U.I)(e=>{let{spaceId:t,key:a}=e;return(0,$.eU)(async()=>{if(!a)return{values:[]};return await(0,O.wy)(t,a)})},Y.Ay),H=e=>{let{label:t,canEdit:a,...o}=e;const{loaded:s,value:n=[],hasError:r}=(()=>{const e=(0,V.vt)(),t=(0,P.md)((0,q.A)(z(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)(B,{value:t,options:i,inputProps:{placeholder:"Select label..."},isCreatable:!0,canEdit:a,...o})},W=e=>{let{operator:t,...a}=e;return(0,c.jsx)(B,{value:t,options:r,inputProps:{placeholder:"Select operator..."},dropProps:{width:20},...a})},X=(0,u.A)(k),G=e=>{let{negate:t,canEdit:a,onChange:s}=e;const n=(0,l.useCallback)(e=>{a&&s(e)},[a,s]);return(0,c.jsx)(X,{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"}})})},K=e=>{let{selectedLabel:t,value:a,...o}=e;const{loaded:s,value:n=[],hasError:r}=(e=>{let{key:t}=e;const a=(0,V.vt)(),l=(0,P.md)((0,q.A)(J({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)(B,{value:a,options:i,inputProps:{placeholder:"Select value..."},isCreatable:!0,changeOnBlur:!0,...o})};var Q=a(77148);const Z=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}},ee=(0,u.A)(f),te=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:x,isDuplicate:f}=Z({index:t,clause:a,clauses:s,canEdit:n,onEditClause:r,onRemoveClause:i}),y=(0,l.useMemo)(()=>({isDuplicate:f,...n?f?{tooltip:"Duplicate clause"}:{}:{tooltip:d}}),[f,n]);return(0,c.jsxs)(ee,{...y,children:[v.label?(0,c.jsx)(H,{label:u.label,canEdit:n,onChange:h,isLastEmpty:x("label")}):null,v.operator?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(G,{negate:u.negate,canEdit:n,onChange:g}),(0,c.jsx)(W,{operator:u.operator,canEdit:n,onChange:m,isLastEmpty:x("operator")})]}):null,v.value?(0,c.jsx)(K,{selectedLabel:u.label,value:u.value,canEdit:n,onChange:b,isLastEmpty:x("value")}):null,p?(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(Q.A,{vertical:!0,color:"textLite"}),(0,c.jsx)(j,{onClick:C,children:(0,c.jsx)(o.Icon,{name:"x",color:"bright"})})]}):null]})},ae=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)(te,{index:a,clause:e,clauses:t,canEdit:r,onEditClause:o,onRemoveClause:s},`${e.label}-${e.operator}-${e.value}-${a}`)),!n&&r?(0,c.jsx)(x,{onClick:i}):null]})},le=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)(ae,{clauses:h,onAddClause:n,onEditClause:r,onRemoveClause:i,hasIncompleteClause:d,canEdit:u})]})};a(33110);var oe=a(19186),se=a(91130),ne=a(39175);const re=(0,$.eU)(0),ie=(0,U.I)(e=>{let{spaceId:t,roomId:a}=e;return(0,$.eU)(e=>(e(re),(e=>{let{spaceId:t,roomId:a}=e;return(0,ne.ES)(t)?Promise.resolve({data:{}}):se.A.get(`/api/v3/spaces/${t}/rooms/${a}/node-membership-rules`)})({spaceId:t,roomId:a})))},Y.Ay),de=()=>{const e=(0,V.vt)(),t=(0,oe.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 se.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 se.A.post(`/api/v3/spaces/${t}/rooms/${a}/node-membership-rules`,l)})({spaceId:e,roomId:t,payload:o})},[e,t])},ue=()=>{const e=(0,V.vt)(),t=(0,oe.ID)();return(0,l.useCallback)(a=>a?(e=>{let{spaceId:t,roomId:a,id:l}=e;return se.A.delete(`/api/v3/spaces/${t}/rooms/${a}/node-membership-rules/${l}`)})({spaceId:e,roomId:t,id:a}):Promise.resolve(),[e,t])};var ce=a(63872);const pe=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=de(),m=ue(),[g,b]=(0,ce.A)(),C=(0,l.useCallback)(e=>p(t=>({...t,action:e})),[p]),v=(0,l.useCallback)(e=>{p(t=>({...t,description:e}))},[p]),x=(0,l.useCallback)(e=>p(t=>({...t,clauses:[...t.clauses,e]})),[p]),f=(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]),I=(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]),w=(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]),S=(0,l.useMemo)(()=>!!c.action&&!!c.clauses.length&&!j&&JSON.stringify(a)!==JSON.stringify(c),[a,c,j]),R=(0,l.useMemo)(()=>S?null:w?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.",[S,w,a,c,j]),A=(0,l.useMemo)(()=>!r||!!S,[r,S]),_=(0,l.useMemo)(()=>S&&A&&!!c.id,[S,c.id]);return(0,l.useEffect)(()=>{i(S)},[S,i]),(0,l.useEffect)(()=>{p(a)},[a]),{state:c,onActionChange:C,onDescriptionChange:v,onAddClause:x,onEditClause:f,onRemoveClause:y,canSave:S,saveTooltip:R,canReset:_,onSave:k,canEdit:A,onReset:E,onDelete:I,hasIncompleteClause:j}},he=(0,u.A)(o.Button),me=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}),ge={flavour:"hollow",small:!0},be=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:x,canSave:f,saveTooltip:y,canReset:k,canEdit:E,onSave:I,onReset:w,onDelete:j,hasIncompleteClause:A}=pe({index:t,rule:a,onRemove:s,startLoading:n,stopLoading:r,unsaved:i,setUnsaved:d,refresh:u}),[_,,L,T]=(0,R.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)(le,{index:t,rule:p,onDescriptionChange:g,onAddClause:C,onEditClause:v,onRemoveClause:x,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)(S,{children:[(0,c.jsx)(o.Button,{...ge,danger:!0,label:"Remove",disabled:!E,onClick:D}),(0,c.jsx)(o.Button,{...ge,label:"Reset",onClick:w,disabled:!k}),(0,c.jsx)(he,{...ge,label:"Save",onClick:I,disabled:!f||!E,tooltip:y})]})})]}),_?(0,c.jsx)(me,{handleConfirm:j,handleDecline:T}):null]})},Ce=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)(be,{index:t,item:e,onRemove:a,startLoading:l,stopLoading:s,unsaved:n,setUnsaved:r,refresh:i},e.id||`new-rule-${t}`))})};var ve=a(99728);const xe=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,ve.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]),x=(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:x}};var fe=a(10602);const ye=(0,u.A)(o.Button),ke=e=>{let{roomUntouchable:t}=e;const[a,,s,n]=(0,R.A)(),{loaded:r,value:i=[],error:d,refresh:u}=(()=>{const e=(0,V.vt)(),t=(0,oe.ID)(),a=(0,P.md)((0,q.A)(ie({spaceId:e,roomId:t}))),o="hasError"===q.A.state,s=(0,P.Xr)(re),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}})(),p=(0,fe.ts)(),h=(0,l.useCallback)(()=>{u(),p()},[u,p]),{state:m,noPermissions:b,showRulesList:C,placeholder:v,canAddRule:x,unsaved:f,buttonTooltip:y,setUnsaved:k,onAdd:E,onRemove:I}=xe({loaded:r,rules:i,error:d,roomUntouchable:t}),w=(0,l.useMemo)(()=>({flavour:"hollow",small:!0,label:"Add new rule",disabled:b||!x,tooltip:y,onClick:E}),[b,x,y,E]);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:[C?(0,c.jsx)(Ce,{items:m,onRemove:I,startLoading:s,stopLoading:n,unsaved:f,setUnsaved:k,refresh:h}):null,(0,c.jsxs)(o.Flex,{alignItems:"center",gap:2,children:[(0,c.jsx)(ye,{...w}),v?(0,c.jsx)(o.Text,{children:v}):null]})]})}}}]);