1import{j as t,M as o,v as l,I as M,aa as S,J as f,o as g,R as n,W as h,cr as j,b7 as x,bc as I,aW as y,bb as v,ak as c,cs as m,ba as A}from"./index-CdaOVUJg.js";import{I as _,E as C}from"./index-EYO2t0Jb.js";import{m as N}from"./members_grey-BXarPCJm.js";import{F as P,s as E}from"./index-BSUwfD69.js";import{A as w}from"./index-BbnJ2kMt.js";import{P as a}from"./filternull-D3zAe-C8.js";import{P as F}from"./index-BTMjU5lK.js";import"./Modal-Bgf7xN89.js";import"./Menu-oeFW6mDt.js";import"./Backdrop-HMZ0XVhc.js";import"./CircularProgress-CFj_9cGx.js";import"./Select-CfWleVIF.js";import"./index-DEqqwH04.js";import"./removeduplicatesfromarray-Np0dLZSc.js";class L{static getDisplayColumns(){return[{title:"connectedsite.name",propertyName:"fullName",defaultSort:"asc",searchHighlight:!0},{title:"connectedsite.emailaddress",propertyName:"email",type:"link",availableSize:["m","l","xl"],defaultSort:"asc",searchHighlight:!0},{title:"connectedsite.projectrole",propertyName:"roleKey",defaultSort:"asc",renderer:(s,r)=>{const i=s;return r.lifeStatus==="ACTIVE"?t.jsx("p",{children:t.jsx(o,{id:`connectedsite.${i}`})}):t.jsx("p",{children:t.jsx(o,{id:`connectedsite.${i}_pending`})})}}]}}const k={project_members_searchInput:{width:"300px",height:"32px","&:after":{borderBottom:`2px solid ${l.csanchorblue}`},marginLeft:"8px !important",[`@media ${l.breakmobile}`]:{marginTop:"12px !important",marginBottom:"12px !important",width:"100%"}},project_members_inputValue:{backgroundColor:"transparent !important",border:"none !important",fontSize:"14px !important"},project_members_clearSearch:{"&:hover":{cursor:"pointer"}}};class T extends n.Component{constructor(e){super(e),this.sort={by:"fullName",type:"asc"},this.state={view:"list",showAddMember:!1,showInfoPanel:!1,allMembers:[],filteredMembers:[],selectedMembers:[],sortBy:this.sort.by,sortOrder:this.sort.type},this.openMemberInfo=this.openMemberInfo.bind(this),this.openAddMember=this.openAddMember.bind(this),this.closeAddMember=this.closeAddMember.bind(this),this.loadMoreUsers=this.loadMoreUsers.bind(this),this.filterMembers=this.filterMembers.bind(this),this.clearSearch=this.clearSearch.bind(this),this.highlightText=this.highlightText.bind(this),this.onMemberSelect=this.onMemberSelect.bind(this),this.openEditMember=this.openEditMember.bind(this),this.sortItems=this.sortItems.bind(this),this.userFetchLimit=100,this.buttons=[{label:"connectedsite.addmember",onClick:this.openAddMember}],this.memberFilter=new P({searchItems:["fullName","email","phone"]},this.props.membersStore.searchValue)}componentDidMount(){this.props.appStore.updateBreadcrumb({index:2,label:"connectedsite.members",URL:`user/projects/${this.props.projectStore.project.projectId}/members`,format:!0}),this.memberEditpanelObserver=h(()=>this.props.membersStore.showEditMember,e=>{e===!1&&this.setState({selectedMembers:[]})}),this.memberListObserver=h(()=>this.props.membersStore.projectMembers,e=>{if(e.length>0){let s=e;const r=this.props.membersStore.searchValue;r&&(s=this.filterMembers(r,e),s.length===this.state.filteredMembers.length&&this.props.membersStore.getProjectUsers(e.length,this.userFetchLimit)),this.setState({allMembers:e,filteredMembers:s}),this.sortItems({sortBy:null,sortOrder:null,membersList:s})}}),j("Project Members",this.props.projectStore.project.projectId)}componentWillUnmount(){this.props.selectionStore.setSelectedMember(null),this.props.membersStore.reset(),this.memberListObserver(),this.memberEditpanelObserver()}openEditMember(){this.props.membersStore.openEditMember(),this.props.selectionStore.setSelectedMember(null),this.props.selectionStore.setSelectedMembers(this.state.selectedMembers)}onMemberSelect(e){this.setState({selectedMembers:e}),this.props.selectionStore.setSelectedMember(null)}openMemberInfo(e){this.props.selectionStore.setSelectedMembers([]),this.props.selectionStore.setSelectedMember(e),this.props.membersStore.closeEditMember(),this.setState({selectedMembers:[]})}openAddMember(){this.setState({showAddMember:!0})}closeAddMember(){this.setState({showAddMember:!1})}sortItems({sortBy:e,sortOrder:s,membersList:r}){(e||s)&&(this.setState({sortBy:e,sortOrder:s}),x("Sort Project Members",e,s));const i=e||this.state.sortBy,d=s||this.state.sortOrder,b=r||this.state.filteredMembers,u=E(i,d,b);this.setState({filteredMembers:u})}loadMoreUsers({startIndex:e}){this.props.membersStore.getProjectUsers(e,this.userFetchLimit)}filterMembers(e,s=null){const r=this.memberFilter.filterItems(e,s||this.state.filteredMembers,this.state.allMembers);return this.setState({filteredMembers:r}),this.sortItems({sortBy:null,sortOrder:null,membersList:r}),this.props.membersStore.setSearchValue(e),r}clearSearch(){this.filterMembers("",this.state.allMembers),this.memberFilter.clearSearch()}highlightText(e){const s=this.props.membersStore.searchValue.replace(/[\^$\\.*+?()[\]{}|]/g,"\\$&");return t.jsx(I,{searchWords:[s],caseSensitive:!1,textToHighlight:e,highlightClassName:"highlighted-text",unhighlightClassName:"unhighlighted-text"})}render(){const e="profileImage",s={by:this.state.sortBy,type:this.state.sortOrder};return this.displayColumn=L.getDisplayColumns(),t.jsxs(n.Fragment,{children:[t.jsxs("h1",{className:"header-container-with-search",children:[t.jsx(o,{id:"connectedsite.members"}),t.jsx(o,{id:"connectedsite.searchformember",children:r=>t.jsxs("div",{className:`search-container ${this.state.selectedMembers.length?"user-search":""}`,children:[t.jsx("span",{className:"icon i24 search-icon-grey"}),t.jsx(y,{className:this.props.classes.project_members_searchInput,placeholder:r[0],classes:{input:this.props.classes.project_members_inputValue},endAdornment:this.props.membersStore.searchValue?t.jsx("span",{className:`icon i24 close-icon ${this.props.classes.project_members_clearSearch}`,onClick:this.clearSearch}):"",value:this.props.membersStore.searchValue,onChange:i=>this.filterMembers(i.target.value),onBlur:i=>{v(i.target.value,c.search.actions.project,c.search.labels.membersearch)}})]})})]}),t.jsx(F,{children:this.props.permissionStore.isProjectWriteAllowed()?t.jsx(a,{scopes:[m.project_user_update,m.project_user_invite],refreshOnRender:!0,children:t.jsxs("div",{className:"action-button add-button",children:[t.jsx(a,{scopes:[m.project_user_update],children:this.state.selectedMembers.length?t.jsxs("div",{className:"bulk-button",children:[t.jsx(o,{id:"connectedsite.usersselected",values:{userCount:this.state.selectedMembers.length}}),t.jsx("span",{className:"icon i32 edit-icon",title:"Edit Members",onClick:this.openEditMember})]}):""}),t.jsx(a,{scopes:[m.project_user_invite],children:this.state.selectedMembers.length?"":t.jsxs("button",{className:"button small",onClick:this.openAddMember,children:[t.jsx("span",{className:"icon i20 plus-icon"}),t.jsx(o,{id:"common.add"})]})})]})}):""}),this.state.showAddMember?t.jsx(w,{closeAddMember:this.closeAddMember}):"",t.jsx(_,{viewName:"members",loadMore:this.loadMoreUsers,items:this.state.filteredMembers,viewDetails:this.displayColumn,selectedIndex:A.f
1indIndex(this.state.filteredMembers,{userId:this.props.selectionStore.selectedMember&&this.props.selectionStore.selectedMember.userId}),isInfoPanel:!!this.props.membersStore.projectMembers,thumbnail:e,type:this.state.view,onSelect:this.openMemberInfo,onSort:this.sortItems,initialSort:s,loadingStatus:this.props.membersStore.status,highlightText:this.highlightText,noItemFoundHTML:t.jsx(C,{icon:N,buttons:this.buttons,children:t.jsx(o,{id:"connectedsite.nomemberfound"})}),onMultiSelect:this.props.permissionsStore.isAuthorized([m.project_user_update])?this.onMemberSelect:null,itemKey:"userId",checkedSelectedItems:this.state.selectedMembers})]})}}const Q=M(f("appStore","projectStore","membersStore","selectionStore","permissionStore","permissionsStore"),S(k),g)(T);export{Q as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.