1import{j as s,p as me,S as pe,y as ue,w as Se,z as he,A as xe,u as fe,s as W}from"./main-CMViuH_f.js";import{R as c,e as _e,d as Ee,u as ve}from"./vendor-react-Bjxsyr_G.js";import{D as ge,C as Ne}from"./vendor-redux-CkTbKByD.js";import{C as G}from"./ControlPanel-Dm3LeJij.js";import{C as j}from"./Checkbox-103DDomz.js";import{u as Ae}from"./sectionsApi-CPx-uuFs.js";import{c as Ie,d as Re,a as y}from"./vendor-forms-Chlqk9RW.js";import{u as Ce}from"./usePanelFormValidation-aCfZ2sNc.js";import{I as T}from"./Input-BBroo5uU.js";import{f as h}from"./formStyles-MU_CFwXq.js";import{f as be}from"./formatDate-C6Vg3jtv.js";import{u as O}from"./vendor-i18n-CmmgQqfv.js";import"./validation-CmgQtWDq.js";const q=e=>Ie().shape({username:y().required("VALIDATION.REQUIRED").min(3,"VALIDATION.MIN").max(50,"VALIDATION.MAX"),first_name:y().required("VALIDATION.REQUIRED").max(255,"VALIDATION.MAX"),last_name:y().required("VALIDATION.REQUIRED").max(255,"VALIDATION.MAX"),email:y().required("VALIDATION.REQUIRED").email("VALIDATION.EMAIL").max(255,"VALIDATION.MAX"),password:e?y().nullable().transform(i=>i===""?null:i).min(8,"VALIDATION.MIN"):y().required("VALIDATION.REQUIRED").min(8,"VALIDATION.MIN"),access_type:Re().nullable().when(["is_admin","is_supervisor"],{is:(i,n)=>!i&&!n,then:i=>i.required("VALIDATION.REQUIRED"),otherwise:i=>i.notRequired()})});q(!1);q(!0);const Me={username:"",first_name:"",last_name:"",email:"",password:"",registration_date:new Date().toISOString(),is_admin:!1,is_supervisor:!1,enable_notifications:!1,finance_permission:!0,view_only_permission:!1},je={...Me,active:!1,section:[],market:[],assigned_managers:[],access_type:null},Ue={account:["username","first_name","last_name","email","password"],sections:[],markets:["access_type"]},we={account:!1,sections:!1,markets:!1},ye=[{id:0,value:0,name:"USERS.FULL_MARKET_DATA"},{id:1,value:1,name:"USERS.ASSIGNED_AFFILIATES_CASHIERS_REFERRALS_ONLY"}],Te={username:"USERS.USERNAME",first_name:"USERS.FIRST_NAME",last_name:"USERS.LAST_NAME",email:"USERS.EMAIL",password:"USERS.PASSWORD",access_type:"USERS.MARKET_TYPE",active:"USERS.ACTIVE",is_admin:"USERS.ADMIN_PERMISSIONS",is_supervisor:"USERS.SUPERVISOR_PERMISSIONS",enable_notifications:"USERS.COMMISSIONS_NOTIFICATIONS",finance_permission:"USERS.FINANCE_PERMISSIONS",view_only_permission:"USERS.VIEW_ONLY_PERMISSIONS"};function ke(e,i=[],n=[],S){if(!e)return null;const x=e.role_name==="ADMIN",t=e.role_name==="SUPERVISOR",a=(e.market||[]).map(m=>m.id),l=(e.section||[]).map(m=>m.id),_=i.map(m=>({...m,value:a.includes(m.id)})),I=n.map(m=>({id:m.id,name:S?S(`LAYOUT.${m.name.toUpperCase()}`):m.name,value:l.includes(m.id)}));return{id:e.id,username:e.username||"",first_name:e.first_name||"",last_name:e.last_name||"",email:e.email||"",password:"",registration_date:e.registration_date||e.created_at||new Date().toISOString(),is_admin:x,is_supervisor:t,enable_notifications:e.enable_notifications??!1,finance_permission:e.finance_permission??!0,view_only_permission:e.view_only_permission??!1,active:e.active??!1,access_type:e.access_type??null,market:_,section:I,assigned_managers:e.assigned_managers||[]}}function Oe(e){const i=((e==null?void 0:e.section)||[]).filter(S=>S.value).map(S=>S.id),n=((e==null?void 0:e.market)||[]).filter(S=>S.value).map(S=>S.id);return{initSection:i,initMarket:n}}function Le(e,i,n){const S=((e==null?void 0:e.section)||[]).filter(l=>l.value).map(l=>l.id),x=((e==null?void 0:e.market)||[]).filter(l=>l.value).map(l=>l.id),t=i.filter(l=>!S.includes(l)),a=n.filter(l=>!x.includes(l));return{removedSectionIds:t,removedMarketIds:a}}function De({value:e,onChange:i,disabled:n=!1,isSupervisor:S=!1,isUsernameReserved:x=!1,errors:t={}}){const{t:a}=O(),l=u=>v=>{var A;const g=((A=v==null?void 0:v.target)==null?void 0:A.value)??v;i({...e,[u]:g})},_=u=>v=>{var M;const g=((M=v==null?void 0:v.target)==null?void 0:M.checked)??v,A={...e,[u]:g};u==="is_admin"&&g&&(A.is_supervisor=!1,A.view_only_permission=!1),u==="is_supervisor"&&g&&(A.is_admin=!1,A.view_only_permission=!1),u==="finance_permission"&&g&&(A.view_only_permission=!1),u==="view_only_permission"&&g&&(A.finance_permission=!1),i(A)},I=c.useMemo(()=>{const u=e.registration_date||new Date().toISOString();return be(u)},[e.registration_date]),m=x?a?a("AFFILIATES.USERNAME_ALREADY_TAKEN"):"Username already taken":t.username;return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"col-span-12 min-[960px]:col-span-6",children:s.jsxs("div",{className:"grid grid-cols-12 gap-4",children:[s.jsx("div",{className:"col-span-12 min-[960px]:col-span-6",children:s.jsx(T,{label:a?a("USERS.USERNAME"):"Username",value:e.username||"",onChange:l("username"),variant:"outlined",labelClassName:h.label,noLabelBottomMargin:!0,inputClassName:h.input,disabled:n,error:m})}),s.jsx("div",{className:"hidden min-[960px]:block min-[960px]:col-span-6"}),s.jsx("div",{className:"col-span-12 min-[960px]:col-span-6",children:s.jsx(T,{label:a?a("USERS.FIRST_NAME"):"First Name",value:e.first_name||"",onChange:l("first_name"),variant:"outlined",labelClassName:h.label,noLabelBottomMargin:!0,inputClassName:h.input,disabled:n,error:t.first_name})}),s.jsx("div",{className:"col-span-12 min-[960px]:col-span-6",children:s.jsx(T,{label:a?a("USERS.LAST_NAME"):"Last Name",value:e.last_name||"",onChange:l("last_name"),variant:"outlined",labelClassName:h.label,noLabelBottomMargin:!0,inputClassName:h.input,disabled:n,error:t.last_name})}),s.jsx("div",{className:"col-span-12 min-[960px]:col-span-6",children:s.jsx(T,{label:a?a("USERS.EMAIL"):"Email",type:"email",value:e.email||"",onChange:l("email"),variant:"outlined",labelClassName:h.label,noLabelBottomMargin:!0,inputClassName:h.input,disabled:n,error:t.email})}),s.jsx("div",{className:"col-span-12 min-[960px]:col-span-6",children:s.jsx(T,{label:a?a("USERS.PASSWORD"):"Password",type:"password",value:e.password||"",onChange:l("password"),variant:"outlined",labelClassName:h.label,noLabelBottomMargin:!0,inputClassName:h.input,disabled:n,error:t.password,autoComplete:"new-password"})})]})}),s.jsx("div",{className:"flex col-span-12 min-[960px]:col-span-6",children:s.jsxs("div",{className:"flex flex-col min-[960px]:col-span-6 min-[960px]:ml-auto gap-3",children:[s.jsx(T,{label:a?a("USERS.REGISTRATION_DATE"):"Registration date",value:I,onChange:()=>{},variant:"outlined",labelClassName:h.label,noLabelBottomMargin:!0,inputClassName:`w-full ${h.input}`,disabled:!0}),s.jsx("div",{className:"flex items-center",children:s.jsx(j,{checked:e.is_admin||!1,onChange:_("is_admin"),disabled:e.is_supervisor||S||n,label:a?a("USERS.ADMIN_PERMISSIONS"):"Add admin permissions"})}),s.jsx("div",{className:"flex items-center",children:s.jsx(j,{checked:e.is_supervisor||!1,onChange:_("is_supervisor"),disabled:e.is_admin||S||n,label:a?a("USERS.SUPERVISOR_PERMISSIONS"):"Add supervisor permissions"})}),s.jsx("div",{className:"flex items-center",children:s.jsx(j,{checked:e.enable_notifications||!1,onChange:_("enable_notifications"),disabled:n,label:a?a("USERS.COMMISSIONS_NOTIFICATIONS"):"Allow commissions notifications"})}),s.jsx("div",{className:"flex items-center",children:s.jsx(j,{checked:e.finance_permission||!1,onChange:_("finance_permission"),disabled:n||!!e.view_only_permission,label:a?a("USERS.FINANCE_PERMISSIONS"):"Allow finance permissions"})}),s.jsx("div",{className:"flex items-center",children:s.jsx(j,{checked:e.view_only_permission||!1,onChange:_("view_only_permission"),disabled:n||e.is_supervisor||e.is_admin||!!e.finance_permission,label:a?a("USERS.VIEW_ONLY_PERMISSIONS"):"Allow view only permission"})})]})})]})}function Ve({sections:e=[],onChange:i,disabled:n=!1}){const{t:S}=O(),x=t=>a=>{var I;const l=((I=a==null?void 0:a.target)==null?void 0:I.checked)??a,_=[...e];_[t]={..._[t],value:l},i(_)};return s.jsx(s.Fragment,{children:e.map((t,a)=>s.jsx("div",{className:"col-span-12 sm:col-span-6 lg:col-span-4",children:s.jsx(j,{checked:t.value||!1,onChange:x(a),disabled:n,label:t.name})},t.id))})}function Fe({value:e=[],onChange:i,disabled:n=!1,markets:S=[],errorMessage:x=[]}){const{t}=O(),[a,l]=c.useState(null),[_,I]=c.useState(""),[m,u]=c.useState(""),[v,g]=c.useState(!1),A=c.useRef(null),M=c.useRef(null),f=c.useMemo(()=>S.filter(o=>o.value).map(o=>o.id).join(","),[S]),b=c.useMemo(()=>{const o={supervisor_search:1};return f&&(o.market=f),_.trim()&&(o.search=_.trim()),o},[f,_]),{data:U=[],isFetching:p}=me(b,{refetchOnMountOrArgChange:!0}),E=e||[];c.useEffect(()=>{const o=R=>{A.current&&!A.current.contains(R.target)&&g(!1)};return document.addEventListener("mousedown",o),()=>document.removeEventListener("mousedown",o)},[]);const F=o=>{const R=o.target.value;
1I(R),u(""),M.current&&clearTimeout(M.current),M.current=setTimeout(()=>{!v&&R.length>0&&g(!0)},300)},P=o=>{l(o),I(o.name),g(!1),u("")},Q=()=>{if(!(a!=null&&a.id))return;if(E.some(D=>D.id===a.id)){u(t?t("USERS.MANAGER_ALREADY_ADDED"):"You cannot add same manager twice!");return}const R=[...E,{id:a.id,name:a.name}];i(R),l(null),I(""),u("")},Y=o=>{const R=[...E];R.splice(o,1),i(R)},L=c.useMemo(()=>U.filter(o=>!E.some(R=>R.id===o.id)),[U,E]),k=(x==null?void 0:x.length)>0?x:m?[m]:[];return s.jsxs("div",{className:"col-span-12",children:[s.jsx("label",{className:"block text-[14px] text-[var(--mdn-text-87)] mb-1",children:t?t("USERS.ADD_SUPERVISED_MANAGER"):"Add supervised manager"}),s.jsxs("div",{className:"flex items-stretch gap-0",ref:A,children:[s.jsxs("div",{className:"relative flex-1 min-w-[200px] max-w-[250px]",children:[s.jsx("input",{type:"text",value:_,onChange:F,onFocus:()=>g(!0),placeholder:t?t("LAYOUT.SEARCH"):"Search",disabled:n,className:`w-full h-[39px] pr-8 pl-2.5 text-[14px] ${h.selectBtn} ${k.length>0?"border-[var(--mdn-red-d2)] border-2":""} ${n?"opacity-60 cursor-not-allowed":""}`}),s.jsx("i",{className:"mdi mdi-menu-down absolute right-2 top-1/2 -translate-y-1/2 text-[24px] text-[var(--mdn-text-60)]","aria-hidden":"true"}),v&&!n&&s.jsx("div",{className:"absolute z-50 w-full mt-0 bg-[var(--mdn-surface)] border border-[var(--mdn-border)] shadow-lg max-h-[200px] overflow-auto",children:p?s.jsx("div",{className:"px-3 py-2 text-[14px] text-[var(--mdn-text-60)]",children:"Loading..."}):L.length>0?L.map(o=>s.jsx("div",{className:"px-3 py-2 text-[14px] text-[var(--mdn-text-strong)] cursor-pointer hover:bg-[var(--mdn-hover)]",onClick:()=>P(o),children:o.name},o.id)):s.jsx("div",{className:"px-3 py-2 text-[14px] text-[var(--mdn-text-60)]",children:"No data available"})})]}),s.jsx("button",{type:"button",onClick:Q,disabled:n||!a,className:"h-[39px] w-[57px] flex items-center justify-center bg-[var(--mdn-text-87)] text-white hover:opacity-80 disabled:cursor-not-allowed",children:s.jsx("i",{className:"mdi mdi-plus text-[24px]","aria-hidden":"true"})})]}),k.length>0&&s.jsx("p",{className:h.errorMessage,children:k[0]}),E.length>0&&s.jsx("div",{className:"flex flex-wrap gap-2 mt-3",children:E.map((o,R)=>s.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1 bg-[var(--mdn-grey-3)] text-[14px] text-[var(--mdn-text-strong)]",children:[s.jsx("span",{children:o.name}),!n&&s.jsx("button",{type:"button",onClick:()=>Y(R),className:"text-[var(--mdn-text-60)] hover:text-[var(--mdn-text-strong)]",children:s.jsx("i",{className:"mdi mdi-close text-[18px]","aria-hidden":"true"})})]},o.id))})]})}function Pe({markets:e=[],onChange:i,accessType:n,onAccessTypeChange:S,disabled:x=!1,isManager:t=!1,isSupervisor:a=!1,assignedManagers:l=[],onAssignedManagersChange:_,validSupervisedMarkets:I=!0,errors:m={}}){const{t:u}=O(),v=c.useMemo(()=>e.length>0&&e.every(f=>f.value),[e]),g=f=>{var p;const b=((p=f==null?void 0:f.target)==null?void 0:p.checked)??f,U=e.map(E=>({...E,value:b}));i(U)},A=f=>b=>{var E;const U=((E=b==null?void 0:b.target)==null?void 0:E.checked)??b,p=[...e];p[f]={...p[f],value:U},i(p)},M=c.useMemo(()=>ye.map(f=>({id:f.value,name:u?u(f.name):f.name})),[u]);return s.jsxs(s.Fragment,{children:[s.jsx("div",{className:"col-span-12 sm:col-span-6 lg:col-span-4",children:s.jsx(j,{checked:v,onChange:g,disabled:x,label:u?u("USERS.ALL_MARKETS"):"All market"})}),e.map((f,b)=>s.jsx("div",{className:"col-span-12 sm:col-span-6 lg:col-span-4",children:s.jsx(j,{checked:f.value||!1,onChange:A(b),disabled:x,label:f.name})},f.id)),!I&&s.jsx("div",{className:"col-span-12",children:s.jsx("p",{className:h.errorMessage,children:u?u("VALIDATION.SUPERVISED_MARKETS"):"At least one supervised market must be selected"})}),s.jsx("div",{className:"col-span-12",children:s.jsx("hr",{className:"border-t border-[var(--mdn-border-38)] my-2"})}),t&&s.jsxs("div",{className:"col-span-12 min-[960px]:col-span-6",children:[s.jsx(pe,{items:M,value:n!=null?String(n):"",onChange:S,labels:{placeholder:u?u("USERS.MARKET_TYPE"):"Market type"},buttonClassName:`w-full ${h.selectBtn} ${m.access_type?"border-[var(--mdn-red-d2)] border-2":""}`,className:"w-full",disabled:x}),m.access_type&&s.jsx("p",{className:h.errorMessage,children:m.access_type})]}),a&&e.length>
10&&s.jsx(Fe,{value:l,onChange:_,disabled:x,markets:e})]})}function Qe(e,i,n){const[S,x]=c.useState(!1),t=c.useRef(null);return c.useEffect(()=>(e&&e.length>=3&&e!==i?(t.current&&clearTimeout(t.current),t.current=setTimeout(async()=>{const a=await n(e);x(a.data??!1)},1e3)):x(!1),()=>{t.current&&clearTimeout(t.current)}),[e,i,n]),S}function ss(){var K;const{t:e}=O(),i=_e(),n=Ee(),S=ve(),x=ge(),t=(i==null?void 0:i.id)??null,a=!!t,l=S.pathname.includes("/show/"),_=Ne(d=>{var N;return(N=d.auth)==null?void 0:N.user}),I=(_==null?void 0:_.role_id)===(typeof window<"u"?(K=window.roles)==null?void 0:K.supervisor:null),{data:m,isFetching:u}=ue(t,{skip:!a}),{data:v}=Se(),{data:g}=Ae(),[A,{isLoading:M}]=he(),[f,{isLoading:b}]=xe(),[U]=fe(),[p,E]=c.useState(je),[F,P]=c.useState(null),[Q,Y]=c.useState([]),[L,k]=c.useState([]),[o,R]=c.useState(!0),D=Qe(p.username,F,U),V=l,X=l||I&&a&&(m==null?void 0:m.active);c.useEffect(()=>{if(a&&m&&v&&g){const d=ke(m,v,g,e);if(d){E(d),P(d.username);const{initSection:N,initMarket:r}=Oe(d);Y(N),k(r)}}else if(!a&&v&&g){const d=v.map(r=>({...r,value:!1})),N=g.map(r=>({id:r.id,name:e?e(`LAYOUT.${r.name.toUpperCase()}`):r.name,value:!1}));E(r=>({...r,market:d,section:N}))}},[a,m,v,g,e]);const H=c.useMemo(()=>q(a),[a]),{errors:B,panelErrors:$,validateField:w,validateForm:z}=Ce({schema:H,labelKeys:Te,PANEL_FIELDS:Ue,initialPanelErrors:we}),J=c.useCallback(d=>{E(N=>{const r={...N,...d};return w&&Object.keys(d).forEach(C=>{N[C]!==d[C]&&(w(C,r),(C==="is_admin"||C==="is_supervisor")&&w("access_type",r))}),r})},[w]),Z=c.useCallback(d=>{E(N=>({...N,section:d}))},[]),ee=c.useCallback(d=>{E(N=>({...N,market:d}))},[]),se=c.useCallback(d=>{E(N=>({...N,assigned_managers:d}))},[]),ae=c.useCallback(d=>{E(N=>{const r={...N,access_type:d};return w&&w("access_type",r),r})},[w]),ne=c.useCallback(d=>{var r;const N=((r=d==null?void 0:d.target)==null?void 0:r.checked)??d;E(C=>({...C,active:N}))},[]),te=async()=>!!await z({...p}),ie=async d=>{if(d.preventDefault(),!(!await te()||D)){if(a&&!p.is_admin){const{removedSectionIds:r,removedMarketIds:C}=Le(p,Q,L);r.length>0||C.length>0}try{if(a){const r=await f({id:t,...p}).unwrap(),C=((r==null?void 0:r.message)||"").toUpperCase();x({type:W.type,payload:{notification:C,notificationColor:"green",forTranslation:!0}})}else{const r=await A(p).unwrap(),C=((r==null?void 0:r.message)||"").toUpperCase();x({type:W.type,payload:{notification:C,notificationColor:"green",forTranslation:!0}})}n("/users")}catch{}}},le=()=>n("/users"),re=l?e?e("USERS.VIEW_EXISTING_USER"):"View User":a?e?e("USERS.EDIT_EXISTING_USER"):"Edit User":e?e("USERS.ADD_NEW_USER"):"Add New User",oe=!p.is_admin&&!p.is_supervisor,ce=!p.is_admin,de=!p.is_admin&&!p.is_supervisor;return s.jsxs("div",{className:"px-4 pb-4 pt-[6px] md:px-6 md:pb-6 md:pt-[14px]",children:[s.jsxs("div",{className:"flex flex-col md:flex-row md:items-center md:justify-between gap-3 mb-4",children:[s.jsx("h1",{className:"font-normal text-[14.4px] text-[var(--mdn-text-87)] uppercase",children:re}),s.jsx("div",{className:"flex items-center",children:s.jsx(j,{checked:p.active||!1,onChange:ne,disabled:X,label:e?e("USERS.ACTIVE"):"Active"})})]}),s.jsxs("form",{onSubmit:ie,children:[s.jsx(G,{title:e?e("USERS.ACCOUNT_DETAILS"):"Account Details",headerContainerClassName:h.panelHeader,titleClassName:h.panelTitle,collapsible:!0,defaultExpanded:!0,hasError:$.account,children:s.jsx(De,{value:p,onChange:J,disabled:V,isSupervisor:I,isUsernameReserved:D,errors:B})}),oe&&s.jsx(G,{title:e?e("USERS.SECTIONS_ACCESS"):"Sections Access",headerContainerClassName:h.panelHeader,titleClassName:h.panelTitle,collapsible:!0,defaultExpanded:!a,hasError:$.sections,children:s.jsx(Ve,{sections:p.section,onChange:Z,disabled:V})}),ce&&s.jsx(G,{title:e?e("USERS.MARKET_ACCESS"):"Market Access",headerContainerClassName:h.panelHeader,titleClassName:h.panelTitle,collapsible:!0,defaultExpanded:!a,hasError:$.markets,children:s.jsx(Pe,{markets:p.market,onChange:ee,accessType:p.access_type,onAccessTypeChange:ae,disabled:V,isManager:de,isSupervisor:p.is_supervisor,assignedManagers:p.assigned_managers,onAssignedManagersChange:se,validSupervisedMarkets:o,errors:B})}),s.jsxs("div",{className:"flex flex-wrap items-center justify-end gap-3 mt-6",children:[s.jsx("button",{type:"button",onClick:le,className:h.btnCancel,children:e?e("USERS.CANCEL"):"Cancel"}),!V&&s.jsx("button",{type:"submit",disabled:M||b||u,className:h.btnSave,children:e?e("USERS.SAVE"):"Save"})]})]})]})}export{ss 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.