1"use strict";(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[7619],{1448:function(e,r,t){t.d(r,{A_:function(){return getRequest},GH:function(){return putRequest},Jl:function(){return deleteRequest},Ll:function(){return patchRequest},Nr:function(){return createBadResponse},Yg:function(){return createUnauthorizedResponse},aK:function(){return o},j0:function(){return postRequest},ww:function(){return s},xo:function(){return createUnexpectedErrorResponse}});let getStandardHeaders=e=>{let r={"Content-Type":"application/json","X-CSRF-Token":"-.-"};return e&&(r["X-SAML-Code"]=e),r},getGetRequestHeaders=e=>{let r={"Content-Type":"application/json"};return e&&(r["X-SAML-Code"]=e),r},o="An unexpected error has occurred, please try again",s="äºæããªãã¨ã©ã¼ãçºçãã¾ãããããä¸åº¦ã試ããã ããã",postRequest=(e,r,t)=>fetch(e,{method:"POST",headers:getStandardHeaders(t),body:JSON.stringify(r)}),patchRequest=(e,r,t)=>fetch(e,{method:"PATCH",headers:getStandardHeaders(t),body:JSON.stringify(r)}),deleteRequest=(e,r,t)=>fetch(e,{method:"DELETE",headers:getStandardHeaders(t),body:JSON.stringify(r)}),getRequest=(e,r,t,o)=>{let s=new URLSearchParams(r);return fetch("".concat(e,"?").concat(s.toString()),{method:"GET",headers:getGetRequestHeaders(t),redirect:o?"follow":"error"})},putRequest=(e,r,t)=>fetch(e,{method:"PUT",headers:getStandardHeaders(t),body:JSON.stringify(r)}),createBadResponse=(e,r)=>({success:!1,error_type:"bad_request",field_to_errors:e,overall_errors:r}),createUnexpectedErrorResponse=()=>({success:!1,error_type:"unexpected_error"}),createUnauthorizedResponse=()=>({success:!1,error_type:"unauthorized"})},86093:function(e,r,t){var o=t(85893),s=t(82623),n=t(95117),l=t(54070);r.Z=e=>{let{children:r}=e;return(0,o.jsx)(s.X,{bg:l.xR.ErrorButtonColor,p:"lg",children:(0,o.jsx)(n.x,{color:l.xR.ErrorButtonTextColor,size:"lg",my:"lg",fw:"bold",children:r})})}},72908:function(e,r,t){t.d(r,{O:function(){return C}});var o=t(85893),s=t(56817),n=t(96768),l=t(64761),a=t(97564),i=t(95117
1),c=t(66137),d=t(67841),u=t(23259),h=t(80061),m=t(77248),g=t(36028),p=t(21209),x=t(53865),b=t(95617),v=t(67294),f=t(54070),_=t(95427);let C=(0,s.k)(e=>({header:{"&& th":{borderBottom:"2px solid ".concat((0,_.tv)(e)),backgroundColor:e.colors.mainBackgroundColor[6],color:e.colors.mainTextColor[6],fontWeight:600,"&[data-hovered]":{backgroundColor:"".concat(e.colors.mainBackgroundColor[6]," !important")},"&:hover":{backgroundColor:"".concat(e.colors.mainBackgroundColor[6]," !important")}}}})),w=(0,s.k)(e=>({pagination:{borderTop:"2px solid ".concat((0,_.tv)(e))},pageButton:{width:e.other.iconSizes.xxl,height:e.other.iconSizes.xxl},pageNumberButton:{minWidth:e.other.iconSizes.xxl,width:"auto",height:e.other.iconSizes.xxl},pageInput:{label:{color:e.colors.sidebarTextColor[6]},input:{color:e.colors.sidebarTextColor[6],borderColor:(0,_.tv)(e,"sidebar"),backgroundColor:e.colors.sidebarBackgroundColor[6],width:(0,n.h)(75),textAlign:"center"}},changePageButton:{"&:hover":{backgroundColor:e.fn.darken(e.colors.mainBackgroundColor[6],.1)}}}));r.Z=function(e){let{data:r,columns:t,dataPage:s,setDataPage:n,hasMoreResults:j,totalDataRecords:S,pageSize:y=10,noRecordsText:R="No data found",isLoading:E=!1,searchQuery:B,withBorder:I=!1,borderRadius:k,fontSize:N="lg",verticalSpacing:z="lg",horizontalSpacing:U="lg",hidePagination:M=!1,...P}=e,{classes:T}=C(),{cx:A,classes:q}=w(),O=(0,l.rZ)(),[Z,D]=(0,v.useState)(1),[K,L]=(0,v.useState)(!1),F=(0,m.c)({initialValues:{pageSelect:Z.toString()}}),X=(0,v.useCallback)(e=>{n&&n(e),D(e),F.setFieldValue("pageSelect",e.toString())},[F,n]),setPageNumber=e=>{let{pageSelect:t}=e,o=parseInt(t);n&&void 0!==S&&!isNaN(o)&&o>0&&o<=Math.ceil(S/y)?(X(o),L(!1)):!isNaN(o)&&o>0&&o<=Math.ceil(r.length/y)?(X(o),L(!1)):X(Z)};(0,v.useEffect)(()=>{void 0!==B&&D(1)},[B]),(0,v.useEffect)(()=>{void 0!==s&&Z!==s&&X(s)},[s,Z,F.values,X]),(0,v.useEffect)(()=>{M&&void 0===s&&1!==Z&&X(1)},[M,s,Z,X]);let V=(0,v.useMemo)(()=>void 0!==s?r:r.slice((Z-1)*y,Z*y),[r,s,Z,y]);return(0,o.jsxs)(a.K,{spacing:0,children:[(0,o.jsx)(b.wQ,{withBorder:I,borderRadius:k,classNames:T,verticalSpacing:z,horizontalSpacing:U,fontSize:N,minHeight:r.length>0?void 0:200,height:"auto",records:void 0!==s?r:V,borderColor:(0,_.tv)(O),rowBorderColor:(0,_.tv)(O),columns:t,fetching:E,emptyState:(0,o.jsxs)(a.K,{align:"center",children:[(0,o.jsx)(g.Z,{color:O.colors.mainTextColor[6],size:O.other.iconSizes.xl}),(0,o.jsx)(i.x,{size:"sm",color:O.colors.mainTextColor[6],children:R})]}),...P}),!M&&(0,o.jsx)(c.Z,{w:"100%",position:"apart",pt:"md",px:"lg",className:q.pagination,children:r.length>0&&(0,o.jsxs)(o.Fragment,{children:[(0,o.jsxs)(i.x,{children:["Displaying results"," ",(0,o.jsxs)(i.x,{span:!0,fw:600,children:[((null!=s?s:Z)-1)*y+1,"-",((null!=s?s:Z)-1)*y+V.length]})," ","of"," ",(0,o.jsx)(i.x,{span:!0,fw:600,children:null!=S?S:r.length})]}),(0,o.jsxs)(c.Z,{children:[(0,o.jsx)(d.z,{className:A(q.pageButton,q.changePageButton),p:"md",variant:f.Bq.Subtle,onClick:()=>{n&&void 0!==s?s>1&&X(s-1):Z>1&&X(Z-1)},children:(0,o.jsx)(p.Z,{size:O.other.iconSizes.md})}),(0,o.jsxs)(u.J,{opened:K,onClose:()=>setPageNumber(F.values),children:[(0,o.jsx)(u.J.Target,{children:(0,o.jsx)(d.z,{p:"md",className:q.pageNumberButton,onClick:()=>L(e=>!e),children:Z})}),(0,o.jsx)(u.J.Dropdown,{children:(0,o.jsxs)("form",{onSubmit:F.onSubmit(setPageNumber),children:[(0,o.jsx)(h.o,{className:q.pageInput,label:"Page number",...F.getInputProps("pageSelect")}),(0,o.jsx)(d.z,{type:"submit",display:"none",children:"Set page"})]})})]}),(0,o.jsx)(d.z,{p:"md",className:A(q.pageButton,q.changePageButton),variant:f.Bq.Subtle,onClick:()=>{n&&void 0!==s&&j?X(s+1):Z*y<r.length&&X(Z+1)},children:(0,o.jsx)(x.Z,{size:O.other.iconSizes.md})})]})]})})]})}},53658:function(e,r,t){var o=t(85893),s=t(56817),n=t(64761),l=t(66137),a=t(17789),i=t(95117
1),c=t(97564),d=t(84530),u=t(67294),h=t(40423),m=t(54070);let g=(0,s.k)(e=>({badge:{padding:"".concat(e.spacing.md," ").concat(e.spacing.lg),borderRadius:e.radius.md,height:"100%",pointerEvents:"auto",cursor:"pointer"},poweredBy:{backgroundColor:e.colors.propelAuthGreen[6],color:e.colors.propelAuthWhite[6]}}));r.Z=e=>{let{isDesktop:r,showNavbar:t}=e,{cx:s,classes:p}=g(),x=(0,n.rZ)(),[b,v]=(0,u.useState)("");(0,u.useEffect)(()=>{v(window.location.hostname||"")},[]);let f=t?"calc(100vw - ".concat(r?"300px":"0px"," - (2 * ").concat(x.spacing.md,"))"):"calc(100vw - (2 * ".concat(x.spacing.md,"))");return(0,o.jsx)(l.Z,{style:{width:f,height:"auto",zIndex:10,pointerEvents:"none"},px:{base:"sm",sm:"xl"},py:{base:"xs",sm:"lg"},pos:"fixed",align:"end",position:"right",bottom:x.spacing.md,children:(0,o.jsx)(a.C,{tabIndex:10,component:"a",href:"https://www.propelauth.com?utm_campaign=poweredby&utm_source=".concat(b),target:"_blank",rel:"noopener noreferrer",className:s(p.badge,p.poweredBy),children:r?(0,o.jsxs)(l.Z,{children:[(0,o.jsx)(d.Z,{size:x.other.iconSizes.md}),(0,o.jsx)(i.x,{size:"md",ff:m.dn[h.bt.Inter].style.fontFamily,children:"Powered by PropelAuth"})]}):(0,o.jsxs)(c.K,{align:"center",spacing:0,p:0,m:0,children:[(0,o.jsx)(i.x,{size:"xs",ff:m.dn[h.bt.Inter].style.fontFamily,children:"Powered by"}),(0,o.jsx)(i.x,{size:"sm",ff:m.dn[h.bt.Inter].style.fontFamily,children:"PropelAuth"})]})})})}},94055:function(e,r,t){var o=t(85893),s=t(64761),n=t(9008),l=t.n(n);r.Z=e=>{let{pageTitle:r,siteDisplayName:t}=e,n=(0,s.rZ)();return(0,o.jsxs)(l(),{children:[(0,o.jsx)("title",{children:"".concat(r," - ").concat(t)}),(0,o.jsx)("meta",{name:"description",content:"".concat(r," - ").concat(t)}),(0,o.jsx)("meta",{name:"og:title",content:"".concat(r," - ").concat(t)}),(0,o.jsx)("meta",{name:"og:description",content:"".concat(r," - ").concat(t)}),(0,o.jsx)("meta",{name:"og:locale",content:"en_US"}),(0,o.jsx)("meta",{name:"og:type",content:"website"}),(0,o.jsx)("meta",{name:"theme-color",content:n.colors.mainBackgroundColor[6]}),(0,o.jsx)("link",{rel:"icon",href:"/api/fe/v1/favicon.ico"})]})}},61221:function(e,r,t){t.r(r),t.d(r,{__N_SSP:function(){return er},default:function(){return members}});var o,s,n,l,a,i,c=t(85893),d=t(64761),u=t(49737),h=t(97564),m=t(19236),g=t(95117),p=t(33575),x=t(67294),b=t(74542),v=t(1448),f=t(35886),_=t(20050),C=t(67841),w=t(80061),j=t(66137),S=t(1177),y=t(79153),R=t(39759),E=t(30202),B=t(78551);let apiFetchOrgMembers=async e=>{let{org_id:r,page_number:t,page_size:o=10,email_search:s}=e,n={page_number:t.toString(),page_size:o.toString()};return s&&(n.email_search=s),(0,v.A_)("/api/fe/v3/org_membership/".concat(r,"/members"),n).then(e=>e.ok?e.json().then(e=>({success:!0,data:{...e,users:e.users.map(e=>{var r;return{...e,is_2fa_enabled:null!==(r=e.is_2fa_enabled)&&void 0!==r&&r}})}})):401===e.status?(0,v.Yg)():(0,v.xo)())};var I=t(86093);let buildRoleDescriptionMap=e=>{let r={};for(let{name:t,description:o,show_description_tooltip:s}of null!=e?e:[])o&&!0===s&&(r[t]=o);return r},toRoleSelectItems=(e,r)=>e.map(e=>({value:e,label:e,description:r[e]})),pendingInviteToUserRow=e=>{var r;return{...e,status:null!==(r=e.status)&&void 0!==r?r:i.PENDING.toString(),user_id:"",can_be_deleted:!0,possible_roles:[],is_2fa_enabled:!1,is_enabled:!1}},expiredInviteToUserRow=e=>{var r;return{...e,status:null!==(r=e.status)&&void 0!==r?r:i.EXPIRED.toString(),user_id:"",can_be_deleted:!1,possible_roles:[],is_2fa_enabled:!1,is_enabled:!1}},filterUserRowsBySearch=(e,r)=>e.filter(e=>!r||e.email.indexOf(r)>-1),parseUsers=(e,r,t,o)=>{let s=e.filter(e=>e.is_enabled).map(e=>({...e,status:i.ACTIVE.toString()})),n=e.filter(e=>!e.is_enabled).map(e=>({...e,status:i.INACTIVE.toString()}));return filterUserRowsBySearch(s.concat(r.map(pendingInviteToUserRow)).concat(t.map(expiredInviteToUserRow)).concat(n),o)},composeMembersPage=(e,r,t,o,s,n)=>{let l=filterUserRowsBySearch(o.map(pendingInviteToUserRow).concat(s.map(expiredInviteToUserRow)),n),a=e.users.map(e=>({...e,status:e.is_enabled?i.ACTIVE.toString():i.INACTIVE.toString()})),c=Math.max((r-1)*t-e.total_count,0),d=r*t-e.total_count,u=d>0?l.slice(c,d):[];return{rows:a.concat(u),totalDataRecords:e.total_count+l.length,hasMoreResults:r*t<e.total_count+l.length}},k=(0,x.createContext)(null),useOrgMembers=()=>{let e=(0,x.useContext)(k);if(!e)throw Error("orgMembersContext: No value provided");return e},fetchMembers=async e=>{let r=await apiFetchOrgMembers(e);if(!r.success)throw Error("Failed to fetch org members");return r.data},OrgMembersContextProvider=e=>{var r;let{orgId:t,pendingInvites:o,expiredInvites:s,children:n}=e,l=(0,E.NL)(),[a,i]=(0,x.useState)(1),[d,u]=(0,x.useState)(""),[h]=(0,R.c)(d,250),m=(0,B.a)({queryFn:()=>fetchMembers({org_id:t,page_number:0,page_size:100}),queryKey:["orgMembers",t,"initial"],refetchOnWindowFocus:!1,gcTime:0}),g=(null===(r=m.data)||void 0===r?void 0:r.has_more_results)===!0,p=(0,B.a)({queryFn:()=>fetchMembers({org_id:t,page_number:a-1,page_size:10,email_search:h}),queryKey:["orgMembers",t,a,h],enabled:g,refetchOnWindowFocus:!1,gcTime:0}),b=m.isLoading||g&&(p.isLoading||d!==h),{users:v,totalUsers:f,hasMoreResults:_}=(0,x.useMemo)(()=>
1{if(!g){var e,r;let t=parseUsers(null!==(r=null===(e=m.data)||void 0===e?void 0:e.users)&&void 0!==r?r:[],o,s,d);return{users:t,totalUsers:t.length,hasMoreResults:!1}}if(!p.data)return{users:[],totalUsers:0,hasMoreResults:!1};let t=composeMembersPage(p.data,a,10,o,s,h);return{users:t.rows,totalUsers:t.totalDataRecords,hasMoreResults:t.hasMoreResults}},[g,m.data,p.data,a,o,s,d,h]),refreshMembers=async()=>{await l.refetchQueries({queryKey:["orgMembers",t]})};return((0,x.useEffect)(()=>{i(1)},[h,g]),(0,x.useEffect)(()=>{g&&!b&&p.data&&0===v.length&&a>1&&i(e=>e-1)},[g,b,p.data,v,a]),m.isError||g&&p.isError)?(0,c.jsx)(I.Z,{children:"Failed to load users. Reload the page to try again."}):(0,c.jsx)(k.Provider,{value:{isLoading:b,isLargeOrg:g,users:v,totalUsers:f,hasMoreResults:_,pageNumber:a,search:d,fns:{refreshMembers,setPageNumber:i,setSearch:u}},children:n})};var N=t(5757),z=t(88393),U=t(28855),M=t(31194),P=t(20966),T=t(77248),A=t(11163);let apiInviteUser=async e=>{if(!e.email||e.email.length<1)return Promise.resolve((0,v.Nr)({email:["Email address required"]}));let r=await (0,v.j0)("/api/fe/v1/invite_user",e);if(r.ok){let e=await r.text();return{success:!0,data:e}}if(400===r.status){let e=await r.json();return(0,v.Nr)({email:e.email,role:e.role,overall_errors:e.error})}return 401===r.status?(0,v.Yg)():(0,v.xo)()};var q=t(54070);let O=(0,x.forwardRef)((e,r)=>{let{value:t,label:o,description:s,...n}=e;return s?(0,c.jsx)(z.u,{variant:q.kI.Sidebar,withinPortal:!0,multiline:!0,maw:300,sx:{wordBreak:"break-word"},openDelay:500,position:"right",label:s,children:(0,c.jsx)("div",{ref:r,...n,children:o})}):(0,c.jsx)("div",{ref:r,...n,children:o})});O.displayName="RoleSelectItem";var Z=t(64523),D=t(80971),K=t(92916),members_UserRoleMultiSelectValue=e=>{let{canEditRole:r,description:t,label:o,onRemove:s,...n}=e,l=(0,d.rZ)(),a=!r,i=r?(0,K.wX)(l,q.xR.ActionButtonColor):(0,K.n5)((0,K.wX)(l,q.xR.SidebarBackgroundColor),l,.2),u=r?(0,K.wX)(l,q.xR.ActionButtonTextColor):(0,K.e5)((0,K.wX)(l,q.xR.SidebarTextColor),i);return(0,c.jsx)("div",{...n,children:(0,c.jsx)(z.u,{variant:q.kI.Sidebar,withinPortal:!0,multiline:!0,maw:300,sx:{wordBreak:"break-word"},openDelay:500,label:(0,c.jsxs)(h.K,{spacing:2,children:[!r&&(0,c.jsx)(g.x,{fw:"bold",children:"You cannot remove this role"}),t&&(0,c.jsx)(g.x,{children:t})]}),disabled:!(!r||t),children:(0,c.jsxs)(Z.x,{sx:e=>({display:"flex",cursor:"default",alignItems:"center",backgroundColor:i,padding:a?e.spacing.sm:0,paddingLeft:e.spacing.md,paddingRight:a?e.spacing.md:e.spacing.sm,borderRadius:e.radius.sm}),children:[(0,c.jsx)(Z.x,{sx:e=>({lineHeight:1,fontSize:e.fontSizes.md,color:u}),children:o}),!a&&(0,c.jsx)(D.P,{onMouseDown:s,variant:"transparent",iconSize:l.other.iconSizes.sm,sx:{color:u},tabIndex:-1})]})})})},members_InvitationModal=e=>{let{orgId:r,isMultiRole:t,inviteePossibleRoles:o,roleDescriptionMap:s,pendingInvites:n,addPendingInvite:l,...a}=e,i=(0,A.useRouter)(),[d,u]=(0,x.useState)(!1),[m,g]=(0,x.useState)(!1),b=(0,T.c)({initialValues:{email:"",role:"",roles:[]},validate:{email:e=>e&&""!==e?n.some(r=>r.email===e)?"User already invited":null:"Email is required",role:e=>t||""!==e?null:"Required field",roles:e=>t&&0===e.length?"Required field":null}}),invite=async e=>{u(!0);let o=t?e.roles[0]:e.role,s=t?e.roles.slice(1):[],n={org_id:r,email:e.email,role:o,additional_roles:s};try{let r=await apiInviteUser(n);r.success?(b.reset(),l(e.email,o,s),a.onClose()):"bad_request"===r.error_type?(b.setErrors(r.field_to_errors),r.field_to_errors.overall_errors&&(p.N9.show({title:"Error",message:r.field_to_errors.overall_errors,color:"errorButtonColor.6"}),g(!0))):"unauthorized"===r.error_type?(p.N9.show({title:"Error",message:"You must be logged in to perform this action. Redirecting to login...",color:"errorButtonColor.6"}),i.push("/login")):p.N9.show({title:"Error",message:v.aK,color:"errorButtonColor.6"})}catch(e){p.N9.show({title:"Error",message:v.aK,color:"errorButtonColor.6"})}finally{u(!1)}};return(0,c.jsx)(N.u,{...a,title:"Invite user",children:(0,c.jsxs)("form",{onSubmit:b.onSubmit(invite),children:[(0,c.jsxs)(h.K,{mt:"lg",children:[(0,c.jsx)(w.o,{variant:q.kI.Sidebar,label:"Email",type:"email",...b.getInputProps("email")}),t?(0,c.jsx)(M.NU,{withinPortal:!0,variant:q.kI.Sidebar,label:"Roles",placeholder:"Select roles",data:o.map(e=>({value:e,label:e,description:s[e],canEditRole:!0})),itemComponent:O,valueComponent:members_UserRoleMultiSelectValue,...b.getInputProps("roles")}):(0,c.jsx)(z.u,{variant:q.kI.Sidebar,withinPortal:!0,multiline:!0,maw:300,sx:{wordBreak:"break-word"},openDelay:500,position:"top",label:s[b.values.role],disabled:!s[b.values.role],children:(0,c.jsx)(U.Ph,{variant:q.kI.Sidebar,withinPortal:!0,label:"Role",placeholder:"Select a role",data:toRoleSelectItems(o,s),itemComponent:O,...b.getInputProps("role")})})]}),(0,c.jsxs)(j.Z,{grow:!0,mt:"xl",children:[(0,c.jsx)(C.z,{variant:q.Bq.SidebarOutline,onClick:()=>{a.onClose(),b.reset(),g(!1)},children:"Cancel"}),(0,c.jsx)(C.z,{type:"submit",disabled:m,children:d?(0,c.jsx)(P.a,{color:"actionButtonTextColor.6",size:"sm"}):"Invite"})]})]})})},L=t(17789);(o=l||(l={})).Enabled="ENABLED",o.Disabled="DISABLED";var User2FAStatusCell=e=>{let{user:r}=e;return(0,c.jsx)(j.Z,{children:(0,c.jsx)(L.C,{size:"lg",variant:"filled",sx:e=>{let t=e.fn.lighten(e.white,1),o=e.colors.gray[6];return r.is_2fa_enabled?(o=e.colors.actionButtonColor[6],t=e.colors.actionButtonTextColor[6]):(o=e.colors.errorButtonColor[6],t=e.colors.errorButtonTextColor[6]),{color:t,backgroundColor:o}},children:r.is_2fa_enabled?"ENABLED":"DISABLED"})})}
1,F=t(95033),X=t(13499),members_UserEmailCell=e=>{let{isCurrentUser:r,user:t,search:o=""}=e,s=(0,d.rZ)();return(0,c.jsx)(z.u,{label:"You",disabled:!r,position:"left",offset:8,withinPortal:!0,children:(0,c.jsxs)(j.Z,{noWrap:!0,spacing:s.spacing.md,pl:r?0:"calc(".concat(s.other.iconSizes.lg," + ").concat(s.spacing.md,")"),children:[r&&(0,c.jsx)(X.Z,{stroke:1.5,size:s.other.iconSizes.lg}),(0,c.jsx)(F.y,{fw:500,highlight:o,color:"mainTextColor.6",highlightStyles:e=>({backgroundColor:e.fn.lighten(e.colors.actionButtonColor[6],.4),borderRadius:e.radius.sm}),children:t.email})]})})},V=t(35864),Y=t(37555),H=t(73453),J=t(95221),W=t(74075),G=t(10614);let apiRemoveUser=e=>{let{orgId:r,userId:t}=e;return(0,v.j0)("/api/fe/v1/remove_user",{org_id:r,user_id:t}).then(e=>e.ok?e.text().then(e=>({success:!0,data:e})):403===e.status?e.text().then(e=>({success:!1,error_type:"remove_user_not_allowed",message:e})):404===e.status?{success:!1,error_type:"remove_user_not_allowed",message:"User not found"}:(0,v.xo)())};var members_RemoveUserModal=e=>{let{isCurrentUser:r,user:t,orgId:o,orgsMetaname:s,...n}=e,l=(0,A.useRouter)(),{fns:{refreshMembers:a}}=useOrgMembers(),[i,d]=(0,x.useState)(!1),deleteUser=async()=>{d(!0);let e=await apiRemoveUser({orgId:o,userId:t.user_id});try{e.success?r?(p.N9.show({title:"Success",message:"You have left this ".concat(s.toLowerCase(),". You will be redirected shortly."),color:"actionButtonColor.6"}),await l.reload()):(await a(),p.N9.show({title:"Success",message:"Removed ".concat(t.email," from your ").concat(s.toLowerCase()),color:"actionButtonColor.6"})):"remove_user_not_allowed"===e.error_type?p.N9.show({title:"Error",message:e.message,color:"errorButtonColor.6"}):"unexpected_error"===e.error_type&&p.N9.show({title:"Error",message:v.aK,color:"errorButtonColor.6"})}catch(e){p.N9.show({title:"Error",message:v.aK,color:"errorButtonColor.6"})}finally{d(!1),n.onClose()}},u=r?(0,c.jsx)(g.x,{children:"Are you sure you want to leave this ".concat(s.toLowerCase(),"?")}):(0,c.jsxs)(g.x,{children:["Are you sure you want to remove ",(0,c.jsx)(g.x,{span:!0,fw:700,children:t.email})," from your ".concat(s.toLowerCase(),"?")]}),h=r?"Leave ".concat(s.toLowerCase()):"Remove user";return(0,c.jsxs)(N.u,{...n,title:h,children:[i?(0,c.jsx)(P.a,{}):u,(0,c.jsxs)(j.Z,{grow:!0,mt:"lg",children:[(0,c.jsx)(C.z,{variant:q.Bq.SidebarOutline,onClick:n.onClose,children:"Cancel"}),(0,c.jsx)(C.z,{onClick:deleteUser,variant:q.Bq.SidebarDangerSolid,children:i?(0,c.jsx)(P.a,{color:"errorButtonTextColor.6",size:"sm"}):r?"Leave":"Remove"})]})]})};let apiRevokeInvitation=e=>{let{orgId:r,email:t}=e;return(0,v.j0)("/api/fe/v1/revoke_user_invitation",{org_id:r,email:t}).then(e=>e.ok?{success:!0}:400===e.status?e.json().then(e=>(0,v.Nr)({email:e.email})):403===e.status||404===e.status?{success:!1,error_type:"forbidden",message:"Unable to remove that user"}:401===e.status?(0,v.Yg)():(0,v.xo)())};(s=a||(a={})).REVOKE="revoke",s.RESEND="resend",s.DELETE="delete";
1var members_UpdateInvitationModal=e=>{let{user:r,orgId:t,action:o,removePendingInvite:s,...n}=e,l=(0,A.useRouter)(),[a,i]=(0,x.useState)(!1),getSuccessAction=()=>{switch(o){case"revoke":return"Revoked";case"resend":return"Resent";case"delete":return"Deleted";default:return"Updated"}},getFormattedAction=()=>"".concat(o.charAt(0).toUpperCase()).concat(o.slice(1));return(0,c.jsx)(N.u,{...n,title:"".concat(getFormattedAction()," invitation"),children:a?(0,c.jsx)(P.a,{}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsxs)(g.x,{children:[(()=>{switch(o){case"revoke":return"Are you sure you want to revoke the invitation for ";case"resend":return"Are you sure you want to resend an invitation to ";case"delete":return"Are you sure you want to delete the expired invitation for ";default:return"Are you sure you want to update the invitation for "}})(),(0,c.jsx)(g.x,{span:!0,fw:700,children:r.email}),"?"]}),(0,c.jsxs)(j.Z,{grow:!0,mt:"lg",children:[(0,c.jsx)(C.z,{variant:q.Bq.SidebarOutline,onClick:n.onClose,children:"Cancel"}),(0,c.jsx)(C.z,{onClick:()=>{i(!0),apiRevokeInvitation({email:r.email,orgId:t}).then(e=>{e.success?(s(r.email),"resend"===o?apiInviteUser({email:r.email,role:r.role,additional_roles:r.additional_roles,org_id:t}).then(e=>{e.success?p.N9.show({title:"Success",message:"".concat(getSuccessAction()," invitation to ").concat(r.email),color:"actionButtonColor.6"}):"bad_request"===e.error_type?p.N9.show({title:"Error",message:e.field_to_errors.overall_errors,color:"errorButtonColor.6"}):"unauthorized"===e.error_type?(p.N9.show({title:"Error",message:"You must be logged in to perform this action. Redirecting to login...",color:"errorButtonColor.6"}),l.push("/login")):p.N9.show({title:"Error",message:v.aK,color:"errorButtonColor.6"})}):p.N9.show({title:"Success",message:"".concat(getSuccessAction()," invitation to ").concat(r.email),color:"actionButtonColor.6"})):"forbidden"===e.error_type?p.N9.show({title:"Error",message:e.message,color:"errorButtonColor.6"}):"unauthorized"===e.error_type?(p.N9.show({title:"Error",message:"You must be logged in to perform this action. Redirecting to login...",color:"errorButtonColor.6"}),l.push("/login")):p.N9.show({title:"Error",message:v.aK,color:"errorButtonColor.6"})}).catch(e=>{p.N9.show({title:"Error",message:v.aK,color:"errorButtonColor.6"})}).finally(()=>{i(!1),n.onClose()})},variant:"resend"===o?q.Bq.SidebarPrimary:q.Bq.SidebarDangerSolid,children:a?(0,c.jsx)(P.a,{color:"errorButtonTextColor.6",size:"sm"}):getFormattedAction()})]})]})})},members_UserOptions=e=>{let{isCurrentUser:r,user:t,orgsMetaname:o,orgId:s,removePendingInvite:n}=e,l=(0,d.rZ)(),[u,h]=(0,x.useState)(a.REVOKE),[m,g]=(0,x.useState)(!1),[p,b]=(0,x.useState)(!1),v=(0,K.e5)((0,K.wX)(l,q.xR.ErrorButtonColor),(0,K.wX)(l,q.xR.SidebarBackgroundColor)),f=(()=>{switch(t.status){case i.PENDING.toString():return(0,c.jsx)(V.v.Item,{sx:{color:v,"&:hover":{backgroundColor:l.fn.rgba(v,.1)}},icon:(0,c.jsx)(Y.Z,{size:l.other.iconSizes.lg}),onClick:()=>{h(a.REVOKE),g(!0)},children:"Revoke invitation"});case i.EXPIRED.toString():return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(V.v.Item,{icon:(0,c.jsx)(H.Z,{size:l.other.iconSizes.lg}),onClick:()=>{h(a.RESEND),g(!0)},children:"Resend invitation"}),(0,c.jsx)(V.v.Item,{sx:{color:v,"&:hover":{backgroundColor:l.fn.rgba(v,.1)}},icon:(0,c.jsx)(Y.Z,{size:l.other.iconSizes.lg}),onClick:()=>{h(a.DELETE),g(!0)},children:"Delete invitation"})]});default:if(t.can_be_deleted)return(0,c.jsx)(V.v.Item,{sx:{color:v,"&:hover":{backgroundColor:l.fn.rgba(v,.1)}},icon:r?(0,c.jsx)(J.Z,{size:l.other.iconSizes.lg}):(0,c.jsx)(W.Z,{size:l.other.iconSizes.lg}),onClick:()=>{b(!0)},children:r?"Leave ".concat(o.toLowerCase()):"Remove user"});return null}})();return f?(0,c.jsxs)(V.v,{withinPortal:!0,position:"left-start",children:[(0,c.jsx)(V.v.Target,{children:(0,c.jsx)(C.z,{variant:q.Bq.Subtle,p:"md",children:(0,c.jsx)(G.Z,{})})}),(0,c.jsx)(V.v.Dropdown,{children:f}),(0,c.jsx)(members_RemoveUserModal,{isCurrentUser:r,orgId:s,orgsMetaname:o,user:t,centered:!0,withCloseButton:!1,opened:p,onClose:()=>{b(!1)}}),(0,c.jsx)(members_UpdateInvitationModal,{orgId:s,user:t,removePendingInvite:n,
1centered:!0,withCloseButton:!1,opened:m,onClose:()=>{g(!1)},action:u})]}):null},Q=t(91759);let apiChangeRole=async e=>{let r=await (0,v.j0)("/api/fe/v1/change_role",e);if(r.ok){let e=await r.text();return{success:!0,data:e}}if(400===r.status){let e=await r.json();return(0,v.Nr)({role:e.role})}if(403!==r.status)return(0,v.xo)();{let e=await r.text();return{success:!1,error_type:"change_role_not_allowed",message:e}}};var members_ConfirmOwnRoleChangeModal=e=>{let{isOpen:r,role:t,newRole:o,onConfirm:s,onClose:n}=e,l=(0,d.rZ)(),a=(0,K.e5)((0,K.wX)(l,q.xR.ErrorButtonColor),(0,K.wX)(l,q.xR.SidebarBackgroundColor)),handleConfirm=async()=>{await s(),n()};return(0,c.jsxs)(N.u,{opened:r,onClose:n,title:"Confirm role change",centered:!0,closeOnClickOutside:!1,closeOnEscape:!1,withCloseButton:!1,children:[(0,c.jsxs)(g.x,{color:a,mt:"lg",children:[(0,c.jsx)(g.x,{span:!0,fw:"bold",children:"Warning:"})," ","You are about to change your role from"," ",(0,c.jsx)(g.x,{span:!0,fw:"bold",children:t})," ","to"," ",(0,c.jsx)(g.x,{span:!0,fw:"bold",children:o}),". If you continue, you may lose access to certain features, including the ability to regain your current role."]}),(0,c.jsxs)(j.Z,{noWrap:!0,grow:!0,mt:"xl",children:[(0,c.jsx)(C.z,{onClick:n,variant:q.Bq.SidebarOutline,color:"primary",children:"Cancel"}),(0,c.jsx)(C.z,{color:"primary",onClick:handleConfirm,children:"Confirm"})]})]})},$=t(21942);let getUserRolesString=e=>{if(e&&e.length>0){let r=e.slice(0,2).join(", "),t=e.length>2?2:null;if(r.length>15){let o=15-e[0].length-2;o>3?(r=r.slice(0,15).concat("..."),t=2):(r=e[0].slice(0,15).concat(e[0].length<=15?"":"..."),t=1)}let o=t?e.length-t:0;return t&&o>0&&(r+=" (+".concat(o,")")),r}return"None"};var members_MultiRoleSelectionButton=e=>{let{isCurrentUser:r,user:t,onSave:o,roleDescriptionMap:s}=e,n=(0,d.rZ)(),l=(0,x.useMemo)(()=>[t.role,...t.additional_roles],[t]),[a,i]=(0,x.useState)(l),[u,m]=(0,x.useState)(null);(0,x.useEffect)(()=>{i(l)},[l]);let[b,{open:v,close:f}]=(0,Q.q)(!1),[_,w]=(0,x.useState)(!1),S=r&&!l.every(e=>a.includes(e)),y=JSON.stringify(a.sort())!==JSON.stringify(l.sort()),R=l.some(e=>s[e]),E=l.length<=2&&!R,handleSave=async()=>{if(0===a.length)m("User must have at least one role");else{w(!0);try{await o(a[0],a.slice(1)),f()}catch(e){p.N9.show({title:"Error",message:"An unexpected error occurred",color:q.xR.ErrorButtonColor})}w(!1)}},handleCancel=()=>{w(!1),m(null),i(l),f()},B=a.filter(e=>!t.possible_roles.includes(e)),I=[...t.possible_roles].map(e=>({value:e,label:e,description:s[e],canEditRole:!0})).concat(B.map(e=>({value:e,label:e,description:s[e],canEditRole:!1}))),k=0===t.possible_roles.length,U=(0,K.e5)((0,K.wX)(n,q.xR.ErrorButtonColor),(0,K.wX)(n,q.xR.SidebarBackgroundColor));return(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(z.u,{position:"right-start",withinPortal:!0,withArrow:!0,arrowPosition:"center",multiline:!0,maw:300,sx:{wordBreak:"break-word"},label:(0,c.jsxs)(h.K,{spacing:"sm",children:[(0,c.jsx)(g.x,{children:"All user roles:"}),l.map(e=>(0,c.jsxs)(h.K,{spacing:0,children:[(0,c.jsx)(g.x,{fw:"bold",children:e}),s[e]&&(0,c.jsx)(g.x,{size:"sm",children:s[e]})]},e))]}),openDelay:500,disabled:E,children:(0,c.jsx)(Z.x,{w:"fit-content",children:(0,c.jsx)(C.z,{leftIcon:k?void 0:(0,c.jsx)($.Z,{size:20}),onClick:k?void 0:v,variant:k?q.Bq.Outline:q.kI.Main,children:getUserRolesString(l)})})}),(0,c.jsxs)(N.u,{opened:b,onClose:handleCancel,title:"Update roles",centered:!0,closeOnClickOutside:!1,closeOnEscape:!1,withCloseButton:!1,children:[(0,c.jsxs)(h.K,{children:[(0,c.jsxs)(g.x,{children:["Add or remove roles for"," ",(0,c.jsx)(g.x,{span:!0,fw:"bold",children:t.email}),". Users must have at least one role."]}),(0,c.jsx)(M.NU,{withinPortal:!0,label:"User roles",placeholder:"Select roles",variant:q.kI.Sidebar,value:a,onChange:e=>{m(null),i(e)},data:I,error:u,itemComponent:O,valueComponent:members_UserRoleMultiSelectValue}),S&&(0,c.jsxs)(g.x,{color:U,children:[(0,c.jsx)(g.x,{span:!0,fw:"bold",children:"Warning:"})," ","You have removed one or more of your current roles. If you save, you may lose certain permissions, including the ability to regain those roles."]})]}),(0,c.jsxs)(j.Z,{noWrap:!0,grow:!0,mt:"xl",children:[(0,c.jsx)(C.z,{onClick:handleCancel,variant:q.Bq.SidebarOutline,color:"primary",children:"Cancel"}),(0,c.jsx)(C.z,{color:"primary",onClick:handleSave,disabled:!y||_,children:_?(0,c.jsx)(P.a,{size:"xs",color:"primary"}):"Save"})]})]})]})}
1,members_UserRoleCell=e=>{let{isMultiRole:r,user:t,isCurrentUser:o,orgId:s,roleDescriptionMap:n}=e,l=(0,A.useRouter)(),{fns:{refreshMembers:a}}=useOrgMembers(),[d,u]=(0,x.useState)(!1),[h,{open:m,close:g}]=(0,Q.q)(!1),[b,f]=(0,x.useState)(t.role),[_,C]=(0,x.useState)(null),changeRole=async function(e){let r=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];u(!0),C(null);let n={org_id:s,user_id:t.user_id,role:e,additional_roles:r};try{let e=await apiChangeRole(n);e.success?o?await l.reload():await a():"bad_request"===e.error_type?e.field_to_errors.role?C(e.field_to_errors.role):p.N9.show({title:"Error",message:"Bad request",color:"errorButtonColor.6"}):"change_role_not_allowed"===e.error_type?p.N9.show({title:"Error",message:e.message,color:"errorButtonColor.6"}):"unexpected_error"===e.error_type&&p.N9.show({title:"Error",message:v.aK,color:"errorButtonColor.6"})}catch(e){p.N9.show({title:"Error",message:v.aK,color:"errorButtonColor.6"})}finally{u(!1)}},w=[...t.possible_roles],j=0===w.length,S=n[t.role];return r?(0,c.jsx)(members_MultiRoleSelectionButton,{isCurrentUser:o,user:t,onSave:changeRole,roleDescriptionMap:n}):(0,c.jsxs)(c.Fragment,{children:[(0,c.jsx)(z.u,{variant:q.kI.Sidebar,withinPortal:!0,multiline:!0,maw:300,sx:{wordBreak:"break-word"},openDelay:500,position:"top",label:S,disabled:!S,children:(0,c.jsx)(U.Ph,{disabled:d||t.status!==i.ACTIVE,readOnly:w.length<=1,withinPortal:!0,value:t.role,placeholder:"No role",w:200,data:toRoleSelectItems(j?[t.role]:w,n),itemComponent:O,onChange:e=>{e&&e!==t.role&&(o?(f(e),m()):changeRole(e))},error:_})}),(0,c.jsx)(members_ConfirmOwnRoleChangeModal,{isOpen:h,role:t.role,newRole:b,onConfirm:async()=>{await changeRole(b)},onClose:g})]})},members_UserStatusCell=e=>{let{user:r}=e;return(0,c.jsx)(j.Z,{children:(0,c.jsx)(L.C,{size:"lg",variant:"filled",sx:e=>{let t=(0,K.n5)(e.colors[q.xR.MainBackgroundColor][6],e,.3),o=(0,K.e5)(e.white,t),s=r.status&&r.status===i.ACTIVE.toString(),n=r.status&&r.status===i.EXPIRED.toString(),l=r.status&&r.status===i.INACTIVE.toString();return s?(t=e.colors.actionButtonColor[6],o=e.colors.actionButtonTextColor[6]):n?(t=e.colors.errorButtonColor[6],o=e.colors.errorButtonTextColor[6]):l&&(t=(0,K.n5)(e.colors[q.xR.MainBackgroundColor][6],e),o=(0,K.e5)(e.black,t)),{color:o,backgroundColor:t}},children:r.status})})},ee=t(72908);(n=i||(i={})).ACTIVE="Active",n.PENDING="Pending",n.EXPIRED="Expired",n.INACTIVE="Inactive";
1var members_UsersTable=e=>{let{pageConfig:r,pendingInvites:t,inviteePossibleRoles:o,roleDescriptionMap:s,addPendingInvite:n,removePendingInvite:l,canOrgsRequire2fa:a,require2faBy:i,isSamlEnabled:u,isIsolatedOrg:m}=e,g=(0,d.rZ)(),{isLoading:p,isLargeOrg:v,users:f,totalUsers:R,hasMoreResults:E,pageNumber:B,search:I,fns:{setSearch:k,setPageNumber:N}}=useOrgMembers(),[z,U]=(0,x.useState)(!1),M=r.org_id_to_role_and_permissions[r.selected_org.id].permissions.can_require_2fa,P=o&&o.length>0,T=r.org_role_structure===b.f.MultiRole;return(0,c.jsxs)(h.K,{spacing:"lg",children:[(0,c.jsxs)(_.r,{children:[P&&!u&&!m&&(0,c.jsx)(_.r.Col,{md:2,children:(0,c.jsx)(C.z,{leftIcon:(0,c.jsx)(S.Z,{size:g.other.iconSizes.lg}),onClick:()=>U(!0),children:"Invite user"})}),(0,c.jsx)(_.r.Col,{md:!P||u||m?12:8,offsetMd:!P||u||m?0:2,children:(0,c.jsx)(w.o,{icon:(0,c.jsx)(y.Z,{size:g.other.iconSizes.lg}),placeholder:"Search by email",value:I,onChange:e=>k(e.target.value)})})]}),(0,c.jsx)(ee.Z,{data:f,noRecordsText:"No members found",searchQuery:I,isLoading:p,...v?{dataPage:B,setDataPage:N,totalDataRecords:R,hasMoreResults:E}:{},columns:[{accessor:"email",title:"User",render:e=>(0,c.jsx)(j.Z,{position:"left",ml:"sm",children:(0,c.jsx)(members_UserEmailCell,{isCurrentUser:e.user_id===r.user_id,user:e,search:I})}),width:"40%"},{accessor:"role",title:T?"Roles":"Role",render:e=>(0,c.jsx)(members_UserRoleCell,{isCurrentUser:e.user_id===r.user_id,isMultiRole:r.org_role_structure===b.f.MultiRole,user:e,orgId:r.selected_org.id,roleDescriptionMap:s}),width:"35%"},{accessor:"status",title:"Status",render:e=>(0,c.jsx)(members_UserStatusCell,{user:e}),width:"15%"},{accessor:"is_2fa_enabled",title:"2FA",hidden:!M||!a||!i,render:e=>(0,c.jsx)(User2FAStatusCell,{user:e})},{accessor:"index",title:"",width:"10%",textAlignment:"right",hidden:m,render:e=>(0,c.jsx)(j.Z,{position:"right",mr:"md",children:(0,c.jsx)(members_UserOptions,{isCurrentUser:e.user_id===r.user_id,user:e,orgId:r.selected_org.id,orgsMetaname:r.orgs_metaname,addPendingInvite:n,removePendingInvite:l})})}]},v?"server":"client"),(0,c.jsx)(members_InvitationModal,{opened:z,onClose:()=>U(!1),centered:!0,closeOnClickOutside:!1,closeOnEscape:!1,withCloseButton:!1,orgId:r.selected_org.id,isMultiRole:T,inviteePossibleRoles:o,roleDescriptionMap:s,pendingInvites:t,addPendingInvite:n})]})},er=!0,members=e=>{let{pageConfig:r}=e,t=(0,d.rZ)(),[o,s]=(0,x.useState)(!1),[n,l]=(0,x.useState)([]),[a,i]=(0,x.useState)({}),[_,C]=(0,x.useState)([]),[w,j]=(0,x.useState)([]),[S,y]=(0,x.useState)(!1),[R,E]=(0,x.useState)(!1),[B,I]=(0,x.useState)(null),[k,N]=(0,x.useState)(!1);return(0,x.useEffect)(()=>{s(!0),(0,b.X)({orgId:r.selected_org.id}).then(e=>{e.success?(l(e.data.invitee_possible_roles),i(buildRoleDescriptionMap(e.data.role_descriptions)),C(e.data.pending_invites),j(e.data.expired_invites),E(e.data.is_saml_enabled),y(e.data.can_orgs_require_2fa),I(e.data.require_2fa_by),N(e.data.isolated)):"unexpected_error"===e.error_type&&p.N9.show({title:"Error",message:v.aK,color:"errorButtonColor.6"})}).catch(e=>{p.N9.show({title:"Error",message:v.aK,color:"errorButtonColor.6"})}).finally(()=>{s(!1)})},[r.selected_org.id]),(0,c.jsxs)(f.T,{pageConfig:r,pageTitle:"Users",showNavbar:r.theme.management_pages_theme.display_sidebar,children:[(0,c.jsx)(u.f,{visible:o}),(0,c.jsxs)(h.K,{spacing:t.spacing.xl,children:[(0,c.jsxs)(h.K,{spacing:t.spacing.md,children:[(0,c.jsx)(m.D,{order:1,children:"Users"}),(0,c.jsxs)(g.x,{children:["Use this page to view, invite, and manage the users in ",r.selected_org.name,"."]})]}),(0,c.jsx)(OrgMembersContextProvider,{orgId:r.selected_org.id,pendingInvites:_,expiredInvites:w,children:(0,c.jsx)(members_UsersTable,{pageConfig:r,pendingInvites:_,inviteePossibleRoles:n,roleDescriptionMap:a,addPendingInvite:(e,r,t)=>{C(o=>[...o,{email:e,role:r,additional_roles:t}])},removePendingInvite:e=>{C(r=>r.filter(r=>r.email!==e))},canOrgsRequire2fa:S,require2faBy:B,isSamlEnabled:R,isIsolatedOrg:k})})]})]})}}}]);
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.