1import{U as N,aD as k,aa as I,r as e,aJ as x,aK as O,a7 as S,a8 as h,c as V,W as K,w as U,a as j,ad as q,b as B,C as L}from"./index-BSt2sIrA.js";import{b as G,i as H,t as R,g as J,a as W,V as z}from"./role-Dd6a1een.js";import{t as g}from"./trimValues-9ODeiq0V.js";import{u as F,r as Q,a as X}from"./Roles-CDI3HayS.js";import{a as Y}from"./accountOwner-lzPM6u0j.js";import"./TextareaInput-BoLa_kdj.js";import"./hasAllRequired-ZDFqBsdl.js";import"./Translator-BBZzBJMF.js";const C="/settings/roles",Z=async(t=null,o,{setOriginRole:n,setPermissions:i,setIsLoading:r,isOwner:l,companyType:f}={})=>{r(!0);try{const s=l?Promise.resolve({roles:{...Y,Role_Description:""}}):X(o),_=J({accountUuid:t,companyType:f}),[u,d]=await Promise.all([s,_]);n({uid:l?null:o,name:u.roles.Role_Name,description:u.roles.Role_Description,permissions:l?d.map(({Permission_UID:a})=>a):u.Permission.map(({Permission_UID:a})=>a)}),i(W(d))}catch(s){h(s.message)}finally{r(!1)}},$=async(t,o,n,i)=>{i(!0);try{await F({role:g(t,R),userUid:o}),n(C),setTimeout(()=>{S("add-role__success--updated")},1e3)}catch(r){h(r.message)}finally{i(!1)}},ee=async(t,o,n,i)=>{i(!0);try{await Q({role:t}),o(C),setTimeout(()=>{S("add-role__success--deleted")},1e3)}catch(r){h(n(r.message,r.tOptions)),i(!1)}},se=()=>{const{t}=N(),[o]=k(),n=I(),[i,r]=e.useState(!0),[l,f]=e.useState([]),[s,_]=e.useState(null),[u,d]=e.useState(null),[a,y]=e.useState({name:"",description:"",permissions:[]}),E=e.useMemo(()=>o.get("roleuid"),[o]),c=e.useMemo(()=>o.get("isAccountOwner"),[o]),m=e.useMemo(()=>o.get("uuid"),[o]),P=e.useMemo(()=>s?t(c?"add-role__header--edit__title--owner":"add-role__header--edit__title",{roleName:s.name}):"",[s,t,c]),v=e.useCallback(async p=>{const w=await x(p,!1);return d(w),w},[]),A=e.useMemo(()=>!H(a)||G(g(a,R),g(s,R)),[a,s]),T=e.useCallback(()=>{n(-1)},[n]),b=e.useCallback(()=>{$(a,m,n,r)},[a,m]),D=e.useCallback(()=>{ee({...a,Role_Name:s.name},n,t,r)},[a,s,t,n]);e.useEffect(()=>{(async()=>{const p=await v(m);Z(m,E,{companyType:p.Company_Type,isOwner:c,setOriginRole:_,setPermissions:f,setIsLoading:r})})()},[m,E,c]),e.useEffect(()=>{s&&y({...s})},[s]),e.useEffect(()=>{c&&y({...s,description:t("roles__grid__account-owner-desription")})},[t,c,s]);const M=u?.Company_Type===O.DISTRIBUTOR;return{title:P,role:a,isLoading:i,isSaveButtonDisabled:A,permissions:l,isOwner:c,hasRemove:!0,onCancel:T,onRemove:D,onSave:b,onRoleChange:y,isAccountDistributor:M}},te=()=>{const t=se();return K.jsx(z,{...t})},oe=B(L.userPermissions.ManageRole),de=V(U(),j,q({checkAccess:()=>oe}))(te);export{te as EditRoleComponent,de as PublicEditRole};
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.