PageSourceSearch

https://www.m-pact.nl/assets/index-DIP4reXk.js

js m-pact.nl collected 2026-10-06 16:51:23 UTC 34,674 bytes, 2 lines download raw bytes

1import{a as T,t as E,z as se,y as oe,hr as Ve,j as e,bh as Ce,e as re,it as Be,iu as ue,aT as Ue,b as te,u as we,aK as Z,F as Ee,L as pe,X as ge,cM as Ge,cN as He,ai as Ae,bp as De,B as N,g as Re,aS as O,w as X,cj as Le,A as z,P as We,iv as he,G as le,iw as ne,aX as J,aF as ae,ix as Fe,av as Qe,a_ as be,ay as W,b8 as Q,dO as Ye,iy as ve,aY as Ze,aZ as Ke,iz as Xe,C as Je,aV as en,ba as nn,iA as tn,aA as U,h as an,ii as sn,hd as fe,iB as Se,iC as _e,K as Pe,_ as on,iD as rn,iE as ln,iF as cn,d as mn,a2 as dn,aJ as un,d8 as pn}from"./index-C-HG7Mxj.js";import{r as l,F as G,ai as gn,af as hn,dr as bn,cU as vn,cV as fn,cW as Sn,ds as _n,dt as kn}from"./vendor-BRyq6ms9.js";import{S as yn}from"./Section-uM4gpHnt.js";import{R as jn}from"./RoutedTabs-DPKrEH-L.js";import{E as xn}from"./EmailMembersForm-CXoO10Yo.js";import{F as zn}from"./fathom-YM6V93nn.js";import{u as Mn}from"./useLatestRef-C3AEqbCD.js";import{i as In}from"./interpolateMarkup-D6AvegpU.js";import{C as Nn}from"./CsvImport-4QHflpa4.js";import{a as Tn,S as Cn}from"./SearchSelect-DrTlBW-F.js";import{i as wn}from"./UserSearch-CWByyvIW.js";import{H as En}from"./index-jm9l2dgA.js";import{dv as D,dw as An,dx as P,dy as Dn}from"./app-DO7FPdaB.js";import{T as Rn,a as ie}from"./Table--B5ktpxW.js";import{O as Ln}from"./operations.graphql-BZK__yxd.js";import{R as Fn}from"./index-BSmD9nMd.js";import{U as Oe}from"./UserMiniProfile-B_InDUkJ.js";import{u as Pn,f as ke,c as On,g as $n,a as qn,b as Vn,d as Bn}from"./index-DMkRieje.js";import{c as Un}from"./index.module-JBIi3WQP.js";import{a as ye}from"./datatable.filters-B0sP_nSA.js";import{u as je}from"./useQueryState-CgP-U5G_.js";import{u as Gn,I as Hn}from"./useImpactPeriod-Cyo7fn3M.js";import{A as C}from"./types-BzEoeMn3.js";import{e as xe}from"./escapeHtml-B0Cm7KL3.js";import{u as Wn}from"./useDeleteOrganizationMember-D4J3Xogp.js";import{u as Y}from"./usePermission-C01f4Mvy.js";import{O as Qn,a as Yn}from"./OrganizationDataErrorScreen-BWhjo9vl.js";import"./dayjs-timezone-iana-plugin-D386ql0F.js";import"./index-WjNNwXfj.js";import"./Table-BvpkZr8b.js";import"./use-local-storage-DWT8HdVB.js";import"./Flex-DtgcsZWs.js";import"./Pagination-bxw2e60B.js";import"./use-timeout-2ELit9k-.js";import"./WYSIWYG-DSTOhrpN.js";import"./Tags-KVR1BmLK.js";import"./tags.hooks-BhZSZmB5.js";import"./useAccess-Dp0zsjpz.js";import"./HoverCard-CXR0tJBI.js";import"./operations.graphql-eA-EwZsn.js";import"./operations.graphql-DgmJ8AP-.js";import"./Timestamp-0gyzP7OC.js";import"./CircularProfile-s1WGJhRA.js";import"./nl2br-I0i6TFsK.js";import"./memberships-BpBojUaL.js";import"./ResetPasswordForm-B4a0Yv99.js";import"./index-DhxxRpkv.js";import"./helpers-Bd4FsAAM.js";import"./AddressFieldsInput-3n7AwTLr.js";import"./sdgs-qy9fY3K1.js";import"./index.t10s-CAwAvSsG.js";import"./DeedForm.t10s-D944V4i3.js";import"./OrganizationForm.t10s-DGqobJ2-.js";import"./WhitelabelForm.t10s-Wv0ryTAP.js";import"./EmptyState-CF8r4v6G.js";import"./ReactQueryLoader-Dum3dH9P.js";import"./RichText-D99UuMmM.js";import"./collapseNbsp-CXUXcwwd.js";import"./sectionKeys-DxbmtvIQ.js";import"./url--u1a6k-u.js";import"./usePostcodeGroups-BTvNbNWF.js";import"./admin-BnjBtngh.js";import"./contract.graphql-OVPmEjH6.js";import"./useStableSearchParams-DEL0YBS1.js";import"./DateRangePresetMenu-CRhFma4H.js";import"./impactPeriod-B3_2w7LG.js";try{let t=typeof window<"u"?window:typeof global<"u"?global:typeof globalThis<"u"?globalThis:typeof self<"u"?self:{},n=new t.Error().stack;
1n&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[n]="a97adcf4-08fb-40cc-9468-d8811f6af297",t._sentryDebugIdIdentifier="sentry-dbid-a97adcf4-08fb-40cc-9468-d8811f6af297")}catch{}const Zn={en:"Email to members successfully sent",nl:"E-mail naar leden succesvol verzonden"},Kn={en:"Email",nl:"Email"},Xn={successMessage:Zn,title:Kn};function Jn({organizationId:t,onClose:n}){const a=T(Xn),i=E.organizations.members.sendEmail.useMutation(),s=se(),p=oe(),b=Mn(n),o=l.useCallback(async d=>{try{const r=await i.mutateAsync({body:d.body,subject:d.subject,memberIds:d.members,organizationId:Number(t)});Ve(zn.ORG_EMAIL_MEMBERS_SENT),p({message:a("successMessage")})(r),b.current?.()}catch(r){s()(r)}},[i,t,b,a,s,p]);return e.jsx(Ce,{open:!0,onClose:n,title:a("title"),children:e.jsx(xn,{useHTML:!0,initialValues:{members:[]},onSubmit:o,organizationId:Number(t)})})}const et={en:"Name or email address",nl:"Naam of e-mailadres"},nt={en:"Type the name of a user or an email address",nl:"Typ de naam van een gebruiker of een e-mailadres"},tt={placeholder:et,search:nt},at=t=>{const[n]=t;return n?n.on_whitelabel?{emailNotFound:!1}:{emailNotFound:!0,prefill:{first_names:n.first_names,last_name:n.last_name,language:n.language}}:{emailNotFound:!0}},it=t=>{const n=T(tt),a=re(),{data:i}=E.organizations.members.listSimple.useQuery({organizationId:t.oId}),s=l.useMemo(()=>{const r=new Map;for(const h of i?.members??[])r.set(h.user_id,h.access_level);return r},[i]),{onChange:p}=t,b=l.useCallback(async r=>{let h;if(Be.test(r)){const v=await a(ue({email:r}))||[],u=at(v);p(u.emailNotFound?{...u,email:r}:u),h=u.emailNotFound?[]:v}else p({emailNotFound:!1}),h=wn(r)?await a(ue({text:r,limit:10}))||[]:[];return h},[a,p]),o=l.useCallback(r=>{const h=s.get(r.id);return e.jsxs(Tn,{disabled:!!h,image:r.image,children:[e.jsx("div",{children:r.full_name}),h&&e.jsx(Ue,{color:"#aaa",children:n.g(h)})]})},[s,n]),d=l.useCallback(r=>{r&&!s.has(r.id)&&p({emailNotFound:!1,email:null,user:r})},[s,p]);return e.jsx(Cn,{id:t.id,value:null,onChange:d,dataTestId:"member-invite-search-input",getSuggestions:b,renderSuggestion:o,inputPlaceholder:n("placeholder")})},ze={en:"https://help.deedmob.com/en/what-is-the-difference-between-an-organisation-user-moderator-and-admin",nl:"https://help.deedmob.com/nl/wat-is-het-verschil-tussen-een-organisatie-lid-moderator-en-beheerder"},st={en:"Admins have full administrative access to the %{g:organization}. %{g:moderators | capitalize} have limited access; they have access to all functionality except %{g:organization} settings. %{g:members | capitalize} have no access to any functionality by default. %{g:members | capitalize} access can be configured in %{g:organization} settings.",nl:"Beheerders hebben volledige beheerderstoegang tot %{g:theOrganization} %{g:organization}. %{g:moderators | capitalize} hebben beperkte toegang; ze hebben toegang tot alle functionaliteit behalve %{g:organization}-instellingen. %{g:members | capitalize} hebben standaard geen toegang tot beheerdersfunctionaliteit. Toegang voor %{g:members} kan worden geconfigureerd in de %{g:organization}-instellingen."},ot={en:"More info",nl:"Meer info"},rt={accessLevelTooltip:st,accessLevelTooltipMoreInfoLink:ot},ce=({withinPortal:t})=>{const n=T(rt);return e.jsxs(En,{withinPortal:t,children:[n("accessLevelTooltip")," ",e.jsx(te,{to:ze[n.locale]||ze.en,children:n("accessLevelTooltipMoreInfoLink")})]})},lt={en:"Access level",nl:"Toegangsniveau"},ct={en:"First name",nl:"Voornaam"},mt={en:"First name",nl:"Voornaam"},dt={en:"Send",nl:"Uitnodigen"},ut={en:"Last name",nl:"Achternaam"},pt={en:"Last name",nl:"Achternaam"},gt={access_level:lt,first_names:ct,first_names_ph:mt,invite:dt,last_name:ut,last_name_ph:pt};function ht(t){const n=we({...t,initialValues:{...t.initialValues,type:"email"}}),a=T(gt),i=l.useMemo(()=>[{value:"admin",label:a.g("admin")},{value:"moderator",label:Z(a.g("moderator"))},{value:"member",label:Z(a.g("member"))}],[a]);return e.jsxs(Ee,{form:n,children:[e.jsx(pe,{label:a("first_names"),required:!0,children:e.jsx(ge,{placeholder:a("first_names_ph"),...n.binding("first_names"),maxLength:Ge,required:!0})}),e.jsx(pe,{label:a("last_name"),children:e.jsx(ge,{placeholder:a("last_name_ph"),...n.binding("last_name"),maxLength:He})})," ",e.jsx(Ae,{label:e.jsxs(e.Fragment,{children:[a("access_level")," ",e.jsx(ce,{withinPortal:!1})]}),required:!0,children:({inputId:s})=>e.jsx(De,{options:i,...n.binding("access_level"),id:s})}),e.jsx(N,{type:"submit",mt:"sm",loading:n.submitting,children:a("invite")})]})}const bt={en:"Access level",nl:"Toegangsniveau"},vt={en:"Add",nl:"Toevoegen"},ft={access_level:bt,invite:vt};function St(t){const n=we({...t,initialValues:{...t.initialValues,type:"member"}}),a=T(ft),i=l.useMemo(()=>[{value:"admin",label:a.g("admin")},{value:"moderator",label:Z(a.g("moderator"))},{value:"member",label:Z(a.g("member"))}],[a]);return e.jsxs(Ee,{form:n,children:[e.jsx(Ae,{label:e.jsxs(e.Fragment,{children:[a("access_level")," ",e.jsx(ce,{withinPortal:!1})]}),required:!0,children:({inputId:s})=>e.jsx(De,{options:i,...n.binding("access_level"),id:s})}),e.jsx(N,{type:"submit",mt:"sm",loading:n.submitting,children:a("invite")})]})}const _t={en:"Anyone can become a member by using this link:",nl:"Iedereen kan lid worden van je organisatie met deze link:"},kt={en:"Anyone you have invited using this link but that has not yet accepted won't be able to join.",nl:"Mensen die de link hebben ontvangen maar nog niet geaccepteerd hebben kunnen geen lid meer worden via de link."},yt={en:"Are you sure you want to disable the shared invite link?",nl:"Weet je zeker dat je deze link wilt uitschakelen?"},jt={en:"People",nl:"Personen"},xt={en:"Disable link",nl:"Deactiveer link"},zt={en:"Email",nl:"Email"},Mt={en:`%{email}? We don't know that person. Add a name and click "Send" and we'll add a virtual %{g:member} and send them an invite email. They'll automatically receive access to the group once they sign up and confirm their email address.`,nl:'%{email}? Die persoon kennen we niet. Voeg een naam toe en klik op "Uitnodigen"; we voegen die persoon dan toe als %{g:member} zonder account en sturen een uitnodigingsmail. Zodra die persoon zich aanmeldt en het e-mailadres bevestigt, krijgt deze automatisch toegang tot de groep.'},It={en:"First Name",nl:"Voornaam"},Nt={en:"Add users by CSV and notify them",nl:"Gebruikers toevoegen per CSV met melding"},Tt={en:"Get an invite link",nl:"Ontvang een uitnodigingslink"},Ct={en:"You can let anyone join with a special invite link.",nl:"Laat mensen lid worden met een speciale uitnodigingslink."},wt={en:"Adding",nl:"Toevoegen"},Et={en:"Add without notification",nl:"Toevoegen zonder melding"},At={en:"Surname",nl:"Achternaam"},Dt={en:"membership type (%{g:member}
1 | %{g:moderator} | admin)",nl:"Lidmaatschapstype (%{g:member} | %{g:moderator} | admin)"},Rt={en:"Search for a person in Deedmob by name or email address, or enter an email address to invite someone new.",nl:"Zoek een persoon op Deedmob met naam of e-mailadres, of voer een e-mailadres in om iemand uit te nodigen."},Lt={en:"Successfully added!",nl:"Toevoegen gelukt!"},Ft={en:"Import CSV file",nl:"CSV bestand importeren"},Pt={en:"You can add several people using a CSV file. <link-help>Click here for more information.</link-help>",nl:"Met behulp van een CSV bestand kun je meerdere mensen tegelijkertijd toevoegen. <link-help>Klik hier meer informatie.</link-help>"},Ot={en:"https://help.deedmob.com/en/how-do-i-add-multiple-people-who-dont-have-an-account-yet-to-my-organisation-page",nl:"https://help.deedmob.com/nl/hoe-voeg-ik-meerdere-mensen-zonder-account-tegelijkertijd-toe-aan-mijn-organisatiepagina"},$t={anyoneCanJoin:_t,areYouSureDisableSharedLinkDescription:kt,areYouSureDisableSharedLinkTitle:yt,dialogTitle:jt,disableLink:xt,email:zt,emailInvite:Mt,first_names:It,invite:Nt,inviteByLink:Tt,inviteByLink_h:Ct,inviteMember:wt,inviteNoEmail:Et,last_name:At,membershipType:Dt,searchHelpText:Rt,successMessage:Lt,uploadCSV:Ft,uploadCSV_h:Pt,uploadCSV_h_link_href:Ot},qt=t=>{const[n,a]=l.useState(!1),[i,s]=l.useState({type:0}),[p,b]=l.useState([]),o=T($t),d=Re(),r=re(),h=se(),v=oe(),u=E.useUtils(),_=E.organizations.members.getSharedInviteLink.useQuery({organizationId:Number(t.organizationId)},{enabled:n,retry:!1});l.useEffect(()=>{_.error&&(h()(_.error),a(!1))},[_.error,h]);const w=E.organizations.members.rotateSharedInviteLink.useMutation({onSettled:()=>u.organizations.members.getSharedInviteLink.invalidate({organizationId:Number(t.organizationId)})}),M=f=>{f.currentTarget.select()},$=()=>{w.mutate({organizationId:Number(t.organizationId)}),a(!1)},A=async f=>{try{const x=await r(he({oId:Number(t.organizationId),data:f}));v({message:o("successMessage")})(x),V()}catch(x){h()(x)}},R=f=>{const x=p.filter(k=>k[0]&&k[1]&&k[2]);return async()=>x.length===0?Promise.resolve():Promise.all(x.map(async k=>r(he({oId:Number(t.organizationId),data:{first_names:k[0],last_name:k[1],email:k[2],access_level:k[3]||"member",locale:o.locale,sendEmail:f}})).then(v({message:o("successMessage")}),h())))},q=({emailNotFound:f,email:x,user:k,prefill:I}={})=>{s({type:0}),f?s({type:1,email:x,prefill:I}):k&&s({type:2,user:k})},V=()=>{s({type:0})},L=i.type===3&&p.length;return e.jsx(Ce,{open:!0,onClose:t.onClose,title:o("dialogTitle"),children:e.jsxs("div",{children:[e.jsxs("div",{children:[e.jsx("p",{className:D.helpText,children:o("searchHelpText")}),e.jsx(it,{oId:Number(t.organizationId),onChange:q})]}),i.type===2&&e.jsxs("div",{children:[e.jsx("hr",{}),o("inviteMember"),": ",e.jsx("b",{children:i.user.full_name||""}),e.jsx(St,{onSubmit:A,initialValues:{access_level:O.member,user_id:i.user.id,first_names:i.user.first_names??void 0,last_name:i.user.last_name??void 0,locale:i.user.language||o.locale}})]}),i.type===1&&e.jsxs("div",{children:[e.jsx("hr",{}),o("emailInvite",{email:i.email}),e.jsx(ht,{onSubmit:A,initialValues:{email:i.email,first_names:i.prefill?.first_names??void 0,last_name:i.prefill?.last_name??void 0,access_level:O.member,locale:i.prefill?.language||o.locale}})]}),e.jsx("hr",{}),n&&_.data?e.jsxs("div",{children:[e.jsx(X,{className:D.helpText,children:o("anyoneCanJoin")}),e.jsxs("div",{className:D.inviteLinkBox,children:[e.jsx(Le,{...z("member-invite-link"),defaultValue:`${d.httpsUrl}/shared-invite/${t.organizationId}/${_.data}`,onFocus:M,readOnly:!0}),e.jsx(We,{variant:"danger",onConfirm:$,content:e.jsx(X,{className:D.confirmDisableSharedPopoverContnet,children:o("areYouSureDisableSharedLinkDescription")}),popoverClassName:D.confirmDisableSharedPopover,title:o("areYouSureDisableSharedLinkTitle"),children:e.jsx("span",{children:e.jsx(N,{variant:"subtle",children:o("disableLink")})})})]})]}):e.jsxs("div",{children:[e.jsx(X,{className:D.helpText,children:o("inviteByLink_h")}),e.jsx(N,{size:"sm",variant:"outline",loading:n&&_.isFetching,onClick:()=>a(!0),...z("member-invite-by-link"),children:o("inviteByLink")})]}),e.jsx("hr",{}),e.jsx(X,{className:D.helpText,children:In(o("uploadCSV_h"),{"link-help":(...f)=>e.jsx("a",{href:o("uploadCSV_h_link_href"),target:"_blank",rel:"nofollow noreferrer noopener",children:f})})}),i.type===3?e.jsxs("div",{children:[e.jsx(Nn,{onChange:b,header:[o("first_names"),o("last_name"),o("email"),o("membershipType")]}),e.jsxs("div",{className:D.csvActionsBox,children:[e.jsx(N,{size:"sm",onClick:R(!0),disabled:!L,children:o("invite")}),e.jsx(N,{variant:"outline",size:"sm",onClick:R(!1),disabled:!L,children:o("inviteNoEmail")})]})]}):e.jsx(N,{size:"sm",variant:"outline",onClick:()=>s({type:3}),children:o("uploadCSV")})]})})},Vt={en:"Access Level",nl:"Toegangsniveau"},Bt={en:"approve",nl:"Goedkeuren"},Ut={en:"Are you sure you want %{action} %{name}'s request to join your %{g:organization}?",nl:"Weet je zeker dat je het verzoek van %{name} om lid te worden van je %{g:organization} wilt %{action}? "},Gt={en:"Invited",nl:"Uitnodigingen"},Ht={en:"Image",nl:"Foto"},Wt={en:"Name",nl:"Naam"},Qt={en:"No pending requests",nl:"Geen openstaande verzoeken"},Yt={en:"reject",nl:"Weigeren"}
1,Zt={en:"There are no pending %{g:member} requests for this %{g:organization}.",nl:"Er zijn geen %{g:members} verzoeken voor %{g:thisOrganization} %{g:organization}."},Kt={en:"No %{g:member} requests found",nl:"Geen %{g:members} verzoeken gevonden"},me={accessLevel:Vt,approve:Bt,areYouSureReview:Ut,dateCreated:Gt,image:Ht,name:Wt,noRequests:Qt,reject:Yt,tableEmptyState_description:Zt,tableEmptyState_title:Kt},Xt=({refetch:t,row:n})=>{const a=T(me),i=E.organizations.updateMembershipRequest.useMutation(),s=se(),p=oe();function b(o,d){J.open({children:a("areYouSureReview",{action:a(d?"approve":"reject"),name:o}),onOk:async()=>{try{const r=await i.mutateAsync({id:Number(n.id),approved:d});p()(r),t()}catch(r){s()(r)}}})}return e.jsxs(le,{gap:"xs",...z(ne.wrapper),children:[e.jsx(N,{...z(ne.buttonApprove),onClick:()=>b(n.user.fullName,!0),size:"sm",children:a("approve")}),e.jsx(N,{...z(ne.buttonReject),onClick:()=>b(n.user.fullName,!1),size:"sm",color:"danger",children:a("reject")})]})};function Jt({refetch:t}){return a=>e.jsx(Xt,{row:a,refetch:t})}function ea({refetch:t}){const n=T(me);return l.useMemo(()=>[{key:"user",title:n("name"),value(a){return e.jsx(Oe,{compact:!0,user:a.user,onDelete:()=>{t()}})}},{key:"accessLevel",title:n("accessLevel"),value(a){return n.g(a.accessLevel)}},{key:"createdAt",title:n("dateCreated"),value(a){return e.jsx(Fn,{value:a.createdAt})}},{key:"actions",title:"",value:Jt({refetch:t})}],[n,t])}const na=({organizationId:t})=>{const n=T(me),{data:a,loading:i,refetch:s}=ae(Ln,{fetchPolicy:"cache-and-network",variables:{organizationId:t}}),p=ea({refetch:s});return e.jsxs("div",{className:An.container,children:[e.jsx(Rn,{columns:p,loading:i,rowKey:"id",values:a?.organization?.listMembershipRequests?.results,emptyState:e.jsx(ie,{description:n("tableEmptyState_description"),title:n("tableEmptyState_title")})}),a?.organization?.listMembershipRequests&&!i&&e.jsx(Fe,{current:a.organization.listMembershipRequests.pageInfo.page,total:a.organization.listMembershipRequests.pageInfo.total,pageSize:a.organization.listMembershipRequests.pageInfo.pageSize})]})},ta={en:"Access Level",nl:"Toegangsniveau"},aa={en:"Actions",nl:"Acties"},ia={en:"Number of %{types} where this member's application status is %{g:apply_accepted} or %{g:apply_new} (sort by total)",nl:"Aantal %{types} waarbij de aanmeldingsstatus van dit lid %{g:apply_accepted} of %{g:apply_new} is (gesorteerd op totaal)"},sa={en:"Number of %{types}, in that order, where this member's application status is %{g:apply_accepted} or %{g:apply_new} (sort by total)",nl:"Aantal %{types}, in deze volgorde, waarbij de aanmeldingsstatus van dit lid %{g:apply_accepted} of %{g:apply_new} is (gesorteerd op totaal)"},oa={en:"Are you sure you want change the access level of <b>%{name}</b> to <b>%{accessLevel}</b>?",nl:"Weet je zeker dat je het toegangsniveau van <b>%{name}</b> naar <b>%{accessLevel}</b> wilt wijzigen?"},ra={en:"Are you sure you want to delete %{name}?",nl:"Weet je zeker dat je %{name} uit je organisatie wilt verwijderen?"},la={en:"This member is a contact person for one or more activities. Choose a replacement contact person to continue.",nl:"Dit lid is contactpersoon voor een of meer activiteiten. Kies een vervangende contactpersoon om door te gaan."},ca={en:"Error deleting member",nl:"Fout bij verwijderen van lid"},ma={en:"Demote to %{g:member}",nl:"Wijzig toegangsniveau naar %{g:member}"},da={en:"Demote to %{g:moderator}",nl:"Wijzig toegangsniveau naar %{g:moderator}"},ua={en:"Edit",nl:"Bewerk"},pa={en:"Hours",nl:"Uren"},ga={en:"Confirmed / total activity hours (sort by total)",nl:"Bevestigde / totale aantal uren (gesorteerd op totaal)"},ha={en:"Name",nl:"Naam"},ba={en:"Goal",nl:"Doel"},va={en:"Promote to admin",nl:"Beheerder maken"},fa={en:"Promote to %{g:moderator}",nl:"%{g:moderator | capitalize} maken"},Sa={en:"Reassign & delete",nl:"Opnieuw toewijzen & verwijderen"},_a={en:"Search",nl:"Zoeken"},ka={en:"Search by name",nl:"Zoek op naam"},ya={en:"Search by name or email",nl:"Zoek op naam of e-mailadres"},ja={en:"No %{g:members} match your search.",nl:"Geen %{g:members} die overeenkomen met je zoekopdracht."},xa={en:"New contact person",nl:"Nieuwe contactpersoon"},za={en:"There are no %{g:members} in this %{g:organization}. Add %{g:members} to see them here.",nl:"Er zijn geen %{g:members} in %{g:thisOrganization} %{g:organization}. Voeg %{g:members} toe om ze hier te bekijken."},Ma={en:"No %{g:members} found",nl:"Geen %{g:members} gevonden"},Ia={en:"Error updating member",nl:"Fout bij bijwerken van lid"}
1,Na={en:"Member updated!",nl:"Lid bijgewerkt!"},$e={accessLevel:ta,actions:aa,applicationsTooltip:ia,applicationsTooltipOrdered:sa,areYouSureChangeAccessLevel:oa,areYouSureDelete:ra,contactPersonReassignDescription:la,delete:{en:"Delete member",nl:"Verwijder persoon uit organisatie"},deleteError:ca,demoteToMember:ma,demoteToModerator:da,edit:ua,hours:pa,hoursTooltip:ga,name:ha,personalImpactGoal:ba,promoteToAdmin:va,promoteToModerator:fa,reassignAndDelete:Sa,search:_a,searchByName:ka,searchByNameOrEmail:ya,searchEmptyState_description:ja,selectNewContactPerson:xa,tableEmptyState_description:za,tableEmptyState_title:Ma,updateError:Ia,updateSuccess:Na};function Ta(t,n){return{canDelete:t===C.member?n.canDeleteMembers:t===C.moderator?n.canDeleteModerators:n.canDeleteAdmins,canPromoteToModerator:t===C.member&&n.canUpdateModerators,canPromoteToAdmin:t!==C.admin&&n.canUpdateAdmins,canDemoteToModerator:t===C.admin&&n.canUpdateAdmins,canDemoteToMember:t===C.moderator&&n.canUpdateModerators||t===C.admin&&n.canUpdateAdmins}}const Ca=({instigatorId:t,membership:n,contactPersonCandidates:a})=>{const i=re(),s=T($e),p=n.user_id===t,b=n.organization_id,o=Qe(),d=E.useUtils(),r=Wn(),h=E.organizations.members.update.useMutation({onSuccess:(S,j)=>{d.organizations.members.listSimple.invalidate({organizationId:j.organizationId}),d.me.access.invalidate(),be.success({message:s("updateSuccess")})},onError:()=>{be.error({message:s("updateError")})}}),v={organizationId:b,organization:o},u=Y({...v,resource:W.members,action:"delete"}),_=Y({...v,resource:W.moderators,action:"delete"}),w=Y({...v,resource:W.admins,action:"delete"}),M=Y({...v,resource:W.moderators,action:"update"}),$=Y({...v,resource:W.admins,action:"update"}),{canDelete:A,canPromoteToModerator:R,canPromoteToAdmin:q,canDemoteToModerator:V,canDemoteToMember:L}=Ta(n.access_level,{canDeleteMembers:u,canDeleteModerators:_,canDeleteAdmins:w,canUpdateModerators:M,canUpdateAdmins:$}),f=l.useMemo(()=>[(A||p)&&l.createElement(Q,{...z("organization-member-delete"),key:"delete"},s("delete")),R&&e.jsx(Q,{children:s("promoteToModerator")},`promote:${C.moderator}`),q&&e.jsx(Q,{children:s("promoteToAdmin")},`promote:${C.admin}`),V&&e.jsx(Q,{children:s("demoteToModerator")},`demote:${C.moderator}`),L&&e.jsx(Q,{children:s("demoteToMember")},`demote:${C.member}`)].filter(S=>!!S),[p,s,A,R,q,V,L]),x=l.useCallback(()=>{const S=a.filter(j=>j.value!==n.user_id).map(j=>({value:String(j.value),label:j.label}));J.open({children:function({setConfirming:F,closeDialog:K}){const[H,m]=l.useState(null);return e.jsxs("form",{id:"reassign-contact-form",onSubmit:async g=>{if(g.preventDefault(),!!H){F(!0);try{await r.mutateAsync({organizationId:b,membershipId:n.id,replacementContactId:Number(H)}),i(ve({membership_id:Number(n.id),organization_id:Number(n.organization_id)})),K?.()}catch{}finally{F(!1)}}},children:[e.jsx("p",{children:s("contactPersonReassignDescription")}),e.jsx(Ye,{label:s("selectNewContactPerson"),data:S,value:H,onChange:m})]})},okButtonLabel:s("reassignAndDelete"),okButtonProps:{color:"danger",form:"reassign-contact-form",type:"submit"}})},[s,n.id,n.user_id,n.organization_id,b,a,i,r]),k=l.useCallback(()=>{J.open({children:s("areYouSureDelete",{name:n.full_name}),okButtonProps:{color:"danger"},onOk:async()=>{r.mutate({organizationId:b,membershipId:n.id},{onSuccess:()=>{i(ve({membership_id:Number(n.id),organization_id:Number(n.organization_id)}))},onError:S=>{Ze(S)===Ke.COULD_NOT_DELETE_CONTACT_PERSON_ORGANIZATION_MEMBER&&x()}})}})},[s,n.id,n.organization_id,n.full_name,b,i,r,x]),I=l.useCallback((S,j)=>{J.open({children:e.jsx("p",{dangerouslySetInnerHTML:{__html:s("areYouSureChangeAccessLevel",{name:xe(n.full_name),accessLevel:xe(s.g(j))})}}),onOk:async()=>{h.mutate({organizationId:b,membershipId:n.id,accessLevel:j},{onSuccess:()=>{i(Xe({access_level:j,membership_id:Number(n.id),organization_id:Number(b)}
1))}})}})},[s,h,i,b,n.id,n.full_name]),ee=l.useCallback(S=>{if(S==="delete"){k();return}const[j,F]=String(S).split(":");I(j==="promote",F)},[k,I]);return f.length===0?null:e.jsx(Je,{popover:()=>e.jsx(nn,{onAction:ee,"aria-label":s("actions"),children:f}),type:"menu",children:e.jsx(en,{"aria-label":s("edit"),...z(`organization-member-edit-${n.user_id}`),variant:"subtle",children:e.jsx(G,{icon:gn})})})},wa={[U.community]:"community",[U.volunteering]:"volunteering",[U.workshop]:"workshops"},Ea=[U.volunteering,U.workshop,U.community],Aa=t=>{const n=tn(t);return Ea.filter(a=>n.includes(a))},qe=(t,n)=>n.map(a=>t?.[wa[a]]??0),Me=(t,n)=>qe(t,n).reduce((a,i)=>a+i,0),Da=t=>(n,a)=>Me(n.original.application_stats,t)-Me(a.original.application_stats,t),Ra=t=>t.filter(n=>n.claimed&&(n.access_level===O.admin||n.access_level===O.moderator)).map(n=>({value:n.user_id,label:n.full_name})),Ie={page:{name:"page",empty:1,serialize:t=>t.toString(),deserialize:t=>t?Number(t):void 0,navigateOptions:{state:{resetScroll:!1}}},search:{name:"search",empty:"",serialize:t=>t,deserialize:t=>t,navigateOptions:{state:{resetScroll:!1}}}},Ne={[O.member]:0,[O.moderator]:1,[O.admin]:2},La=(t,n)=>ln(`${t.full_name} ${t.email??""}`,cn(n)),Te=({organizationId:t,organizationSlug:n})=>{const a=Re(),i=T($e),s=an(m=>m.auth.user?.id??0),p=Gn(t),{period:b,searchParam:o}=p,{data:d,isLoading:r,refetch:h}=E.organizations.members.listSimple.useQuery({organizationId:t,period:b},{enabled:!!t&&p.isReady,placeholderData:sn}),v=d?.personalImpactGoal,u=o?`&${o}`:"",{value:_,setValue:w}=je(Ie.page),[M,$]=l.useState({pageIndex:_-1,pageSize:10});l.useEffect(()=>{w(M.pageIndex+1)},[w,M.pageIndex]),l.useEffect(()=>{M.pageIndex!==_-1&&$(m=>({...m,pageIndex:_-1}))},[_]);const{value:A,setValue:R}=je(Ie.search),[q,V]=l.useState(()=>A),L=Un(m=>{R(m.trim(),g=>g.delete("page"))},300),f=l.useMemo(()=>Aa(a.whitelabel),[a.whitelabel]),x=l.useMemo(()=>Ra(d?.members??[]),[d?.members]),k=l.useMemo(()=>({activity_report_hours:e.jsx(fe,{children:i("hoursTooltip")}),application_stats:e.jsx(fe,{children:e.jsx("span",{...z(Se.legend),children:i(f.length>1?"applicationsTooltipOrdered":"applicationsTooltip",{types:f.map(m=>i.g(`deed_${m}_plural`)).join(", ")})})}),access_level:e.jsx(ce,{})}),[i,f]),I=On(),ee=l.useMemo(()=>{const m=d?.hasUserStatsReadPermission?[I.accessor("activity_report_hours",{header:()=>i("hours"),cell:({row:c})=>{const y=e.jsxs(e.Fragment,{children:[c.original.activity_report_hours?.confirmed??0," /"," ",c.original.activity_report_hours?.total??0]});return a.whitelabel.settings.org_panel_submitted_activity_reports_visible?e.jsx(te,{to:`${_e({organizationSlug:n})}/activity-reports/submitted?${ye([{column:"reportee",value:c.original.user_id.toString()}])}${u}`,children:y}):y},sortingFn:(c,y)=>(c.original.activity_report_hours?.total??0)-(y.original.activity_report_hours?.total??0)}),I.accessor("application_stats",{header:()=>Z(i.g("applications")),cell:({row:c})=>{const y=e.jsx("span",{...z(Se.counts),children:qe(c.original.application_stats,f).join(" · ")});return a.whitelabel.settings.org_panel_submitted_applications_visible?e.jsx(te,{to:`${_e({organizationSlug:n})}/applications/submitted?${ye([{column:"applicant",value:c.original.email??null}])}${u}`,children:y}):y},sortingFn:Da(f)})]:[],g=a.whitelabel.settings.org_personal_impact_goal_enabled&&v&&v>0?[I.accessor(c=>c.activity_report_hours?.confirmed??0,{id:"personal_impact_goal",header:i("personalImpactGoal"),enableSorting:!0,cell:({row:c})=>{const y=c.original.activity_report_hours?.confirmed??0,de=y>=v;return e.jsxs("div",{children:[e.jsxs("span",{className:P.doneIconContainer,children:[de&&e.jsx(G,{icon:hn,className:P.doneIcon}),!de&&e.jsx(G,{icon:bn,className:P.notDoneIcon})]}),e.jsxs("span",{children:[y," / ",v]})]})},sortingFn:(c,y)=>(c.original.activity_report_hours?.confirmed??0)-(y.original.activity_report_hours?.confirmed??0)})]:[],B=I.display({id:"actions",header:i("actions"),cell:({row:c})=>e.jsx(Ca,{instigatorId:s,membership:c.original,contactPersonCandidates:x})});return[I.accessor("full_name",{header:i("name"),sortingFn:(c,y)=>c.original.full_name.localeCompare(y.original.full_name,a.language,{sensitivity:"base"}),cell:({row:c})=>e.jsx(Oe,{labelWrap:!0,user:{id:c.original.user_id.toString(),claimed:c.original.claimed,fullName:c.original.full_name,image:c.original.image},onDelete:()=>h()})}),...m,...g,I.accessor("access_level",{sortingFn:(c,y)=>Ne[c.original.access_level]-Ne[y.original.access_level],header:()=>i("accessLevel")}),B]},[I,d?.hasUserStatsReadPermission,h,i,a.language,a.whitelabel.settings.org_panel_submitted_activity_reports_visible,n,v,u,a.whitelabel.settings.org_panel_submitted_applications_visible,f,a.whitelabel.settings.org_personal_impact_goal_enabled,s,x]),S=Pn({data:d?.members??[],columns:ee,getRowId:m
1=>m.user_id.toString(),getCoreRowModel:Bn(),getSortedRowModel:Vn(),enableSorting:!0,getFilteredRowModel:qn(),globalFilterFn:(m,g,B)=>La(m.original,B),getPaginationRowModel:$n(),onPaginationChange:$,state:{pagination:M,globalFilter:A}});if(!d||r)return e.jsx(Pe,{});const j=d.hasUserStatsReadPermission?e.jsx(Hn,{state:p,organizationId:t}):null,F=S.getPageCount()>1?e.jsx(Fe,{wrapperClassName:P.pagination,total:S.getRowCount(),pageSize:S.getState().pagination.pageSize,current:S.getState().pagination.pageIndex+1,onChange:m=>{S.setPageIndex(m-1)}}):null,K=d.members.length>0,H=K?e.jsx(on,{mb:"md",maw:400,children:e.jsx(Le,{value:q,onChange:m=>{const g=m.target.value;V(g),L(g)},placeholder:i(d.members.some(m=>m.email)?"searchByNameOrEmail":"searchByName"),"aria-label":i("search"),...z(rn.search)})}):null;return e.jsxs("div",{children:[j,H,S.getRowModel().rows.length?e.jsxs(e.Fragment,{children:[F,e.jsxs("table",{className:P.table,...z("organization-members-table"),children:[e.jsx("thead",{children:S.getHeaderGroups().map(m=>e.jsx("tr",{children:m.headers.map(g=>{const B=g.column.getIsSorted(),c=ke(g.column.columnDef.header,g.getContext());return e.jsx("th",{colSpan:g.colSpan,children:g.isPlaceholder?null:e.jsxs(le,{gap:4,wrap:"nowrap",children:[e.jsx("div",{onClick:g.column.getToggleSortingHandler(),children:g.column.getCanSort()?e.jsxs(N,{variant:"transparent",onClick:()=>g.column.getToggleSortingHandler(),className:P.sortButton,children:[c,e.jsx("span",{className:P.sortIcon,children:e.jsx(G,{icon:B==="asc"?vn:B==="desc"?fn:Sn})})]}):c}),k[g.column.id]]})},g.id)})},m.id))}),e.jsx("tbody",{children:S.getRowModel().rows.map(m=>e.jsx("tr",{children:m.getVisibleCells().map(g=>e.jsx("td",{children:ke(g.column.columnDef.cell,g.getContext())},g.id))},m.id))})]}),F]}):K?e.jsx(ie,{description:i("searchEmptyState_description"),title:i("tableEmptyState_title")}):e.jsx(ie,{description:i("tableEmptyState_description"),title:i("tableEmptyState_title")})]})},Fa={en:"Email",nl:"Email"},Pa={en:"Add",nl:"Toevoegen"},Oa={en:"Invited",nl:"Uitnodigingen"},$a={en:"People",nl:"Personen"},qa={en:"Requests to join",nl:"Lidmaatschapsverzoeken"},Va={emailMembers:Fa,inviteMembers:Pa,invited:Oa,members:$a,requests:qa},Ba={kind:"Document",definitions:[{kind:"OperationDefinition",operation:"query",name:{kind:"Name",value:"OrganizationMembersByIdOrSlug"},variableDefinitions:[{kind:"VariableDefinition",variable:{kind:"Variable",name:{kind:"Name",value:"idOrSlug"}},type:{kind:"NonNullType",type:{kind:"NamedType",name:{kind:"Name",value:"ID"}}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"organization"},arguments:[{kind:"Argument",name:{kind:"Name",value:"idOrSlug"},value:{kind:"Variable",name:{kind:"Name",value:"idOrSlug"}}}],selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"id"}},{kind:"Field",name:{kind:"Name",value:"membershipApplicationsEnabled"}},{kind:"Field",name:{kind:"Name",value:"slug"}},{kind:"Field",name:{kind:"Name",value:"permissions"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"admins"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"delete"}},{kind:"Field",name:{kind:"Name",value:"update"}}]}},{kind:"Field",name:{kind:"Name",value:"members"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"read"}},{kind:"Field",name:{kind:"Name",value:"delete"}},{kind:"Field",name:{kind:"Name",value:"update"}}]}},{kind:"Field",name:{kind:"Name",value:"moderators"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"delete"}},{kind:"Field",name:{kind:"Name",value:"update"}}]}},{kind:"Field",name:{kind:"Name",value:"userStats"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"read"}}]}}]}},{kind:"Field",name:{kind:"Name",value:"listMembershipRequests"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"pageInfo"},selectionSet:{kind:"SelectionSet",selections:[{kind:"Field",name:{kind:"Name",value:"total"}}]}}]}}]}}]}}]},ts=()=>{const t=mn();if(!t.organizationSlug)throw new Error("organizationSlug param not found");const n=T(Va),[a]=dn(),{data:i,loading:s,error:p,refetch:b}=ae(Ba,{fetchPolicy:"cache-and-network",variables:{idOrSlug:t.organizationSlug}}),o=ae(pn),[d,r]=l.useState(!1),[h,v]=l.useState(!1);if(l.useEffect(()=>{!i?.organization?.permissions.members.update||!a.has("add")||r(!0)},[i,a]),s||o.loading)return e.jsx(Pe,{});if(p||o.error)return e.jsx(Qn,{onRetryClick:()=>b()});if(!i?.organization||!o.data?.viewer.user)return e.jsx(Yn,{});const{organization:u}=i,_=u.permissions.members.update,w=u.listMembershipRequests?.pageInfo.total??0;return e.jsxs(e.Fragment,{children:[e.jsx(yn,{header:e.jsxs(e.Fragment,{children:[e.jsx("h1",{children:n("members")}),_&&e.jsxs(le,{gap:"xs",ml:"sm",children:[e.jsx(N,{size:"sm",...z("invite-user"),leftSection:e.jsx(G,{icon:_n}),onClick:()=>r(!0),children:n("inviteMembers")}),e.jsx(N,{size:"sm",variant:"outline",leftSection:e.jsx(G,{icon:kn}),onClick:()=>v(!0),children:n("emailMembers")})]})]}),children:u.membershipApplicationsEnabled&&_?e.jsxs(jn,{tabs:[{text:n("members"),to:`/o/${u.slug}/members/all`},{text:(()=>{const M=e.jsx("span",{...z("requests-tab"),children:n("requests")});return w>0?e.jsx(un,{variant:"emphasis",hidden:!w,value:w,badgeClassName:Dn.badge,children:M}):M})(),to:`/o/${u.slug}/members/requests`}],children:[e.jsx("div",{children:e.jsx(Te,{organizationId:Number(u.id),organizationSlug:u.slug})}),e.jsx("div",{children:e.jsx(na,{organizationId:u.id})})]}):e.jsx(Te,{organizationId:Number(u.id),organizationSlug:u.slug})}),d&&e.jsx(qt,{organizationId:u.id,onClose:()=>r(!1)}),h&&e.jsx(Jn,{organizationId:u.id,onClose:()=>v(!1)})]})};export{ts as default};
2//# sourceMappingURL=index-DIP4reXk.js.map

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.