1import{b as a}from"./chunk-L5FSDNPS.js";import{Z as n,ca as o,pc as i,ta as s}from"./chunk-WLTSAKSP.js";var m={super_admin:["admin.users.view","admin.users.manage","admin.companies.view","admin.reports.view","recruitment.roles.view","recruitment.roles.create","recruitment.roles.edit","recruitment.candidates.view","recruitment.candidates.manage","recruitment.interviews.view","recruitment.interviews.schedule","hr.planning.view","hr.planning.manage","hr.locations.view","hr.locations.manage","hr.locations.create","hr.locations.edit","hr.position-templates.view","workforce.onboarding.view","workforce.employees.view","workforce.scheduling.view","workforce.attendance.view","workforce.payroll.view","settings.profile.edit","settings.company.edit","settings.billing.manage"],hr:["recruitment.roles.view","recruitment.candidates.view","recruitment.candidates.manage","recruitment.interviews.view","recruitment.interviews.schedule","hr.planning.view","hr.planning.manage","hr.locations.view","hr.position-templates.view","settings.profile.edit"]};var c=class t{companySession=o(a);_override=s(null);_userContext=i(()=>{let e=this._override();if(e)return e;let r=this.companySession.activeMembership();return r?{roles:[r.role],permissions:[]}:null});setUserContext(e){this._override.set(e)}clearUserContext(){this._override.set(null)}permissions=i(()=>{let e=this._userContext();if(!e)return[];let r=e.roles.flatMap(d=>m[d]??[]),l=e.permissions??[];return Array.from(new Set([...r,...l]))});roles=i(()=>this._userContext()?.roles??[]);hasPermission(e){return i(()=>this.permissions().includes(e))}hasAnyPermission(e){return i(()=>e.some(r=>this.permissions().includes(r)))}hasLocationAccess(e){return i(()=>{let r=this._userContext();return r?.workLocationIds?r.workLocationIds.includes(e):!1})}static \u0275fac=function(r){return new(r||t)};static \u0275prov=n({token:t,factory:t.\u0275fac,providedIn:"root"})};export{c as a};
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.