@corp-products/app-core 3.2.6 → 3.2.8
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.
|
@@ -653,6 +653,65 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
|
|
|
653
653
|
args: [{ providedIn: 'root' }]
|
|
654
654
|
}] });
|
|
655
655
|
|
|
656
|
+
const API_URLS = {
|
|
657
|
+
UPLOAD_FILE: 'attachment',
|
|
658
|
+
DOWNLOAD_FILE: (id) => `attachment/${id}`,
|
|
659
|
+
};
|
|
660
|
+
class AppFilesService extends BaseHttpService {
|
|
661
|
+
authService = inject(AuthService);
|
|
662
|
+
setApiConfig() {
|
|
663
|
+
return {
|
|
664
|
+
microServiceUrl: API_URLS.UPLOAD_FILE,
|
|
665
|
+
};
|
|
666
|
+
}
|
|
667
|
+
download(url, fileName) {
|
|
668
|
+
return this.getAll({ urlRewrite: url, responseType: 'blob' }).pipe(tap((blob) => {
|
|
669
|
+
const objectURL = URL.createObjectURL(blob);
|
|
670
|
+
const anchorTag = document.createElement('a');
|
|
671
|
+
anchorTag.href = objectURL;
|
|
672
|
+
anchorTag.download = fileName;
|
|
673
|
+
document.body.appendChild(anchorTag);
|
|
674
|
+
anchorTag.click();
|
|
675
|
+
document.body.removeChild(anchorTag);
|
|
676
|
+
}));
|
|
677
|
+
}
|
|
678
|
+
uploadFile(formData) {
|
|
679
|
+
return this.add(formData, {
|
|
680
|
+
context: HttpContextHandler.setLoaderType(false),
|
|
681
|
+
reportProgress: true,
|
|
682
|
+
observe: 'events',
|
|
683
|
+
});
|
|
684
|
+
}
|
|
685
|
+
export(exportFilter, urlRewrite, fileName, type = 'pdf') {
|
|
686
|
+
return this.getAll({
|
|
687
|
+
urlRewrite,
|
|
688
|
+
params: exportFilter,
|
|
689
|
+
responseType: 'blob',
|
|
690
|
+
}).pipe(tap((response) => {
|
|
691
|
+
const blob = new Blob([response], { type: `application/${type}` });
|
|
692
|
+
const link = document.createElement('a');
|
|
693
|
+
link.href = window.URL.createObjectURL(blob);
|
|
694
|
+
link.download = fileName;
|
|
695
|
+
link.click();
|
|
696
|
+
}));
|
|
697
|
+
}
|
|
698
|
+
downloadFile(fileData) {
|
|
699
|
+
const blob = new Blob([fileData.content], { type: fileData.type });
|
|
700
|
+
const link = document.createElement('a');
|
|
701
|
+
link.href = window.URL.createObjectURL(blob);
|
|
702
|
+
link.download = fileData.fileName;
|
|
703
|
+
link.click();
|
|
704
|
+
}
|
|
705
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AppFilesService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
706
|
+
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AppFilesService, providedIn: 'root' });
|
|
707
|
+
}
|
|
708
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: AppFilesService, decorators: [{
|
|
709
|
+
type: Injectable,
|
|
710
|
+
args: [{
|
|
711
|
+
providedIn: 'root',
|
|
712
|
+
}]
|
|
713
|
+
}] });
|
|
714
|
+
|
|
656
715
|
class GlobalLoaderComponent {
|
|
657
716
|
loaderService;
|
|
658
717
|
color;
|
|
@@ -967,5 +1026,5 @@ class StorageHandler {
|
|
|
967
1026
|
* Generated bundle index. Do not edit.
|
|
968
1027
|
*/
|
|
969
1028
|
|
|
970
|
-
export { APP_ERROR_HANDLER, APP_HTTP_CONFIG, AppDirection, AuthService, BaseHttpService, BasePaginationService, COMMON_BASE_URL, CORE_CONFIG, CookiesStorageKeys, DateFormatter, DetectDeviceService, DisplayTypesEnum, ErrorCode, ErrorHandlerService, GlobalHttpErrorInterceptor, GlobalLoaderComponent, HasPermissionsDirective, HttpBaseInterceptor, HttpContextHandler, HttpRequestOptionsKeys, IS_SYSTEM_LOADER, JwtDecoderService, Language, ListOfValues, LoaderService, LocalStorageKeys, PAGESIZE, PAGE_SIZE_OPTION, PermissionsActions, PermissionsService, REQUEST_MODIFIER, ResponsiveElementDirective, SessionStorageKeys, SortDirection, StorageHandler, StorageService, TOASTER_SERVICE, USE_API_PREFIX, UserPermissionsEnum, authGuard, epmDefaultMapper, extractRequestOptions, mapResponse, permissionsGuard, resolveUrl };
|
|
1029
|
+
export { API_URLS, APP_ERROR_HANDLER, APP_HTTP_CONFIG, AppDirection, AppFilesService, AuthService, BaseHttpService, BasePaginationService, COMMON_BASE_URL, CORE_CONFIG, CookiesStorageKeys, DateFormatter, DetectDeviceService, DisplayTypesEnum, ErrorCode, ErrorHandlerService, GlobalHttpErrorInterceptor, GlobalLoaderComponent, HasPermissionsDirective, HttpBaseInterceptor, HttpContextHandler, HttpRequestOptionsKeys, IS_SYSTEM_LOADER, JwtDecoderService, Language, ListOfValues, LoaderService, LocalStorageKeys, PAGESIZE, PAGE_SIZE_OPTION, PermissionsActions, PermissionsService, REQUEST_MODIFIER, ResponsiveElementDirective, SessionStorageKeys, SortDirection, StorageHandler, StorageService, TOASTER_SERVICE, USE_API_PREFIX, UserPermissionsEnum, authGuard, epmDefaultMapper, extractRequestOptions, mapResponse, permissionsGuard, resolveUrl };
|
|
971
1030
|
//# sourceMappingURL=corp-products-app-core.mjs.map
|
|
@@ -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/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';\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 { 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":["i1.LoaderService","i1.PermissionsService","i1.DetectDeviceService"],"mappings":";;;;;;;;;;;;AAAO,MAAM,QAAQ,GAAG;AACjB,MAAM,gBAAgB,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAClC;AAAZ,CAAA,UAAY,aAAa,EAAA;AACrB,IAAA,aAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,aAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACjB,CAAC,EAHW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;;MCCH,qBAAqB,CAAA;IACzC,YAAY,GAAG,CAAC;IAChB,UAAU,GAAG,CAAC;IACd,UAAU,GAAW,QAAQ;IAE7B,SAAS,GAAG,gBAAgB;IAC5B,gBAAgB,GAAG,WAAW;AAC9B,IAAA,oBAAoB,GAAG,aAAa,CAAC,IAAI;IACzC,KAAK,GAAuB,CAAC;AAE7B,IAAA,WAAW,GAAgB;AACzB,QAAA,WAAW,EAAE,EAAE;QACf,SAAS,EAAE,IAAI,CAAC,UAAU;AAC1B,QAAA,IAAI,EAAE,CAAC;QACP,SAAS,EAAE,IAAI,CAAC,oBAAoB;QACpC,MAAM,EAAE,IAAI,CAAC,gBAAgB;KAC9B;AAID,IAAA,gBAAgB,CAAC,OAAmC,EAAA;QAClD,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,IAAI,CAAC,WAAW;AACnB,YAAA,GAAG,OAAO;SACX;IACH;IAEA,SAAS,GAAA;QACP,IAAI,CAAC,WAAW,GAAG;AACjB,YAAA,WAAW,EAAE,EAAE;YACf,SAAS,EAAE,IAAI,CAAC,UAAU;AAC1B,YAAA,IAAI,EAAE,CAAC;SACR;IACH;IAEA,cAAc,GAAA;QACZ,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,IAAI,CAAC,WAAW;YACnB,SAAS,EAAE,IAAI,CAAC,UAAU;AAC1B,YAAA,IAAI,EAAE,CAAC;SACR;IACH;AAEA,IAAA,YAAY,CAAC,KAAU,EAAA;QACrB,IAAI,CAAC,WAAW,GAAG;YACjB,GAAG,IAAI,CAAC,WAAW;YACnB,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,SAAS,EAAE,KAAK,CAAC,IAAI;SACtB;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,KAAK,IAAI,CAAC;AAC7B,QAAA,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC;IAChC;AACD;;ICvDW;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,gBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACjB,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;IAKhB;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAAE,CAAC,EAArB,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;IAGlB;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,kBAAA,CAAA,eAAA,CAAA,GAAA,eAA+B;AACjC,CAAC,EAJW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;;MCGjB,WAAW,GAAG,IAAI,cAAc,CAAa,YAAY;MASzD,eAAe,GAAG,IAAI,cAAc,CAAmB,gBAAgB;;ACI7E,MAAM,sBAAsB,GACjC,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,EAAE,gBAAgB,EAAE,SAAS,EAAE,cAAc;;ACrBvE,MAAM,UAAU,GAAG,CAAC,OAAe,EAAE,OAAqB,EAAE,GAAG,IAAc,KAAY;IAC9F,MAAM,EAAE,UAAU,EAAE,UAAU,EAAE,GAAG,OAAO,IAAI,EAAE;IAEhD,IAAI,UAAU,EAAE;AACd,QAAA,OAAO,UAAU;IACnB;IAEA,IAAI,MAAM,GAAG,OAAO;AAEpB,IAAA,IAAI,IAAI,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,EAAE,EAAE;QAC7C,MAAM,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAA,CAAE;IAChC;IAEA,IAAI,UAAU,EAAE;AACd,QAAA,MAAM,IAAI,CAAA,CAAA,EAAI,UAAU,CAAA,CAAE;IAC5B;AAEA,IAAA,OAAO,MAAM;AACf;AAEO,MAAM,qBAAqB,GAAG,CAAC,OAAa,KAAI;IACrD,IAAI,CAAC,OAAO,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE;AAC3C,QAAA,OAAO,EAAE;IACX;;IAEA,OAAO,sBAAsB,CAAC,MAAM,CAAC,CAAC,cAAmB,EAAE,GAAG,KAAI;AAChE,QAAA,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,CAAC;AAE1B,QAAA,IAAI,KAAK,KAAK,SAAS,EAAE;AACvB,YAAA,cAAc,CAAC,GAAG,CAAC,GAAG,KAAK;QAC7B;AAEA,QAAA,OAAO,cAAc;IACvB,CAAC,EAAE,EAAE,CAAC;AACR;AAEO,MAAM,WAAW,GAAG,CAAI,OAAqB,KAAK,GAAG,CAAC,CAAC,GAAM,MAAM,OAAO,EAAE,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC;AAE7G,MAAM,gBAAgB,GAAG,CAAI,GAAwB,KAAK,GAAG,CAAC;;MCpC/C,eAAe,CAAA;AAClB,IAAA,IAAI,GAAe,MAAM,CAAC,UAAU,CAAC;AAEtD,IAAA,IAAI,GAAG,GAAA;QACL,MAAM,EAAE,MAAM,EAAC,eAAe,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;AACtD,QAAA,OAAO,CAAA,EAAG,eAAe,CAAA,EAAG,MAAM,GAAG,CAAA,CAAA,EAAI,MAAM,EAAE,GAAG,EAAE,EAAE;IAC1D;AAEA,IAAA,IAAI,aAAa,GAAA;QACf,MAAM,EAAE,OAAO,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;AACvC,QAAA,OAAO,OAAO;IAChB;AAEA,IAAA,IAAI,WAAW,GAAA;QACb,MAAM,EAAE,WAAW,EAAE,GAAG,IAAI,CAAC,YAAY,EAAE;QAC3C,OAAO,WAAW,IAAI,gBAAgB;IACxC;IAIA,MAAM,CAAI,EAAmB,EAAE,OAAqB,EAAA;QAClD,MAAM,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;AAC/D,QAAA,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC/D,QAAA,MAAM,cAAc,GAAG,qBAAqB,CAAC,aAAa,CAAC;QAE3D,OAAO,IAAI,CAAC;AACT,aAAA,GAAG,CAAI,GAAG,EAAE,cAAc;aAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD;AAEA,IAAA,MAAM,CAAI,OAAqB,EAAA;QAC7B,MAAM,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;QAC/D,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC;AAC/C,QAAA,MAAM,cAAc,GAAG,qBAAqB,CAAC,aAAa,CAAC;QAE3D,OAAO,IAAI,CAAC;AACT,aAAA,GAAG,CAAI,GAAG,EAAE,cAAc;aAC1B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD;IAEA,GAAG,CAAI,IAAa,EAAE,OAAqB,EAAA;QACzC,MAAM,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC;QAC5D,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC;QAC/C,MAAM,cAAc,GAAG,EAAE,GAAG,qBAAqB,CAAC,aAAa,CAAC,EAAE;QAElE,OAAO,IAAI,CAAC;AACT,aAAA,IAAI,CAAI,GAAG,EAAE,IAAI,EAAE,cAAc;aACjC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD;AAEA,IAAA,MAAM,CACJ,EAA+B,EAC/B,IAAa,EACb,OAAqB,EAAA;QAErB,MAAM,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;AAC/D,QAAA,MAAM,GAAG,GAAG,EAAE,GAAE,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,CAAC;QACzG,MAAM,cAAc,GAAG,EAAE,GAAG,qBAAqB,CAAC,aAAa,CAAC,EAAE;QAElE,OAAO,IAAI,CAAC;AACT,aAAA,GAAG,CAAI,GAAG,EAAE,IAAI,EAAE,cAAc;aAChC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD;IAEA,MAAM,CAAI,EAAmB,EAAE,OAAqB,EAAA;QAClD,MAAM,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC;AAC/D,QAAA,MAAM,GAAG,GAAG,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,aAAa,EAAE,EAAE,EAAE,QAAQ,EAAE,CAAC;AAC/D,QAAA,MAAM,cAAc,GAAG,qBAAqB,CAAC,aAAa,CAAC;QAE3D,OAAO,IAAI,CAAC;AACT,aAAA,MAAM,CAAI,GAAG,EAAE,cAAc;aAC7B,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,CAAC,CAAC;IACrD;AAEU,IAAA,eAAe,CAAC,MAA2B,EAAA;AACnD,QAAA,OAAO,IAAI,CAAC,aAAa,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,SAAS;IACpE;AAEU,IAAA,SAAS,CAAC,OAAqB,EAAA;AACvC,QAAA,MAAM,YAAY,GAAG;AACnB,YAAA,OAAO,EAAE,EAAE,KAAK,EAAE,gBAAgB,EAAE;AACpC,YAAA,MAAM,EAAE,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,EAAE;SACpC;AAED,QAAA,IACE,OAAO;aACN,OAAO,EAAE,cAAc,IAAI,OAAO,EAAE,YAAY,KAAK,MAAM,CAAC,EAC7D;YACA,OAAO,EAAE,KAAK,EAAE,CAAC,GAAY,KAAK,GAAG,EAAE;QACzC;AAEA,QAAA,IAAI,OAAO,IAAI,OAAO,EAAE,KAAK,EAAE;AAC7B,YAAA,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE;QACjC;AAEA,QAAA,MAAM,kBAAkB,GACtB,IAAI,CAAC,WAAW,IAAI,OAAO,IAAI,CAAC,WAAW,KAAK,UAAU;AAC5D,QAAA,OAAO,kBAAkB,GAAG,YAAY,CAAC,MAAM,GAAG,YAAY,CAAC,OAAO;IACxE;AACD;;AC/FK,MAAO,WAAY,SAAQ,eAAe,CAAA;AAIH,IAAA,SAAA;AAHpC,IAAA,eAAe,GAAG,IAAI,eAAe,CAAU,KAAK,CAAC;AACpD,IAAA,cAAc,GAAG,MAAM,CAAC,cAAc,CAAC;AAE/C,IAAA,WAAA,CAA2C,SAAqB,EAAA;AAC9D,QAAA,KAAK,EAAE;QADkC,IAAA,CAAA,SAAS,GAAT,SAAS;QAElD,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;IAC9C;IACS,YAAY,GAAA;QACnB,OAAO;AACL,YAAA,MAAM,EAAE,EAAE;AACV,YAAA,eAAe,EAAE,EAAE;SACpB;IACH;IAEA,kBAAkB,GAAA;AAChB,QAAA,MAAM,KAAK,GAAkB,IAAI,eAAe,CAAC,MAAM,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC;QACrF,IAAI,KAAK,EAAE;AACT,YAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC7B,YAAA,MAAM,CAAC,QAAQ,CAAC,MAAM,GAAG,EAAE;QAC7B;IACF;AAEA,IAAA,iBAAiB,CAAC,KAAa,EAAA;AAC7B,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,CAAC;AAC/B,QAAA,IAAI,CAAC,YAAY,CAAC,KAAK,CAAC;IAC1B;IAEA,UAAU,GAAA;AACR,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,YAAY,EAAE;IAC9B;IAEA,YAAY,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,kBAAkB,CAAC,aAAa,CAAC;IAC1E;AAEA,IAAA,YAAY,CAAC,KAAc,EAAA;AACzB,QAAA,OAAO,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,KAAK,EAAE,KAAK,CAAC;IACrE;IAEA,aAAa,GAAA;AACX,QAAA,MAAM,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC,cAAc;AAC/C,QAAA,OAAO,IAAI,CAAC,MAAM,CAAU,EAAE,EAAE;AAC9B,YAAA,UAAU,EAAE,SAAS;AACtB,SAAA,CAAC;IACJ;IAEA,SAAS,GAAA;AACP,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,KAAK,EAAE;AACjC,QAAA,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,EAAE;QACnC,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC,aAAa,CAAC;AACnE,QAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,KAAK,CAAC;QAChC,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,QAAQ;IAChD;AArDW,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,kBAIF,WAAW,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAJpB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,WAAW,cAFV,MAAM,EAAA,CAAA;;2FAEP,WAAW,EAAA,UAAA,EAAA,CAAA;kBAHvB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE,MAAM;AACnB,iBAAA;;0BAKc,MAAM;2BAAC,WAAW;;;MCLpB,iBAAiB,CAAA;AACpB,IAAA,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;IAClC,YAAY,GAAsB,IAAI;AAE7C,IAAA,WAAA,GAAA,EAAe;IAER,WAAW,GAAA;QAChB,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,YAAY,EAAE;AAC7C,QAAA,IAAI,CAAC,KAAK;AAAE,YAAA,OAAO,IAAI;AAEvB,QAAA,IAAI;AACF,YAAA,IAAI,CAAC,YAAY,GAAG,SAAS,CAAa,KAAK,CAAC;YAChD,OAAO,IAAI,CAAC,YAAY;QAC1B;QAAE,OAAO,GAAG,EAAE;AACZ,YAAA,OAAO,CAAC,KAAK,CAAC,yBAAyB,EAAE,GAAG,CAAC;AAC7C,YAAA,OAAO,IAAI;QACb;IACF;uGAjBW,iBAAiB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAjB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,iBAAiB,cAFhB,MAAM,EAAA,CAAA;;2FAEP,iBAAiB,EAAA,UAAA,EAAA,CAAA;kBAH7B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;ACRM,MAAM,eAAe,GAAG;AACxB,MAAM,eAAe,GAAG;AAC7B,IAAA,cAAc,EAAE,sBAAsB;AACtC,IAAA,gBAAgB,EAAE,wBAAwB;IAC1C,cAAc,EAAE,eAAe,GAAG,cAAc;IAChD,YAAY,EAAE,eAAe,GAAG,MAAM;IACtC,mBAAmB,EAAE,eAAe,GAAG;;;ACJlC,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAU,MAAM,IAAI,EAAE;AACnE,MAAM,cAAc,GAAG,IAAI,gBAAgB,CAAU,MAAM,IAAI,EAAE;MAE3D,kBAAkB,CAAA;IAC7B,OAAO,aAAa,CAAC,cAAuB,EAAA;QAC1C,OAAO,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,gBAAgB,EAAE,cAAc,CAAC;IAChE;IAEA,OAAO,YAAY,CAAC,cAAuB,EAAA;QACzC,OAAO,IAAI,WAAW,EAAE,CAAC,GAAG,CAAC,cAAc,EAAE,cAAc,CAAC;IAC9D;AACD;;MCFY,aAAa,CAAA;IACxB,UAAU,GAAG,IAAI,eAAe,CAAc,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;AACtD,IAAA,UAAU,GAAyB,IAAI,GAAG,EAAmB;AAErE,IAAA,UAAU,CAAC,OAAgB,EAAE,cAAc,GAAG,IAAI,EAAE,GAAW,EAAA;QAC7D,IAAI,CAAC,GAAG,EAAE;AACR,YAAA,MAAM,IAAI,KAAK,CAAC,2EAA2E,CAAC;QAC9F;QAEA,IAAI,OAAO,EAAE;YACX,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,OAAO,CAAC;AACjC,YAAA,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC;QACtD;AAAO,aAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;AAC/C,YAAA,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC;QAC7B;AAEA,QAAA,IAAI,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,EAAE;YACzB,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC;QACvC;IACF;uGAnBW,aAAa,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAb,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,aAAa,cAFZ,MAAM,EAAA,CAAA;;2FAEP,aAAa,EAAA,UAAA,EAAA,CAAA;kBAHzB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCLY,gBAAgB,GAAG,IAAI,cAAc,CAAkB,kBAAkB;;MCHzE,iBAAiB,GAAG,IAAI,cAAc,CACjD,mBAAmB,EACnB;AACE,IAAA,OAAO,EAAE,MAAM,CAAC,KAAU,KAAI;AAC5B,QAAA,OAAO,CAAC,IAAI,CAAC,+BAA+B,EAAE,KAAK,CAAC;IACtD,CAAC;AACF,CAAA;;ICRS;AAAZ,CAAA,UAAY,SAAS,EAAA;AACnB,IAAA,SAAA,CAAA,aAAA,CAAA,GAAA,aAA2B;AAC3B,IAAA,SAAA,CAAA,cAAA,CAAA,GAAA,cAA6B;AAC/B,CAAC,EAHW,SAAS,KAAT,SAAS,GAAA,EAAA,CAAA,CAAA;;MCyBR,mBAAmB,CAAA;AAMG,IAAA,SAAA;AAErB,IAAA,eAAA;AAEF,IAAA,eAAA;IATV,oBAAoB,GAAG,KAAK;IAC5B,eAAe,GAAmD,EAAE;AACpE,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAErC,IAAA,WAAA,CACiC,SAAqB,EAE1C,eAA4D,EAE9D,eAAgD,EAAA;QAJzB,IAAA,CAAA,SAAS,GAAT,SAAS;QAE9B,IAAA,CAAA,eAAe,GAAf,eAAe;QAEjB,IAAA,CAAA,eAAe,GAAf,eAAe;IACrB;IAEJ,SAAS,CACP,OAA6B,EAC7B,IAAiB,EAAA;AAEjB,QAAA,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC;QAEvC,MAAM,sBAAsB,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,gBAAgB,CAAC;AACpE,QAAA,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,IAAI,EAAE,sBAAsB,EAAE,OAAO,CAAC,GAAG,CAAC;AAExE,QAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,UAAU,CAAC,CAAC,GAAsB,KAAI;AACpC,YAAA,IAAI,GAAG,EAAE,KAAK,EAAE,MAAM,EAAE,SAAS,KAAK,SAAS,CAAC,WAAW,EAAE;AAC3D,gBAAA,IAAI,CAAC,eAAe,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;YACnD;AACA,YAAA,IAAI,CAAC,IAAI,CAAC,oBAAoB,EAAE;AAC9B,gBAAA,IAAI,CAAC,oBAAoB,GAAG,IAAI;gBAChC,IAAI,CAAC,IAAI,CAAC,eAAe;AAAE,oBAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;AACvD,gBAAA,OAAO,IAAI,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,IAAI,CACnC,SAAS,CAAC,CAAC,WAAoB,KAAI;oBACjC,IAAI,WAAW,EAAE;AACf,wBAAA,IAAI,CAAC,oBAAoB,GAAG,KAAK;wBACjC,MAAM,MAAM,GAAG,CAAC,GAAG,IAAI,CAAC,eAAe,CAAC;AACxC,wBAAA,IAAI,CAAC,eAAe,GAAG,EAAE;AACzB,wBAAA,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE;4BACrB,OAAO,IAAI,CAAC,MAAM,CAAC,CAAC,IAAI,CACtB,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CACtC;wBACH;oBACF;AACA,oBAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;gBAC9B,CAAC,CAAC,CACH;YACH;AACA,YAAA,OAAO,UAAU,CAAC,MAAM,GAAG,CAAC;QAC9B,CAAC,CAAC,EACF,QAAQ,CAAC,MACP,IAAI,CAAC,aAAa,CAAC,UAAU,CAAC,KAAK,EAAE,sBAAsB,EAAE,OAAO,CAAC,GAAG,CAAC,CAC1E,CACF;IACH;AApDW,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,kBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAMpB,WAAW,EAAA,EAAA,EAAA,KAAA,EACX,gBAAgB,aAEhB,iBAAiB,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;2GAThB,mBAAmB,EAAA,CAAA;;2FAAnB,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAD/B;;0BAOI,MAAM;2BAAC,WAAW;;0BAClB,MAAM;2BAAC,gBAAgB;;0BAEvB,MAAM;2BAAC,iBAAiB;;;MC/BhB,0BAA0B,CAAA;;AAErC,IAAA,WAAW,CAAC,KAAwB,EAAA;AAClC,QAAA,IAAI,KAAK,CAAC,MAAM,IAAI,GAAG,EAAE;AACvB,YAAA,OAAO,KAAK,CAAC,IAAI,CAAC;QACpB;AACA,QAAA,MAAM,KAAK;IACb;IAEA,SAAS,CAAC,OAA6B,EAAE,IAAiB,EAAA;QACxD,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAC9B,KAAK,CAAC;AACJ,YAAA,KAAK,EAAE,CAAC;YACR,KAAK,EAAE,IAAI,CAAC;AACb,SAAA,CAAC,CACH;IACH;AACD;;ACZK,MAAO,YAAa,SAAQ,eAAe,CAAA;IACtC,YAAY,GAAA;QACnB,OAAO;YACL,eAAe,EAAE,eAAe,CAAC,YAAY;AAC7C,YAAA,MAAM,EAAE;SACT;IACH;AAEA,IAAA,eAAe,CAAI,KAAa,EAAA;QAC9B,OAAO,IAAI,CAAC,MAAM,CAAI;AACpB,YAAA,UAAU,EAAE;AACb,SAAA,CAAC;IACJ;uGAZW,YAAY,EAAA,IAAA,EAAA,IAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAZ,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,YAAY,cAFX,MAAM,EAAA,CAAA;;2FAEP,YAAY,EAAA,UAAA,EAAA,CAAA;kBAHxB,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCCY,mBAAmB,CAAA;AAEpB,IAAA,QAAA;AACA,IAAA,gBAAA;IAFV,WAAA,CACU,QAAkB,EAClB,gBAAkC,EAAA;QADlC,IAAA,CAAA,QAAQ,GAAR,QAAQ;QACR,IAAA,CAAA,gBAAgB,GAAhB,gBAAgB;IACvB;AAEH,IAAA,IAAY,cAAc,GAAA;QACxB,OAAO,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAmB,eAAe,CAAC;IAC7D;AAEA,IAAA,WAAW,CAAC,KAAc,EAAA;AACxB,QAAA,OAAO,CAAC,GAAG,CAAC,sBAAsB,EAAE,KAAK,CAAC;QAC1C,IAAI,KAAK,YAAY,KAAK,IAAI,EAAE,KAAK,YAAY,iBAAiB,CAAC,EAAE;AACnE,YAAA,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC;YACpB;QACF;AAEA,QAAA,IAAI,KAAK,YAAY,iBAAiB,EAAE;AACtC,YAAA,OAAO,CAAC,KAAK,CAAC,aAAa,EAAE,KAAK,CAAC;AAEnC,YAAA,QAAQ,KAAK,EAAE,MAAM;AACnB,gBAAA,KAAK,GAAG;AACL,oBAAA,IAAI,CAAC,SAAS,CAAC,CAAA,MAAA,EAAS,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAA,CAAE,CAAC;oBACvD;AACH,gBAAA,KAAK,GAAG;;AAEN,oBAAA,IAAI,CAAC,SAAS,CAAC,CAAA,eAAA,EAAkB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAA,CAAE,CAAC;oBAChE;AACF,gBAAA,KAAK,GAAG;AACN,oBAAA,IAAI,CAAC,SAAS,CAAC,CAAA,eAAA,EAAkB,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,SAAS,CAAA,CAAE,CAAC;oBAChE;AACF,gBAAA,KAAK,GAAG;AACN,oBAAA,IAAI,CAAC,SAAS,CAAC,mBAAmB,CAAC;oBACnC;AACF,gBAAA,KAAK,GAAG;AACN,oBAAA,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;oBACzC;AACF,gBAAA;AACE,oBAAA,IAAI,CAAC,SAAS,CAAC,yBAAyB,CAAC;oBACzC;;QAEN;IACF;AAEQ,IAAA,SAAS,CAAC,UAAkB,EAAA;AAClC,QAAA,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC;YACxB,KAAK,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,aAAa,CAAC;YACnD,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAA,MAAA,EAAS,UAAU,CAAA,CAAE,CAAC;AAC9D,SAAA,CAAC;IACJ;uGAjDW,mBAAmB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,QAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA;;2FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCCY,kBAAkB,CAAA;AACrB,IAAA,iBAAiB,GAAG,MAAM,CAAC,iBAAiB,CAAC;AAC7C,IAAA,YAAY,GAAG,IAAI,CAAC,iBAAiB,CAAC,YAAY;AAClD,IAAA,gBAAgB,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC,WAAiB,GAAG,EAAE;AAC/E,IAAA,wBAAwB,GAAG,IAAI,eAAe,CAAW,EAAE,CAAC;AACpE,IAAA,kBAAkB,GAAG,IAAI,CAAC,wBAAwB,CAAC,YAAY,EAAE;AAEzD,IAAA,UAAU,CAAC,MAAc,EAAA;QAC/B,MAAM,UAAU,GAAG,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC;AACpC,QAAA,OAAO,UAAU,CAAC,MAAM,CAAC,CAAC,EAAE,UAAU,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC;IAC9D;AAEA,IAAA,aAAa,CAAC,MAAc,EAAA;QAC1B,OAAO,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC;IAC7B;IAEA,sBAAsB,CAAC,GAAwB,EAAE,cAAyB,EAAA;AACxE,QAAA,MAAM,iBAAiB,GAAG,cAAc,IAAI,IAAI,CAAC,gBAAgB;QACjE,IAAI,CAAC,iBAAiB,EAAE;AACtB,YAAA,OAAO,CAAC,KAAK,CAAC,oCAAoC,CAAC;AACnD,YAAA,OAAO,EAAE;QACX;AACA,QAAA,OAAO;AACJ,aAAA,MAAM,CAAC,CAAC,CAAC,KAAI;YACZ,OAAO,GAAG,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC;AACnC,QAAA,CAAC;AACA,aAAA,GAAG,CAAC,CAAC,CAAC,KAAI;AACT,YAAA,OAAO,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC;AAC9B,QAAA,CAAC,CAAC;IACN;AAEA,IAAA,qBAAqB,CAAC,GAAwB,EAAE,MAA0B,EAAE,cAAyB,EAAA;QACnG,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;IACnF;IAEA,wBAAwB,CAAC,GAAwB,EAAE,MAA0B,EAAA;QAC3E,OAAO,IAAI,CAAC,sBAAsB,CAAC,GAAG,EAAE,IAAI,CAAC,oBAAoB,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,MAAM,CAAC;IAChG;IAEA,iBAAiB,CAAC,GAAwB,EAAE,MAA0B,EAAA;QACrE,IAAG,CAAC,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,CAAC,EAAC;AACzC,YAAA,OAAO,IAAI,CAAC,qBAAqB,CAAC,GAAG,EAAE,MAAM,EAAC,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5E;AACA,QAAA,OAAO,IAAI;IACb;IAEA,sBAAsB,GAAA;AACpB,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,EAAE,CAAC;IACxC;AAEA,IAAA,oBAAoB,CAAC,WAAqB,EAAA;AACxC,QAAA,IAAI,CAAC,wBAAwB,CAAC,IAAI,CAAC,WAAW,CAAC;IACjD;IAEA,oBAAoB,GAAA;AAClB,QAAA,OAAO,IAAI,CAAC,wBAAwB,CAAC,QAAQ,EAAE;IACjD;uGAxDW,kBAAkB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAlB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,kBAAkB,cAFjB,MAAM,EAAA,CAAA;;2FAEP,kBAAkB,EAAA,UAAA,EAAA,CAAA;kBAH9B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCAY,mBAAmB,CAAA;AAC9B,IAAA,YAAY,GAAW,MAAM,CAAC,UAAU;AAChC,IAAA,OAAO,GAAoB,IAAI,OAAO,EAAE;AACxC,IAAA,MAAM;AACd,IAAA,WAAA,GAAA;AACE,QAAA,SAAS,CAAC,MAAM,EAAE,QAAQ;aACvB,IAAI,CAAC,oBAAoB,EAAE,EAAE,YAAY,CAAC,GAAG,CAAC;AAC9C,aAAA,SAAS,CAAC,CAAC,KAAK,KAAK,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IACpD;AAEQ,IAAA,aAAa,CAAC,KAAU,EAAA;QAC9B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,MAAM,CAAC,UAAU;IAC7C;AAEA,IAAA,IAAI,SAAS,GAAA;AACX,QAAA,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC,IAAI,CACrC,YAAY,CAAC,GAAG,CAAC;AACjB,QAAA,SAAS,CAAC,MAAM,CAAC,UAAU,CAAC;QAC5B,oBAAoB,EAAE;QACtB,GAAG,CAAC,MAAM,IAAI,CAAC,OAAO,EAAE,CAAC,CAC1B;IACH;AAEA,IAAA,IAAI,KAAK,GAAA;;AAEP,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAC,MAAM;QACpB;QAEA,MAAM,KAAK,GAAG,YAAY,CAAC,OAAO,CAAC,YAAY,CAAC;AAChD,QAAA,IAAI,CAAC,MAAM,GAAG,KAAM;AAEpB,QAAA,OAAO,KAAM;IACf;IAEQ,OAAO,GAAA;QACb,MAAM,IAAI,GAAG,QAAQ,CAAC,oBAAoB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;QAErD,IAAI,CAAC,QAAQ,EAAE,GAAG,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC,GAAG,IAAI,EAAE,YAAY,CAAC,MAAM,EAAE,KAAK,CAAC;QAE1F,QAAQ,IAAI;YACV,KAAK,IAAI,CAAC,SAAS,EAAE;AACnB,gBAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC;gBACvC;YACF,KAAK,IAAI,CAAC,KAAK,EAAE;AACf,gBAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC;gBACnC;YACF,KAAK,IAAI,CAAC,SAAS,EAAE;AACnB,gBAAA,IAAI,EAAE,YAAY,CAAC,QAAQ,EAAE,SAAS,CAAC;gBACvC;AACF,YAAA;AACE,gBAAA,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC;;IAErC;IAEO,QAAQ,GAAA;;AAEb,QAAA,OAAO,KAAK;IACd;IAEO,SAAS,GAAA;AACd,QAAA,OAAO,CAAC,IAAI,CAAC,KAAK;IACpB;IAEO,KAAK,GAAA;AACV,QAAA,OAAO,IAAI,CAAC,KAAK,KAAK,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5H;IAEO,SAAS,GAAA;AACd,QAAA,OAAO,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,KAAK,CAAC,iBAAiB,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC;IACzE;uGAvEW,mBAAmB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAnB,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,mBAAmB,cAFlB,MAAM,EAAA,CAAA;;2FAEP,mBAAmB,EAAA,UAAA,EAAA,CAAA;kBAH/B,UAAU;AAAC,YAAA,IAAA,EAAA,CAAA;AACV,oBAAA,UAAU,EAAE;AACb,iBAAA;;;MCIY,cAAc,CAAA;AACjB,IAAA,aAAa,GAAG,MAAM,CAAC,aAAa,CAAC;AAE7C,IAAA,IAAW,OAAO,GAAA;QAChB,OAAO;YACL,GAAG,EAAE,CAAC,GAAuB,EAAE,KAAa,EAAE,OAAgB,KAC5D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC;AAC7C,YAAA,GAAG,EAAE,CAAC,GAAuB,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7D,YAAA,KAAK,EAAE,CAAC,GAAuB,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC;SACnE;IACH;AAEO,IAAA,KAAK,GAAG;QACb,GAAG,EAAE,CAAC,GAAqB,EAAE,KAAc,KACzC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;QACnE,GAAG,EAAE,CAAI,GAAqB,KAC5B,IAAI,CAAC,OAAO,CAAI,GAAG,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC;AAC/D,QAAA,KAAK,EAAE,MAAM,YAAY,CAAC,KAAK,EAAE;KAClC;AAEM,IAAA,OAAO,GAAG;QACf,GAAG,EAAE,CAAC,GAAuB,EAAE,KAAc,KAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACvE,GAAG,EAAE,CAAI,GAAuB,KAC9B,IAAI,CAAC,OAAO,CAAI,GAAG,EAAE,cAAc,CAAC,OAAO,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;AACnE,QAAA,KAAK,EAAE,MAAM,cAAc,CAAC,KAAK,EAAE;KACpC;AAEO,IAAA,OAAO,CACb,GAAgB,EAChB,KAAc,EACd,KAAqC,EAAA;AAErC,QAAA,IAAI,CAAC,GAAG;YAAE;QACV,KAAK,CAAC,GAAa,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IACjF;AAEQ,IAAA,OAAO,CACb,GAAgB,EAChB,KAAmC,EACnC,WAAW,GAAG,KAAK,EAAA;QAEnB,MAAM,IAAI,GAAG,KAAK,CAAC,GAAa,CAAC,IAAI,IAAI;QACzC,IAAI,IAAI,EAAE;AACR,YAAA,OAAO,WAAW,GAAI,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO,GAAI,IAAqB;QACvE;AACA,QAAA,OAAO,IAAI;IACb;uGA/CW,cAAc,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,UAAA,EAAA,CAAA;AAAd,IAAA,OAAA,KAAA,GAAA,EAAA,CAAA,qBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,cAAc,cADD,MAAM,EAAA,CAAA;;2FACnB,cAAc,EAAA,UAAA,EAAA,CAAA;kBAD1B,UAAU;mBAAC,EAAE,UAAU,EAAE,MAAM,EAAE;;;MCGrB,qBAAqB,CAAA;AAEb,IAAA,aAAA;AADV,IAAA,KAAK;AACd,IAAA,WAAA,CAAmB,aAA4B,EAAA;QAA5B,IAAA,CAAA,aAAa,GAAb,aAAa;IAAkB;uGAFvC,qBAAqB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAA,aAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;AAArB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,QAAA,EAAA,IAAA,EAAA,qBAAqB,qGCZlC,yYASA,EAAA,MAAA,EAAA,CAAA,ujBAAA,CAAA,EAAA,YAAA,EAAA,CAAA,EAAA,IAAA,EAAA,WAAA,EAAA,IAAA,EDCuB,OAAO,EAAA,QAAA,EAAA,WAAA,EAAA,MAAA,EAAA,CAAA,OAAA,EAAA,SAAA,CAAA,EAAA,EAAA,EAAA,IAAA,EAAA,MAAA,EAAA,IAAA,EAAlB,SAAS,yCAAW,aAAa,EAAA,IAAA,EAAA,WAAA,EAAA,CAAA,EAAA,CAAA;;2FAEhC,qBAAqB,EAAA,UAAA,EAAA,CAAA;kBAPjC,SAAS;+BACE,eAAe,EAAA,UAAA,EAGb,IAAI,EAAA,OAAA,EACP,CAAC,SAAS,EAAE,OAAO,EAAE,aAAa,CAAC,EAAA,QAAA,EAAA,yYAAA,EAAA,MAAA,EAAA,CAAA,ujBAAA,CAAA,EAAA;+EAGnC,KAAK,EAAA,CAAA;sBAAb;;;AERI,MAAM,SAAS,GAAkB,MAAK;AAC3C,IAAA,MAAM,SAAS,GAAG,MAAM,CAAa,WAAW,CAAC;AACjD,IAAA,MAAM,WAAW,GAAG,MAAM,CAAC,WAAW,CAAC;AAEvC,IAAA,IAAI,CAAC,WAAW,CAAC,UAAU,EAAE,EAAE;QAC7B,MAAM,CAAC,QAAQ,CAAC,IAAI,GAAG,SAAS,CAAC,QAAQ;AACzC,QAAA,OAAO,KAAK;IACd;AAEA,IAAA,OAAO,IAAI;AACb;;ACVO,MAAM,gBAAgB,GAAkB,CAAC,KAAK,KAAI;AACvD,IAAA,MAAM,kBAAkB,GAAG,MAAM,CAAC,kBAAkB,CAAC;AACrD,IAAA,MAAM,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC;AAC7B,IAAA,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,GAAyB,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC;IAEvE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,aAAa,CAAC,IAAI,kBAAkB,CAAC,iBAAiB,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC,EAAE;AAClH,QAAA,OAAO,IAAI;IACb;SAAO;AACL,QAAA,MAAM,CAAC,QAAQ,CAAC,CAAC,WAAW,CAAC,CAAC;AAC9B,QAAA,OAAO,KAAK;IACd;AACF;;IChBY;AAAZ,CAAA,UAAY,mBAAmB,EAAA;AAC7B,IAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,mBAAA,CAAA,kBAAA,CAAA,GAAA,kBAAqC;AACrC,IAAA,mBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,mBAAA,CAAA,wBAAA,CAAA,GAAA,wBAAiD;AACjD,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,mBAAA,CAAA,8BAAA,CAAA,GAAA,8BAA6D;AAC7D,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,mBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,mBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,mBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,mBAAA,CAAA,0BAAA,CAAA,GAAA,0BAAqD;AACrD,IAAA,mBAAA,CAAA,gBAAA,CAAA,GAAA,gBAAiC;AACjC,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,mBAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,mBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,mBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,mBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACrB,CAAC,EApBW,mBAAmB,KAAnB,mBAAmB,GAAA,EAAA,CAAA,CAAA;IAsBnB;AAAZ,CAAA,UAAY,kBAAkB,EAAA;AAC5B,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,kBAAA,CAAA,QAAA,CAAA,GAAA,QAAiB;AACjB,IAAA,kBAAA,CAAA,SAAA,CAAA,GAAA,SAAmB;AACnB,IAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,kBAAA,CAAA,MAAA,CAAA,GAAA,MAAa;AACb,IAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACrB,IAAA,kBAAA,CAAA,WAAA,CAAA,GAAA,WAAuB;AACvB,IAAA,kBAAA,CAAA,OAAA,CAAA,GAAA,OAAe;AACf,IAAA,kBAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,kBAAA,CAAA,UAAA,CAAA,GAAA,UAAqB;AACvB,CAAC,EAbW,kBAAkB,KAAlB,kBAAkB,GAAA,EAAA,CAAA,CAAA;;ICtBlB;AAAZ,CAAA,UAAY,aAAa,EAAA;AACvB,IAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,uBAAwC;AACxC,IAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,0BAA2C;AAC3C,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,0BAAqC;AACrC,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,aAAA,CAAA,YAAA,CAAA,GAAA,YAAyB;AACzB,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,cAA4B;AAC5B,IAAA,aAAA,CAAA,UAAA,CAAA,GAAA,YAAuB;AACvB,IAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,wBAAyC;AACzC,IAAA,aAAA,CAAA,cAAA,CAAA,GAAA,kBAAiC;AACjC,IAAA,aAAA,CAAA,QAAA,CAAA,GAAA,SAAkB;AAClB,IAAA,aAAA,CAAA,SAAA,CAAA,GAAA,UAAoB;AACpB,IAAA,aAAA,CAAA,OAAA,CAAA,GAAA,QAAgB;AAChB,IAAA,aAAA,CAAA,aAAA,CAAA,GAAA,YAA0B;AAC1B,IAAA,aAAA,CAAA,gBAAA,CAAA,GAAA,MAAuB;AACzB,CAAC,EAfW,aAAa,KAAb,aAAa,GAAA,EAAA,CAAA,CAAA;;ICAb;AAAZ,CAAA,UAAY,gBAAgB,EAAA;AAC1B,IAAA,gBAAA,CAAA,UAAA,CAAA,GAAA,SAAoB;AACpB,IAAA,gBAAA,CAAA,aAAA,CAAA,GAAA,YAA0B;AAC5B,CAAC,EAHW,gBAAgB,KAAhB,gBAAgB,GAAA,EAAA,CAAA,CAAA;;ICAhB;AAAZ,CAAA,UAAY,QAAQ,EAAA;AAClB,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACT,IAAA,QAAA,CAAA,IAAA,CAAA,GAAA,IAAS;AACX,CAAC,EAHW,QAAQ,KAAR,QAAQ,GAAA,EAAA,CAAA,CAAA;IAKR;AAAZ,CAAA,UAAY,YAAY,EAAA;AACtB,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACX,IAAA,YAAA,CAAA,KAAA,CAAA,GAAA,KAAW;AACb,CAAC,EAHW,YAAY,KAAZ,YAAY,GAAA,EAAA,CAAA,CAAA;;MCWX,uBAAuB,CAAA;AAUxB,IAAA,kBAAA;AACA,IAAA,aAAA;AACA,IAAA,WAAA;AAXF,IAAA,QAAQ;AACR,IAAA,IAAI;AACJ,IAAA,eAAe;AACf,IAAA,SAAS;IAET,aAAa,GAAG,KAAK;AACrB,IAAA,YAAY;AAEpB,IAAA,WAAA,CACU,kBAAsC,EACtC,aAA+B,EAC/B,WAAiC,EAAA;QAFjC,IAAA,CAAA,kBAAkB,GAAlB,kBAAkB;QAClB,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,WAAW,GAAX,WAAW;IAClB;AAEH;;;AAGG;IAEH,IAA+B,cAAc,CAAC,OAAiB,EAAA;QAC7D,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,EAAE,OAAO,CAAC,EAAE;AAC9C,YAAA,IAAI,CAAC,QAAQ,GAAG,OAAO;YACvB,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;IAEA,IAA+B,iBAAiB,CAAC,GAAW,EAAA;AAC1D,QAAA,IAAI,IAAI,CAAC,IAAI,KAAK,GAAG,EAAE;AACrB,YAAA,IAAI,CAAC,IAAI,GAAG,GAAG;YACf,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;IAEA,IAAa,4BAA4B,CAAC,cAAwB,EAAA;QAChE,IAAI,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,EAAE,cAAc,CAAC,EAAE;AAC5D,YAAA,IAAI,CAAC,eAAe,GAAG,cAAc;YACrC,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;IAEA,IAAa,sBAAsB,CAAC,QAAiB,EAAA;AACnD,QAAA,IAAI,IAAI,CAAC,SAAS,KAAK,QAAQ,EAAE;AAC/B,YAAA,IAAI,CAAC,SAAS,GAAG,QAAQ;YACzB,IAAI,CAAC,UAAU,EAAE;QACnB;IACF;IAEA,QAAQ,GAAA;AACN,QAAA,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,kBAAkB,CAAC,kBAAkB,CAAC,SAAS,CAAC,MAAK;AAC5E,YAAA,IAAI,IAAI,CAAC,SAAS,EAAE;gBAClB,IAAI,CAAC,UAAU,EAAE;YACnB;AACF,QAAA,CAAC,CAAC;IACJ;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,YAAY,EAAE,WAAW,EAAE;IAClC;IAEQ,UAAU,GAAA;AAChB,QAAA,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;AAExE,QAAA,IAAI,OAAO,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;YAClC,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;AACvD,YAAA,IAAI,CAAC,aAAa,GAAG,IAAI;QAC3B;AAAO,aAAA,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,aAAa,EAAE;YACzC,IAAI,CAAC,SAAS,EAAE;QAClB;IACF;AAEQ,IAAA,aAAa,CAAC,MAAc,EAAA;AAClC,QAAA,IAAI,IAAI,CAAC,SAAS,EAAE;AAClB,YAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,wBAAwB,CACrD,IAAI,CAAC,IAA2B,EAChC,MAA4B,CAC7B;QACH;AAEA,QAAA,OAAO,IAAI,CAAC,kBAAkB,CAAC,qBAAqB,CAClD,IAAI,CAAC,IAA2B,EAChC,MAA4B,EAC5B,IAAI,CAAC,eAAe,CACrB;IACH;IAEQ,SAAS,GAAA;AACf,QAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;AAC1B,QAAA,IAAI,CAAC,aAAa,GAAG,KAAK;IAC5B;IAEQ,aAAa,CAAC,CAAY,EAAE,CAAY,EAAA;QAC9C,IAAI,CAAC,KAAK,CAAC;AAAE,YAAA,OAAO,KAAK;AACzB,QAAA,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC;AAAE,YAAA,OAAO,IAAI;AACzB,QAAA,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC,MAAM;AAAE,YAAA,OAAO,IAAI;AACtC,QAAA,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IACrC;uGAhGW,uBAAuB,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAAC,kBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAAvB,uBAAuB,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,kBAAA,EAAA,MAAA,EAAA,EAAA,cAAA,EAAA,gBAAA,EAAA,iBAAA,EAAA,mBAAA,EAAA,4BAAA,EAAA,8BAAA,EAAA,sBAAA,EAAA,wBAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAAvB,uBAAuB,EAAA,UAAA,EAAA,CAAA;kBAJnC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,kBAAkB;AAC5B,oBAAA,UAAU,EAAE;AACb,iBAAA;6IAqBgC,cAAc,EAAA,CAAA;sBAA5C,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAOM,iBAAiB,EAAA,CAAA;sBAA/C,KAAK;uBAAC,EAAE,QAAQ,EAAE,IAAI,EAAE;gBAOZ,4BAA4B,EAAA,CAAA;sBAAxC;gBAOY,sBAAsB,EAAA,CAAA;sBAAlC;;;ACpDH;;;;AAIK;MAMQ,0BAA0B,CAAA;AAO3B,IAAA,WAAA;AACA,IAAA,aAAA;AACA,IAAA,0BAAA;AARkB,IAAA,UAAU;AAE9B,IAAA,kBAAkB,GAAiB,IAAI,YAAY,EAAE;AAE7D,IAAA,WAAA;;IAEU,WAA6B,EAC7B,aAA+B,EAC/B,0BAA+C,EAAA;QAF/C,IAAA,CAAA,WAAW,GAAX,WAAW;QACX,IAAA,CAAA,aAAa,GAAb,aAAa;QACb,IAAA,CAAA,0BAA0B,GAA1B,0BAA0B;IACjC;IAEH,QAAQ,GAAA;QACN,IAAI,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,0BAA0B,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAC9G;IAEA,WAAW,GAAA;AACT,QAAA,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;IACvC;IAEQ,UAAU,GAAA;AAChB,QAAA,MAAM,aAAa,GACjB,CAAC,IAAI,CAAC,UAAU,KAAK,gBAAgB,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE;AAC7F,aAAC,IAAI,CAAC,UAAU,KAAK,gBAAgB,CAAC,WAAW,IAAI,IAAI,CAAC,0BAA0B,CAAC,QAAQ,EAAE,CAAC;QAClG,IAAI,aAAa,EAAE;AACjB,YAAA,IAAI,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,IAAI,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,WAAW,CAAC;QAC5F;aAAO;AACL,YAAA,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE;QAC5B;IACF;uGA7BW,0BAA0B,EAAA,IAAA,EAAA,CAAA,EAAA,KAAA,EAAA,EAAA,CAAA,WAAA,EAAA,EAAA,EAAA,KAAA,EAAA,EAAA,CAAA,gBAAA,EAAA,EAAA,EAAA,KAAA,EAAAC,mBAAA,EAAA,CAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA;2FAA1B,0BAA0B,EAAA,YAAA,EAAA,IAAA,EAAA,QAAA,EAAA,qBAAA,EAAA,MAAA,EAAA,EAAA,UAAA,EAAA,CAAA,mBAAA,EAAA,YAAA,CAAA,EAAA,EAAA,QAAA,EAAA,EAAA,EAAA,CAAA;;2FAA1B,0BAA0B,EAAA,UAAA,EAAA,CAAA;kBAJtC,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA;AACT,oBAAA,QAAQ,EAAE,qBAAqB;AAC/B,oBAAA,UAAU,EAAE;AACb,iBAAA;8IAE6B,UAAU,EAAA,CAAA;sBAArC,KAAK;uBAAC,mBAAmB;;;ACZ5B,MAAM,eAAe,GAAG,CAAC,GAAW,EAAE,KAAa,KAAK,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;AACxF,MAAM,eAAe,GAAG,CAAC,GAAW,KAAK,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC;AAClE,MAAM,iBAAiB,GAAG,MAAM,YAAY,CAAC,KAAK,EAAE;AACpD,MAAM,iBAAiB,GAAG,CAAC,GAAW,EAAE,KAAa,KAAK,cAAc,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,CAAC;AAC5F,MAAM,iBAAiB,GAAG,CAAC,GAAW,KAAK,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC;AACtE,MAAM,mBAAmB,GAAG,MAAM,cAAc,CAAC,KAAK,EAAE;MAE3C,cAAc,CAAA;IACjB,OAAO,aAAa;IAErB,OAAO,IAAI,CAAC,aAA4B,EAAA;AAC7C,QAAA,IAAI,CAAC,aAAa,GAAG,aAAa;IACpC;AAEO,IAAA,WAAW,OAAO,GAAA;AACvB,QAAA,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE;AACvB,YAAA,MAAM,IAAI,KAAK,CACb,kFAAkF,CACnF;QACH;QAEA,OAAO;YACL,GAAG,EAAE,CAAC,GAAuB,EAAE,KAAa,EAAE,OAAgB,KAC5D,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,EAAE,OAAO,CAAC;AAC7C,YAAA,GAAG,EAAE,CAAC,GAAuB,KAAK,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,CAAC;AAC7D,YAAA,KAAK,EAAE,CAAC,GAAuB,KAAK,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,GAAG;SAClE;IACH;IAEO,OAAO,KAAK,GAAG;AACpB,QAAA,GAAG,EAAE,CAAC,GAAqB,EAAE,KAAc,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,eAAe,CAAC;AACzF,QAAA,GAAG,EAAE,CAAI,GAAqB,KAAK,IAAI,CAAC,OAAO,CAAI,GAAG,EAAE,eAAe,CAAC;QACxE,KAAK,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,iBAAiB;KACjD;IACM,OAAO,OAAO,GAAG;AACtB,QAAA,GAAG,EAAE,CAAC,GAAuB,EAAE,KAAc,KAAK,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,KAAK,EAAE,iBAAiB,CAAC;AAC7F,QAAA,GAAG,EAAE,CAAI,GAAuB,KAAK,IAAI,CAAC,OAAO,CAAI,GAAG,EAAE,iBAAiB,CAAC;QAC5E,KAAK,EAAE,MAAM,IAAI,CAAC,YAAY,CAAC,mBAAmB;KACnD;AAEO,IAAA,OAAO,OAAO,CAAC,GAAgB,EAAE,KAAc,EAAE,GAAyC,EAAA;AAChG,QAAA,IAAI,CAAC,GAAG;YAAE;QACV,GAAG,CAAC,GAAa,EAAE,OAAO,KAAK,KAAK,QAAQ,GAAG,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC;IAC/E;IAEQ,OAAO,OAAO,CAAI,GAAgB,EAAE,GAAmC,EAAE,WAAW,GAAG,KAAK,EAAA;QAClG,MAAM,IAAI,GAAkB,GAAG,CAAC,GAAa,CAAC,IAAI,IAAI;AACtD,QAAA,IAAI,IAAI;AAAE,YAAA,OAAO,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAM,GAAG,IAAS;AAChE,QAAA,OAAO,IAAI;IACb;IAEQ,OAAO,YAAY,CAAC,KAAiB,EAAA;AAC3C,QAAA,KAAK,EAAE;IACT;;;ACzDF;;AAEG;;;;"}
|
|
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/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';\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 { inject, Injectable } from '@angular/core';\nimport { HttpEvent, HttpParams } from '@angular/common/http';\nimport { HttpContextHandler } from '../handlers/http-context-handler';\nimport { Observable, tap } from 'rxjs';\nimport { BaseHttpResponse, BaseHttpService, HttpConfig } from './base-http-service';\nimport { AuthService } from './auth.service';\nimport { Attachment } from '../models/attachment.interface';\n\nexport const API_URLS = {\n UPLOAD_FILE: 'attachment',\n DOWNLOAD_FILE: (id: string) => `attachment/${id}`,\n};\n\n@Injectable({\n providedIn: 'root',\n})\nexport class AppFilesService extends BaseHttpService {\n authService = inject(AuthService);\n override setApiConfig(): HttpConfig {\n return {\n microServiceUrl: API_URLS.UPLOAD_FILE,\n };\n }\n\n download(url: string, fileName: string): Observable<Blob> {\n return this.getAll<Blob>({ urlRewrite: url, responseType: 'blob' }).pipe(\n tap((blob) => {\n const objectURL = URL.createObjectURL(blob);\n const anchorTag = document.createElement('a');\n anchorTag.href = objectURL;\n anchorTag.download = fileName;\n document.body.appendChild(anchorTag);\n anchorTag.click();\n document.body.removeChild(anchorTag);\n })\n );\n }\n\n uploadFile(formData: FormData) {\n return this.add<HttpEvent<BaseHttpResponse<Attachment>>>(formData, {\n context: HttpContextHandler.setLoaderType(false),\n reportProgress: true,\n observe: 'events',\n });\n }\n\n export(\n exportFilter: { [key: string]: string[] } | HttpParams,\n urlRewrite: string,\n fileName: string,\n type: string = 'pdf'\n ) {\n return this.getAll<Blob>({\n urlRewrite,\n params: exportFilter,\n responseType: 'blob',\n }).pipe(\n tap((response) => {\n const blob = new Blob([response], { type: `application/${type}` });\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = fileName;\n link.click();\n })\n );\n }\n\n downloadFile(fileData: { content: Blob; type: string; fileName: string }) {\n const blob = new Blob([fileData.content], { type: fileData.type });\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.download = fileData.fileName;\n link.click();\n }\n}\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":["i1.LoaderService","i1.PermissionsService","i1.DetectDeviceService"],"mappings":"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"}
|
package/index.d.ts
CHANGED
|
@@ -3,7 +3,7 @@ import { Observable, BehaviorSubject } from 'rxjs';
|
|
|
3
3
|
import * as i0 from '@angular/core';
|
|
4
4
|
import { ErrorHandler, Injector, InjectionToken, OnInit, OnDestroy, ViewContainerRef, TemplateRef } from '@angular/core';
|
|
5
5
|
import { JwtPayload } from 'jwt-decode';
|
|
6
|
-
import { HttpHeaders, HttpParams, HttpContext, HttpInterceptor, HttpRequest, HttpHandler,
|
|
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';
|
|
8
8
|
import * as _corp_products_app_core from '@corp-products/app-core';
|
|
9
9
|
import { TranslateService } from '@ngx-translate/core';
|
|
@@ -391,6 +391,43 @@ declare class StorageService {
|
|
|
391
391
|
static ɵprov: i0.ɵɵInjectableDeclaration<StorageService>;
|
|
392
392
|
}
|
|
393
393
|
|
|
394
|
+
interface Attachment {
|
|
395
|
+
id: string;
|
|
396
|
+
nameFile: string;
|
|
397
|
+
size: number;
|
|
398
|
+
url: string | ArrayBuffer | null;
|
|
399
|
+
file: File;
|
|
400
|
+
isCanceled?: boolean;
|
|
401
|
+
status?: {
|
|
402
|
+
icon: string;
|
|
403
|
+
label: string;
|
|
404
|
+
labelClass?: string;
|
|
405
|
+
percentage?: number;
|
|
406
|
+
success?: boolean;
|
|
407
|
+
};
|
|
408
|
+
}
|
|
409
|
+
|
|
410
|
+
declare const API_URLS: {
|
|
411
|
+
UPLOAD_FILE: string;
|
|
412
|
+
DOWNLOAD_FILE: (id: string) => string;
|
|
413
|
+
};
|
|
414
|
+
declare class AppFilesService extends BaseHttpService {
|
|
415
|
+
authService: AuthService;
|
|
416
|
+
setApiConfig(): HttpConfig;
|
|
417
|
+
download(url: string, fileName: string): Observable<Blob>;
|
|
418
|
+
uploadFile(formData: FormData): Observable<HttpEvent<BaseHttpResponse<Attachment>>>;
|
|
419
|
+
export(exportFilter: {
|
|
420
|
+
[key: string]: string[];
|
|
421
|
+
} | HttpParams, urlRewrite: string, fileName: string, type?: string): Observable<Blob>;
|
|
422
|
+
downloadFile(fileData: {
|
|
423
|
+
content: Blob;
|
|
424
|
+
type: string;
|
|
425
|
+
fileName: string;
|
|
426
|
+
}): void;
|
|
427
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AppFilesService, never>;
|
|
428
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AppFilesService>;
|
|
429
|
+
}
|
|
430
|
+
|
|
394
431
|
declare class GlobalLoaderComponent {
|
|
395
432
|
loaderService: LoaderService;
|
|
396
433
|
color: string;
|
|
@@ -511,5 +548,5 @@ declare const REQUEST_MODIFIER: InjectionToken<RequestModifier>;
|
|
|
511
548
|
|
|
512
549
|
declare const APP_ERROR_HANDLER: InjectionToken<(error: any) => void>;
|
|
513
550
|
|
|
514
|
-
export { APP_ERROR_HANDLER, APP_HTTP_CONFIG, AppDirection, AuthService, BaseHttpService, BasePaginationService, COMMON_BASE_URL, CORE_CONFIG, CookiesStorageKeys, DateFormatter, DetectDeviceService, DisplayTypesEnum, ErrorCode, ErrorHandlerService, GlobalHttpErrorInterceptor, GlobalLoaderComponent, HasPermissionsDirective, HttpBaseInterceptor, HttpContextHandler, HttpRequestOptionsKeys, IS_SYSTEM_LOADER, JwtDecoderService, Language, ListOfValues, LoaderService, LocalStorageKeys, PAGESIZE, PAGE_SIZE_OPTION, PermissionsActions, PermissionsService, REQUEST_MODIFIER, ResponsiveElementDirective, SessionStorageKeys, SortDirection, StorageHandler, StorageService, TOASTER_SERVICE, USE_API_PREFIX, UserPermissionsEnum, authGuard, epmDefaultMapper, extractRequestOptions, mapResponse, permissionsGuard, resolveUrl };
|
|
515
|
-
export type { AppRoute, BaseHttpResponse, CoreConfig, HttpConfig, HttpMethod, HttpOptions, HttpRequestOptions, ListOptions, ListResponse, LoaderState, Params, RequestModifier, RouteData, RoutePermissionsInfo, ServiceConfig, StorageEnum, ToasterInterface, ToasterOptions, UserInfo };
|
|
551
|
+
export { API_URLS, APP_ERROR_HANDLER, APP_HTTP_CONFIG, AppDirection, AppFilesService, AuthService, BaseHttpService, BasePaginationService, COMMON_BASE_URL, CORE_CONFIG, CookiesStorageKeys, DateFormatter, DetectDeviceService, DisplayTypesEnum, ErrorCode, ErrorHandlerService, GlobalHttpErrorInterceptor, GlobalLoaderComponent, HasPermissionsDirective, HttpBaseInterceptor, HttpContextHandler, HttpRequestOptionsKeys, IS_SYSTEM_LOADER, JwtDecoderService, Language, ListOfValues, LoaderService, LocalStorageKeys, PAGESIZE, PAGE_SIZE_OPTION, PermissionsActions, PermissionsService, REQUEST_MODIFIER, ResponsiveElementDirective, SessionStorageKeys, SortDirection, StorageHandler, StorageService, TOASTER_SERVICE, USE_API_PREFIX, UserPermissionsEnum, authGuard, epmDefaultMapper, extractRequestOptions, mapResponse, permissionsGuard, resolveUrl };
|
|
552
|
+
export type { AppRoute, BaseHttpResponse, Contact, CoreConfig, HttpConfig, HttpMethod, HttpOptions, HttpRequestOptions, JWTDecoded, ListOptions, ListResponse, LoaderState, Params, Position, RequestModifier, RouteData, RoutePermissionsInfo, ServiceConfig, StorageEnum, ToasterInterface, ToasterOptions, UserInfo, UserProfileData };
|