{"version":3,"file":"vcomply-common.mjs","sources":["../../../projects/common/src/projects/authorizer/authorizer.module.ts","../../../projects/common/src/projects/authorizer/services/utility.service.ts","../../../projects/common/src/projects/authorizer/services/authorizer.service.ts","../../../projects/common/src/projects/user-permission/user-permission.module.ts","../../../projects/common/src/projects/user-permission/config/config.ts","../../../projects/common/src/projects/user-permission/services/user-permissions.service.ts","../../../projects/common/src/projects/user-permission/index.ts","../../../projects/common/src/projects/interceptors/interceptors.module.ts","../../../projects/common/src/projects/interceptors/services/business-cycle.interceptor.ts","../../../projects/common/src/projects/interceptors/services/token.interceptor.ts","../../../projects/common/src/projects/index.ts","../../../projects/common/src/projects/vcomply-common.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { HttpClientModule } from '@angular/common/http';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule,\r\n    HttpClientModule\r\n  ]\r\n})\r\nexport class AuthorizerModule { }\r\n","\r\nimport { Injectable } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport CryptoES from 'crypto-es'\r\nexport interface Token {\r\n  token: string;\r\n  subdomain?: string\r\n}\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class UtilityService {\r\n\r\n  constructor() { }\r\n  getRawToken():string{\r\n    const token: Token | null = JSON.parse(localStorage.getItem('currentUser') ?? '{}');\r\n    if(token?.token){\r\n      return token.token??'';\r\n    } else{\r\n      return '';\r\n    }\r\n  }\r\n  getUserToken(): any | null {\r\n    const token: Token | null = JSON.parse(localStorage.getItem('currentUser') ?? '{}');\r\n    if (token?.token) {\r\n      try {\r\n        const helper = new JwtHelperService();\r\n        const tokenInfo = helper.decodeToken(this.getRawToken());\r\n        return tokenInfo\r\n      }\r\n      catch {\r\n        return null;\r\n      }\r\n\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  sisTokenValid(){\r\n    const helper = new JwtHelperService();\r\n    const isExpired = helper.isTokenExpired(this.getRawToken());\r\n    if(isExpired === false){\r\n       return true;\r\n    }else{\r\n      return false;\r\n    }\r\n  }\r\n\r\n\r\n  getAuthSubDomain(){\r\n    if(['dev.v-comply.com','test.v-comply.com','alpha.v-comply.com'].includes(window.location.host)){\r\n        return 'devapi.v-comply.com'\r\n    }else if(window.location.host === 'beta.v-comply.com'){\r\n      return 'betaapi.v-comply.com'\r\n    }else if(window.location.host.startsWith('local')){\r\n      return 'devapi.v-comply.com'\r\n    }else{\r\n      return 'devapi.v-comply.com';\r\n    }\r\n  }\r\n\r\n  encrypt(string: any) {\r\n    return CryptoES.AES.encrypt(string, 'I@MTHEVC0MPLYUSER').toString()\r\n  }\r\n\r\n  isExpiryWithin3hrs(){\r\n    const tokenInfo = this.getUserToken();\r\n      if(tokenInfo && tokenInfo?.exp){\r\n          if(tokenInfo?.exp - new Date().getTime()/1000 < 10764){\r\n            return true\r\n          }else{\r\n            return false\r\n          }\r\n      }else {return true}\r\n  }\r\n  \r\n\r\n}\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { Injectable } from '@angular/core';\r\nimport { JwtHelperService } from '@auth0/angular-jwt';\r\nimport { User } from '../models/model';\r\nimport { UtilityService } from './utility.service';\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\n\r\nexport class AuthorizerService {\r\n  tokenData !: any | null;\r\n  constructor(private utility: UtilityService, private http: HttpClient) {\r\n    this.setToken();\r\n    this.listentToLocalStorageChanges();\r\n    this.refreshCognitoToken();\r\n  }\r\n\r\n\r\n  listentToLocalStorageChanges() {\r\n    window.addEventListener(\r\n      'storage',\r\n      (e) => {\r\n        if (e.key === 'currentUser') {\r\n          this.setToken();\r\n        }\r\n      },\r\n      false\r\n    );\r\n  }\r\n\r\n\r\n  refreshCognitoToken() {\r\n    if (this.tokenData?.iss)\r\n      if (this.utility.isExpiryWithin3hrs() || this.isTokenExpired()) {\r\n        this.fetchRefreshToken().subscribe({\r\n          next: (res: any) => {\r\n            localStorage.setItem('currentUser', JSON.stringify({ token: res?.token })) },\r\n          error: (error: any) => {\r\n            if (error?.error?.code === 'EXPIRED_TOKEN') {\r\n              localStorage.removeItem('currentUser');\r\n              console.log(\"Authorization expired, Logging Out\")\r\n              this.logout();\r\n            }\r\n          }\r\n        })\r\n      }\r\n  }\r\n\r\n  setToken() {\r\n    this.tokenData = this.utility.getUserToken() ?? null;\r\n  }\r\n\r\n\r\n  /**\r\n   * Returns user details of the currently logged in user\r\n   * @returns [Object]\r\n   */\r\n  getUser(): User | null {\r\n    if (this.tokenData) {\r\n      if (this.tokenData?.iss) {\r\n        if (this.tokenData.user) {\r\n          try {\r\n            return JSON.parse(this.tokenData?.user)\r\n          }\r\n          catch {\r\n            return null;\r\n          }\r\n        } else {\r\n          return null;\r\n        }\r\n      } else {\r\n        return this.tokenData?.user ?? null;\r\n      }\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n\r\n\r\n  /**\r\n   * Returns the member_id of the currently logged in User\r\n   * @returns [member_id in mongoDB _id format]\r\n   */\r\n  getMemberId(): string | null {\r\n    if (this.tokenData) {\r\n      return this.tokenData?._id ?? null;\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n  /**\r\n   * returns the organization id of the currently logged in user\r\n   * @returns [organization_id]\r\n   */\r\n  getOrganizationId(): number | null {\r\n    const userInfo = this.getUser();\r\n    if (userInfo && userInfo?.organisation_id) {\r\n      return userInfo?.organisation_id ?? null;\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * returns  id of the currently logged in user\r\n   * @returns [id]\r\n   */\r\n  getUserId(): number | null {\r\n    const userInfo = this.getUser();\r\n    if (userInfo && userInfo?.id) {\r\n      return userInfo?.id ?? null;\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * returns  id of the currently logged in user\r\n   * @returns [id]\r\n   */\r\n  getUserTimezone(): string | null {\r\n    const userInfo = this.getUser();\r\n    if (userInfo && userInfo?.id) {\r\n      return userInfo?.timezone ?? null;\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * returns  shortname of the currently logged in user\r\n   * @returns [short_name]\r\n   */\r\n  getUserShortName(): string | null {\r\n    const userInfo = this.getUser();\r\n    if (userInfo && userInfo?.short_name) {\r\n      return userInfo?.short_name ?? '';\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * returns key admin's id of the currently logged in user's organization\r\n   * @returns [keyAdminId]\r\n   */\r\n  getOrgKeyAdminId(): number | null {\r\n    const userInfo = this.getUser();\r\n    if (userInfo && userInfo?.keyAdminId) {\r\n      return userInfo?.keyAdminId ?? null;\r\n    } else {\r\n      return null;\r\n    }\r\n  }\r\n\r\n\r\n  /**\r\n   * returns true if currently loggedIn user is manager\r\n   * @returns [manager]  true/false\r\n   */\r\n  isManager(): boolean {\r\n    const userInfo = this.getUser();\r\n    if (userInfo && userInfo?.manager) {\r\n      return userInfo?.manager ?? false;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n\r\n  /**\r\n * returns true if currently loggedIn user is manager\r\n * @returns [admin]  true/false\r\n */\r\n  isAdmin(): boolean {\r\n    const userInfo = this.getUser();\r\n    if (userInfo && userInfo?.admin) {\r\n      return userInfo?.admin ?? false;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  /**\r\n * returns true if currently loggedIn user is manager\r\n * @returns [manager]  true/false\r\n */\r\n  isKeyAdmin(): boolean {\r\n    const userInfo = this.getUser();\r\n    if (userInfo && userInfo?.keyAdmin) {\r\n      return userInfo?.keyAdmin ?? false;\r\n    } else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n\r\n  /**\r\n   * returns weather the token is expired\r\n   * @returns  expired = true /not expired = false\r\n   */\r\n  isTokenExpired() {\r\n    const status = this.utility.sisTokenValid()\r\n    if (status && status === true) {\r\n      return false;\r\n    }\r\n    else {\r\n      return true;\r\n    }\r\n  }\r\n\r\n  /**\r\n   * returns weather the token is expired\r\n   * @returns  expired = false /not expired = true\r\n   */\r\n  isValidToken() {\r\n    return this.isTokenValid()\r\n  }\r\n\r\n  getToken(): string {\r\n    return this.utility.getRawToken();\r\n  }\r\n\r\n  logout(afterLogoutAction: 'REDIRECT' | 'RELOAD' = 'REDIRECT') {\r\n    const primaryToken = localStorage.getItem('primaryuser');\r\n    if (primaryToken != null) {\r\n      localStorage.setItem('currentUser', primaryToken);\r\n      localStorage.removeItem('primaryuser');\r\n      if (afterLogoutAction === 'RELOAD') {\r\n        location.reload();\r\n      } else {\r\n        window.location.href = `https://${window.location.hostname}`;\r\n      }\r\n\r\n    } else {\r\n      localStorage.removeItem('currentUser');\r\n      window.location.href = `https://${window.location.hostname}`;\r\n    }\r\n  }\r\n\r\n  removeTokenFromLocal() {\r\n    localStorage.removeItem('currentUser')\r\n  }\r\n\r\n\r\n\r\n  isTokenValid() {\r\n    const helper = new JwtHelperService();\r\n    const isExpired = helper.isTokenExpired(this.utility.getRawToken());\r\n    if (isExpired === false) {\r\n      return true;\r\n    }\r\n    else {\r\n      return false;\r\n    }\r\n  }\r\n\r\n  fetchRefreshToken() {\r\n    return this.http.post('https://' + this.utility.getAuthSubDomain() + '/VcomplyAuth/?mode=getNewIdToken', { token: this.utility.encrypt(this.utility.getRawToken()) })\r\n  }\r\n\r\n  makeAPI() {\r\n    return this.http.get<any>( 'https://devapi.program.com/logs' )\r\n  }\r\n\r\n}\r\n\r\n\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule\r\n  ]\r\n})\r\nexport class UserPermissionModule { }\r\n","export const CONFIG = {\r\n\t\"VIEW_ROLES\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"Roles\",\r\n\t\t\"permission\": \"view roles\"\r\n\t},\r\n\t\"MANAGE_ROLES\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"Roles\",\r\n\t\t\"permission\": \"manage roles\"\r\n\t},\r\n\t\"VIEW_RESPONSIBILTY_CENTER\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"Responsibility Center\",\r\n\t\t\"permission\": \"view responsibility center\"\r\n\t},\r\n\t\"MANAGE_RESPONSIBILITY_CENTER\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"Responsibility Center\",\r\n\t\t\"permission\": \"manage responsibility center\"\r\n\t},\r\n\t\"VIEW_STATUTORY_HOLIDAYS\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"Responsibility Center\",\r\n\t\t\"permission\": \"view statutory holidays\"\r\n\t},\r\n\t\"MANAGE_STATUTORY_HOLIDAYS\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"Responsibility Center\",\r\n\t\t\"permission\": \"manage statutory holidays\"\r\n\t},\r\n\t\"VIEW_USERS\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"Users\",\r\n\t\t\"permission\": \"view users\"\r\n\t},\r\n\t\"MANAGE_USERS\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"Users\",\r\n\t\t\"permission\": \"manage users\"\r\n\t},\r\n\t\"OVERRIDE_LOG_IN\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"Users\",\r\n\t\t\"permission\": \"override log in\"\r\n\t},\r\n\t\"MANAGE_MY_HOLIDAYS\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"Users\",\r\n\t\t\"permission\": \"manage my holidays\"\r\n\t},\r\n\t\"MANAGE_DASHBOARDS\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"my dashboards\",\r\n\t\t\"permission\": \"manage dashboards\"\r\n\t},\r\n\t\"VIEW_GROUPS\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"Groups\",\r\n\t\t\"permission\": \"view groups\"\r\n\t},\r\n\t\"MANAGE_GROUPS\": {\r\n\t\t\"module\": \"organization\",\r\n\t\t\"subModule\": \"Groups\",\r\n\t\t\"permission\": \"manage groups\"\r\n\t},\r\n\t\"VIEW_RESPONSIBILITY_CATEGORIES\": {\r\n\t\t\"module\": \"compliance\",\r\n\t\t\"subModule\": \"Responsibility Framework\",\r\n\t\t\"permission\": \"view responsibility categories\"\r\n\t},\r\n\t\"MANAGE_RESPONSIBILITY_CATEGORIES\": {\r\n\t\t\"module\": \"compliance\",\r\n\t\t\"subModule\": \"Responsibility Framework\",\r\n\t\t\"permission\": \"manage responsibility categories\"\r\n\t},\r\n\t\"MANAGE_RESPONSIBILITIES\": {\r\n\t\t\"module\": \"compliance\",\r\n\t\t\"subModule\": \"Responsibilities\",\r\n\t\t\"permission\": \"manage responsibilities\"\r\n\t},\r\n\t\"VIEW_RESPONSIBILITIES\": {\r\n\t\t\"module\": \"compliance\",\r\n\t\t\"subModule\": \"Responsibilities\",\r\n\t\t\"permission\": \"view responsibilities\"\r\n\t},\r\n\t\"VIEW_&_MANAGE_RESPONSIBILITY_CALENDAR\": {\r\n\t\t\"module\": \"compliance\",\r\n\t\t\"subModule\": \"Responsibilities\",\r\n\t\t\"permission\": \"view & manage responsibility calendar\"\r\n\t},\r\n\t\"VIEW_COMPLIANCE_REPORTS\": {\r\n\t\t\"module\": \"compliance\",\r\n\t\t\"subModule\": \"Responsibilities\",\r\n\t\t\"permission\": \"view compliance reports\"\r\n\t},\r\n\t\"DOWNLOAD_COMPLIANCE_REPORTS\": {\r\n\t\t\"module\": \"compliance\",\r\n\t\t\"subModule\": \"Responsibilities\",\r\n\t\t\"permission\": \"download compliance reports\"\r\n\t},\r\n\t\"VIEW_RISK_CATEGORIES\": {\r\n\t\t\"module\": \"risk\",\r\n\t\t\"subModule\": \"Risk Categories\",\r\n\t\t\"permission\": \"view risk categories\"\r\n\t},\r\n\t\"MANAGE_RISK_CATEGORIES\": {\r\n\t\t\"module\": \"risk\",\r\n\t\t\"subModule\": \"Risk Categories\",\r\n\t\t\"permission\": \"manage risk categories\"\r\n\t},\r\n\t\"REPORT_RISKS\": {\r\n\t\t\"module\": \"risk\",\r\n\t\t\"subModule\": \"Risks\",\r\n\t\t\"permission\": \"report risks\"\r\n\t},\r\n\t\"MANAGE_RISKS\": {\r\n\t\t\"module\": \"risk\",\r\n\t\t\"subModule\": \"Risks\",\r\n\t\t\"permission\": \"manage risks\"\r\n\t},\r\n\t\"MANAGE_RISK_ASSESSMENTS\": {\r\n\t\t\"module\": \"risk\",\r\n\t\t\"subModule\": \"Risks\",\r\n\t\t\"permission\": \"manage risk assessments\"\r\n\t},\r\n\t\"VIEW_&_COMPLETE_WORKSHOP\": {\r\n\t\t\"module\": \"risk\",\r\n\t\t\"subModule\": \"Risks\",\r\n\t\t\"permission\": \"view & complete workshop\"\r\n\t},\r\n\t\"VIEW_&_DOWNLOAD_RISK_REPORTS\": {\r\n\t\t\"module\": \"risk\",\r\n\t\t\"subModule\": \"Risks\",\r\n\t\t\"permission\": \"view & download risk reports\"\r\n\t},\r\n\t\"MANAGE_REPORTED_RISKS\": {\r\n\t\t\"module\": \"risk\",\r\n\t\t\"subModule\": \"Risks\",\r\n\t\t\"permission\": \"manage reported risks\"\r\n\t},\r\n\t\"VIEW_AUDIT_CATEGORIES\": {\r\n\t\t\"module\": \"audit\",\r\n\t\t\"subModule\": \"Audit Categories\",\r\n\t\t\"permission\": \"view audit categories\"\r\n\t},\r\n\t\"MANAGE_AUDIT_CATEGORIES\": {\r\n\t\t\"module\": \"audit\",\r\n\t\t\"subModule\": \"Audit Categories\",\r\n\t\t\"permission\": \"manage audit categories\"\r\n\t},\r\n\t\"MANAGE_AUDIT_PLANS\": {\r\n\t\t\"module\": \"audit\",\r\n\t\t\"subModule\": \"Audit Plans\",\r\n\t\t\"permission\": \"manage audit plans\"\r\n\t},\r\n\t\"EXECUTE_AUDIT_PLANS\": {\r\n\t\t\"module\": \"audit\",\r\n\t\t\"subModule\": \"Audit Plans\",\r\n\t\t\"permission\": \"execute audit plans\"\r\n\t},\r\n\t\"MANAGE_POLICY_CATEGORIES\": {\r\n\t\t\"module\": \"policy\",\r\n\t\t\"subModule\": \"Policy Categories\",\r\n\t\t\"permission\": \"manage policy categories\"\r\n\t},\r\n\t\"MANAGE_POLICIES\": {\r\n\t\t\"module\": \"policy\",\r\n\t\t\"subModule\": \"Policies\",\r\n\t\t\"permission\": \"manage policies\"\r\n\t},\r\n\t\"VIEW_POLICY_PORTAL\": {\r\n\t\t\"module\": \"policy\",\r\n\t\t\"subModule\": \"Policies\",\r\n\t\t\"permission\": \"view policy portal\"\r\n\t},\r\n\t\"MANAGE_SURVEY_CATEGORIES\": {\r\n\t\t\"module\": \"survey\",\r\n\t\t\"subModule\": \"Survey Categories\",\r\n\t\t\"permission\": \"manage survey categories\"\r\n\t},\r\n\t\"MANAGE_SURVEYS\": {\r\n\t\t\"module\": \"survey\",\r\n\t\t\"subModule\": \"Surveys\",\r\n\t\t\"permission\": \"manage surveys\"\r\n\t},\r\n\t\"RESPOND_TO_SURVEYS\": {\r\n\t\t\"module\": \"survey\",\r\n\t\t\"subModule\": \"Surveys\",\r\n\t\t\"permission\": \"respond to surveys\"\r\n\t},\r\n\t\"MANAGE_FORM_CATEGORIES\": {\r\n\t\t\"module\": \"form\",\r\n\t\t\"subModule\": \"Form Categories\",\r\n\t\t\"permission\": \"manage form categories\"\r\n\t},\r\n\t\"MANAGE_FORMS\": {\r\n\t\t\"module\": \"form\",\r\n\t\t\"subModule\": \"Forms\",\r\n\t\t\"permission\": \"manage forms\"\r\n\t},\r\n\t\"RESPOND_TO_FORMS\": {\r\n\t\t\"module\": \"form\",\r\n\t\t\"subModule\": \"Forms\",\r\n\t\t\"permission\": \"respond to forms\"\r\n\t},\r\n\t\"VIEW_ASSESSMENT_LIBRARY\": {\r\n\t\t\"module\": \"assessment\",\r\n\t\t\"subModule\": \"Assessment Library\",\r\n\t\t\"permission\": \"view assessment library\"\r\n\t},\r\n\t\"MANAGE_ASSESSMENT_LIBRARY\": {\r\n\t\t\"module\": \"assessment\",\r\n\t\t\"subModule\": \"Assessment Library\",\r\n\t\t\"permission\": \"manage assessment library\"\r\n\t},\r\n\t\"VIEW_ASSESSMENTS\": {\r\n\t\t\"module\": \"assessment\",\r\n\t\t\"subModule\": \"Assessments\",\r\n\t\t\"permission\": \"view assessments\"\r\n\t},\r\n\t\"MANAGE_ASSESSMENTS\": {\r\n\t\t\"module\": \"assessment\",\r\n\t\t\"subModule\": \"Assessments\",\r\n\t\t\"permission\": \"manage assessments\"\r\n\t},\r\n\t\"VIEW_ISSUE_CATEGORIES\": {\r\n\t\t\"module\": \"issue\",\r\n\t\t\"subModule\": \"Issue Categories\",\r\n\t\t\"permission\": \"view issue categories\"\r\n\t},\r\n\t\"MANAGE_ISSUE_CATEGORIES\": {\r\n\t\t\"module\": \"issue\",\r\n\t\t\"subModule\": \"Issue Categories\",\r\n\t\t\"permission\": \"manage issue categories\"\r\n\t},\r\n\t\"VIEW_ISSUES\": {\r\n\t\t\"module\": \"issue\",\r\n\t\t\"subModule\": \"Issues\",\r\n\t\t\"permission\": \"view issues\"\r\n\t},\r\n\t\"MANAGE_ISSUES\": {\r\n\t\t\"module\": \"issue\",\r\n\t\t\"subModule\": \"Issues\",\r\n\t\t\"permission\": \"manage issues\"\r\n\t}\r\n}","import { Injectable } from '@angular/core';\r\nimport { CONFIG } from '../config/config';\r\n\r\n\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class UserPermissionsService {\r\n  config:any = CONFIG;\r\n  roleActions!: any;\r\n  permissions : any ={};\r\n\r\n\r\n  constructor() {\r\n   if(this.config){\r\n     this.calculatePermissions();\r\n     const x = {}\r\n     Object.keys(this.config)?.forEach(((ele: any):any => {\r\n\r\n     }))\r\n   }\r\n  }\r\n\r\n  setRoleData(permissions: any) {\r\n    if(permissions){\r\n      this.roleActions = permissions;\r\n      this.calculatePermissions();\r\n    }else{\r\n      console.log(\"Setting Invalid Permission Configuartion\")\r\n    }\r\n   \r\n  }\r\n\r\n  calculatePermissions() {\r\n    if (this.roleActions && this.config) {\r\n      Object.keys(this.config)?.forEach(((ele: any):any => {\r\n        const permissionConfig = this.config[ele]; \r\n        if (permissionConfig?.module && permissionConfig?.subModule && permissionConfig?.permission) {\r\n          try {\r\n            let permissionValue = false\r\n            const moduleIndex = this.roleActions?.findIndex((moduleElement: any) => moduleElement?.moduleName == permissionConfig?.module?.trim());\r\n            if (moduleIndex != -1) {\r\n              const moduleData = this.roleActions[moduleIndex].subModule;\r\n              const permissionIndex = moduleData?.findIndex((submoduleElement: any) => submoduleElement?.subModuleName == permissionConfig?.subModule?.trim());\r\n              if (permissionIndex != -1) {\r\n                const enabled = moduleData[permissionIndex]?.permissions[moduleData[permissionIndex]?.permissions.findIndex((permissionElement: any) => permissionElement?.name == permissionConfig?.permission?.trim())].enable;\r\n                permissionValue = enabled ? true : false;\r\n              }\r\n            }\r\n           this.permissions[ele] = permissionValue;\r\n          }catch{\r\n            this.permissions[ele] = false;\r\n          }\r\n        }else{\r\n          this.permissions[ele] = false;\r\n        }\r\n      }))\r\n\r\n    }else{\r\n      Object.keys(this.config)?.forEach(((ele: any):any =>   { this.permissions[ele] = false}));\r\n    }\r\n  }\r\n\r\n  checkPermission(permissionName:any):boolean{\r\n    permissionName = permissionName?.trim();\r\n    if(permissionName && this.permissions[permissionName]){\r\n      return this.permissions[permissionName]\r\n    }else{\r\n      return false;\r\n    }\r\n  }\r\n\r\n\r\n\r\n\r\n}\r\n","\r\n// public api surface for permissions\r\nexport * from './user-permission.module';\r\nexport * from './services/user-permissions.service';","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\n\r\n\r\n@NgModule({\r\n  declarations: [],\r\n  imports: [\r\n    CommonModule\r\n  ]\r\n})\r\nexport class InterceptorsModule { }\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpEvent, HttpResponse, HttpRequest, HttpHandler } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class BusinessCycleInterceptor implements HttpInterceptor {\r\n\r\n  selectedBusinessCycle: any = {};\r\n  timeFilterType = '';\r\n\r\n  constructor() {\r\n    this.selectedBusinessCycle = JSON.parse(localStorage.getItem('businessCycle') ?? '{}');\r\n    const timeFilter = JSON.parse(localStorage.getItem('timefilter') ?? '\"{}\"');\r\n    if (timeFilter?.type === 1) {\r\n      this.timeFilterType = 'monthly';\r\n    } else if (timeFilter?.type === 2) {\r\n      this.timeFilterType = 'quarterly';\r\n    }\r\n  }\r\n  intercept(httpRequest: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n     const urlParams = new URLSearchParams(httpRequest.url);\r\n     console.log(\"urlParams ==>\", urlParams, httpRequest.urlWithParams?.split('?'))\r\n    const currentURL = httpRequest.urlWithParams?.split('?').length > 1 ? httpRequest.urlWithParams?.split('?')[1]?.split('&'): [];\r\n    const index = currentURL?.findIndex((ele: any) => {\r\n      if(ele.startsWith('bcycleInterceptMode')) return ele;\r\n    });\r\n    console.log(\"index ==>\", index)\r\n    const mode = index > -1 ? currentURL[index].split('=')[1] : '';\r\n    console.log(\"mode ==>\", mode)\r\n    switch (mode) {\r\n      //No business cycle will be added\r\n      case 'NO_CYCLE': {\r\n        return next.handle(httpRequest);\r\n      }\r\n      //business cycle will be added in header\r\n      case 'HEADER_CYCLE': {\r\n        return next.handle(this.addBusinesscycleToHeader(httpRequest));\r\n      }\r\n      //business cycle will be added in body\r\n      case 'BODY_CYCLE': {\r\n        return next.handle(this.addBusinessCycletoBody(httpRequest));\r\n      }\r\n      //business cycle will be added in both header and body\r\n      case 'HEADER_BODY_CYCLE': {\r\n        return next.handle(this.addBusinessCycleToHearderAndBody(httpRequest));\r\n      }\r\n      //default handler\r\n      default: {\r\n        return next.handle(httpRequest);\r\n      }\r\n    }\r\n  }\r\n\r\n\r\n\r\n  //This function adds the business cycle to the body\r\n  addBusinessCycletoBody(httpRequest: HttpRequest<any>) {\r\n    return httpRequest.clone({\r\n      body: {\r\n        ...httpRequest.body,\r\n        start_date: this.selectedBusinessCycle?.selectedCycle?.start_date,\r\n        end_date: this.selectedBusinessCycle?.selectedCycle?.end_date,\r\n        selected_cycle_arr: this.selectedBusinessCycle?.selectedCycle?.selected_cycle_arr,\r\n        selected_cycle: `${this.selectedBusinessCycle?.selectedCycle?.start_date}-${this.selectedBusinessCycle?.selectedCycle?.end_date}`,\r\n        time_filter_type: this.timeFilterType ??'',\r\n      },\r\n    })\r\n  }\r\n\r\n  //add business cycle to header\r\n  addBusinesscycleToHeader(httpRequest: HttpRequest<any>) {\r\n    // console.log(\"httpRequest.headers ==>\", httpRequest.headers)\r\n    // let headersData = {  'x-business-cycle': JSON.stringify(this.getSelectedBusinessCycle()) };\r\n    // console.log('headersData ==>', httpRequest.headers)\r\n   // if(httpRequest.headers)\r\n    return httpRequest.clone({ headers:  httpRequest.headers.set('x-business-cycle', JSON.stringify(this.getSelectedBusinessCycle())) });\r\n  }\r\n\r\n\r\n  // add business cycle to both header and body\r\n  addBusinessCycleToHearderAndBody(httpRequest: HttpRequest<any>) {\r\n    return this.addBusinessCycletoBody(this.addBusinesscycleToHeader(httpRequest));\r\n  }\r\n\r\n  defaultHandler(httpRequest: HttpRequest<any>) {\r\n    if (['POST', 'PUT', 'PATCH'].includes(httpRequest.method)) {\r\n      return this.addBusinessCycletoBody(httpRequest);\r\n    } else {\r\n      return this.addBusinesscycleToHeader(httpRequest);\r\n    }\r\n  }\r\n\r\n  // returns the bussiness cycle in required formate\r\n  getSelectedBusinessCycle() {\r\n    return {\r\n      selected_cycle: this.selectedBusinessCycle ? this.selectedBusinessCycle?.selectedCycle?.start_date + \"-\" + this.selectedBusinessCycle?.selectedCycle?.end_date : \"\",\r\n      start_date: this.selectedBusinessCycle ? this.selectedBusinessCycle?.selectedCycle?.start_date : \"\",\r\n      end_date: this.selectedBusinessCycle ? this.selectedBusinessCycle?.selectedCycle?.end_date : \"\",\r\n      selected_cycle_arr: this.selectedBusinessCycle ? this.selectedBusinessCycle?.selectedCycle?.selected_cycle_arr : [],\r\n    };\r\n  }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { HttpInterceptor, HttpEvent, HttpResponse, HttpRequest, HttpHandler } from '@angular/common/http';\r\nimport { Observable } from 'rxjs';\r\n@Injectable({\r\n  providedIn: 'root'\r\n})\r\nexport class TokenInterceptor implements HttpInterceptor {\r\n\r\n  intercept(httpRequest: HttpRequest<any>, next: HttpHandler): Observable<HttpEvent<any>> {\r\n    const urlParams =  httpRequest.urlWithParams?.split('?')[1]?.split('&');\r\n    const token = this.getAuthorizationToken();\r\n    if (urlParams.includes('bypassToken=true')) {\r\n      return next.handle(httpRequest);\r\n    } else {\r\n      return next.handle(httpRequest.clone({ setHeaders: { token } }));\r\n    }\r\n\r\n  }\r\n  getAuthorizationToken() {\r\n    const TOKEN = localStorage.getItem('currentUser');\r\n    let currentUser;\r\n    TOKEN !== null ? (currentUser = JSON.parse(TOKEN)) : (currentUser = {});\r\n    return currentUser.token;\r\n  }\r\n}\r\n","/*\r\n * Public API Surface of common\r\n */\r\n\r\n\r\n// export * from './lib/vcomply-authorizer.module';\r\n// export * from './lib/services/authorizer.service';\r\nexport *  from './authorizer';\r\nexport * from './user-permission';\r\nexport * from './interceptors';","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}