1import{t as fe,j as o,L as ae,S as pe,B as xe,o as Se,v as ge,w as Ee,x as he,q as ke,s as te,D as Re}from"./main-B85zqRjd.js";import{a as S,j as Ue,d as Ce,R as d}from"./vendor-react-Bjxsyr_G.js";import{f as ve}from"./filterStyles-Dc9vUaM-.js";import{D as we,C as Ne}from"./vendor-redux-CkTbKByD.js";import{L as Ae}from"./ListPageHeader-CDHXn2yx.js";import{M as Oe}from"./MobileListActionsBar-BguqKu3h.js";import{T as be}from"./TableData-BQgdfr6d.js";import{B as se}from"./Button-xfGKx8Ra.js";import{P as ye}from"./PaginationControls-CEOp50ep.js";import{M as _e}from"./Modal-DtCyxeNQ.js";import{u as re}from"./vendor-i18n-CmmgQqfv.js";import{u as je}from"./useListUrlState-Gg9ZqxAl.js";import{u as Le}from"./sectionsApi-DX-GZqMl.js";import{m as ne}from"./filterOptions-Cwg047pw.js";import{g as Me}from"./usersColumns-BNeFoXTs.js";import{u as q}from"./useMediaQuery-Bzu3CIqR.js";import"./vendor-forms-Chlqk9RW.js";import"./Filters-D_K0s731.js";import"./Checkbox-D6300evD.js";import"./DateTimePicker-h9qPaIf5.js";import"./dateUtils-Cn8z919x.js";import"./formatDate-C6Vg3jtv.js";function De({open:e,onClose:g,user:a,initSections:A=[],initMarkets:p=[],deleteTitle:C,deleteSubtitle:y,onTransfer:u}){const{t:c}=re(),[k,_]=S.useState({markets:[]}),[v,O]=S.useState([]),[b,w]=S.useState({}),N=S.useMemo(()=>{const t={};return A.forEach(r=>{t["removedSections[]"]||(t["removedSections[]"]=[]),t["removedSections[]"].push(r)}),p.forEach(r=>{t["removedMarkets[]"]||(t["removedMarkets[]"]=[]),t["removedMarkets[]"].push(r)}),t},[A,p]),{data:x,isFetching:j,refetch:D}=fe({userId:a==null?void 0:a.id,query:N},{skip:!e||!(a!=null&&a.id)}),L=S.useMemo(()=>{var t;return(a==null?void 0:a.role_id)===(typeof window<"u"?(t=window.roles)==null?void 0:t.admin:null)},[a]),P=S.useCallback(()=>{if(!(x!=null&&x.markets))return;if(Array.isArray(x.markets)&&x.markets.length===0){O([]),L||u==null||u(null);return}const t=[];x.markets.forEach(s=>{s.count>0&&t.push({market:s.market,item:{section:s.section,count:s.count}})});const r=[];t.forEach(s=>{const n=r.find(l=>s.market.id===l.market.id);!n&&s.item.count>0?r.push({market:s.market,sections:[{item:s.item}]}):n&&!n.sections.find(f=>s.item.section.id===f.item.section.id)&&s.item.count>0&&n.sections.push({item:s.item})}),O(r),r.length===0&&!L&&(u==null||u(null))},[x,L,u]);S.useEffect(()=>{e&&(a!=null&&a.id)&&D()},[e,a==null?void 0:a.id,D]),S.useEffect(()=>{x&&P()},[x,P]),S.useEffect(()=>{e||(O([]),_({markets:[]}),w({}))},[e]);const B=S.useCallback((t,r,s)=>{_(n=>{const l=[...n.markets],f=l.find(E=>E.id===r);if(f){const E=f.sections.find(R=>R.id===s);E?E.manager=t:f.sections.push({id:s,manager:t})}else l.push({id:r,sections:[{id:s,manager:t}]});return{markets:l}}),w(n=>{const l={...n};return delete l[`market-${r}-section-${s}`],l})},[]),I=S.useCallback(()=>{const t={};let r=!0;return v.forEach(s=>{s.sections.forEach(n=>{if(n.item.count>0){const l=`market-${s.market.id}-section-${n.item.section.id}`,f=k.markets.find(R=>R.id===s.market.id),E=f==null?void 0:f.sections.find(R=>R.id===n.item.section.id);E!=null&&E.manager||(t[l]=c?c("VALIDATION.REQUIRED"):"This field is required",r=!1)}})}),w(t),r},[v,k,c]),M=S.useCallback(()=>{I()&&(u==null||u(k))},[I,k,u]),T=S.useCallback(()=>{g==null||g()},[g]),m=S.useCallback((t,r)=>{const s=k.markets.find(l=>l.id===t),n=s==null?void 0:s.sections.find(l=>l.id===r);return(n==null?void 0:n.manager)||""},[k]),$=C?`${C} '${(a==null?void 0:a.username)||""}' ?`:c?c("USERS.TRANSFER_ASSIGNED_USERS"):"Transfer Assigned Users";return e?j?Ue.createPortal(o.jsx("div",{className:"fixed inset-0 z-[9999] flex items-center justify-center bg-black/50",children:o.jsx(ae,{})}),document.body):o.jsx(_e,{open:e,onClose:T,title:$,maxWidth:"700px",titleClassName:"text-[20px] font-medium text-[var(--mdn-text-87)] break-words",hideHeaderBorder:!0,children:o.jsxs("div",{className:"px-6 pb-4",children:[y&&v.length>0&&o.jsx("p",{className:"text-[14px] font-normal text-[var(--mdn-text-60)] mb-4",children:y}),v.map(t=>{const r=t.sections.filter(n=>n.item.count>0).length,s=r===1?"grid-cols-1":r===2?"grid-cols-1 sm:grid-cols-2":"grid-cols-1 sm:grid-cols-3";return o.jsxs("div",{className:"mb-6",children:[o.jsx("h4",{className:"text-[18px] font-medium text-[var(--mdn-text-60)] text-center mb-4 uppercase",children:t.market.name}),o.jsx("div",{className:`grid ${s} gap-4`,children:t.sections.map(n=>{var R;if(n.item.count<=0)return null;const l=`market-${t.market.id}-section-${n.item.section.id}`,f=((R=n.item.section.name)==null?void 0:R.toUpperCase())||"",E=(t.market.users||[]).map(U=>({id:U.id,name:U.full_name||U.username||`User ${U.id}`}));return o.jsxs("div",{children:[o.jsxs("p",{className:"text-[14px] font-normal text-[var(--mdn-text-60)] mb-2",children:[c?c("USERS.CHOOSE_MANAGER_FOR_TRANSFER"):"Choose manager for transfer"," ",c?c(`LAYOUT.${f}`):f,":"]}
1),o.jsx(pe,{items:E,value:m(t.market.id,n.item.section.id),onChange:U=>B(U,t.market.id,n.item.section.id),labels:{placeholder:c?c("USERS.CHOOSE_MANAGER"):"Choose manager"},className:"w-full",buttonClassName:`h-10 w-full border ${b[l]?"border-[var(--mdn-red-d2)]":"border-[var(--mdn-border-38)]"} text-[var(--mdn-text-87)] rounded-none focus:outline-none focus:ring-0 focus:border-[#243138] hover:border-[#243138]`,placeholderClassName:"text-[16px] font-normal text-[var(--mdn-text-38)]",iconClassName:"text-[24px] text-[var(--mdn-text-strong)]"}),b[l]&&o.jsx("p",{className:"text-[12px] text-[var(--mdn-red-d2)] mt-1",children:b[l]})]},l)})})]},t.market.id)}),o.jsxs("div",{className:"flex justify-end gap-3 mt-6 pt-4",children:[o.jsx("button",{type:"button",onClick:T,className:"px-4 py-2 text-[14px] font-medium text-[var(--mdn-grey-600)] uppercase letter-spacing-[1.25px] hover:cursor-pointer",children:C?c?c("USERS.NO"):"No":c?c("BUTTON.CLOSE"):"Close"}),o.jsx("button",{type:"button",onClick:M,className:"px-4 py-2 text-[14px] font-medium text-[var(--mdn-green-500)] uppercase letter-spacing-[1.25px] hover:cursor-pointer",children:C?c?c("USERS.YES"):"Yes":c?c("USERS.SAVE"):"Save"})]})]})}):null}const oe=["affiliates","cashiers","referrals"];function Pe({t:e,isSupervisor:g=!1,markets:a=[],sections:A=[]}){const p=typeof window<"u"?window.roles:{},C=g?[{id:"all",name:e&&e("REPORTS.ALL")||"All"},{id:p.manager,name:"Manager"}]:[{id:"all",name:e&&e("REPORTS.ALL")||"All"},{id:p.admin,name:"Admin"},{id:p.manager,name:"Manager"},{id:p.supervisor,name:"Supervisor"}],u=[...ne(A)].sort((O,b)=>{const w=oe.indexOf(String(O.name).toLowerCase()),N=oe.indexOf(String(b.name).toLowerCase());return w===-1&&N===-1?0:w===-1?1:N===-1?-1:w-N}),c=[{id:"all",name:e&&e("REPORTS.ALL")||"All"},...u],k=[{id:"all",name:e&&e("REPORTS.ALL")||"All"},...ne(a)];return{filtersConfig:[{type:"input",filterOption:"search",placeholder:e?e("USERS.SEARCH"):"Search",grow:!0},{type:"select",filterOption:"role",placeholder:e?e("USERS.USER_TYPE"):"User type",options:C,grow:!0},{type:"select",filterOption:"access",placeholder:e?e("USERS.ACCESS"):"Access",options:c,grow:!0},{type:"select",filterOption:"market",placeholder:e?e("USERS.MARKET"):"Market",options:k,grow:!0}],secConfig:[]}}const Ie="(max-width: 769px)";function rt(){var X;const{t:e}=re(),g=Ce(),a=we(),A=Ne(i=>{var h;return(h=i.auth)==null?void 0:h.user}),p=(A==null?void 0:A.role_id)===(typeof window<"u"?(X=window.roles)==null?void 0:X.supervisor:null),{query:C,sortBy:y,sortDesc:u,onFiltersChanged:c,onSort:k,goToPage:_}=je({extraFilters:["role","access","market"]}),v=q(xe),O=q(Se),b=q(Ie),[w,N]=d.useState(!1),[x,j]=d.useState(null),[D,L]=d.useState([]),[P,B]=d.useState([]),I=d.useMemo(()=>{var h;const i={...C};return p&&(i.role=typeof window<"u"?(h=window.roles)==null?void 0:h.manager:null),i},[C,p]),[M,T]=d.useState(!1),{data:m,isFetching:$,isLoading:t,refetch:r}=ge(I);d.useEffect(()=>{m&&!M&&T(!0)},[m,M]);const{data:s}=Ee(),{data:n}=Le(),[l]=he(),[f]=ke(),{filtersConfig:E,secConfig:R}=d.useMemo(()=>Pe({t:e,isSupervisor:p,markets:s||[],sections:n||[]}),[e,p,s,n]),U=(m==null?void 0:m.items)||[],ie=(m==null?void 0:m.totalPages)||1,H=(m==null?void 0:m.currentPage)||1,ce=(m==null?void 0:m.perPage)||(U?U.length:0),le=Math.max(0,(H-1)*(ce||0)),K=d.useCallback(i=>{g(`/users/${i.id}`)},[g]),Y=d.useCallback(i=>{g(`/users/show/${i.id}`)},[g]),V=d.useCallback(i=>{var Z,ee;const h=i.role_id===(typeof window<"u"?(Z=window.roles)==null?void 0:Z.manager:null)?i.section||[]:n||[],G=i.role_id===(typeof window<"u"?(ee=window.roles)==null?void 0:ee.manager:null)?i.market||[]:s||[];L(h.map(Q=>Q.id)),B(G.map(Q=>Q.id)),j(i),h.length>0||G.length>0?N(!0):F(i,null)},[n,s]),F=d.useCallback(async(i,h)=>{try{await l({userId:i.id,data:h??null}).unwrap(),r()}catch{}N(!1),j(null)},[l,r]),de=d.useCallback(i=>{x&&F(x,i)},[x,F]),me=d.useCallback(()=>{N(!1),j(null)},[]),W=d.useCallback(async i=>{try{await f(i.id).unwrap(),a(te({notification:e?e("MESSAGE.USER_UNLOCKED"):"User unlocked",notificationColor:"green"})),r()}catch{a(te({notification:e?e("COMMON.ERROR"):"Error",notificationColor:"red"}))}},[f,a,e,r]),z=d.useCallback(i=>{V(i)},[V]),ue=d.useMemo(()=>Me({t:e,isSmall:v,isNarrow:O,isSupervisor:p,onEdit:K,onView:Y,onDelete:z,onUnlock:W}),[e,v,O,p,K,Y,z,W]),J=d.useCallback(()=>{g("/users/new")},[g]);return!M&&(t||$)?o.jsx(ae,{}):o.jsxs("div",{className:"px-4 pb-4 pt-[6px] md:px-6 md:pb-6 md:pt-[14px]",children:[o.jsx(Ae,{title:e?e("USERS.USERS"):"Users",filtersConfig:E,secConfig:R,onFiltersChanged:c,filtersProps:{isDashboard:!0,controlsUnderline:!0,singleRowLayout:!0},actionsRight:b?null:o.jsx(o.Fragment,{children:o.jsx(se,{variant:"action",className:`${ve.addNe
1wButton} mt-2`,onClick:J,children:e?e("USERS.ADD_NEW_USER"):"Add New User"})})}),b?o.jsx(Oe,{children:o.jsx(se,{variant:"action",className:"rounded-none",onClick:J,children:e?e("USERS.ADD_NEW_USER"):"Add New User"})}):null,o.jsx("div",{className:"bg-[var(--mdn-white)]",children:o.jsx(be,{columns:ue,items:U,loading:$,...Re,showIndex:!v,sortBy:y,sortDesc:u,onSort:k,indexOffset:le,rowClassName:i=>i.active===0?"text-[var(--mdn-text-38)]":""})}),o.jsx(ye,{currentPage:H,totalPages:ie,onChange:_}),o.jsx(De,{open:w,onClose:me,user:x,initSections:D,initMarkets:P,deleteTitle:e?e("USERS.ARE_YOU_SURE_YOU_WANT_TO_DELETE"):"Are you sure you want to delete",deleteSubtitle:e?e("USERS.IN_ORDER_TO_DELETE_USER"):"In order to successfully delete a user you have to transfer some details and actions to other action takers.",onTransfer:de})]})}export{rt 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.