@corp-products/app-core 3.3.4 → 3.3.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -82,7 +82,15 @@ var CookiesStorageKeys;
82
82
  const CORE_CONFIG = new InjectionToken("CoreConfig");
83
83
  const TOASTER_SERVICE = new InjectionToken("ToasterService");
84
84
 
85
- const HttpRequestOptionsKeys = ['headers', 'params', 'context', 'reportProgress', 'observe', 'responseType'];
85
+ const HttpRequestOptionsKeys = [
86
+ 'headers',
87
+ 'params',
88
+ 'context',
89
+ 'reportProgress',
90
+ 'observe',
91
+ 'responseType',
92
+ 'body'
93
+ ];
86
94
 
87
95
  const resolveUrl = (baseUrl, options, ...args) => {
88
96
  const { urlRewrite, urlPostfix } = options || {};
@@ -434,59 +442,62 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
434
442
  class ErrorHandlerService {
435
443
  injector;
436
444
  translateService;
437
- constructor(injector, translateService) {
445
+ authService;
446
+ constructor(injector, translateService, authService) {
438
447
  this.injector = injector;
439
448
  this.translateService = translateService;
449
+ this.authService = authService;
440
450
  }
441
451
  get toasterService() {
442
452
  return this.injector.get(TOASTER_SERVICE);
443
453
  }
444
454
  handleError(error) {
445
- console.log("ErrorHandlerServicee", error);
455
+ console.log('ErrorHandlerServicee', error);
446
456
  if (error instanceof Error && !(error instanceof HttpErrorResponse)) {
447
457
  console.error(error);
448
458
  return;
449
459
  }
450
460
  if (error instanceof HttpErrorResponse) {
451
- console.error("HTTP Error:", error);
461
+ console.error('HTTP Error:', error);
452
462
  switch (error?.status) {
453
463
  case 400:
454
464
  this.showError(`codes.${error.error.errors.errorType}`);
455
465
  break;
456
466
  case 401:
457
467
  //TODO : Check After Implement login
458
- this.showError(`network_errors.${error.error.errors.errorType}`);
468
+ this.authService.clearAuth();
469
+ // this.showError(`network_errors.${error.error.errors.errorType}`);
459
470
  break;
460
471
  case 404:
461
472
  this.showError(`network_errors.${error.error.errors.errorType}`);
462
473
  break;
463
474
  case 403:
464
- this.showError("forbidden.message");
475
+ this.showError('forbidden.message');
465
476
  break;
466
477
  case 500:
467
- this.showError("validation_error.server");
478
+ this.showError('validation_error.server');
468
479
  break;
469
480
  default:
470
- this.showError("validation_error.random");
481
+ this.showError('validation_error.random');
471
482
  break;
472
483
  }
473
484
  }
474
485
  }
475
486
  showError(messageKey) {
476
487
  this.toasterService.error({
477
- title: this.translateService.instant("error.title"),
488
+ title: this.translateService.instant('error.title'),
478
489
  message: this.translateService.instant(`error.${messageKey}`),
479
490
  });
480
491
  }
481
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ErrorHandlerService, deps: [{ token: i0.Injector }, { token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
482
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ErrorHandlerService, providedIn: "root" });
492
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ErrorHandlerService, deps: [{ token: i0.Injector }, { token: i1.TranslateService }, { token: AuthService }], target: i0.ɵɵFactoryTarget.Injectable });
493
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ErrorHandlerService, providedIn: 'root' });
483
494
  }
484
495
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: ErrorHandlerService, decorators: [{
485
496
  type: Injectable,
486
497
  args: [{
487
- providedIn: "root"
498
+ providedIn: 'root',
488
499
  }]
489
- }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.TranslateService }] });
500
+ }], ctorParameters: () => [{ type: i0.Injector }, { type: i1.TranslateService }, { type: AuthService }] });
490
501
 
491
502
  class PermissionsService {
492
503
  jwtDecoderService = inject(JwtDecoderService);
@@ -1 +1 @@
1
- {"version":3,"file":"corp-products-app-core.mjs","sources":["../../../projects/core/src/lib/services/base-pagination-service/pagination.ts","../../../projects/core/src/lib/services/base-pagination-service/base-pagination.service.ts","../../../projects/core/src/lib/handlers/stortage.ts","../../../projects/core/src/lib/core-config.ts","../../../projects/core/src/lib/services/base-http-service/base-http-types.ts","../../../projects/core/src/lib/services/base-http-service/base-http-utils.ts","../../../projects/core/src/lib/services/base-http-service/base-http.service.ts","../../../projects/core/src/lib/services/auth.service.ts","../../../projects/core/src/lib/services/jwt-decoder.service.ts","../../../projects/core/src/lib/interceptors/app-http-config.ts","../../../projects/core/src/lib/handlers/http-context-handler.ts","../../../projects/core/src/lib/services/loader.service.ts","../../../projects/core/src/lib/request-modifier.ts","../../../projects/core/src/lib/error-config.ts","../../../projects/core/src/lib/enums/error-code.enum.ts","../../../projects/core/src/lib/interceptors/base-http.interceptor.ts","../../../projects/core/src/lib/interceptors/global-http-error.interceptor.ts","../../../projects/core/src/lib/services/lov.service.ts","../../../projects/core/src/lib/services/error-handler.service.ts","../../../projects/core/src/lib/services/permissions.service.ts","../../../projects/core/src/lib/services/detect-device.service.ts","../../../projects/core/src/lib/services/storage.service.ts","../../../projects/core/src/lib/app-files-config.ts","../../../projects/core/src/lib/enums/upload-status.enum.ts","../../../projects/core/src/lib/services/app-files.service.ts","../../../projects/core/src/lib/components/global-loader/global-loader.component.ts","../../../projects/core/src/lib/components/global-loader/global-loader.component.html","../../../projects/core/src/lib/guards/auth.guard.ts","../../../projects/core/src/lib/guards/permissions.guard.ts","../../../projects/core/src/lib/enums/user-permissions.enum.ts","../../../projects/core/src/lib/enums/date-formatter.enum.ts","../../../projects/core/src/lib/enums/display-types.enum.ts","../../../projects/core/src/lib/enums/localization.enum.ts","../../../projects/core/src/lib/directives/permissions.directive.ts","../../../projects/core/src/lib/directives/responsive-element.directive.ts","../../../projects/core/src/lib/handlers/storage-handler.ts","../../../projects/core/src/corp-products-app-core.ts"],"sourcesContent":["export const PAGESIZE = 10;\r\nexport const PAGE_SIZE_OPTION = [5, 10, 15, 20];\r\nexport enum SortDirection {\r\n ASC = 'ASC',\r\n DESC = 'DESC'\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { ListOptions } from './list-options.interface';\r\nimport { PAGE_SIZE_OPTION, PAGESIZE, SortDirection } from './pagination';\r\nexport abstract class BasePaginationService<T = any> {\r\n totalRecords = 0;\r\n totalPages = 0;\r\n rowsChange: number = PAGESIZE;\r\n\r\n pageSizes = PAGE_SIZE_OPTION;\r\n defaultSortValue = 'createdAt';\r\n defaultSortDirection = SortDirection.DESC;\r\n first: number | undefined = 0;\r\n\r\n listOptions: ListOptions = {\r\n searchValue: '',\r\n paginator: this.rowsChange,\r\n page: 0,\r\n direction: this.defaultSortDirection,\r\n sortBy: this.defaultSortValue,\r\n };\r\n\r\n abstract getList(listOptions: ListOptions): void | Observable<T>;\r\n\r\n createListFilter(filters: { [key: string]: unknown }): void {\r\n this.listOptions = {\r\n ...this.listOptions,\r\n ...filters,\r\n };\r\n }\r\n\r\n resetList(): void {\r\n this.listOptions = {\r\n searchValue: '',\r\n paginator: this.rowsChange,\r\n page: 0,\r\n };\r\n }\r\n\r\n resetPaginator(): void {\r\n this.listOptions = {\r\n ...this.listOptions,\r\n paginator: this.rowsChange,\r\n page: 0,\r\n };\r\n }\r\n\r\n onPageChange(event: any): void {\r\n this.listOptions = {\r\n ...this.listOptions,\r\n page: event.page,\r\n paginator: event.rows,\r\n };\r\n this.first = event.first ?? 0;\r\n this.getList(this.listOptions);\r\n }\r\n}\r\n","export enum LocalStorageKeys {\r\n LANGUAGE = \"LANGUAGE\",\r\n TOKEN = \"TOKEN\"\r\n}\r\n\r\nexport enum SessionStorageKeys {}\r\nexport type StorageEnum = SessionStorageKeys | LocalStorageKeys | CookiesStorageKeys;\r\n\r\nexport enum CookiesStorageKeys {\r\n LANGUAGE = \"LANGUAGE\",\r\n TOKEN = \"TOKEN\",\r\n AUTHORIZATION = \"Authorization\"\r\n}","import { InjectionToken } from \"@angular/core\";\r\nimport { ToasterOptions } from \"./interfaces\";\r\n\r\nexport interface CoreConfig {\r\n apiPrefix: string;\r\n production: boolean;\r\n gatewayUrl: string;\r\n loginUrl: string;\r\n logoutEndpoint: string;\r\n}\r\n\r\nexport const CORE_CONFIG = new InjectionToken<CoreConfig>(\"CoreConfig\");\r\n\r\n\r\nexport interface ToasterInterface {\r\n success(options:ToasterOptions): void;\r\n error(options:ToasterOptions): void;\r\n warning(options:ToasterOptions): void;\r\n info(options:ToasterOptions): void;\r\n}\r\nexport const TOASTER_SERVICE = new InjectionToken<ToasterInterface>(\"ToasterService\");\r\n","import { HttpContext, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Params as RouterParams } from '@angular/router';\r\n\r\nexport interface HttpConfig {\r\n apiUrl?: string;\r\n microServiceUrl:string;\r\n globalMapFn?: (res: any) => any;\r\n methods?: ServiceConfig;\r\n}\r\n\r\nexport type Params =\r\n | HttpParams\r\n | { [param: string]: string | string[] | unknown };\r\nexport type HttpRequestOptions = {\r\n headers?:\r\n | HttpHeaders\r\n | RouterParams\r\n | { [header: string]: string | string[] };\r\n params?: HttpParams | { [param: string]: string | string[] } | Params;\r\n context?: HttpContext;\r\n reportProgress?: boolean;\r\n observe?: 'events' | 'response';\r\n responseType?: string;\r\n};\r\nexport const HttpRequestOptionsKeys: Array<keyof Required<HttpRequestOptions>> =\r\n ['headers', 'params', 'context', 'reportProgress', 'observe', 'responseType'];\r\n\r\nexport type HttpOptions<T = any> = HttpRequestOptions & {\r\n urlRewrite?: string;\r\n urlPostfix?: string;\r\n mapFn?: (res: any) => T;\r\n};\r\n\r\nexport interface ServiceConfig {\r\n single?: HttpOptions;\r\n getAll?: HttpOptions;\r\n add?: HttpOptions;\r\n update?: HttpOptions;\r\n delete?: HttpOptions;\r\n}\r\n\r\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';\r\n","import { map } from \"rxjs/operators\";\r\nimport { HttpOptions, HttpRequestOptionsKeys } from \"./base-http-types\";\r\nimport { BaseHttpResponse } from \"./base-http-response\";\r\n\r\nexport const resolveUrl = (baseUrl: string, options?: HttpOptions, ...args: string[]): string => {\r\n const { urlRewrite, urlPostfix } = options || {};\r\n\r\n if (urlRewrite) {\r\n return urlRewrite;\r\n }\r\n\r\n let result = baseUrl;\r\n\r\n if (args && args.length > 0 && args[0] !== \"\") {\r\n result += `/${args.join(\"/\")}`;\r\n }\r\n\r\n if (urlPostfix) {\r\n result += `/${urlPostfix}`;\r\n }\r\n\r\n return result;\r\n};\r\n\r\nexport const extractRequestOptions = (options?: any) => {\r\n if (!options || typeof options !== \"object\") {\r\n return {};\r\n }\r\n /* eslint-disable */\r\n return HttpRequestOptionsKeys.reduce((requestOptions: any, key) => {\r\n const value = options[key];\r\n\r\n if (value !== undefined) {\r\n requestOptions[key] = value;\r\n }\r\n\r\n return requestOptions;\r\n }, {});\r\n};\r\n\r\nexport const mapResponse = <T>(options?: HttpOptions) => map((res: T) => (options?.mapFn ? options.mapFn(res) : res));\r\n\r\nexport const epmDefaultMapper = <T>(res: BaseHttpResponse<T>) => res.payload;\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpConfig, HttpOptions, ServiceConfig } from './base-http-types';\r\nimport { epmDefaultMapper, extractRequestOptions, mapResponse, resolveUrl } from './base-http-utils';\r\n\r\nexport abstract class BaseHttpService {\r\n private readonly http: HttpClient = inject(HttpClient);\r\n\r\n get url(): string {\r\n const { apiUrl,microServiceUrl } = this.setApiConfig();\r\n return `${microServiceUrl}${apiUrl ? `/${apiUrl}` : ''}`;\r\n }\r\n\r\n get methodsConfig(): ServiceConfig | undefined {\r\n const { methods } = this.setApiConfig();\r\n return methods;\r\n }\r\n\r\n get globalMapFn(): (res: any) => any {\r\n const { globalMapFn } = this.setApiConfig();\r\n return globalMapFn || epmDefaultMapper;\r\n }\r\n\r\n abstract setApiConfig(): HttpConfig;\r\n\r\n single<T>(id: string | number, options?: HttpOptions): Observable<T> {\r\n const activeOptions = options || this.getMethodConfig('single');\r\n const url = resolveUrl(this.url, activeOptions, id?.toString());\r\n const requestOptions = extractRequestOptions(activeOptions);\r\n\r\n return this.http\r\n .get<T>(url, requestOptions)\r\n .pipe(mapResponse(this.getMapFun(activeOptions)));\r\n }\r\n\r\n getAll<T>(options?: HttpOptions): Observable<T> {\r\n const activeOptions = options || this.getMethodConfig('getAll');\r\n const url = resolveUrl(this.url, activeOptions);\r\n const requestOptions = extractRequestOptions(activeOptions);\r\n\r\n return this.http\r\n .get<T>(url, requestOptions)\r\n .pipe(mapResponse(this.getMapFun(activeOptions)));\r\n }\r\n\r\n add<T>(body: unknown, options?: HttpOptions): Observable<T> {\r\n const activeOptions = options || this.getMethodConfig('add');\r\n const url = resolveUrl(this.url, activeOptions);\r\n const requestOptions = { ...extractRequestOptions(activeOptions) };\r\n\r\n return this.http\r\n .post<T>(url, body, requestOptions)\r\n .pipe(mapResponse(this.getMapFun(activeOptions)));\r\n }\r\n\r\n update<T>(\r\n id: string | number | undefined,\r\n body: unknown,\r\n options?: HttpOptions\r\n ): Observable<T> {\r\n const activeOptions = options || this.getMethodConfig('update');\r\n const url = id? resolveUrl(this.url, activeOptions, id?.toString()) : resolveUrl(this.url, activeOptions);\r\n const requestOptions = { ...extractRequestOptions(activeOptions) };\r\n\r\n return this.http\r\n .put<T>(url, body, requestOptions)\r\n .pipe(mapResponse(this.getMapFun(activeOptions)));\r\n }\r\n\r\n delete<T>(id: string | number, options?: HttpOptions): Observable<T> {\r\n const activeOptions = options || this.getMethodConfig('delete');\r\n const url = resolveUrl(this.url, activeOptions, id?.toString());\r\n const requestOptions = extractRequestOptions(activeOptions);\r\n\r\n return this.http\r\n .delete<T>(url, requestOptions)\r\n .pipe(mapResponse(this.getMapFun(activeOptions)));\r\n }\r\n\r\n protected getMethodConfig(method: keyof ServiceConfig): any {\r\n return this.methodsConfig ? this.methodsConfig[method] : undefined;\r\n }\r\n\r\n protected getMapFun(options?: HttpOptions) {\r\n const getMapFunObj = {\r\n default: { mapFn: epmDefaultMapper },\r\n custom: { mapFn: this.globalMapFn },\r\n };\r\n\r\n if (\r\n options &&\r\n (options?.reportProgress || options?.responseType === 'blob')\r\n ) {\r\n return { mapFn: (res: unknown) => res };\r\n }\r\n\r\n if (options && options?.mapFn) {\r\n return { mapFn: options.mapFn };\r\n }\r\n\r\n const isGlobalMapFnValid =\r\n this.globalMapFn && typeof this.globalMapFn === 'function';\r\n return isGlobalMapFnValid ? getMapFunObj.custom : getMapFunObj.default;\r\n }\r\n}\r\n","import { inject, Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CookiesStorageKeys, LocalStorageKeys } from '../handlers/stortage';\r\nimport { CORE_CONFIG, CoreConfig } from '../core-config';\r\nimport { BaseHttpService, HttpConfig } from './base-http-service';\r\nimport { StorageService } from '../services';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService extends BaseHttpService {\r\n public isUserLoggedIn$ = new BehaviorSubject<boolean>(false);\r\n private storageService = inject(StorageService);\r\n\r\n constructor(@Inject(CORE_CONFIG) protected appConfig: CoreConfig) {\r\n super();\r\n this.isUserLoggedIn$.next(this.isLoggedIn());\r\n }\r\n override setApiConfig(): HttpConfig {\r\n return {\r\n apiUrl: '',\r\n microServiceUrl: '',\r\n };\r\n }\r\n\r\n initAuthentication() {\r\n const token: string | null = new URLSearchParams(window.location.search).get('token');\r\n if (token) {\r\n this.setAuthentication(token);\r\n window.location.search = '';\r\n }\r\n }\r\n\r\n setAuthentication(token: string) {\r\n this.isUserLoggedIn$.next(true);\r\n this.setUserToken(token);\r\n }\r\n\r\n isLoggedIn(): boolean {\r\n return !!this.getUserToken();\r\n }\r\n\r\n getUserToken(): string | null {\r\n return this.storageService.cookies.get(CookiesStorageKeys.AUTHORIZATION);\r\n }\r\n\r\n setUserToken(token?: string) {\r\n return this.storageService.local.set(LocalStorageKeys.TOKEN, token);\r\n }\r\n\r\n logoutFromSSO() {\r\n const logoutUrl = this.appConfig.logoutEndpoint;\r\n return this.single<unknown>('', {\r\n urlRewrite: logoutUrl,\r\n });\r\n }\r\n\r\n clearAuth() {\r\n this.storageService.local.clear();\r\n this.storageService.session.clear();\r\n this.storageService.cookies.clear(CookiesStorageKeys.AUTHORIZATION);\r\n this.isUserLoggedIn$.next(false);\r\n window.location.href = this.appConfig.loginUrl;\r\n }\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { jwtDecode } from \"jwt-decode\";\r\nimport { AuthService } from \"./auth.service\";\r\nimport { JWTDecoded } from \"../interfaces/jwt-token-decoded.interface\";\r\n\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class JwtDecoderService {\r\n private authService = inject(AuthService);\r\n public decodedToken: JWTDecoded | null = null;\r\n\r\n constructor() {}\r\n\r\n public decodeToken(): JWTDecoded | null {\r\n const token = this.authService.getUserToken();\r\n if (!token) return null;\r\n\r\n try {\r\n this.decodedToken = jwtDecode<JWTDecoded>(token);\r\n return this.decodedToken;\r\n } catch (err) {\r\n console.error(\"Failed to decode token:\", err);\r\n return null;\r\n }\r\n }\r\n}\r\n","export const COMMON_BASE_URL = \"common/api/v1\";\r\nexport const APP_HTTP_CONFIG = {\r\n BOARD_BASE_URL: \"board-acl/private/v1\",\r\n MEETING_BASE_URL: \"meeting-acl/private/v1\",\r\n IGATE_BASE_URL: COMMON_BASE_URL + \"/igate-users\",\r\n LOV_BASE_URL: COMMON_BASE_URL + \"/lov\",\r\n ATTACHMENT_BASE_URL: COMMON_BASE_URL + \"/attachment\"\r\n};\r\n","import { HttpContext, HttpContextToken } from \"@angular/common/http\";\r\n\r\nexport const IS_SYSTEM_LOADER = new HttpContextToken<boolean>(() => true); // set default loader\r\nexport const USE_API_PREFIX = new HttpContextToken<boolean>(() => true); // set default loader\r\n\r\nexport class HttpContextHandler {\r\n static setLoaderType(isSystemLoader: boolean) {\r\n return new HttpContext().set(IS_SYSTEM_LOADER, isSystemLoader);\r\n }\r\n\r\n static useApiPrefix(hasBaseSegment: boolean) {\r\n return new HttpContext().set(USE_API_PREFIX, hasBaseSegment);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nexport interface LoaderState {\r\n show: boolean;\r\n isSystemLoader?: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class LoaderService {\r\n isLoading$ = new BehaviorSubject<LoaderState>({ show: false });\r\n private loadingMap: Map<string, boolean> = new Map<string, boolean>();\r\n\r\n setLoading(loading: boolean, isSystemLoader = true, url: string): void {\r\n if (!url) {\r\n throw new Error(\"The request URL must be provided to the LoaderService.setLoading function\");\r\n }\r\n\r\n if (loading) {\r\n this.loadingMap.set(url, loading);\r\n this.isLoading$.next({ show: true, isSystemLoader });\r\n } else if (!loading && this.loadingMap.has(url)) {\r\n this.loadingMap.delete(url);\r\n }\r\n\r\n if (!this.loadingMap.size) {\r\n this.isLoading$.next({ show: false });\r\n }\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { HttpRequest } from '@angular/common/http';\r\n\r\nexport type RequestModifier = (req: HttpRequest<any>) => HttpRequest<any>;\r\n\r\nexport const REQUEST_MODIFIER = new InjectionToken<RequestModifier>('REQUEST_MODIFIER');\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const APP_ERROR_HANDLER = new InjectionToken<(error: any) => void>(\r\n 'APP_ERROR_HANDLER',\r\n {\r\n factory: () => (error: any) => {\r\n console.warn('No APP_ERROR_HANDLER provided', error);\r\n },\r\n }\r\n);\r\n","export enum ErrorCode {\r\n JWT_EXPIRED = \"JWT_EXPIRED\",\r\n UNAUTHORIZED = \"UNAUTHORIZED\"\r\n}\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest,\r\n} from '@angular/common/http';\r\nimport { Inject, inject, Injectable } from '@angular/core';\r\nimport {\r\n catchError,\r\n finalize,\r\n Observable,\r\n switchMap,\r\n throwError,\r\n from,\r\n mergeMap\r\n} from 'rxjs';\r\nimport { IS_SYSTEM_LOADER } from '../handlers/http-context-handler';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { CORE_CONFIG, CoreConfig } from '../core-config';\r\nimport { REQUEST_MODIFIER } from '../request-modifier';\r\nimport { APP_ERROR_HANDLER } from '../error-config';\r\nimport { ErrorCode } from '../enums/error-code.enum';\r\n\r\n@Injectable()\r\nexport class HttpBaseInterceptor implements HttpInterceptor {\r\n isRefreshTokenCalled = false;\r\n pendingRequests: { req: HttpRequest<any>; next: HttpHandler }[] = [];\r\n loaderService = inject(LoaderService);\r\n\r\n constructor(\r\n @Inject(CORE_CONFIG) protected appConfig: CoreConfig,\r\n @Inject(REQUEST_MODIFIER)\r\n protected requestModifier: (req: HttpRequest<any>) => HttpRequest<any>,\r\n @Inject(APP_ERROR_HANDLER)\r\n private appErrorHandler: (error: any) => Observable<any>\r\n ) { }\r\n\r\n intercept(\r\n request: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n request = this.requestModifier(request);\r\n\r\n const IS_SYSTEM_LOADER_CHECK = request.context.get(IS_SYSTEM_LOADER);\r\n this.loaderService.setLoading(true, IS_SYSTEM_LOADER_CHECK, request.url);\r\n\r\n return next.handle(request).pipe(\r\n catchError((err: HttpErrorResponse) => {\r\n if (err?.error?.errors?.errorCode === ErrorCode.JWT_EXPIRED) {\r\n this.pendingRequests.push({ req: request, next });\r\n }\r\n if (!this.isRefreshTokenCalled) {\r\n this.isRefreshTokenCalled = true;\r\n if (!this.appErrorHandler) return throwError(() => err);\r\n return this.appErrorHandler(err).pipe(\r\n switchMap((shouldRetry: boolean) => {\r\n if (shouldRetry) {\r\n this.isRefreshTokenCalled = false;\r\n const queued = [...this.pendingRequests];\r\n this.pendingRequests = [];\r\n if (queued.length > 0) {\r\n return from(queued).pipe(\r\n mergeMap((p) => p.next.handle(p.req))\r\n );\r\n }\r\n }\r\n return throwError(() => err);\r\n })\r\n );\r\n }\r\n return throwError(() => err);\r\n }),\r\n finalize(() =>\r\n this.loaderService.setLoading(false, IS_SYSTEM_LOADER_CHECK, request.url)\r\n )\r\n );\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable, retry, timer } from 'rxjs';\r\n\r\nexport class GlobalHttpErrorInterceptor implements HttpInterceptor {\r\n // check if it is a server error to retry the request\r\n shouldRetry(error: HttpErrorResponse) {\r\n if (error.status >= 500) {\r\n return timer(1000);\r\n }\r\n throw error;\r\n }\r\n\r\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n return next.handle(request).pipe(\r\n retry({\r\n count: 1,\r\n delay: this.shouldRetry\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { APP_HTTP_CONFIG } from '../interceptors';\r\nimport { BaseHttpService, HttpConfig } from './base-http-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ListOfValues extends BaseHttpService {\r\n override setApiConfig(): HttpConfig {\r\n return {\r\n microServiceUrl: APP_HTTP_CONFIG.LOV_BASE_URL,\r\n apiUrl: \"lookups\"\r\n };\r\n }\r\n\r\n getRolesByGroup<T>(group: string): Observable<T> {\r\n return this.getAll<T>({\r\n urlPostfix: group\r\n });\r\n }\r\n}\r\n","import { HttpErrorResponse } from \"@angular/common/http\";\r\nimport { ErrorHandler, Injectable, Injector } from \"@angular/core\";\r\nimport { TranslateService } from \"@ngx-translate/core\";\r\nimport { TOASTER_SERVICE, ToasterInterface } from \"../core-config\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class ErrorHandlerService implements ErrorHandler {\r\n constructor(\r\n private injector: Injector,\r\n private translateService: TranslateService\r\n ) {}\r\n\r\n private get toasterService(): ToasterInterface {\r\n return this.injector.get<ToasterInterface>(TOASTER_SERVICE);\r\n }\r\n\r\n handleError(error: unknown): void {\r\n console.log(\"ErrorHandlerServicee\", error);\r\n if (error instanceof Error && !(error instanceof HttpErrorResponse)) {\r\n console.error(error);\r\n return;\r\n }\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n console.error(\"HTTP Error:\", error);\r\n\r\n switch (error?.status) {\r\n case 400:\r\n this.showError(`codes.${error.error.errors.errorType}`);\r\n break\r\n case 401:\r\n //TODO : Check After Implement login\r\n this.showError(`network_errors.${error.error.errors.errorType}`);\r\n break;\r\n case 404:\r\n this.showError(`network_errors.${error.error.errors.errorType}`);\r\n break;\r\n case 403:\r\n this.showError(\"forbidden.message\");\r\n break;\r\n case 500:\r\n this.showError(\"validation_error.server\");\r\n break;\r\n default:\r\n this.showError(\"validation_error.random\");\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private showError(messageKey: string): void {\r\n this.toasterService.error({\r\n title: this.translateService.instant(\"error.title\"),\r\n message: this.translateService.instant(`error.${messageKey}`),\r\n });\r\n }\r\n}\r\n","import { Injectable, inject } from \"@angular/core\";\r\nimport { JwtDecoderService } from \"./jwt-decoder.service\";\r\nimport { PermissionsActions, UserPermissionsEnum } from \"../enums\";\r\nimport {BehaviorSubject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class PermissionsService {\r\n private jwtDecoderService = inject(JwtDecoderService);\r\n private decodedToken = this.jwtDecoderService.decodedToken;\r\n private tokenPermissions = this.decodedToken ? this.decodedToken.permissions as [] : [];\r\n private domainPermissionsSubject = new BehaviorSubject<string[]>([]);\r\n domainPermissions$ = this.domainPermissionsSubject.asObservable();\r\n\r\n private getKeyName(action: string) {\r\n const actionsArr = action.split(\"_\");\r\n return actionsArr.splice(1, actionsArr.length - 1).join(\"_\");\r\n }\r\n\r\n getActionName(action: string) {\r\n return action.split(\"_\")[0];\r\n }\r\n\r\n getAllowedActionsByKey(key: UserPermissionsEnum, newPermissions?: string[]) {\r\n const permissionsNeeded = newPermissions || this.tokenPermissions;\r\n if (!permissionsNeeded) {\r\n console.error(\"There are no permissions available\");\r\n return [];\r\n }\r\n return permissionsNeeded\r\n .filter((p) => {\r\n return key === this.getKeyName(p);\r\n })\r\n .map((t) => {\r\n return this.getActionName(t);\r\n });\r\n }\r\n\r\n checkKeyHasPermission(key: UserPermissionsEnum, action: PermissionsActions, newPermissions?: string[]) {\r\n return this.getAllowedActionsByKey(key, newPermissions).some((p) => p === action);\r\n }\r\n\r\n checkDomainHasPermission(key: UserPermissionsEnum, action: PermissionsActions) {\r\n return this.getAllowedActionsByKey(key, this.getDomainPermissions()).some((p) => p === action);\r\n }\r\n\r\n routeGuardChecker(key: UserPermissionsEnum, action: PermissionsActions) {\r\n if(!this.checkKeyHasPermission(key, action)){\r\n return this.checkKeyHasPermission(key, action,this.getDomainPermissions());\r\n }\r\n return true;\r\n }\r\n\r\n clearDomainPermissions() {\r\n this.domainPermissionsSubject.next([]);\r\n }\r\n\r\n setDomainPermissions(permissions: string[]) {\r\n this.domainPermissionsSubject.next(permissions);\r\n }\r\n\r\n getDomainPermissions(): string[] {\r\n return this.domainPermissionsSubject.getValue();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n//import { DeviceDetectorService } from \"ngx-device-detector\";\r\nimport { debounceTime, distinctUntilChanged, fromEvent, Observable, startWith, Subject, tap } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class DetectDeviceService {\r\n currentWidth: number = window.innerWidth;\r\n private _width$: Subject<number> = new Subject();\r\n private _agent: string;\r\n constructor() {\r\n fromEvent(window, \"resize\")\r\n .pipe(distinctUntilChanged(), debounceTime(200))\r\n .subscribe((event) => this._handelResize(event));\r\n }\r\n\r\n private _handelResize(event: any) {\r\n this._width$.next(event.target.innerWidth);\r\n this.currentWidth = event.target.innerWidth;\r\n }\r\n\r\n get onResize$(): Observable<number> {\r\n return this._width$.asObservable().pipe(\r\n debounceTime(100), // Debounce to avoid too many events\r\n startWith(window.innerWidth), // Trigger initial check\r\n distinctUntilChanged(), // Avoid duplication\r\n tap(() => this._detect())\r\n );\r\n }\r\n\r\n get agent(): string | undefined {\r\n // Optimize getter performance\r\n if (this._agent) {\r\n return this._agent;\r\n }\r\n\r\n const value = localStorage.getItem(\"User-Agent\");\r\n this._agent = value!;\r\n\r\n return value!;\r\n }\r\n\r\n private _detect(): void {\r\n const body = document.getElementsByTagName(\"body\")[0];\r\n\r\n this.isMobile() ? body?.setAttribute(\"view\", \"mobile\") : body?.setAttribute(\"view\", \"web\");\r\n\r\n switch (true) {\r\n case this.isBrowser():\r\n body?.setAttribute(\"device\", \"browser\");\r\n break;\r\n case this.isIOS():\r\n body?.setAttribute(\"device\", \"ios\");\r\n break;\r\n case this.isAndroid():\r\n body?.setAttribute(\"device\", \"android\");\r\n break;\r\n default:\r\n body?.removeAttribute(\"device\");\r\n }\r\n }\r\n\r\n public isMobile() {\r\n // return this.deviceService.isMobile();\r\n return false;\r\n }\r\n\r\n public isBrowser() {\r\n return !this.agent;\r\n }\r\n\r\n public isIOS() {\r\n return this.agent && (this.agent.toLocaleLowerCase().includes(\"iphone\") || this.agent.toLocaleLowerCase().includes(\"ios\"));\r\n }\r\n\r\n public isAndroid() {\r\n return this.agent && this.agent.toLocaleLowerCase().includes(\"android\");\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport {\r\n CookiesStorageKeys,\r\n LocalStorageKeys,\r\n SessionStorageKeys,\r\n StorageEnum,\r\n} from '../handlers/stortage';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StorageService {\r\n private cookieService = inject(CookieService);\r\n\r\n public get cookies() {\r\n return {\r\n set: (key: CookiesStorageKeys, value: string, expires?: number) =>\r\n this.cookieService.set(key, value, expires),\r\n get: (key: CookiesStorageKeys) => this.cookieService.get(key),\r\n clear: (key: CookiesStorageKeys) => this.cookieService.delete(key),\r\n };\r\n }\r\n\r\n public local = {\r\n set: (key: LocalStorageKeys, value: unknown) =>\r\n this.setItem(key, value, localStorage.setItem.bind(localStorage)),\r\n get: <T>(key: LocalStorageKeys) =>\r\n this.getItem<T>(key, localStorage.getItem.bind(localStorage)),\r\n clear: () => localStorage.clear(),\r\n };\r\n\r\n public session = {\r\n set: (key: SessionStorageKeys, value: unknown) =>\r\n this.setItem(key, value, sessionStorage.setItem.bind(sessionStorage)),\r\n get: <T>(key: SessionStorageKeys) =>\r\n this.getItem<T>(key, sessionStorage.getItem.bind(sessionStorage)),\r\n clear: () => sessionStorage.clear(),\r\n };\r\n\r\n private setItem(\r\n key: StorageEnum,\r\n value: unknown,\r\n setFn: (k: string, v: string) => void\r\n ): void {\r\n if (!key) return;\r\n setFn(key as string, typeof value === 'string' ? value : JSON.stringify(value));\r\n }\r\n\r\n private getItem<T>(\r\n key: StorageEnum,\r\n getFn: (k: string) => string | null,\r\n withParsing = false\r\n ): T | null {\r\n const data = getFn(key as string) ?? null;\r\n if (data) {\r\n return withParsing ? (JSON.parse(data) as T) : (data as unknown as T);\r\n }\r\n return null;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface AppFilesConfig {\r\n uploadUrl: string;\r\n maxFileSize?: number;\r\n allowedTypes?: string[];\r\n}\r\n\r\nexport const APP_FILES_CONFIG = new InjectionToken<AppFilesConfig>('APP_FILES_CONFIG');\r\n","export enum UploadStatus {\r\n PENDING = 'pending',\r\n UPLOADING = 'uploading',\r\n SUCCESS = 'success',\r\n FAILED = 'failed',\r\n}","import { Inject, inject, Injectable, InjectionToken } from '@angular/core';\r\nimport {\r\n HttpEvent,\r\n HttpEventType,\r\n HttpHeaders,\r\n HttpParams,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { HttpContextHandler } from '../handlers/http-context-handler';\r\nimport {\r\n catchError,\r\n from,\r\n identity,\r\n map,\r\n mergeMap,\r\n Observable,\r\n of,\r\n Subject,\r\n takeUntil,\r\n tap,\r\n} from 'rxjs';\r\nimport { BaseHttpResponse, BaseHttpService, HttpConfig } from './base-http-service';\r\nimport { AuthService } from './auth.service';\r\nimport {\r\n Attachment,\r\n AttachmentStatusDisplay,\r\n UploadStatusConfigMap,\r\n} from '../models/attachment.interface';\r\nimport { APP_FILES_CONFIG } from '../app-files-config';\r\nimport { UploadStatus } from '../enums/upload-status.enum';\r\n\r\nexport const UPLOAD_STATUS_CONFIG = new InjectionToken<UploadStatusConfigMap>(\r\n 'UPLOAD_STATUS_CONFIG',\r\n);\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AppFilesService extends BaseHttpService {\r\n authService = inject(AuthService);\r\n private config = inject(APP_FILES_CONFIG);\r\n override setApiConfig(): HttpConfig {\r\n return {\r\n microServiceUrl: this.config.uploadUrl,\r\n };\r\n }\r\n\r\n constructor(@Inject(UPLOAD_STATUS_CONFIG) protected uploadStatusConfig: UploadStatusConfigMap) {\r\n super();\r\n }\r\n\r\n download(url: string, attachmentIds: string[], fileName?: string, previewOnly= false): Observable<Blob> {\r\n const body = { attachmentIds };\r\n return this.add<HttpResponse<Blob>>(body, {\r\n urlPostfix: url,\r\n responseType: 'blob',\r\n observe: 'response',\r\n }).pipe(\r\n tap((response) => {\r\n if (response.body && !previewOnly) {\r\n const headerFileName = this.extractFileNameFromHeaders(response.headers) ?? 'file';\r\n this.triggerBrowserDownload(response.body, fileName ?? headerFileName);\r\n }\r\n }),\r\n map((response) => response.body!),\r\n );\r\n }\r\n\r\n upload<TResponse = unknown>(\r\n file: File,\r\n url: string,\r\n ): Observable<HttpEvent<BaseHttpResponse<TResponse>>> {\r\n const formData = new FormData();\r\n formData.append('file', file, file.name);\r\n\r\n return this.add<HttpEvent<BaseHttpResponse<TResponse>>>(formData, {\r\n context: HttpContextHandler.setLoaderType(false),\r\n urlPostfix: url,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n\r\n uploadMultiple<TResponse = unknown>(\r\n files: File[],\r\n url: string,\r\n maxConcurrent = 10,\r\n destroy$?: Subject<void>,\r\n ): Observable<Attachment> {\r\n return from(files).pipe(\r\n mergeMap(\r\n (file) =>\r\n this.upload<TResponse>(file, url).pipe(\r\n map((event) => this.mapHttpEventToAttachment(file, event)),\r\n catchError(() => of(this.createAttachment(file, UploadStatus.FAILED))),\r\n ),\r\n maxConcurrent,\r\n ),\r\n destroy$ ? takeUntil(destroy$) : identity,\r\n );\r\n }\r\n\r\n export(\r\n exportFilter: Record<string, string[]> | HttpParams,\r\n urlPostfix: string,\r\n fileName: string,\r\n type: string = 'pdf',\r\n downloaded = true,\r\n ): Observable<Blob> {\r\n return this.getAll<Blob>({\r\n urlPostfix,\r\n params: exportFilter,\r\n responseType: 'blob',\r\n }).pipe(\r\n tap((response) => {\r\n if (downloaded) {\r\n const blob = new Blob([response], { type: `application/${type}` });\r\n this.triggerBrowserDownload(blob, fileName);\r\n }\r\n }),\r\n );\r\n }\r\n\r\n downloadFile(fileData: { content: Blob; type: string; fileName: string }): void {\r\n const blob = new Blob([fileData.content], { type: fileData.type });\r\n this.triggerBrowserDownload(blob, fileData.fileName);\r\n }\r\n\r\n createAttachment(\r\n file: File,\r\n uploadStatus: UploadStatus,\r\n progress: number = 0,\r\n serverResponse?: unknown,\r\n ): Attachment {\r\n return {\r\n nameFile: file.name,\r\n size: file.size,\r\n file,\r\n uploadStatus,\r\n status: this.buildStatusDisplay(uploadStatus, progress),\r\n serverResponse,\r\n };\r\n }\r\n\r\n private mapHttpEventToAttachment<TResponse>(\r\n file: File,\r\n event: HttpEvent<BaseHttpResponse<TResponse>>,\r\n ): Attachment {\r\n switch (event.type) {\r\n case HttpEventType.UploadProgress: {\r\n const progress = this.calculateProgress(event.loaded, event.total);\r\n return this.createAttachment(file, UploadStatus.UPLOADING, progress);\r\n }\r\n\r\n case HttpEventType.Response: {\r\n const response = event.body?.payload;\r\n const serverPayload = response as Record<string, unknown> | undefined;\r\n const baseAttachment = this.createAttachment(file, UploadStatus.SUCCESS, 100);\r\n return {\r\n ...baseAttachment,\r\n id: serverPayload?.['id'] as string | undefined,\r\n serverResponse: response,\r\n };\r\n }\r\n\r\n default:\r\n return this.createAttachment(file, UploadStatus.PENDING);\r\n }\r\n }\r\n\r\n private calculateProgress(loaded: number, total?: number): number {\r\n return total ? Math.round((100 * loaded) / total) : 0;\r\n }\r\n\r\n private buildStatusDisplay(\r\n uploadStatus: UploadStatus,\r\n progress?: number,\r\n ): AttachmentStatusDisplay {\r\n const config = this.uploadStatusConfig.get(uploadStatus);\r\n\r\n return {\r\n ...config,\r\n percentage: progress,\r\n } as AttachmentStatusDisplay;\r\n }\r\n\r\n // get filename from response headers\r\n private extractFileNameFromHeaders(headers: HttpHeaders): string | null {\r\n const contentDisposition = headers.get('content-disposition');\r\n if (!contentDisposition) return null;\r\n\r\n const filenamePart = contentDisposition\r\n .split(';')\r\n .map((part) => part.trim())\r\n .find((part) => part.toLowerCase().startsWith('filename='));\r\n\r\n if (!filenamePart) return null;\r\n\r\n const filename = filenamePart.split('=')[1]?.trim();\r\n return filename ?? null;\r\n }\r\n\r\n triggerBrowserDownload(blob: Blob, fileName: string): void {\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = fileName;\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n URL.revokeObjectURL(url);\r\n }\r\n}\r\n","import { AsyncPipe, NgClass } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport {TranslatePipe} from \"@ngx-translate/core\";\r\nimport {LoaderService} from \"../../services\";\r\n\r\n@Component({\r\n selector: \"global-loader\",\r\n templateUrl: \"./global-loader.component.html\",\r\n styleUrls: [\"./global-loader.component.scss\"],\r\n standalone: true,\r\n imports: [AsyncPipe, NgClass, TranslatePipe]\r\n})\r\nexport class GlobalLoaderComponent {\r\n @Input() color!: string;\r\n constructor(public loaderService: LoaderService) {}\r\n}\r\n","@if (loaderService.isLoading$ | async; as data) {\r\n @if (data && data.show) {\r\n <div class=\"loader\" [ngClass]=\"{ 'system-loader': data.isSystemLoader, 'absolute': !data.isSystemLoader }\"\r\n [style.--spinner-color]=\"color\">\r\n <div class=\"loader-spinner\"></div>\r\n <p class=\"loader-text\">{{ 'shared.loading' | translate }}</p>\r\n </div>\r\n }\r\n}\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn } from '@angular/router';\r\nimport { CORE_CONFIG, CoreConfig } from '../core-config';\r\nimport { AuthService } from '../services';\r\n\r\nexport const authGuard: CanActivateFn = () => {\r\n const appConfig = inject<CoreConfig>(CORE_CONFIG);\r\n const authService = inject(AuthService);\r\n\r\n if (!authService.isLoggedIn()) {\r\n window.location.href = appConfig.loginUrl;\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n","import { inject } from \"@angular/core\";\r\nimport { CanActivateFn, Router } from \"@angular/router\";\r\nimport { PermissionsService } from \"../services\";\r\nimport { RoutePermissionsInfo } from \"../interfaces\";\r\n\r\nexport const permissionsGuard: CanActivateFn = (route) => {\r\n const permissionsService = inject(PermissionsService);\r\n const router = inject(Router);\r\n const { key, action }: RoutePermissionsInfo = route.data[\"permissions\"];\r\n\r\n if (!route.data[\"permissions\"] || (route.data[\"permissions\"] && permissionsService.routeGuardChecker(key, action))) {\r\n return true;\r\n } else {\r\n router.navigate([\"no-access\"]);\r\n return false;\r\n }\r\n};\r\n","export enum UserPermissionsEnum {\r\n BOD = \"BOD\",\r\n BOARD_COMMITTEES = \"BOARD_COMMITTEES\",\r\n BOARD_MEETINGS = \"BOARD_MEETINGS\",\r\n MEETING_INSIDE_THE_BOD = \"MEETING_INSIDE_THE_BOD\",\r\n COMMITTEE = \"COMMITTEE\",\r\n MEETING_INSIDE_THE_COMMITTEE = \"MEETING_INSIDE_THE_COMMITTEE\",\r\n MEETING = \"MEETING\",\r\n DECISION = \"DECISION\",\r\n RECOMMENDATION = \"RECOMMENDATION\",\r\n TASK = \"TASK\",\r\n VOTING = \"VOTING\",\r\n VOTING_SECRETARY_RESULTS = \"VOTING_SECRETARY_RESULTS\",\r\n VOTING_RESULTS = \"VOTING_RESULTS\",\r\n DRAFT_MOM = \"DRAFT_MOM\",\r\n FINAL_MOM = \"FINAL_MOM\",\r\n MOM = \"MOM\",\r\n AGENDA = \"AGENDA\",\r\n ATTENDEES = \"ATTENDEES\",\r\n COMMENT = \"COMMENT\"\r\n}\r\n\r\nexport enum PermissionsActions {\r\n VIEW = \"VIEW\",\r\n CREATE = \"CREATE\",\r\n EDIT = \"EDIT\",\r\n DELETE = \"DELETE\",\r\n REORDER = \"REORDER\",\r\n DOWNLOAD = \"DOWNLOAD\",\r\n MARK = \"MARK\",\r\n GENERATE = \"GENERATE\",\r\n TERMINATE = \"TERMINATE\",\r\n START = \"START\",\r\n END = \"END\",\r\n ACTIVATE = \"ACTIVATE\"\r\n}\r\n","export enum DateFormatter {\r\n FULL_DATE_TIME = \"dd MMM yyyy - hh:mm a\",\r\n DATE_TIME_ZONE = \"yyyy-MM-dd'T'HH:mm:ssxxx\",\r\n DATE_UTC = \"yyyy-MM-dd'T'HH:mm:ss'Z'\",\r\n dd_MM_yyyy = \"dd-MM-yyyy\",\r\n yyyy_MM_dd = \"yyyy-MM-dd\",\r\n MMM_dd_yyyy = \"MMM dd ,yyyy\",\r\n MM_D_yyy = \"MM dd ,yyy\",\r\n MMM_D_YYY_Time = \"MMM dd ,YYYY - hh:mm a\",\r\n MMM_d_y_Time = \"MMM d, y, h:mm a\",\r\n d_MM_y = \"d MMM y\",\r\n MMM_D_Y = \"MMM d, y\",\r\n DD_MM = \"dd MMM\",\r\n DATE_PICKER = \"dd/MM/yyyy\",\r\n DATE_FULL_YEAR = \"yyyy\"\r\n}\r\n","export enum DisplayTypesEnum {\r\n WEB_ONLY = \"webOnly\",\r\n MOBILE_ONLY = \"mobileOnly\"\r\n}\r\n","export enum Language {\r\n AR = \"ar\",\r\n EN = \"en\"\r\n}\r\n\r\nexport enum AppDirection {\r\n RTL = \"rtl\",\r\n LTR = \"ltr\"\r\n}\r\n","import {\r\n Directive,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { PermissionsService } from '../services';\r\nimport { PermissionsActions, UserPermissionsEnum } from '../enums';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[hasPermissions]',\r\n standalone: true\r\n})\r\nexport class HasPermissionsDirective implements OnInit, OnDestroy {\r\n private _actions: string[];\r\n private _key: string;\r\n private _newPermissions: string[];\r\n private _isDomain: boolean;\r\n\r\n private isViewCreated = false;\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private permissionsService: PermissionsService,\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<unknown>\r\n ) {}\r\n\r\n /**\r\n * make sure that the key value looks like the UserPermissionsEnum enum\r\n * usage: *permissions=\"[PermissionsActions.EDIT]; key: LOOKUPS\r\n */\r\n\r\n @Input({ required: true }) set hasPermissions(actions: string[]) {\r\n if (this.arraysChanged(this._actions, actions)) {\r\n this._actions = actions;\r\n this.updateView();\r\n }\r\n }\r\n\r\n @Input({ required: true }) set hasPermissionsKey(key: string) {\r\n if (this._key !== key) {\r\n this._key = key;\r\n this.updateView();\r\n }\r\n }\r\n\r\n @Input() set hasPermissionsNewPermissions(newPermissions: string[]) {\r\n if (this.arraysChanged(this._newPermissions, newPermissions)) {\r\n this._newPermissions = newPermissions;\r\n this.updateView();\r\n }\r\n }\r\n\r\n @Input() set hasPermissionsIsDomain(isDomain: boolean) {\r\n if (this._isDomain !== isDomain) {\r\n this._isDomain = isDomain;\r\n this.updateView();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscription = this.permissionsService.domainPermissions$.subscribe(() => {\r\n if (this._isDomain) {\r\n this.updateView();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n private updateView() {\r\n const canShow = this._actions.some(action => this.hasPermission(action));\r\n\r\n if (canShow && !this.isViewCreated) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.isViewCreated = true;\r\n } else if (!canShow && this.isViewCreated) {\r\n this.clearView();\r\n }\r\n }\r\n\r\n private hasPermission(action: string): boolean {\r\n if (this._isDomain) {\r\n return this.permissionsService.checkDomainHasPermission(\r\n this._key as UserPermissionsEnum,\r\n action as PermissionsActions\r\n );\r\n }\r\n\r\n return this.permissionsService.checkKeyHasPermission(\r\n this._key as UserPermissionsEnum,\r\n action as PermissionsActions,\r\n this._newPermissions\r\n );\r\n }\r\n\r\n private clearView() {\r\n this.viewContainer.clear();\r\n this.isViewCreated = false;\r\n }\r\n\r\n private arraysChanged(a?: string[], b?: string[]): boolean {\r\n if (a === b) return false;\r\n if (!a || !b) return true;\r\n if (a.length !== b.length) return true;\r\n return a.some((v, i) => v !== b[i]);\r\n }\r\n}\r\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { DetectDeviceService } from \"../services/detect-device.service\";\r\nimport { DisplayTypesEnum } from \"../enums/display-types.enum\";\r\n\r\n/*\r\n * Usage:\r\n * <div *responsiveElement=\"DisplayTypes.WEB_ONLY\">Web</div>\r\n * <div *responsiveElement=\"DisplayTypes.MOBILE_ONLY\">Mobile</div>\r\n * */\r\n\r\n@Directive({\r\n selector: \"[responsiveElement]\",\r\n standalone: true\r\n})\r\nexport class ResponsiveElementDirective implements OnInit, OnDestroy {\r\n @Input(\"responsiveElement\") displayFor: DisplayTypesEnum.WEB_ONLY | DisplayTypesEnum.MOBILE_ONLY;\r\n\r\n private resizeSubscription: Subscription = new Subscription();\r\n\r\n constructor(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef,\r\n private detectDeviceServiceService: DetectDeviceService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.resizeSubscription.add(this.detectDeviceServiceService.onResize$.subscribe(this.checkWidth.bind(this)));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.resizeSubscription.unsubscribe();\r\n }\r\n\r\n private checkWidth() {\r\n const shouldDisplay =\r\n (this.displayFor === DisplayTypesEnum.WEB_ONLY && !this.detectDeviceServiceService.isMobile()) ||\r\n (this.displayFor === DisplayTypesEnum.MOBILE_ONLY && this.detectDeviceServiceService.isMobile());\r\n if (shouldDisplay) {\r\n this.viewContainer.length === 0 && this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n }\r\n}\r\n","// Important for global context\r\nimport { CookiesStorageKeys, LocalStorageKeys, SessionStorageKeys, StorageEnum } from \"./stortage\";\r\nimport { CookieService } from \"ngx-cookie-service\";\r\n\r\nconst setLocalStorage = (key: string, value: string) => localStorage.setItem(key, value);\r\nconst getLocalStorage = (key: string) => localStorage.getItem(key);\r\nconst clearLocalStorage = () => localStorage.clear();\r\nconst setSessionStorage = (key: string, value: string) => sessionStorage.setItem(key, value);\r\nconst getSessionStorage = (key: string) => sessionStorage.getItem(key);\r\nconst clearSessionStorage = () => sessionStorage.clear();\r\n\r\nexport class StorageHandler {\r\n private static cookieService: CookieService;\r\n\r\n public static init(cookieService: CookieService): void {\r\n this.cookieService = cookieService;\r\n }\r\n\r\n public static get cookies() {\r\n if (!this.cookieService) {\r\n throw new Error(\r\n \"CookieService is not initialized. Call StorageHandler.init(cookieService) first.\"\r\n );\r\n }\r\n\r\n return {\r\n set: (key: CookiesStorageKeys, value: string, expires?: number) =>\r\n this.cookieService.set(key, value, expires),\r\n get: (key: CookiesStorageKeys) => this.cookieService.get(key),\r\n clear: (key: CookiesStorageKeys) => this.cookieService.delete(key)\r\n };\r\n }\r\n\r\n public static local = {\r\n set: (key: LocalStorageKeys, value: unknown) => this.setItem(key, value, setLocalStorage),\r\n get: <T>(key: LocalStorageKeys) => this.getItem<T>(key, getLocalStorage),\r\n clear: () => this.clearStorage(clearLocalStorage)\r\n };\r\n public static session = {\r\n set: (key: SessionStorageKeys, value: unknown) => this.setItem(key, value, setSessionStorage),\r\n get: <T>(key: SessionStorageKeys) => this.getItem<T>(key, getSessionStorage),\r\n clear: () => this.clearStorage(clearSessionStorage)\r\n };\r\n\r\n private static setItem(key: StorageEnum, value: unknown, set: (key: string, value: string) => void): void {\r\n if (!key) return;\r\n set(key as string, typeof value === \"string\" ? value : JSON.stringify(value));\r\n }\r\n\r\n private static getItem<T>(key: StorageEnum, get: (key: string) => string | null, withParsing = false): T | null {\r\n const data: string | null = get(key as string) ?? null;\r\n if (data) return withParsing ? JSON.parse(data) as T : data as T;\r\n return null;\r\n }\r\n\r\n private static clearStorage(clear: () => void): void {\r\n clear();\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["map","i1.LoaderService","i1.PermissionsService","i1.DetectDeviceService"],"mappings":"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"}
1
+ {"version":3,"file":"corp-products-app-core.mjs","sources":["../../../projects/core/src/lib/services/base-pagination-service/pagination.ts","../../../projects/core/src/lib/services/base-pagination-service/base-pagination.service.ts","../../../projects/core/src/lib/handlers/stortage.ts","../../../projects/core/src/lib/core-config.ts","../../../projects/core/src/lib/services/base-http-service/base-http-types.ts","../../../projects/core/src/lib/services/base-http-service/base-http-utils.ts","../../../projects/core/src/lib/services/base-http-service/base-http.service.ts","../../../projects/core/src/lib/services/auth.service.ts","../../../projects/core/src/lib/services/jwt-decoder.service.ts","../../../projects/core/src/lib/interceptors/app-http-config.ts","../../../projects/core/src/lib/handlers/http-context-handler.ts","../../../projects/core/src/lib/services/loader.service.ts","../../../projects/core/src/lib/request-modifier.ts","../../../projects/core/src/lib/error-config.ts","../../../projects/core/src/lib/enums/error-code.enum.ts","../../../projects/core/src/lib/interceptors/base-http.interceptor.ts","../../../projects/core/src/lib/interceptors/global-http-error.interceptor.ts","../../../projects/core/src/lib/services/lov.service.ts","../../../projects/core/src/lib/services/error-handler.service.ts","../../../projects/core/src/lib/services/permissions.service.ts","../../../projects/core/src/lib/services/detect-device.service.ts","../../../projects/core/src/lib/services/storage.service.ts","../../../projects/core/src/lib/app-files-config.ts","../../../projects/core/src/lib/enums/upload-status.enum.ts","../../../projects/core/src/lib/services/app-files.service.ts","../../../projects/core/src/lib/components/global-loader/global-loader.component.ts","../../../projects/core/src/lib/components/global-loader/global-loader.component.html","../../../projects/core/src/lib/guards/auth.guard.ts","../../../projects/core/src/lib/guards/permissions.guard.ts","../../../projects/core/src/lib/enums/user-permissions.enum.ts","../../../projects/core/src/lib/enums/date-formatter.enum.ts","../../../projects/core/src/lib/enums/display-types.enum.ts","../../../projects/core/src/lib/enums/localization.enum.ts","../../../projects/core/src/lib/directives/permissions.directive.ts","../../../projects/core/src/lib/directives/responsive-element.directive.ts","../../../projects/core/src/lib/handlers/storage-handler.ts","../../../projects/core/src/corp-products-app-core.ts"],"sourcesContent":["export const PAGESIZE = 10;\r\nexport const PAGE_SIZE_OPTION = [5, 10, 15, 20];\r\nexport enum SortDirection {\r\n ASC = 'ASC',\r\n DESC = 'DESC'\r\n}\r\n","import { Observable } from 'rxjs';\r\nimport { ListOptions } from './list-options.interface';\r\nimport { PAGE_SIZE_OPTION, PAGESIZE, SortDirection } from './pagination';\r\nexport abstract class BasePaginationService<T = any> {\r\n totalRecords = 0;\r\n totalPages = 0;\r\n rowsChange: number = PAGESIZE;\r\n\r\n pageSizes = PAGE_SIZE_OPTION;\r\n defaultSortValue = 'createdAt';\r\n defaultSortDirection = SortDirection.DESC;\r\n first: number | undefined = 0;\r\n\r\n listOptions: ListOptions = {\r\n searchValue: '',\r\n paginator: this.rowsChange,\r\n page: 0,\r\n direction: this.defaultSortDirection,\r\n sortBy: this.defaultSortValue,\r\n };\r\n\r\n abstract getList(listOptions: ListOptions): void | Observable<T>;\r\n\r\n createListFilter(filters: { [key: string]: unknown }): void {\r\n this.listOptions = {\r\n ...this.listOptions,\r\n ...filters,\r\n };\r\n }\r\n\r\n resetList(): void {\r\n this.listOptions = {\r\n searchValue: '',\r\n paginator: this.rowsChange,\r\n page: 0,\r\n };\r\n }\r\n\r\n resetPaginator(): void {\r\n this.listOptions = {\r\n ...this.listOptions,\r\n paginator: this.rowsChange,\r\n page: 0,\r\n };\r\n }\r\n\r\n onPageChange(event: any): void {\r\n this.listOptions = {\r\n ...this.listOptions,\r\n page: event.page,\r\n paginator: event.rows,\r\n };\r\n this.first = event.first ?? 0;\r\n this.getList(this.listOptions);\r\n }\r\n}\r\n","export enum LocalStorageKeys {\r\n LANGUAGE = \"LANGUAGE\",\r\n TOKEN = \"TOKEN\"\r\n}\r\n\r\nexport enum SessionStorageKeys {}\r\nexport type StorageEnum = SessionStorageKeys | LocalStorageKeys | CookiesStorageKeys;\r\n\r\nexport enum CookiesStorageKeys {\r\n LANGUAGE = \"LANGUAGE\",\r\n TOKEN = \"TOKEN\",\r\n AUTHORIZATION = \"Authorization\"\r\n}","import { InjectionToken } from \"@angular/core\";\r\nimport { ToasterOptions } from \"./interfaces\";\r\n\r\nexport interface CoreConfig {\r\n apiPrefix: string;\r\n production: boolean;\r\n gatewayUrl: string;\r\n loginUrl: string;\r\n logoutEndpoint: string;\r\n}\r\n\r\nexport const CORE_CONFIG = new InjectionToken<CoreConfig>(\"CoreConfig\");\r\n\r\n\r\nexport interface ToasterInterface {\r\n success(options:ToasterOptions): void;\r\n error(options:ToasterOptions): void;\r\n warning(options:ToasterOptions): void;\r\n info(options:ToasterOptions): void;\r\n}\r\nexport const TOASTER_SERVICE = new InjectionToken<ToasterInterface>(\"ToasterService\");\r\n","import { HttpContext, HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport { Params as RouterParams } from '@angular/router';\r\n\r\nexport interface HttpConfig {\r\n apiUrl?: string;\r\n microServiceUrl: string;\r\n globalMapFn?: (res: any) => any;\r\n methods?: ServiceConfig;\r\n}\r\n\r\nexport type Params = HttpParams | { [param: string]: string | string[] | unknown };\r\nexport type HttpRequestOptions = {\r\n headers?: HttpHeaders | RouterParams | { [header: string]: string | string[] };\r\n params?: HttpParams | { [param: string]: string | string[] } | Params;\r\n context?: HttpContext;\r\n reportProgress?: boolean;\r\n observe?: 'events' | 'response';\r\n responseType?: string;\r\n body?: any;\r\n};\r\nexport const HttpRequestOptionsKeys: Array<keyof Required<HttpRequestOptions>> = [\r\n 'headers',\r\n 'params',\r\n 'context',\r\n 'reportProgress',\r\n 'observe',\r\n 'responseType',\r\n 'body'\r\n];\r\n\r\nexport type HttpOptions<T = any> = HttpRequestOptions & {\r\n urlRewrite?: string;\r\n urlPostfix?: string;\r\n mapFn?: (res: any) => T;\r\n};\r\n\r\nexport interface ServiceConfig {\r\n single?: HttpOptions;\r\n getAll?: HttpOptions;\r\n add?: HttpOptions;\r\n update?: HttpOptions;\r\n delete?: HttpOptions;\r\n}\r\n\r\nexport type HttpMethod = 'GET' | 'POST' | 'PUT' | 'DELETE';\r\n","import { map } from \"rxjs/operators\";\r\nimport { HttpOptions, HttpRequestOptionsKeys } from \"./base-http-types\";\r\nimport { BaseHttpResponse } from \"./base-http-response\";\r\n\r\nexport const resolveUrl = (baseUrl: string, options?: HttpOptions, ...args: string[]): string => {\r\n const { urlRewrite, urlPostfix } = options || {};\r\n\r\n if (urlRewrite) {\r\n return urlRewrite;\r\n }\r\n\r\n let result = baseUrl;\r\n\r\n if (args && args.length > 0 && args[0] !== \"\") {\r\n result += `/${args.join(\"/\")}`;\r\n }\r\n\r\n if (urlPostfix) {\r\n result += `/${urlPostfix}`;\r\n }\r\n\r\n return result;\r\n};\r\n\r\nexport const extractRequestOptions = (options?: any) => {\r\n if (!options || typeof options !== \"object\") {\r\n return {};\r\n }\r\n /* eslint-disable */\r\n return HttpRequestOptionsKeys.reduce((requestOptions: any, key) => {\r\n const value = options[key];\r\n\r\n if (value !== undefined) {\r\n requestOptions[key] = value;\r\n }\r\n\r\n return requestOptions;\r\n }, {});\r\n};\r\n\r\nexport const mapResponse = <T>(options?: HttpOptions) => map((res: T) => (options?.mapFn ? options.mapFn(res) : res));\r\n\r\nexport const epmDefaultMapper = <T>(res: BaseHttpResponse<T>) => res.payload;\r\n","import { HttpClient } from '@angular/common/http';\r\nimport { inject } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { HttpConfig, HttpOptions, ServiceConfig } from './base-http-types';\r\nimport { epmDefaultMapper, extractRequestOptions, mapResponse, resolveUrl } from './base-http-utils';\r\n\r\nexport abstract class BaseHttpService {\r\n private readonly http: HttpClient = inject(HttpClient);\r\n\r\n get url(): string {\r\n const { apiUrl,microServiceUrl } = this.setApiConfig();\r\n return `${microServiceUrl}${apiUrl ? `/${apiUrl}` : ''}`;\r\n }\r\n\r\n get methodsConfig(): ServiceConfig | undefined {\r\n const { methods } = this.setApiConfig();\r\n return methods;\r\n }\r\n\r\n get globalMapFn(): (res: any) => any {\r\n const { globalMapFn } = this.setApiConfig();\r\n return globalMapFn || epmDefaultMapper;\r\n }\r\n\r\n abstract setApiConfig(): HttpConfig;\r\n\r\n single<T>(id: string | number, options?: HttpOptions): Observable<T> {\r\n const activeOptions = options || this.getMethodConfig('single');\r\n const url = resolveUrl(this.url, activeOptions, id?.toString());\r\n const requestOptions = extractRequestOptions(activeOptions);\r\n\r\n return this.http\r\n .get<T>(url, requestOptions)\r\n .pipe(mapResponse(this.getMapFun(activeOptions)));\r\n }\r\n\r\n getAll<T>(options?: HttpOptions): Observable<T> {\r\n const activeOptions = options || this.getMethodConfig('getAll');\r\n const url = resolveUrl(this.url, activeOptions);\r\n const requestOptions = extractRequestOptions(activeOptions);\r\n\r\n return this.http\r\n .get<T>(url, requestOptions)\r\n .pipe(mapResponse(this.getMapFun(activeOptions)));\r\n }\r\n\r\n add<T>(body: unknown, options?: HttpOptions): Observable<T> {\r\n const activeOptions = options || this.getMethodConfig('add');\r\n const url = resolveUrl(this.url, activeOptions);\r\n const requestOptions = { ...extractRequestOptions(activeOptions) };\r\n\r\n return this.http\r\n .post<T>(url, body, requestOptions)\r\n .pipe(mapResponse(this.getMapFun(activeOptions)));\r\n }\r\n\r\n update<T>(\r\n id: string | number | undefined,\r\n body: unknown,\r\n options?: HttpOptions\r\n ): Observable<T> {\r\n const activeOptions = options || this.getMethodConfig('update');\r\n const url = id? resolveUrl(this.url, activeOptions, id?.toString()) : resolveUrl(this.url, activeOptions);\r\n const requestOptions = { ...extractRequestOptions(activeOptions) };\r\n\r\n return this.http\r\n .put<T>(url, body, requestOptions)\r\n .pipe(mapResponse(this.getMapFun(activeOptions)));\r\n }\r\n\r\n delete<T>(id: string | number, options?: HttpOptions): Observable<T> {\r\n const activeOptions = options || this.getMethodConfig('delete');\r\n const url = resolveUrl(this.url, activeOptions, id?.toString());\r\n const requestOptions = extractRequestOptions(activeOptions);\r\n\r\n return this.http\r\n .delete<T>(url, requestOptions)\r\n .pipe(mapResponse(this.getMapFun(activeOptions)));\r\n }\r\n\r\n protected getMethodConfig(method: keyof ServiceConfig): any {\r\n return this.methodsConfig ? this.methodsConfig[method] : undefined;\r\n }\r\n\r\n protected getMapFun(options?: HttpOptions) {\r\n const getMapFunObj = {\r\n default: { mapFn: epmDefaultMapper },\r\n custom: { mapFn: this.globalMapFn },\r\n };\r\n\r\n if (\r\n options &&\r\n (options?.reportProgress || options?.responseType === 'blob')\r\n ) {\r\n return { mapFn: (res: unknown) => res };\r\n }\r\n\r\n if (options && options?.mapFn) {\r\n return { mapFn: options.mapFn };\r\n }\r\n\r\n const isGlobalMapFnValid =\r\n this.globalMapFn && typeof this.globalMapFn === 'function';\r\n return isGlobalMapFnValid ? getMapFunObj.custom : getMapFunObj.default;\r\n }\r\n}\r\n","import { inject, Inject, Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\nimport { CookiesStorageKeys, LocalStorageKeys } from '../handlers/stortage';\r\nimport { CORE_CONFIG, CoreConfig } from '../core-config';\r\nimport { BaseHttpService, HttpConfig } from './base-http-service';\r\nimport { StorageService } from '../services';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AuthService extends BaseHttpService {\r\n public isUserLoggedIn$ = new BehaviorSubject<boolean>(false);\r\n private storageService = inject(StorageService);\r\n\r\n constructor(@Inject(CORE_CONFIG) protected appConfig: CoreConfig) {\r\n super();\r\n this.isUserLoggedIn$.next(this.isLoggedIn());\r\n }\r\n override setApiConfig(): HttpConfig {\r\n return {\r\n apiUrl: '',\r\n microServiceUrl: '',\r\n };\r\n }\r\n\r\n initAuthentication() {\r\n const token: string | null = new URLSearchParams(window.location.search).get('token');\r\n if (token) {\r\n this.setAuthentication(token);\r\n window.location.search = '';\r\n }\r\n }\r\n\r\n setAuthentication(token: string) {\r\n this.isUserLoggedIn$.next(true);\r\n this.setUserToken(token);\r\n }\r\n\r\n isLoggedIn(): boolean {\r\n return !!this.getUserToken();\r\n }\r\n\r\n getUserToken(): string | null {\r\n return this.storageService.cookies.get(CookiesStorageKeys.AUTHORIZATION);\r\n }\r\n\r\n setUserToken(token?: string) {\r\n return this.storageService.local.set(LocalStorageKeys.TOKEN, token);\r\n }\r\n\r\n logoutFromSSO() {\r\n const logoutUrl = this.appConfig.logoutEndpoint;\r\n return this.single<unknown>('', {\r\n urlRewrite: logoutUrl,\r\n });\r\n }\r\n\r\n clearAuth() {\r\n this.storageService.local.clear();\r\n this.storageService.session.clear();\r\n this.storageService.cookies.clear(CookiesStorageKeys.AUTHORIZATION);\r\n this.isUserLoggedIn$.next(false);\r\n window.location.href = this.appConfig.loginUrl;\r\n }\r\n}\r\n","import { inject, Injectable } from \"@angular/core\";\r\nimport { jwtDecode } from \"jwt-decode\";\r\nimport { AuthService } from \"./auth.service\";\r\nimport { JWTDecoded } from \"../interfaces/jwt-token-decoded.interface\";\r\n\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class JwtDecoderService {\r\n private authService = inject(AuthService);\r\n public decodedToken: JWTDecoded | null = null;\r\n\r\n constructor() {}\r\n\r\n public decodeToken(): JWTDecoded | null {\r\n const token = this.authService.getUserToken();\r\n if (!token) return null;\r\n\r\n try {\r\n this.decodedToken = jwtDecode<JWTDecoded>(token);\r\n return this.decodedToken;\r\n } catch (err) {\r\n console.error(\"Failed to decode token:\", err);\r\n return null;\r\n }\r\n }\r\n}\r\n","export const COMMON_BASE_URL = \"common/api/v1\";\r\nexport const APP_HTTP_CONFIG = {\r\n BOARD_BASE_URL: \"board-acl/private/v1\",\r\n MEETING_BASE_URL: \"meeting-acl/private/v1\",\r\n IGATE_BASE_URL: COMMON_BASE_URL + \"/igate-users\",\r\n LOV_BASE_URL: COMMON_BASE_URL + \"/lov\",\r\n ATTACHMENT_BASE_URL: COMMON_BASE_URL + \"/attachment\"\r\n};\r\n","import { HttpContext, HttpContextToken } from \"@angular/common/http\";\r\n\r\nexport const IS_SYSTEM_LOADER = new HttpContextToken<boolean>(() => true); // set default loader\r\nexport const USE_API_PREFIX = new HttpContextToken<boolean>(() => true); // set default loader\r\n\r\nexport class HttpContextHandler {\r\n static setLoaderType(isSystemLoader: boolean) {\r\n return new HttpContext().set(IS_SYSTEM_LOADER, isSystemLoader);\r\n }\r\n\r\n static useApiPrefix(hasBaseSegment: boolean) {\r\n return new HttpContext().set(USE_API_PREFIX, hasBaseSegment);\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { BehaviorSubject } from 'rxjs';\r\n\r\nexport interface LoaderState {\r\n show: boolean;\r\n isSystemLoader?: boolean;\r\n}\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class LoaderService {\r\n isLoading$ = new BehaviorSubject<LoaderState>({ show: false });\r\n private loadingMap: Map<string, boolean> = new Map<string, boolean>();\r\n\r\n setLoading(loading: boolean, isSystemLoader = true, url: string): void {\r\n if (!url) {\r\n throw new Error(\"The request URL must be provided to the LoaderService.setLoading function\");\r\n }\r\n\r\n if (loading) {\r\n this.loadingMap.set(url, loading);\r\n this.isLoading$.next({ show: true, isSystemLoader });\r\n } else if (!loading && this.loadingMap.has(url)) {\r\n this.loadingMap.delete(url);\r\n }\r\n\r\n if (!this.loadingMap.size) {\r\n this.isLoading$.next({ show: false });\r\n }\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\nimport { HttpRequest } from '@angular/common/http';\r\n\r\nexport type RequestModifier = (req: HttpRequest<any>) => HttpRequest<any>;\r\n\r\nexport const REQUEST_MODIFIER = new InjectionToken<RequestModifier>('REQUEST_MODIFIER');\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport const APP_ERROR_HANDLER = new InjectionToken<(error: any) => void>(\r\n 'APP_ERROR_HANDLER',\r\n {\r\n factory: () => (error: any) => {\r\n console.warn('No APP_ERROR_HANDLER provided', error);\r\n },\r\n }\r\n);\r\n","export enum ErrorCode {\r\n JWT_EXPIRED = \"JWT_EXPIRED\",\r\n UNAUTHORIZED = \"UNAUTHORIZED\"\r\n}\r\n","import {\r\n HttpErrorResponse,\r\n HttpEvent,\r\n HttpHandler,\r\n HttpInterceptor,\r\n HttpRequest,\r\n} from '@angular/common/http';\r\nimport { Inject, inject, Injectable } from '@angular/core';\r\nimport {\r\n catchError,\r\n finalize,\r\n Observable,\r\n switchMap,\r\n throwError,\r\n from,\r\n mergeMap\r\n} from 'rxjs';\r\nimport { IS_SYSTEM_LOADER } from '../handlers/http-context-handler';\r\nimport { LoaderService } from '../services/loader.service';\r\nimport { CORE_CONFIG, CoreConfig } from '../core-config';\r\nimport { REQUEST_MODIFIER } from '../request-modifier';\r\nimport { APP_ERROR_HANDLER } from '../error-config';\r\nimport { ErrorCode } from '../enums/error-code.enum';\r\n\r\n@Injectable()\r\nexport class HttpBaseInterceptor implements HttpInterceptor {\r\n isRefreshTokenCalled = false;\r\n pendingRequests: { req: HttpRequest<any>; next: HttpHandler }[] = [];\r\n loaderService = inject(LoaderService);\r\n\r\n constructor(\r\n @Inject(CORE_CONFIG) protected appConfig: CoreConfig,\r\n @Inject(REQUEST_MODIFIER)\r\n protected requestModifier: (req: HttpRequest<any>) => HttpRequest<any>,\r\n @Inject(APP_ERROR_HANDLER)\r\n private appErrorHandler: (error: any) => Observable<any>\r\n ) { }\r\n\r\n intercept(\r\n request: HttpRequest<unknown>,\r\n next: HttpHandler\r\n ): Observable<HttpEvent<unknown>> {\r\n request = this.requestModifier(request);\r\n\r\n const IS_SYSTEM_LOADER_CHECK = request.context.get(IS_SYSTEM_LOADER);\r\n this.loaderService.setLoading(true, IS_SYSTEM_LOADER_CHECK, request.url);\r\n\r\n return next.handle(request).pipe(\r\n catchError((err: HttpErrorResponse) => {\r\n if (err?.error?.errors?.errorCode === ErrorCode.JWT_EXPIRED) {\r\n this.pendingRequests.push({ req: request, next });\r\n }\r\n if (!this.isRefreshTokenCalled) {\r\n this.isRefreshTokenCalled = true;\r\n if (!this.appErrorHandler) return throwError(() => err);\r\n return this.appErrorHandler(err).pipe(\r\n switchMap((shouldRetry: boolean) => {\r\n if (shouldRetry) {\r\n this.isRefreshTokenCalled = false;\r\n const queued = [...this.pendingRequests];\r\n this.pendingRequests = [];\r\n if (queued.length > 0) {\r\n return from(queued).pipe(\r\n mergeMap((p) => p.next.handle(p.req))\r\n );\r\n }\r\n }\r\n return throwError(() => err);\r\n })\r\n );\r\n }\r\n return throwError(() => err);\r\n }),\r\n finalize(() =>\r\n this.loaderService.setLoading(false, IS_SYSTEM_LOADER_CHECK, request.url)\r\n )\r\n );\r\n }\r\n}\r\n","import { HttpErrorResponse, HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from '@angular/common/http';\r\nimport { Observable, retry, timer } from 'rxjs';\r\n\r\nexport class GlobalHttpErrorInterceptor implements HttpInterceptor {\r\n // check if it is a server error to retry the request\r\n shouldRetry(error: HttpErrorResponse) {\r\n if (error.status >= 500) {\r\n return timer(1000);\r\n }\r\n throw error;\r\n }\r\n\r\n intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> {\r\n return next.handle(request).pipe(\r\n retry({\r\n count: 1,\r\n delay: this.shouldRetry\r\n })\r\n );\r\n }\r\n}\r\n","import { Injectable } from '@angular/core';\r\nimport { Observable } from 'rxjs';\r\nimport { APP_HTTP_CONFIG } from '../interceptors';\r\nimport { BaseHttpService, HttpConfig } from './base-http-service';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ListOfValues extends BaseHttpService {\r\n override setApiConfig(): HttpConfig {\r\n return {\r\n microServiceUrl: APP_HTTP_CONFIG.LOV_BASE_URL,\r\n apiUrl: \"lookups\"\r\n };\r\n }\r\n\r\n getRolesByGroup<T>(group: string): Observable<T> {\r\n return this.getAll<T>({\r\n urlPostfix: group\r\n });\r\n }\r\n}\r\n","import { HttpErrorResponse } from '@angular/common/http';\r\nimport { ErrorHandler, Injectable, Injector } from '@angular/core';\r\nimport { TranslateService } from '@ngx-translate/core';\r\nimport { TOASTER_SERVICE, ToasterInterface } from '../core-config';\r\nimport { AuthService } from './auth.service';\r\n\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class ErrorHandlerService implements ErrorHandler {\r\n constructor(\r\n private injector: Injector,\r\n private translateService: TranslateService,\r\n private authService: AuthService,\r\n ) {}\r\n\r\n private get toasterService(): ToasterInterface {\r\n return this.injector.get<ToasterInterface>(TOASTER_SERVICE);\r\n }\r\n\r\n handleError(error: unknown): void {\r\n console.log('ErrorHandlerServicee', error);\r\n if (error instanceof Error && !(error instanceof HttpErrorResponse)) {\r\n console.error(error);\r\n return;\r\n }\r\n\r\n if (error instanceof HttpErrorResponse) {\r\n console.error('HTTP Error:', error);\r\n\r\n switch (error?.status) {\r\n case 400:\r\n this.showError(`codes.${error.error.errors.errorType}`);\r\n break;\r\n case 401:\r\n //TODO : Check After Implement login\r\n this.authService.clearAuth();\r\n // this.showError(`network_errors.${error.error.errors.errorType}`);\r\n break;\r\n case 404:\r\n this.showError(`network_errors.${error.error.errors.errorType}`);\r\n break;\r\n case 403:\r\n this.showError('forbidden.message');\r\n break;\r\n case 500:\r\n this.showError('validation_error.server');\r\n break;\r\n default:\r\n this.showError('validation_error.random');\r\n break;\r\n }\r\n }\r\n }\r\n\r\n private showError(messageKey: string): void {\r\n this.toasterService.error({\r\n title: this.translateService.instant('error.title'),\r\n message: this.translateService.instant(`error.${messageKey}`),\r\n });\r\n }\r\n}\r\n","import { Injectable, inject } from \"@angular/core\";\r\nimport { JwtDecoderService } from \"./jwt-decoder.service\";\r\nimport { PermissionsActions, UserPermissionsEnum } from \"../enums\";\r\nimport {BehaviorSubject} from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class PermissionsService {\r\n private jwtDecoderService = inject(JwtDecoderService);\r\n private decodedToken = this.jwtDecoderService.decodedToken;\r\n private tokenPermissions = this.decodedToken ? this.decodedToken.permissions as [] : [];\r\n private domainPermissionsSubject = new BehaviorSubject<string[]>([]);\r\n domainPermissions$ = this.domainPermissionsSubject.asObservable();\r\n\r\n private getKeyName(action: string) {\r\n const actionsArr = action.split(\"_\");\r\n return actionsArr.splice(1, actionsArr.length - 1).join(\"_\");\r\n }\r\n\r\n getActionName(action: string) {\r\n return action.split(\"_\")[0];\r\n }\r\n\r\n getAllowedActionsByKey(key: UserPermissionsEnum, newPermissions?: string[]) {\r\n const permissionsNeeded = newPermissions || this.tokenPermissions;\r\n if (!permissionsNeeded) {\r\n console.error(\"There are no permissions available\");\r\n return [];\r\n }\r\n return permissionsNeeded\r\n .filter((p) => {\r\n return key === this.getKeyName(p);\r\n })\r\n .map((t) => {\r\n return this.getActionName(t);\r\n });\r\n }\r\n\r\n checkKeyHasPermission(key: UserPermissionsEnum, action: PermissionsActions, newPermissions?: string[]) {\r\n return this.getAllowedActionsByKey(key, newPermissions).some((p) => p === action);\r\n }\r\n\r\n checkDomainHasPermission(key: UserPermissionsEnum, action: PermissionsActions) {\r\n return this.getAllowedActionsByKey(key, this.getDomainPermissions()).some((p) => p === action);\r\n }\r\n\r\n routeGuardChecker(key: UserPermissionsEnum, action: PermissionsActions) {\r\n if(!this.checkKeyHasPermission(key, action)){\r\n return this.checkKeyHasPermission(key, action,this.getDomainPermissions());\r\n }\r\n return true;\r\n }\r\n\r\n clearDomainPermissions() {\r\n this.domainPermissionsSubject.next([]);\r\n }\r\n\r\n setDomainPermissions(permissions: string[]) {\r\n this.domainPermissionsSubject.next(permissions);\r\n }\r\n\r\n getDomainPermissions(): string[] {\r\n return this.domainPermissionsSubject.getValue();\r\n }\r\n}\r\n","import { Injectable } from \"@angular/core\";\r\n//import { DeviceDetectorService } from \"ngx-device-detector\";\r\nimport { debounceTime, distinctUntilChanged, fromEvent, Observable, startWith, Subject, tap } from \"rxjs\";\r\n\r\n@Injectable({\r\n providedIn: \"root\"\r\n})\r\nexport class DetectDeviceService {\r\n currentWidth: number = window.innerWidth;\r\n private _width$: Subject<number> = new Subject();\r\n private _agent: string;\r\n constructor() {\r\n fromEvent(window, \"resize\")\r\n .pipe(distinctUntilChanged(), debounceTime(200))\r\n .subscribe((event) => this._handelResize(event));\r\n }\r\n\r\n private _handelResize(event: any) {\r\n this._width$.next(event.target.innerWidth);\r\n this.currentWidth = event.target.innerWidth;\r\n }\r\n\r\n get onResize$(): Observable<number> {\r\n return this._width$.asObservable().pipe(\r\n debounceTime(100), // Debounce to avoid too many events\r\n startWith(window.innerWidth), // Trigger initial check\r\n distinctUntilChanged(), // Avoid duplication\r\n tap(() => this._detect())\r\n );\r\n }\r\n\r\n get agent(): string | undefined {\r\n // Optimize getter performance\r\n if (this._agent) {\r\n return this._agent;\r\n }\r\n\r\n const value = localStorage.getItem(\"User-Agent\");\r\n this._agent = value!;\r\n\r\n return value!;\r\n }\r\n\r\n private _detect(): void {\r\n const body = document.getElementsByTagName(\"body\")[0];\r\n\r\n this.isMobile() ? body?.setAttribute(\"view\", \"mobile\") : body?.setAttribute(\"view\", \"web\");\r\n\r\n switch (true) {\r\n case this.isBrowser():\r\n body?.setAttribute(\"device\", \"browser\");\r\n break;\r\n case this.isIOS():\r\n body?.setAttribute(\"device\", \"ios\");\r\n break;\r\n case this.isAndroid():\r\n body?.setAttribute(\"device\", \"android\");\r\n break;\r\n default:\r\n body?.removeAttribute(\"device\");\r\n }\r\n }\r\n\r\n public isMobile() {\r\n // return this.deviceService.isMobile();\r\n return false;\r\n }\r\n\r\n public isBrowser() {\r\n return !this.agent;\r\n }\r\n\r\n public isIOS() {\r\n return this.agent && (this.agent.toLocaleLowerCase().includes(\"iphone\") || this.agent.toLocaleLowerCase().includes(\"ios\"));\r\n }\r\n\r\n public isAndroid() {\r\n return this.agent && this.agent.toLocaleLowerCase().includes(\"android\");\r\n }\r\n}\r\n","import { inject, Injectable } from '@angular/core';\r\nimport { CookieService } from 'ngx-cookie-service';\r\nimport {\r\n CookiesStorageKeys,\r\n LocalStorageKeys,\r\n SessionStorageKeys,\r\n StorageEnum,\r\n} from '../handlers/stortage';\r\n\r\n@Injectable({ providedIn: 'root' })\r\nexport class StorageService {\r\n private cookieService = inject(CookieService);\r\n\r\n public get cookies() {\r\n return {\r\n set: (key: CookiesStorageKeys, value: string, expires?: number) =>\r\n this.cookieService.set(key, value, expires),\r\n get: (key: CookiesStorageKeys) => this.cookieService.get(key),\r\n clear: (key: CookiesStorageKeys) => this.cookieService.delete(key),\r\n };\r\n }\r\n\r\n public local = {\r\n set: (key: LocalStorageKeys, value: unknown) =>\r\n this.setItem(key, value, localStorage.setItem.bind(localStorage)),\r\n get: <T>(key: LocalStorageKeys) =>\r\n this.getItem<T>(key, localStorage.getItem.bind(localStorage)),\r\n clear: () => localStorage.clear(),\r\n };\r\n\r\n public session = {\r\n set: (key: SessionStorageKeys, value: unknown) =>\r\n this.setItem(key, value, sessionStorage.setItem.bind(sessionStorage)),\r\n get: <T>(key: SessionStorageKeys) =>\r\n this.getItem<T>(key, sessionStorage.getItem.bind(sessionStorage)),\r\n clear: () => sessionStorage.clear(),\r\n };\r\n\r\n private setItem(\r\n key: StorageEnum,\r\n value: unknown,\r\n setFn: (k: string, v: string) => void\r\n ): void {\r\n if (!key) return;\r\n setFn(key as string, typeof value === 'string' ? value : JSON.stringify(value));\r\n }\r\n\r\n private getItem<T>(\r\n key: StorageEnum,\r\n getFn: (k: string) => string | null,\r\n withParsing = false\r\n ): T | null {\r\n const data = getFn(key as string) ?? null;\r\n if (data) {\r\n return withParsing ? (JSON.parse(data) as T) : (data as unknown as T);\r\n }\r\n return null;\r\n }\r\n}\r\n","import { InjectionToken } from '@angular/core';\r\n\r\nexport interface AppFilesConfig {\r\n uploadUrl: string;\r\n maxFileSize?: number;\r\n allowedTypes?: string[];\r\n}\r\n\r\nexport const APP_FILES_CONFIG = new InjectionToken<AppFilesConfig>('APP_FILES_CONFIG');\r\n","export enum UploadStatus {\r\n PENDING = 'pending',\r\n UPLOADING = 'uploading',\r\n SUCCESS = 'success',\r\n FAILED = 'failed',\r\n}","import { Inject, inject, Injectable, InjectionToken } from '@angular/core';\r\nimport {\r\n HttpEvent,\r\n HttpEventType,\r\n HttpHeaders,\r\n HttpParams,\r\n HttpResponse,\r\n} from '@angular/common/http';\r\nimport { HttpContextHandler } from '../handlers/http-context-handler';\r\nimport {\r\n catchError,\r\n from,\r\n identity,\r\n map,\r\n mergeMap,\r\n Observable,\r\n of,\r\n Subject,\r\n takeUntil,\r\n tap,\r\n} from 'rxjs';\r\nimport { BaseHttpResponse, BaseHttpService, HttpConfig } from './base-http-service';\r\nimport { AuthService } from './auth.service';\r\nimport {\r\n Attachment,\r\n AttachmentStatusDisplay,\r\n UploadStatusConfigMap,\r\n} from '../models/attachment.interface';\r\nimport { APP_FILES_CONFIG } from '../app-files-config';\r\nimport { UploadStatus } from '../enums/upload-status.enum';\r\n\r\nexport const UPLOAD_STATUS_CONFIG = new InjectionToken<UploadStatusConfigMap>(\r\n 'UPLOAD_STATUS_CONFIG',\r\n);\r\n@Injectable({\r\n providedIn: 'root',\r\n})\r\nexport class AppFilesService extends BaseHttpService {\r\n authService = inject(AuthService);\r\n private config = inject(APP_FILES_CONFIG);\r\n override setApiConfig(): HttpConfig {\r\n return {\r\n microServiceUrl: this.config.uploadUrl,\r\n };\r\n }\r\n\r\n constructor(@Inject(UPLOAD_STATUS_CONFIG) protected uploadStatusConfig: UploadStatusConfigMap) {\r\n super();\r\n }\r\n\r\n download(url: string, attachmentIds: string[], fileName?: string, previewOnly= false): Observable<Blob> {\r\n const body = { attachmentIds };\r\n return this.add<HttpResponse<Blob>>(body, {\r\n urlPostfix: url,\r\n responseType: 'blob',\r\n observe: 'response',\r\n }).pipe(\r\n tap((response) => {\r\n if (response.body && !previewOnly) {\r\n const headerFileName = this.extractFileNameFromHeaders(response.headers) ?? 'file';\r\n this.triggerBrowserDownload(response.body, fileName ?? headerFileName);\r\n }\r\n }),\r\n map((response) => response.body!),\r\n );\r\n }\r\n\r\n upload<TResponse = unknown>(\r\n file: File,\r\n url: string,\r\n ): Observable<HttpEvent<BaseHttpResponse<TResponse>>> {\r\n const formData = new FormData();\r\n formData.append('file', file, file.name);\r\n\r\n return this.add<HttpEvent<BaseHttpResponse<TResponse>>>(formData, {\r\n context: HttpContextHandler.setLoaderType(false),\r\n urlPostfix: url,\r\n reportProgress: true,\r\n observe: 'events',\r\n });\r\n }\r\n\r\n uploadMultiple<TResponse = unknown>(\r\n files: File[],\r\n url: string,\r\n maxConcurrent = 10,\r\n destroy$?: Subject<void>,\r\n ): Observable<Attachment> {\r\n return from(files).pipe(\r\n mergeMap(\r\n (file) =>\r\n this.upload<TResponse>(file, url).pipe(\r\n map((event) => this.mapHttpEventToAttachment(file, event)),\r\n catchError(() => of(this.createAttachment(file, UploadStatus.FAILED))),\r\n ),\r\n maxConcurrent,\r\n ),\r\n destroy$ ? takeUntil(destroy$) : identity,\r\n );\r\n }\r\n\r\n export(\r\n exportFilter: Record<string, string[]> | HttpParams,\r\n urlPostfix: string,\r\n fileName: string,\r\n type: string = 'pdf',\r\n downloaded = true,\r\n ): Observable<Blob> {\r\n return this.getAll<Blob>({\r\n urlPostfix,\r\n params: exportFilter,\r\n responseType: 'blob',\r\n }).pipe(\r\n tap((response) => {\r\n if (downloaded) {\r\n const blob = new Blob([response], { type: `application/${type}` });\r\n this.triggerBrowserDownload(blob, fileName);\r\n }\r\n }),\r\n );\r\n }\r\n\r\n downloadFile(fileData: { content: Blob; type: string; fileName: string }): void {\r\n const blob = new Blob([fileData.content], { type: fileData.type });\r\n this.triggerBrowserDownload(blob, fileData.fileName);\r\n }\r\n\r\n createAttachment(\r\n file: File,\r\n uploadStatus: UploadStatus,\r\n progress: number = 0,\r\n serverResponse?: unknown,\r\n ): Attachment {\r\n return {\r\n nameFile: file.name,\r\n size: file.size,\r\n file,\r\n uploadStatus,\r\n status: this.buildStatusDisplay(uploadStatus, progress),\r\n serverResponse,\r\n };\r\n }\r\n\r\n private mapHttpEventToAttachment<TResponse>(\r\n file: File,\r\n event: HttpEvent<BaseHttpResponse<TResponse>>,\r\n ): Attachment {\r\n switch (event.type) {\r\n case HttpEventType.UploadProgress: {\r\n const progress = this.calculateProgress(event.loaded, event.total);\r\n return this.createAttachment(file, UploadStatus.UPLOADING, progress);\r\n }\r\n\r\n case HttpEventType.Response: {\r\n const response = event.body?.payload;\r\n const serverPayload = response as Record<string, unknown> | undefined;\r\n const baseAttachment = this.createAttachment(file, UploadStatus.SUCCESS, 100);\r\n return {\r\n ...baseAttachment,\r\n id: serverPayload?.['id'] as string | undefined,\r\n serverResponse: response,\r\n };\r\n }\r\n\r\n default:\r\n return this.createAttachment(file, UploadStatus.PENDING);\r\n }\r\n }\r\n\r\n private calculateProgress(loaded: number, total?: number): number {\r\n return total ? Math.round((100 * loaded) / total) : 0;\r\n }\r\n\r\n private buildStatusDisplay(\r\n uploadStatus: UploadStatus,\r\n progress?: number,\r\n ): AttachmentStatusDisplay {\r\n const config = this.uploadStatusConfig.get(uploadStatus);\r\n\r\n return {\r\n ...config,\r\n percentage: progress,\r\n } as AttachmentStatusDisplay;\r\n }\r\n\r\n // get filename from response headers\r\n private extractFileNameFromHeaders(headers: HttpHeaders): string | null {\r\n const contentDisposition = headers.get('content-disposition');\r\n if (!contentDisposition) return null;\r\n\r\n const filenamePart = contentDisposition\r\n .split(';')\r\n .map((part) => part.trim())\r\n .find((part) => part.toLowerCase().startsWith('filename='));\r\n\r\n if (!filenamePart) return null;\r\n\r\n const filename = filenamePart.split('=')[1]?.trim();\r\n return filename ?? null;\r\n }\r\n\r\n triggerBrowserDownload(blob: Blob, fileName: string): void {\r\n const url = URL.createObjectURL(blob);\r\n const link = document.createElement('a');\r\n link.href = url;\r\n link.download = fileName;\r\n document.body.appendChild(link);\r\n link.click();\r\n link.remove();\r\n URL.revokeObjectURL(url);\r\n }\r\n}\r\n","import { AsyncPipe, NgClass } from '@angular/common';\r\nimport { Component, Input } from '@angular/core';\r\nimport {TranslatePipe} from \"@ngx-translate/core\";\r\nimport {LoaderService} from \"../../services\";\r\n\r\n@Component({\r\n selector: \"global-loader\",\r\n templateUrl: \"./global-loader.component.html\",\r\n styleUrls: [\"./global-loader.component.scss\"],\r\n standalone: true,\r\n imports: [AsyncPipe, NgClass, TranslatePipe]\r\n})\r\nexport class GlobalLoaderComponent {\r\n @Input() color!: string;\r\n constructor(public loaderService: LoaderService) {}\r\n}\r\n","@if (loaderService.isLoading$ | async; as data) {\r\n @if (data && data.show) {\r\n <div class=\"loader\" [ngClass]=\"{ 'system-loader': data.isSystemLoader, 'absolute': !data.isSystemLoader }\"\r\n [style.--spinner-color]=\"color\">\r\n <div class=\"loader-spinner\"></div>\r\n <p class=\"loader-text\">{{ 'shared.loading' | translate }}</p>\r\n </div>\r\n }\r\n}\r\n","import { inject } from '@angular/core';\r\nimport { CanActivateFn } from '@angular/router';\r\nimport { CORE_CONFIG, CoreConfig } from '../core-config';\r\nimport { AuthService } from '../services';\r\n\r\nexport const authGuard: CanActivateFn = () => {\r\n const appConfig = inject<CoreConfig>(CORE_CONFIG);\r\n const authService = inject(AuthService);\r\n\r\n if (!authService.isLoggedIn()) {\r\n window.location.href = appConfig.loginUrl;\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n","import { inject } from \"@angular/core\";\r\nimport { CanActivateFn, Router } from \"@angular/router\";\r\nimport { PermissionsService } from \"../services\";\r\nimport { RoutePermissionsInfo } from \"../interfaces\";\r\n\r\nexport const permissionsGuard: CanActivateFn = (route) => {\r\n const permissionsService = inject(PermissionsService);\r\n const router = inject(Router);\r\n const { key, action }: RoutePermissionsInfo = route.data[\"permissions\"];\r\n\r\n if (!route.data[\"permissions\"] || (route.data[\"permissions\"] && permissionsService.routeGuardChecker(key, action))) {\r\n return true;\r\n } else {\r\n router.navigate([\"no-access\"]);\r\n return false;\r\n }\r\n};\r\n","export enum UserPermissionsEnum {\r\n BOD = \"BOD\",\r\n BOARD_COMMITTEES = \"BOARD_COMMITTEES\",\r\n BOARD_MEETINGS = \"BOARD_MEETINGS\",\r\n MEETING_INSIDE_THE_BOD = \"MEETING_INSIDE_THE_BOD\",\r\n COMMITTEE = \"COMMITTEE\",\r\n MEETING_INSIDE_THE_COMMITTEE = \"MEETING_INSIDE_THE_COMMITTEE\",\r\n MEETING = \"MEETING\",\r\n DECISION = \"DECISION\",\r\n RECOMMENDATION = \"RECOMMENDATION\",\r\n TASK = \"TASK\",\r\n VOTING = \"VOTING\",\r\n VOTING_SECRETARY_RESULTS = \"VOTING_SECRETARY_RESULTS\",\r\n VOTING_RESULTS = \"VOTING_RESULTS\",\r\n DRAFT_MOM = \"DRAFT_MOM\",\r\n FINAL_MOM = \"FINAL_MOM\",\r\n MOM = \"MOM\",\r\n AGENDA = \"AGENDA\",\r\n ATTENDEES = \"ATTENDEES\",\r\n COMMENT = \"COMMENT\"\r\n}\r\n\r\nexport enum PermissionsActions {\r\n VIEW = \"VIEW\",\r\n CREATE = \"CREATE\",\r\n EDIT = \"EDIT\",\r\n DELETE = \"DELETE\",\r\n REORDER = \"REORDER\",\r\n DOWNLOAD = \"DOWNLOAD\",\r\n MARK = \"MARK\",\r\n GENERATE = \"GENERATE\",\r\n TERMINATE = \"TERMINATE\",\r\n START = \"START\",\r\n END = \"END\",\r\n ACTIVATE = \"ACTIVATE\"\r\n}\r\n","export enum DateFormatter {\r\n FULL_DATE_TIME = \"dd MMM yyyy - hh:mm a\",\r\n DATE_TIME_ZONE = \"yyyy-MM-dd'T'HH:mm:ssxxx\",\r\n DATE_UTC = \"yyyy-MM-dd'T'HH:mm:ss'Z'\",\r\n dd_MM_yyyy = \"dd-MM-yyyy\",\r\n yyyy_MM_dd = \"yyyy-MM-dd\",\r\n MMM_dd_yyyy = \"MMM dd ,yyyy\",\r\n MM_D_yyy = \"MM dd ,yyy\",\r\n MMM_D_YYY_Time = \"MMM dd ,YYYY - hh:mm a\",\r\n MMM_d_y_Time = \"MMM d, y, h:mm a\",\r\n d_MM_y = \"d MMM y\",\r\n MMM_D_Y = \"MMM d, y\",\r\n DD_MM = \"dd MMM\",\r\n DATE_PICKER = \"dd/MM/yyyy\",\r\n DATE_FULL_YEAR = \"yyyy\"\r\n}\r\n","export enum DisplayTypesEnum {\r\n WEB_ONLY = \"webOnly\",\r\n MOBILE_ONLY = \"mobileOnly\"\r\n}\r\n","export enum Language {\r\n AR = \"ar\",\r\n EN = \"en\"\r\n}\r\n\r\nexport enum AppDirection {\r\n RTL = \"rtl\",\r\n LTR = \"ltr\"\r\n}\r\n","import {\r\n Directive,\r\n Input,\r\n OnDestroy,\r\n OnInit,\r\n TemplateRef,\r\n ViewContainerRef,\r\n} from '@angular/core';\r\nimport { PermissionsService } from '../services';\r\nimport { PermissionsActions, UserPermissionsEnum } from '../enums';\r\nimport { Subscription } from 'rxjs';\r\n\r\n@Directive({\r\n selector: '[hasPermissions]',\r\n standalone: true\r\n})\r\nexport class HasPermissionsDirective implements OnInit, OnDestroy {\r\n private _actions: string[];\r\n private _key: string;\r\n private _newPermissions: string[];\r\n private _isDomain: boolean;\r\n\r\n private isViewCreated = false;\r\n private subscription: Subscription;\r\n\r\n constructor(\r\n private permissionsService: PermissionsService,\r\n private viewContainer: ViewContainerRef,\r\n private templateRef: TemplateRef<unknown>\r\n ) {}\r\n\r\n /**\r\n * make sure that the key value looks like the UserPermissionsEnum enum\r\n * usage: *permissions=\"[PermissionsActions.EDIT]; key: LOOKUPS\r\n */\r\n\r\n @Input({ required: true }) set hasPermissions(actions: string[]) {\r\n if (this.arraysChanged(this._actions, actions)) {\r\n this._actions = actions;\r\n this.updateView();\r\n }\r\n }\r\n\r\n @Input({ required: true }) set hasPermissionsKey(key: string) {\r\n if (this._key !== key) {\r\n this._key = key;\r\n this.updateView();\r\n }\r\n }\r\n\r\n @Input() set hasPermissionsNewPermissions(newPermissions: string[]) {\r\n if (this.arraysChanged(this._newPermissions, newPermissions)) {\r\n this._newPermissions = newPermissions;\r\n this.updateView();\r\n }\r\n }\r\n\r\n @Input() set hasPermissionsIsDomain(isDomain: boolean) {\r\n if (this._isDomain !== isDomain) {\r\n this._isDomain = isDomain;\r\n this.updateView();\r\n }\r\n }\r\n\r\n ngOnInit(): void {\r\n this.subscription = this.permissionsService.domainPermissions$.subscribe(() => {\r\n if (this._isDomain) {\r\n this.updateView();\r\n }\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.subscription?.unsubscribe();\r\n }\r\n\r\n private updateView() {\r\n const canShow = this._actions.some(action => this.hasPermission(action));\r\n\r\n if (canShow && !this.isViewCreated) {\r\n this.viewContainer.createEmbeddedView(this.templateRef);\r\n this.isViewCreated = true;\r\n } else if (!canShow && this.isViewCreated) {\r\n this.clearView();\r\n }\r\n }\r\n\r\n private hasPermission(action: string): boolean {\r\n if (this._isDomain) {\r\n return this.permissionsService.checkDomainHasPermission(\r\n this._key as UserPermissionsEnum,\r\n action as PermissionsActions\r\n );\r\n }\r\n\r\n return this.permissionsService.checkKeyHasPermission(\r\n this._key as UserPermissionsEnum,\r\n action as PermissionsActions,\r\n this._newPermissions\r\n );\r\n }\r\n\r\n private clearView() {\r\n this.viewContainer.clear();\r\n this.isViewCreated = false;\r\n }\r\n\r\n private arraysChanged(a?: string[], b?: string[]): boolean {\r\n if (a === b) return false;\r\n if (!a || !b) return true;\r\n if (a.length !== b.length) return true;\r\n return a.some((v, i) => v !== b[i]);\r\n }\r\n}\r\n","import { Directive, Input, OnDestroy, OnInit, TemplateRef, ViewContainerRef } from \"@angular/core\";\r\nimport { Subscription } from \"rxjs\";\r\nimport { DetectDeviceService } from \"../services/detect-device.service\";\r\nimport { DisplayTypesEnum } from \"../enums/display-types.enum\";\r\n\r\n/*\r\n * Usage:\r\n * <div *responsiveElement=\"DisplayTypes.WEB_ONLY\">Web</div>\r\n * <div *responsiveElement=\"DisplayTypes.MOBILE_ONLY\">Mobile</div>\r\n * */\r\n\r\n@Directive({\r\n selector: \"[responsiveElement]\",\r\n standalone: true\r\n})\r\nexport class ResponsiveElementDirective implements OnInit, OnDestroy {\r\n @Input(\"responsiveElement\") displayFor: DisplayTypesEnum.WEB_ONLY | DisplayTypesEnum.MOBILE_ONLY;\r\n\r\n private resizeSubscription: Subscription = new Subscription();\r\n\r\n constructor(\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n private templateRef: TemplateRef<any>,\r\n private viewContainer: ViewContainerRef,\r\n private detectDeviceServiceService: DetectDeviceService\r\n ) {}\r\n\r\n ngOnInit() {\r\n this.resizeSubscription.add(this.detectDeviceServiceService.onResize$.subscribe(this.checkWidth.bind(this)));\r\n }\r\n\r\n ngOnDestroy() {\r\n this.resizeSubscription.unsubscribe();\r\n }\r\n\r\n private checkWidth() {\r\n const shouldDisplay =\r\n (this.displayFor === DisplayTypesEnum.WEB_ONLY && !this.detectDeviceServiceService.isMobile()) ||\r\n (this.displayFor === DisplayTypesEnum.MOBILE_ONLY && this.detectDeviceServiceService.isMobile());\r\n if (shouldDisplay) {\r\n this.viewContainer.length === 0 && this.viewContainer.createEmbeddedView(this.templateRef);\r\n } else {\r\n this.viewContainer.clear();\r\n }\r\n }\r\n}\r\n","// Important for global context\r\nimport { CookiesStorageKeys, LocalStorageKeys, SessionStorageKeys, StorageEnum } from \"./stortage\";\r\nimport { CookieService } from \"ngx-cookie-service\";\r\n\r\nconst setLocalStorage = (key: string, value: string) => localStorage.setItem(key, value);\r\nconst getLocalStorage = (key: string) => localStorage.getItem(key);\r\nconst clearLocalStorage = () => localStorage.clear();\r\nconst setSessionStorage = (key: string, value: string) => sessionStorage.setItem(key, value);\r\nconst getSessionStorage = (key: string) => sessionStorage.getItem(key);\r\nconst clearSessionStorage = () => sessionStorage.clear();\r\n\r\nexport class StorageHandler {\r\n private static cookieService: CookieService;\r\n\r\n public static init(cookieService: CookieService): void {\r\n this.cookieService = cookieService;\r\n }\r\n\r\n public static get cookies() {\r\n if (!this.cookieService) {\r\n throw new Error(\r\n \"CookieService is not initialized. Call StorageHandler.init(cookieService) first.\"\r\n );\r\n }\r\n\r\n return {\r\n set: (key: CookiesStorageKeys, value: string, expires?: number) =>\r\n this.cookieService.set(key, value, expires),\r\n get: (key: CookiesStorageKeys) => this.cookieService.get(key),\r\n clear: (key: CookiesStorageKeys) => this.cookieService.delete(key)\r\n };\r\n }\r\n\r\n public static local = {\r\n set: (key: LocalStorageKeys, value: unknown) => this.setItem(key, value, setLocalStorage),\r\n get: <T>(key: LocalStorageKeys) => this.getItem<T>(key, getLocalStorage),\r\n clear: () => this.clearStorage(clearLocalStorage)\r\n };\r\n public static session = {\r\n set: (key: SessionStorageKeys, value: unknown) => this.setItem(key, value, setSessionStorage),\r\n get: <T>(key: SessionStorageKeys) => this.getItem<T>(key, getSessionStorage),\r\n clear: () => this.clearStorage(clearSessionStorage)\r\n };\r\n\r\n private static setItem(key: StorageEnum, value: unknown, set: (key: string, value: string) => void): void {\r\n if (!key) return;\r\n set(key as string, typeof value === \"string\" ? value : JSON.stringify(value));\r\n }\r\n\r\n private static getItem<T>(key: StorageEnum, get: (key: string) => string | null, withParsing = false): T | null {\r\n const data: string | null = get(key as string) ?? null;\r\n if (data) return withParsing ? JSON.parse(data) as T : data as T;\r\n return null;\r\n }\r\n\r\n private static clearStorage(clear: () => void): void {\r\n clear();\r\n }\r\n}","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i2.AuthService","map","i1.LoaderService","i1.PermissionsService","i1.DetectDeviceService"],"mappings":"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"}
package/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  import * as rxjs from 'rxjs';
2
2
  import { Observable, BehaviorSubject, Subject } from 'rxjs';
3
3
  import * as i0 from '@angular/core';
4
- import { ErrorHandler, Injector, InjectionToken, OnInit, OnDestroy, ViewContainerRef, TemplateRef } from '@angular/core';
4
+ import { InjectionToken, ErrorHandler, Injector, OnInit, OnDestroy, ViewContainerRef, TemplateRef } from '@angular/core';
5
5
  import { JwtPayload } from 'jwt-decode';
6
6
  import { HttpHeaders, HttpParams, HttpContext, HttpEvent, HttpInterceptor, HttpRequest, HttpHandler, HttpErrorResponse, HttpContextToken } from '@angular/common/http';
7
7
  import { Params as Params$1, Route, CanActivateFn } from '@angular/router';
@@ -109,6 +109,7 @@ type HttpRequestOptions = {
109
109
  reportProgress?: boolean;
110
110
  observe?: 'events' | 'response';
111
111
  responseType?: string;
112
+ body?: any;
112
113
  };
113
114
  declare const HttpRequestOptionsKeys: Array<keyof Required<HttpRequestOptions>>;
114
115
  type HttpOptions<T = any> = HttpRequestOptions & {
@@ -158,17 +159,6 @@ declare class ListOfValues extends BaseHttpService {
158
159
  static ɵprov: i0.ɵɵInjectableDeclaration<ListOfValues>;
159
160
  }
160
161
 
161
- declare class ErrorHandlerService implements ErrorHandler {
162
- private injector;
163
- private translateService;
164
- constructor(injector: Injector, translateService: TranslateService);
165
- private get toasterService();
166
- handleError(error: unknown): void;
167
- private showError;
168
- static ɵfac: i0.ɵɵFactoryDeclaration<ErrorHandlerService, never>;
169
- static ɵprov: i0.ɵɵInjectableDeclaration<ErrorHandlerService>;
170
- }
171
-
172
162
  declare enum UserPermissionsEnum {
173
163
  BOD = "BOD",
174
164
  BOARD_COMMITTEES = "BOARD_COMMITTEES",
@@ -248,25 +238,6 @@ declare enum UploadStatus {
248
238
  FAILED = "failed"
249
239
  }
250
240
 
251
- declare class PermissionsService {
252
- private jwtDecoderService;
253
- private decodedToken;
254
- private tokenPermissions;
255
- private domainPermissionsSubject;
256
- domainPermissions$: rxjs.Observable<string[]>;
257
- private getKeyName;
258
- getActionName(action: string): string;
259
- getAllowedActionsByKey(key: UserPermissionsEnum, newPermissions?: string[]): string[];
260
- checkKeyHasPermission(key: UserPermissionsEnum, action: PermissionsActions, newPermissions?: string[]): boolean;
261
- checkDomainHasPermission(key: UserPermissionsEnum, action: PermissionsActions): boolean;
262
- routeGuardChecker(key: UserPermissionsEnum, action: PermissionsActions): boolean;
263
- clearDomainPermissions(): void;
264
- setDomainPermissions(permissions: string[]): void;
265
- getDomainPermissions(): string[];
266
- static ɵfac: i0.ɵɵFactoryDeclaration<PermissionsService, never>;
267
- static ɵprov: i0.ɵɵInjectableDeclaration<PermissionsService>;
268
- }
269
-
270
241
  interface RouteData {
271
242
  breadcrumb?: ((data: RouteData) => string) | string;
272
243
  showBreadcrumb?: boolean;
@@ -333,6 +304,37 @@ declare class AuthService extends BaseHttpService {
333
304
  static ɵprov: i0.ɵɵInjectableDeclaration<AuthService>;
334
305
  }
335
306
 
307
+ declare class ErrorHandlerService implements ErrorHandler {
308
+ private injector;
309
+ private translateService;
310
+ private authService;
311
+ constructor(injector: Injector, translateService: TranslateService, authService: AuthService);
312
+ private get toasterService();
313
+ handleError(error: unknown): void;
314
+ private showError;
315
+ static ɵfac: i0.ɵɵFactoryDeclaration<ErrorHandlerService, never>;
316
+ static ɵprov: i0.ɵɵInjectableDeclaration<ErrorHandlerService>;
317
+ }
318
+
319
+ declare class PermissionsService {
320
+ private jwtDecoderService;
321
+ private decodedToken;
322
+ private tokenPermissions;
323
+ private domainPermissionsSubject;
324
+ domainPermissions$: rxjs.Observable<string[]>;
325
+ private getKeyName;
326
+ getActionName(action: string): string;
327
+ getAllowedActionsByKey(key: UserPermissionsEnum, newPermissions?: string[]): string[];
328
+ checkKeyHasPermission(key: UserPermissionsEnum, action: PermissionsActions, newPermissions?: string[]): boolean;
329
+ checkDomainHasPermission(key: UserPermissionsEnum, action: PermissionsActions): boolean;
330
+ routeGuardChecker(key: UserPermissionsEnum, action: PermissionsActions): boolean;
331
+ clearDomainPermissions(): void;
332
+ setDomainPermissions(permissions: string[]): void;
333
+ getDomainPermissions(): string[];
334
+ static ɵfac: i0.ɵɵFactoryDeclaration<PermissionsService, never>;
335
+ static ɵprov: i0.ɵɵInjectableDeclaration<PermissionsService>;
336
+ }
337
+
336
338
  interface LoaderState {
337
339
  show: boolean;
338
340
  isSystemLoader?: boolean;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@corp-products/app-core",
3
- "version": "3.3.4",
3
+ "version": "3.3.5",
4
4
  "author": "shireen Omar",
5
5
  "description": "shared core services across our apps",
6
6
  "peerDependencies": {