@elite.framework/ng.core 2.0.6 → 2.0.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.
- package/fesm2022/elite.framework-ng.core-interceptors.mjs +14 -10
- package/fesm2022/elite.framework-ng.core-interceptors.mjs.map +1 -1
- package/fesm2022/elite.framework-ng.core-services.mjs +38 -26
- package/fesm2022/elite.framework-ng.core-services.mjs.map +1 -1
- package/models/index.d.ts +7 -2
- package/package.json +1 -1
- package/services/index.d.ts +8 -3
|
@@ -4,6 +4,7 @@ import { CommonModule } from '@angular/common';
|
|
|
4
4
|
import { Router } from '@angular/router';
|
|
5
5
|
import { SwalService } from '@elite.framework/ng.core/services';
|
|
6
6
|
import { ENVIRONMENT } from '@elite.framework/ng.core/tokens';
|
|
7
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
7
8
|
import { throwError } from 'rxjs';
|
|
8
9
|
import { catchError, finalize } from 'rxjs/operators';
|
|
9
10
|
|
|
@@ -23,13 +24,16 @@ const apiInterceptor = (req, next) => {
|
|
|
23
24
|
const env = inject(ENVIRONMENT);
|
|
24
25
|
const router = inject(Router);
|
|
25
26
|
const swal = inject(SwalService);
|
|
26
|
-
|
|
27
|
+
const translate = inject(TranslateService);
|
|
27
28
|
const apiUrl = env.apiUrl;
|
|
28
29
|
let newReq = req;
|
|
30
|
+
// 🔹 Example: add base API url
|
|
29
31
|
// if (!/^https?:\/\//i.test(req.url)) {
|
|
30
|
-
// newReq = req.clone({
|
|
32
|
+
// newReq = req.clone({
|
|
33
|
+
// url: `${apiUrl}${req.url.startsWith('/') ? '' : '/'}${req.url}`
|
|
34
|
+
// });
|
|
31
35
|
// }
|
|
32
|
-
//
|
|
36
|
+
// 🔹 Example: add JWT token
|
|
33
37
|
// const token = localStorage.getItem('token');
|
|
34
38
|
// if (token) {
|
|
35
39
|
// newReq = newReq.clone({
|
|
@@ -52,26 +56,26 @@ const apiInterceptor = (req, next) => {
|
|
|
52
56
|
if (problem) {
|
|
53
57
|
switch (problem.status) {
|
|
54
58
|
case 400:
|
|
55
|
-
swal.error(problem.title, problem.detail
|
|
59
|
+
swal.error(translate.instant(problem.title || 'Error.BadRequest'), problem.detail ? translate.instant(problem.detail) : undefined);
|
|
56
60
|
break;
|
|
57
61
|
case 401:
|
|
58
|
-
swal.error('
|
|
59
|
-
|
|
62
|
+
swal.error(translate.instant('Error.Unauthorized'), translate.instant('Error.SessionExpired'));
|
|
63
|
+
localStorage.removeItem('token');
|
|
60
64
|
router.navigate(['/login']);
|
|
61
65
|
break;
|
|
62
66
|
case 403:
|
|
63
|
-
swal.error('
|
|
67
|
+
swal.error(translate.instant('Error.Forbidden'), problem.title || translate.instant('Error.NoPermission'));
|
|
64
68
|
break;
|
|
65
69
|
case 500:
|
|
66
|
-
swal.error('
|
|
70
|
+
swal.error(translate.instant('Error.ServerError'), problem.detail || problem.title);
|
|
67
71
|
break;
|
|
68
72
|
default:
|
|
69
|
-
swal.error(problem.title, problem.detail
|
|
73
|
+
swal.error(translate.instant(problem.title || 'Error.Unexpected'), problem.detail ? translate.instant(problem.detail) : undefined);
|
|
70
74
|
break;
|
|
71
75
|
}
|
|
72
76
|
}
|
|
73
77
|
else {
|
|
74
|
-
swal.error('
|
|
78
|
+
swal.error(translate.instant('Error.Unexpected'), error.message);
|
|
75
79
|
}
|
|
76
80
|
return throwError(() => problem ?? error);
|
|
77
81
|
}), finalize(() => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.core-interceptors.mjs","sources":["../tmp-esm2022/interceptors/lib/interceptors-module.js","../tmp-esm2022/interceptors/lib/api.interceptor.js","../tmp-esm2022/interceptors/elite.framework-ng.core-interceptors.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class InterceptorsModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: InterceptorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: InterceptorsModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: InterceptorsModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: InterceptorsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjZXB0b3JzLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcuY29yZS9pbnRlcmNlcHRvcnMvc3JjL2xpYi9pbnRlcmNlcHRvcnMtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixZQUZuQixZQUFZO3dHQUVYLGtCQUFrQixZQUZuQixZQUFZOzsyRkFFWCxrQkFBa0I7a0JBSDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJjZXB0b3JzTW9kdWxlIHt9XG4iXX0=","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { SwalService } from '@elite.framework/ng.core/services';\nimport { ENVIRONMENT } from '@elite.framework/ng.core/tokens';\nimport { throwError } from 'rxjs';\nimport { catchError, finalize } from 'rxjs/operators';\nexport const apiInterceptor = (req, next) => {\n const env = inject(ENVIRONMENT);\n const router = inject(Router);\n const swal = inject(SwalService);\n // 🔹 Base API URL\n const apiUrl = env.apiUrl;\n let newReq = req;\n // if (!/^https?:\\/\\//i.test(req.url)) {\n // newReq = req.clone({ url: `${apiUrl}${req.url.startsWith('/') ? '' : '/'}${req.url}` });\n // }\n // // 🔹 Add JWT if exists\n // const token = localStorage.getItem('token');\n // if (token) {\n // newReq = newReq.clone({\n // setHeaders: { Authorization: `Bearer ${token}` }\n // });\n // }\n return next(newReq).pipe(catchError((error) => {\n let problem = null;\n if (error.error && typeof error.error === 'object') {\n problem = error.error;\n }\n else if (typeof error.error === 'string') {\n try {\n problem = JSON.parse(error.error);\n }\n catch {\n problem = null;\n }\n }\n if (problem) {\n switch (problem.status) {\n case 400:\n swal.error(problem.title, problem.detail ?? undefined);\n break;\n case 401:\n swal.error('غير مصرح', 'انتهت صلاحية الجلسة، يرجى تسجيل الدخول مجددًا.');\n // localStorage.removeItem('token');\n router.navigate(['/login']);\n break;\n case 403:\n swal.error('وصول مرفوض', problem.title ?? 'ليس لديك صلاحيات.');\n break;\n case 500:\n swal.error('خطأ في الخادم', problem.detail ?? problem.title);\n break;\n default:\n swal.error(problem.title, problem.detail ?? undefined);\n break;\n }\n }\n else {\n swal.error('خطأ غير متوقع', error.message);\n }\n return throwError(() => problem ?? error);\n }), finalize(() => {\n // console.log(`✅ API request finished: ${req.method} ${req.url}`);\n }));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy5jb3JlL2ludGVyY2VwdG9ycy9zcmMvbGliL2FwaS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVd0RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQXNCLENBQy9DLEdBQXFCLEVBQ3JCLElBQW1CLEVBQ1MsRUFBRTtJQUM5QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUVqQyxrQkFBa0I7SUFDbEIsTUFBTSxNQUFNLEdBQUcsR0FBRyxDQUFDLE1BQU0sQ0FBQztJQUMxQixJQUFJLE1BQU0sR0FBRyxHQUFHLENBQUM7SUFDakIsd0NBQXdDO0lBQ3hDLDZGQUE2RjtJQUM3RixJQUFJO0lBRUosMEJBQTBCO0lBQzFCLCtDQUErQztJQUMvQyxlQUFlO0lBQ2YsNEJBQTRCO0lBQzVCLHVEQUF1RDtJQUN2RCxRQUFRO0lBQ1IsSUFBSTtJQUVKLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FDdEIsVUFBVSxDQUFDLENBQUMsS0FBd0IsRUFBRSxFQUFFO1FBQ3RDLElBQUksT0FBTyxHQUFrQyxJQUFJLENBQUM7UUFFbEQsSUFBSSxLQUFLLENBQUMsS0FBSyxJQUFJLE9BQU8sS0FBSyxDQUFDLEtBQUssS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUNuRCxPQUFPLEdBQUcsS0FBSyxDQUFDLEtBQStCLENBQUM7UUFDbEQsQ0FBQzthQUFNLElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQzNDLElBQUksQ0FBQztnQkFDSCxPQUFPLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUEyQixDQUFDO1lBQzlELENBQUM7WUFBQyxNQUFNLENBQUM7Z0JBQ1AsT0FBTyxHQUFHLElBQUksQ0FBQztZQUNqQixDQUFDO1FBQ0gsQ0FBQztRQUVELElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixRQUFRLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztnQkFDdkIsS0FBSyxHQUFHO29CQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDO29CQUN2RCxNQUFNO2dCQUNSLEtBQUssR0FBRztvQkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFVBQVUsRUFBRSxnREFBZ0QsQ0FBQyxDQUFDO29CQUN6RSxvQ0FBb0M7b0JBQ3BDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO29CQUM1QixNQUFNO2dCQUNSLEtBQUssR0FBRztvQkFDTixJQUFJLENBQUMsS0FBSyxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsS0FBSyxJQUFJLG1CQUFtQixDQUFDLENBQUM7b0JBQy9ELE1BQU07Z0JBQ1IsS0FBSyxHQUFHO29CQUNOLElBQUksQ0FBQyxLQUFLLENBQUMsZUFBZSxFQUFFLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDO29CQUM3RCxNQUFNO2dCQUNSO29CQUNFLElBQUksQ0FBQyxLQUFLLENBQUMsT0FBTyxDQUFDLEtBQUssRUFBRSxPQUFPLENBQUMsTUFBTSxJQUFJLFNBQVMsQ0FBQyxDQUFDO29CQUN2RCxNQUFNO1lBQ1YsQ0FBQztRQUNILENBQUM7YUFBTSxDQUFDO1lBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLEVBQUUsS0FBSyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQzdDLENBQUM7UUFFRCxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxPQUFPLElBQUksS0FBSyxDQUFDLENBQUM7SUFDNUMsQ0FBQyxDQUFDLEVBQ0YsUUFBUSxDQUFDLEdBQUcsRUFBRTtRQUNaLG1FQUFtRTtJQUNyRSxDQUFDLENBQUMsQ0FDSCxDQUFDO0FBQ0osQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHtcclxuICBIdHRwSW50ZXJjZXB0b3JGbixcclxuICBIdHRwUmVxdWVzdCxcclxuICBIdHRwSGFuZGxlckZuLFxyXG4gIEh0dHBFdmVudCxcclxuICBIdHRwRXJyb3JSZXNwb25zZVxyXG59IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuaW1wb3J0IHsgaW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFJvdXRlciB9IGZyb20gJ0Bhbmd1bGFyL3JvdXRlcic7XHJcbmltcG9ydCB7IFN3YWxTZXJ2aWNlIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3NlcnZpY2VzJztcclxuaW1wb3J0IHsgRU5WSVJPTk1FTlQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvdG9rZW5zJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvYmxlbURldGFpbHNSZXNwb25zZSB7XHJcbiAgdHlwZT86IHN0cmluZyB8IG51bGw7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBzdGF0dXM6IG51bWJlcjtcclxuICBkZXRhaWw/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGluc3RhbmNlPzogc3RyaW5nO1xyXG4gIHRyYWNlSWQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBhcGlJbnRlcmNlcHRvcjogSHR0cEludGVyY2VwdG9yRm4gPSAoXHJcbiAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gIG5leHQ6IEh0dHBIYW5kbGVyRm5cclxuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4gPT4ge1xyXG4gIGNvbnN0IGVudiA9IGluamVjdChFTlZJUk9OTUVOVCk7XHJcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgY29uc3Qgc3dhbCA9IGluamVjdChTd2FsU2VydmljZSk7XHJcblxyXG4gIC8vIPCflLkgQmFzZSBBUEkgVVJMXHJcbiAgY29uc3QgYXBpVXJsID0gZW52LmFwaVVybDtcclxuICBsZXQgbmV3UmVxID0gcmVxO1xyXG4gIC8vIGlmICghL15odHRwcz86XFwvXFwvL2kudGVzdChyZXEudXJsKSkge1xyXG4gIC8vICAgbmV3UmVxID0gcmVxLmNsb25lKHsgdXJsOiBgJHthcGlVcmx9JHtyZXEudXJsLnN0YXJ0c1dpdGgoJy8nKSA/ICcnIDogJy8nfSR7cmVxLnVybH1gIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgLy8gLy8g8J+UuSBBZGQgSldUIGlmIGV4aXN0c1xyXG4gIC8vIGNvbnN0IHRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Rva2VuJyk7XHJcbiAgLy8gaWYgKHRva2VuKSB7XHJcbiAgLy8gICBuZXdSZXEgPSBuZXdSZXEuY2xvbmUoe1xyXG4gIC8vICAgICBzZXRIZWFkZXJzOiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gIH1cclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgcmV0dXJuIG5leHQobmV3UmVxKS5waXBlKFxyXG4gICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGxldCBwcm9ibGVtOiBQcm9ibGVtRGV0YWlsc1Jlc3BvbnNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgICBpZiAoZXJyb3IuZXJyb3IgJiYgdHlwZW9mIGVycm9yLmVycm9yID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIHByb2JsZW0gPSBlcnJvci5lcnJvciBhcyBQcm9ibGVtRGV0YWlsc1Jlc3BvbnNlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBlcnJvci5lcnJvciA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgcHJvYmxlbSA9IEpTT04ucGFyc2UoZXJyb3IuZXJyb3IpIGFzIFByb2JsZW1EZXRhaWxzUmVzcG9uc2U7XHJcbiAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICBwcm9ibGVtID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChwcm9ibGVtKSB7XHJcbiAgICAgICAgc3dpdGNoIChwcm9ibGVtLnN0YXR1cykge1xyXG4gICAgICAgICAgY2FzZSA0MDA6XHJcbiAgICAgICAgICAgIHN3YWwuZXJyb3IocHJvYmxlbS50aXRsZSwgcHJvYmxlbS5kZXRhaWwgPz8gdW5kZWZpbmVkKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIDQwMTpcclxuICAgICAgICAgICAgc3dhbC5lcnJvcign2LrZitixINmF2LXYsditJywgJ9in2YbYqtmH2Kog2LXZhNin2K3ZitipINin2YTYrNmE2LPYqdiMINmK2LHYrNmJINiq2LPYrNmK2YQg2KfZhNiv2K7ZiNmEINmF2KzYr9iv2YvYpy4nKTtcclxuICAgICAgICAgICAgLy8gbG9jYWxTdG9yYWdlLnJlbW92ZUl0ZW0oJ3Rva2VuJyk7XHJcbiAgICAgICAgICAgIHJvdXRlci5uYXZpZ2F0ZShbJy9sb2dpbiddKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIDQwMzpcclxuICAgICAgICAgICAgc3dhbC5lcnJvcign2YjYtdmI2YQg2YXYsdmB2YjYticsIHByb2JsZW0udGl0bGUgPz8gJ9mE2YrYsyDZhNiv2YrZgyDYtdmE2KfYrdmK2KfYqi4nKTtcclxuICAgICAgICAgICAgYnJlYWs7XHJcbiAgICAgICAgICBjYXNlIDUwMDpcclxuICAgICAgICAgICAgc3dhbC5lcnJvcign2K7Yt9ijINmB2Yog2KfZhNiu2KfYr9mFJywgcHJvYmxlbS5kZXRhaWwgPz8gcHJvYmxlbS50aXRsZSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgZGVmYXVsdDpcclxuICAgICAgICAgICAgc3dhbC5lcnJvcihwcm9ibGVtLnRpdGxlLCBwcm9ibGVtLmRldGFpbCA/PyB1bmRlZmluZWQpO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICB9XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgc3dhbC5lcnJvcign2K7Yt9ijINi62YrYsSDZhdiq2YjZgti5JywgZXJyb3IubWVzc2FnZSk7XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIHJldHVybiB0aHJvd0Vycm9yKCgpID0+IHByb2JsZW0gPz8gZXJyb3IpO1xyXG4gICAgfSksXHJcbiAgICBmaW5hbGl6ZSgoKSA9PiB7XHJcbiAgICAgIC8vIGNvbnNvbGUubG9nKGDinIUgQVBJIHJlcXVlc3QgZmluaXNoZWQ6ICR7cmVxLm1ldGhvZH0gJHtyZXEudXJsfWApO1xyXG4gICAgfSlcclxuICApO1xyXG59O1xyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLmNvcmUtaW50ZXJjZXB0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy5jb3JlL2ludGVyY2VwdG9ycy9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLmNvcmUtaW50ZXJjZXB0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.core-interceptors.mjs","sources":["../tmp-esm2022/interceptors/lib/interceptors-module.js","../tmp-esm2022/interceptors/lib/api.interceptor.js","../tmp-esm2022/interceptors/elite.framework-ng.core-interceptors.js"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport * as i0 from \"@angular/core\";\nexport class InterceptorsModule {\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: InterceptorsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });\n static ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: \"14.0.0\", version: \"20.1.8\", ngImport: i0, type: InterceptorsModule, imports: [CommonModule] });\n static ɵinj = i0.ɵɵngDeclareInjector({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: InterceptorsModule, imports: [CommonModule] });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: InterceptorsModule, decorators: [{\n type: NgModule,\n args: [{\n imports: [CommonModule],\n }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZXJjZXB0b3JzLW1vZHVsZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcuY29yZS9pbnRlcmNlcHRvcnMvc3JjL2xpYi9pbnRlcmNlcHRvcnMtbW9kdWxlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDOztBQUsvQyxNQUFNLE9BQU8sa0JBQWtCO3VHQUFsQixrQkFBa0I7d0dBQWxCLGtCQUFrQixZQUZuQixZQUFZO3dHQUVYLGtCQUFrQixZQUZuQixZQUFZOzsyRkFFWCxrQkFBa0I7a0JBSDlCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFLENBQUMsWUFBWSxDQUFDO2lCQUN4QiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbn0pXG5leHBvcnQgY2xhc3MgSW50ZXJjZXB0b3JzTW9kdWxlIHt9XG4iXX0=","import { inject } from '@angular/core';\nimport { Router } from '@angular/router';\nimport { SwalService } from '@elite.framework/ng.core/services';\nimport { ENVIRONMENT } from '@elite.framework/ng.core/tokens';\nimport { TranslateService } from '@ngx-translate/core';\nimport { throwError } from 'rxjs';\nimport { catchError, finalize } from 'rxjs/operators';\nexport const apiInterceptor = (req, next) => {\n const env = inject(ENVIRONMENT);\n const router = inject(Router);\n const swal = inject(SwalService);\n const translate = inject(TranslateService);\n const apiUrl = env.apiUrl;\n let newReq = req;\n // 🔹 Example: add base API url\n // if (!/^https?:\\/\\//i.test(req.url)) {\n // newReq = req.clone({\n // url: `${apiUrl}${req.url.startsWith('/') ? '' : '/'}${req.url}`\n // });\n // }\n // 🔹 Example: add JWT token\n // const token = localStorage.getItem('token');\n // if (token) {\n // newReq = newReq.clone({\n // setHeaders: { Authorization: `Bearer ${token}` }\n // });\n // }\n return next(newReq).pipe(catchError((error) => {\n let problem = null;\n if (error.error && typeof error.error === 'object') {\n problem = error.error;\n }\n else if (typeof error.error === 'string') {\n try {\n problem = JSON.parse(error.error);\n }\n catch {\n problem = null;\n }\n }\n if (problem) {\n switch (problem.status) {\n case 400:\n swal.error(translate.instant(problem.title || 'Error.BadRequest'), problem.detail ? translate.instant(problem.detail) : undefined);\n break;\n case 401:\n swal.error(translate.instant('Error.Unauthorized'), translate.instant('Error.SessionExpired'));\n localStorage.removeItem('token');\n router.navigate(['/login']);\n break;\n case 403:\n swal.error(translate.instant('Error.Forbidden'), problem.title || translate.instant('Error.NoPermission'));\n break;\n case 500:\n swal.error(translate.instant('Error.ServerError'), problem.detail || problem.title);\n break;\n default:\n swal.error(translate.instant(problem.title || 'Error.Unexpected'), problem.detail ? translate.instant(problem.detail) : undefined);\n break;\n }\n }\n else {\n swal.error(translate.instant('Error.Unexpected'), error.message);\n }\n return throwError(() => problem ?? error);\n }), finalize(() => {\n // console.log(`✅ API request finished: ${req.method} ${req.url}`);\n }));\n};\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLmludGVyY2VwdG9yLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy5jb3JlL2ludGVyY2VwdG9ycy9zcmMvbGliL2FwaS5pbnRlcmNlcHRvci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFPQSxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZDLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUN6QyxPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFDaEUsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzlELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBYyxVQUFVLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDOUMsT0FBTyxFQUFFLFVBQVUsRUFBRSxRQUFRLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQVd0RCxNQUFNLENBQUMsTUFBTSxjQUFjLEdBQXNCLENBQy9DLEdBQXFCLEVBQ3JCLElBQW1CLEVBQ1MsRUFBRTtJQUM5QixNQUFNLEdBQUcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDaEMsTUFBTSxNQUFNLEdBQUcsTUFBTSxDQUFDLE1BQU0sQ0FBQyxDQUFDO0lBQzlCLE1BQU0sSUFBSSxHQUFHLE1BQU0sQ0FBQyxXQUFXLENBQUMsQ0FBQztJQUNqQyxNQUFNLFNBQVMsR0FBRyxNQUFNLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUUzQyxNQUFNLE1BQU0sR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDO0lBQzFCLElBQUksTUFBTSxHQUFHLEdBQUcsQ0FBQztJQUVqQiwrQkFBK0I7SUFDL0Isd0NBQXdDO0lBQ3hDLHlCQUF5QjtJQUN6QixzRUFBc0U7SUFDdEUsUUFBUTtJQUNSLElBQUk7SUFFSiw0QkFBNEI7SUFDNUIsK0NBQStDO0lBQy9DLGVBQWU7SUFDZiw0QkFBNEI7SUFDNUIsdURBQXVEO0lBQ3ZELFFBQVE7SUFDUixJQUFJO0lBRUosT0FBTyxJQUFJLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUN0QixVQUFVLENBQUMsQ0FBQyxLQUF3QixFQUFFLEVBQUU7UUFDdEMsSUFBSSxPQUFPLEdBQWtDLElBQUksQ0FBQztRQUVsRCxJQUFJLEtBQUssQ0FBQyxLQUFLLElBQUksT0FBTyxLQUFLLENBQUMsS0FBSyxLQUFLLFFBQVEsRUFBRSxDQUFDO1lBQ25ELE9BQU8sR0FBRyxLQUFLLENBQUMsS0FBK0IsQ0FBQztRQUNsRCxDQUFDO2FBQU0sSUFBSSxPQUFPLEtBQUssQ0FBQyxLQUFLLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDM0MsSUFBSSxDQUFDO2dCQUNILE9BQU8sR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLENBQTJCLENBQUM7WUFDOUQsQ0FBQztZQUFDLE1BQU0sQ0FBQztnQkFDUCxPQUFPLEdBQUcsSUFBSSxDQUFDO1lBQ2pCLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxPQUFPLEVBQUUsQ0FBQztZQUNaLFFBQVEsT0FBTyxDQUFDLE1BQU0sRUFBRSxDQUFDO2dCQUN2QixLQUFLLEdBQUc7b0JBQ04sSUFBSSxDQUFDLEtBQUssQ0FDUixTQUFTLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxLQUFLLElBQUksa0JBQWtCLENBQUMsRUFDdEQsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FDL0QsQ0FBQztvQkFDRixNQUFNO2dCQUNSLEtBQUssR0FBRztvQkFDTixJQUFJLENBQUMsS0FBSyxDQUNSLFNBQVMsQ0FBQyxPQUFPLENBQUMsb0JBQW9CLENBQUMsRUFDdkMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxzQkFBc0IsQ0FBQyxDQUMxQyxDQUFDO29CQUNGLFlBQVksQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLENBQUM7b0JBQ2pDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDO29CQUM1QixNQUFNO2dCQUNSLEtBQUssR0FBRztvQkFDTixJQUFJLENBQUMsS0FBSyxDQUNSLFNBQVMsQ0FBQyxPQUFPLENBQUMsaUJBQWlCLENBQUMsRUFDcEMsT0FBTyxDQUFDLEtBQUssSUFBSSxTQUFTLENBQUMsT0FBTyxDQUFDLG9CQUFvQixDQUFDLENBQ3pELENBQUM7b0JBQ0YsTUFBTTtnQkFDUixLQUFLLEdBQUc7b0JBQ04sSUFBSSxDQUFDLEtBQUssQ0FDUixTQUFTLENBQUMsT0FBTyxDQUFDLG1CQUFtQixDQUFDLEVBQ3RDLE9BQU8sQ0FBQyxNQUFNLElBQUksT0FBTyxDQUFDLEtBQUssQ0FDaEMsQ0FBQztvQkFDRixNQUFNO2dCQUNSO29CQUNFLElBQUksQ0FBQyxLQUFLLENBQ1IsU0FBUyxDQUFDLE9BQU8sQ0FBQyxPQUFPLENBQUMsS0FBSyxJQUFJLGtCQUFrQixDQUFDLEVBQ3RELE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQy9ELENBQUM7b0JBQ0YsTUFBTTtZQUNWLENBQUM7UUFDSCxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLENBQ1IsU0FBUyxDQUFDLE9BQU8sQ0FBQyxrQkFBa0IsQ0FBQyxFQUNyQyxLQUFLLENBQUMsT0FBTyxDQUNkLENBQUM7UUFDSixDQUFDO1FBRUQsT0FBTyxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMsT0FBTyxJQUFJLEtBQUssQ0FBQyxDQUFDO0lBQzVDLENBQUMsQ0FBQyxFQUNGLFFBQVEsQ0FBQyxHQUFHLEVBQUU7UUFDWixtRUFBbUU7SUFDckUsQ0FBQyxDQUFDLENBQ0gsQ0FBQztBQUNKLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7XHJcbiAgSHR0cEludGVyY2VwdG9yRm4sXHJcbiAgSHR0cFJlcXVlc3QsXHJcbiAgSHR0cEhhbmRsZXJGbixcclxuICBIdHRwRXZlbnQsXHJcbiAgSHR0cEVycm9yUmVzcG9uc2VcclxufSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IGluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgeyBTd2FsU2VydmljZSB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9zZXJ2aWNlcyc7XHJcbmltcG9ydCB7IEVOVklST05NRU5UIH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3Rva2Vucyc7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyBjYXRjaEVycm9yLCBmaW5hbGl6ZSB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgUHJvYmxlbURldGFpbHNSZXNwb25zZSB7XHJcbiAgdHlwZT86IHN0cmluZyB8IG51bGw7XHJcbiAgdGl0bGU6IHN0cmluZztcclxuICBzdGF0dXM6IG51bWJlcjtcclxuICBkZXRhaWw/OiBzdHJpbmcgfCBudWxsO1xyXG4gIGluc3RhbmNlPzogc3RyaW5nO1xyXG4gIHRyYWNlSWQ/OiBzdHJpbmc7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBhcGlJbnRlcmNlcHRvcjogSHR0cEludGVyY2VwdG9yRm4gPSAoXHJcbiAgcmVxOiBIdHRwUmVxdWVzdDxhbnk+LFxyXG4gIG5leHQ6IEh0dHBIYW5kbGVyRm5cclxuKTogT2JzZXJ2YWJsZTxIdHRwRXZlbnQ8YW55Pj4gPT4ge1xyXG4gIGNvbnN0IGVudiA9IGluamVjdChFTlZJUk9OTUVOVCk7XHJcbiAgY29uc3Qgcm91dGVyID0gaW5qZWN0KFJvdXRlcik7XHJcbiAgY29uc3Qgc3dhbCA9IGluamVjdChTd2FsU2VydmljZSk7XHJcbiAgY29uc3QgdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG5cclxuICBjb25zdCBhcGlVcmwgPSBlbnYuYXBpVXJsO1xyXG4gIGxldCBuZXdSZXEgPSByZXE7XHJcblxyXG4gIC8vIPCflLkgRXhhbXBsZTogYWRkIGJhc2UgQVBJIHVybFxyXG4gIC8vIGlmICghL15odHRwcz86XFwvXFwvL2kudGVzdChyZXEudXJsKSkge1xyXG4gIC8vICAgbmV3UmVxID0gcmVxLmNsb25lKHtcclxuICAvLyAgICAgdXJsOiBgJHthcGlVcmx9JHtyZXEudXJsLnN0YXJ0c1dpdGgoJy8nKSA/ICcnIDogJy8nfSR7cmVxLnVybH1gXHJcbiAgLy8gICB9KTtcclxuICAvLyB9XHJcblxyXG4gIC8vIPCflLkgRXhhbXBsZTogYWRkIEpXVCB0b2tlblxyXG4gIC8vIGNvbnN0IHRva2VuID0gbG9jYWxTdG9yYWdlLmdldEl0ZW0oJ3Rva2VuJyk7XHJcbiAgLy8gaWYgKHRva2VuKSB7XHJcbiAgLy8gICBuZXdSZXEgPSBuZXdSZXEuY2xvbmUoe1xyXG4gIC8vICAgICBzZXRIZWFkZXJzOiB7IEF1dGhvcml6YXRpb246IGBCZWFyZXIgJHt0b2tlbn1gIH1cclxuICAvLyAgIH0pO1xyXG4gIC8vIH1cclxuXHJcbiAgcmV0dXJuIG5leHQobmV3UmVxKS5waXBlKFxyXG4gICAgY2F0Y2hFcnJvcigoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKSA9PiB7XHJcbiAgICAgIGxldCBwcm9ibGVtOiBQcm9ibGVtRGV0YWlsc1Jlc3BvbnNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gICAgICBpZiAoZXJyb3IuZXJyb3IgJiYgdHlwZW9mIGVycm9yLmVycm9yID09PSAnb2JqZWN0Jykge1xyXG4gICAgICAgIHByb2JsZW0gPSBlcnJvci5lcnJvciBhcyBQcm9ibGVtRGV0YWlsc1Jlc3BvbnNlO1xyXG4gICAgICB9IGVsc2UgaWYgKHR5cGVvZiBlcnJvci5lcnJvciA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgICB0cnkge1xyXG4gICAgICAgICAgcHJvYmxlbSA9IEpTT04ucGFyc2UoZXJyb3IuZXJyb3IpIGFzIFByb2JsZW1EZXRhaWxzUmVzcG9uc2U7XHJcbiAgICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgICBwcm9ibGVtID0gbnVsbDtcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuXHJcbiAgICAgIGlmIChwcm9ibGVtKSB7XHJcbiAgICAgICAgc3dpdGNoIChwcm9ibGVtLnN0YXR1cykge1xyXG4gICAgICAgICAgY2FzZSA0MDA6XHJcbiAgICAgICAgICAgIHN3YWwuZXJyb3IoXHJcbiAgICAgICAgICAgICAgdHJhbnNsYXRlLmluc3RhbnQocHJvYmxlbS50aXRsZSB8fCAnRXJyb3IuQmFkUmVxdWVzdCcpLFxyXG4gICAgICAgICAgICAgIHByb2JsZW0uZGV0YWlsID8gdHJhbnNsYXRlLmluc3RhbnQocHJvYmxlbS5kZXRhaWwpIDogdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSA0MDE6XHJcbiAgICAgICAgICAgIHN3YWwuZXJyb3IoXHJcbiAgICAgICAgICAgICAgdHJhbnNsYXRlLmluc3RhbnQoJ0Vycm9yLlVuYXV0aG9yaXplZCcpLFxyXG4gICAgICAgICAgICAgIHRyYW5zbGF0ZS5pbnN0YW50KCdFcnJvci5TZXNzaW9uRXhwaXJlZCcpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGxvY2FsU3RvcmFnZS5yZW1vdmVJdGVtKCd0b2tlbicpO1xyXG4gICAgICAgICAgICByb3V0ZXIubmF2aWdhdGUoWycvbG9naW4nXSk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSA0MDM6XHJcbiAgICAgICAgICAgIHN3YWwuZXJyb3IoXHJcbiAgICAgICAgICAgICAgdHJhbnNsYXRlLmluc3RhbnQoJ0Vycm9yLkZvcmJpZGRlbicpLFxyXG4gICAgICAgICAgICAgIHByb2JsZW0udGl0bGUgfHwgdHJhbnNsYXRlLmluc3RhbnQoJ0Vycm9yLk5vUGVybWlzc2lvbicpXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgICAgY2FzZSA1MDA6XHJcbiAgICAgICAgICAgIHN3YWwuZXJyb3IoXHJcbiAgICAgICAgICAgICAgdHJhbnNsYXRlLmluc3RhbnQoJ0Vycm9yLlNlcnZlckVycm9yJyksXHJcbiAgICAgICAgICAgICAgcHJvYmxlbS5kZXRhaWwgfHwgcHJvYmxlbS50aXRsZVxyXG4gICAgICAgICAgICApO1xyXG4gICAgICAgICAgICBicmVhaztcclxuICAgICAgICAgIGRlZmF1bHQ6XHJcbiAgICAgICAgICAgIHN3YWwuZXJyb3IoXHJcbiAgICAgICAgICAgICAgdHJhbnNsYXRlLmluc3RhbnQocHJvYmxlbS50aXRsZSB8fCAnRXJyb3IuVW5leHBlY3RlZCcpLFxyXG4gICAgICAgICAgICAgIHByb2JsZW0uZGV0YWlsID8gdHJhbnNsYXRlLmluc3RhbnQocHJvYmxlbS5kZXRhaWwpIDogdW5kZWZpbmVkXHJcbiAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgIGJyZWFrO1xyXG4gICAgICAgIH1cclxuICAgICAgfSBlbHNlIHtcclxuICAgICAgICBzd2FsLmVycm9yKFxyXG4gICAgICAgICAgdHJhbnNsYXRlLmluc3RhbnQoJ0Vycm9yLlVuZXhwZWN0ZWQnKSxcclxuICAgICAgICAgIGVycm9yLm1lc3NhZ2VcclxuICAgICAgICApO1xyXG4gICAgICB9XHJcblxyXG4gICAgICByZXR1cm4gdGhyb3dFcnJvcigoKSA9PiBwcm9ibGVtID8/IGVycm9yKTtcclxuICAgIH0pLFxyXG4gICAgZmluYWxpemUoKCkgPT4ge1xyXG4gICAgICAvLyBjb25zb2xlLmxvZyhg4pyFIEFQSSByZXF1ZXN0IGZpbmlzaGVkOiAke3JlcS5tZXRob2R9ICR7cmVxLnVybH1gKTtcclxuICAgIH0pXHJcbiAgKTtcclxufTtcclxuIl19","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLmNvcmUtaW50ZXJjZXB0b3JzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vbGlicy9uZy5jb3JlL2ludGVyY2VwdG9ycy9zcmMvZWxpdGUuZnJhbWV3b3JrLW5nLmNvcmUtaW50ZXJjZXB0b3JzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":[],"mappings":"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"}
|
|
@@ -5,6 +5,7 @@ import * as i1 from '@angular/common/http';
|
|
|
5
5
|
import { HttpParams } from '@angular/common/http';
|
|
6
6
|
import { ENVIRONMENT, CORE_OPTIONS } from '@elite.framework/ng.core/tokens';
|
|
7
7
|
import { isPlatformBrowser, DOCUMENT } from '@angular/common';
|
|
8
|
+
import * as i1$1 from '@ngx-translate/core';
|
|
8
9
|
import Swal from 'sweetalert2';
|
|
9
10
|
import * as i2 from '@angular/router';
|
|
10
11
|
import { RouterStateSnapshot } from '@angular/router';
|
|
@@ -433,10 +434,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImpor
|
|
|
433
434
|
args: [REQUEST]
|
|
434
435
|
}] }] });
|
|
435
436
|
|
|
436
|
-
// app/shared/services/swal.service.ts
|
|
437
437
|
class SwalService {
|
|
438
|
-
|
|
439
|
-
|
|
438
|
+
translate;
|
|
439
|
+
defaultClass = {
|
|
440
|
+
container: 'swal2-container'
|
|
441
|
+
};
|
|
442
|
+
constructor(translate) {
|
|
443
|
+
this.translate = translate;
|
|
444
|
+
}
|
|
445
|
+
t(key) {
|
|
446
|
+
return this.translate.instant(key);
|
|
447
|
+
}
|
|
448
|
+
/** رسالة تأكيد */
|
|
449
|
+
confirm(title = this.t('Confirm.Title'), text = this.t('Confirm.Text'), confirmButtonText = this.t('Confirm.Yes'), cancelButtonText = this.t('Confirm.Cancel')) {
|
|
440
450
|
return Swal.fire({
|
|
441
451
|
icon: 'warning',
|
|
442
452
|
title,
|
|
@@ -444,66 +454,68 @@ class SwalService {
|
|
|
444
454
|
showCancelButton: true,
|
|
445
455
|
confirmButtonText,
|
|
446
456
|
cancelButtonText,
|
|
447
|
-
|
|
448
|
-
customClass: {
|
|
449
|
-
container: 'swal2-container' // ✅ أضف هذه الفئة
|
|
450
|
-
}
|
|
457
|
+
customClass: this.defaultClass
|
|
451
458
|
});
|
|
452
459
|
}
|
|
453
460
|
/** رسالة نجاح */
|
|
454
461
|
success(title, text, timer = 2000) {
|
|
455
462
|
return Swal.fire({
|
|
456
463
|
icon: 'success',
|
|
457
|
-
title,
|
|
458
|
-
text,
|
|
464
|
+
title: this.t(title),
|
|
465
|
+
text: text ? this.t(text) : undefined,
|
|
459
466
|
timer,
|
|
460
467
|
showConfirmButton: false,
|
|
461
|
-
customClass:
|
|
462
|
-
container: 'swal2-container' // ✅ أضف هذه الفئة
|
|
463
|
-
}
|
|
468
|
+
customClass: this.defaultClass
|
|
464
469
|
});
|
|
465
470
|
}
|
|
466
471
|
/** رسالة خطأ */
|
|
467
472
|
error(title, text, footer) {
|
|
468
473
|
return Swal.fire({
|
|
469
474
|
icon: 'error',
|
|
470
|
-
title,
|
|
471
|
-
text,
|
|
472
|
-
footer,
|
|
473
|
-
customClass:
|
|
474
|
-
container: 'swal2-container' // ✅ أضف هذه الفئة
|
|
475
|
-
}
|
|
475
|
+
title: this.t(title),
|
|
476
|
+
text: text ? this.t(text) : undefined,
|
|
477
|
+
footer: footer ? this.t(footer) : undefined,
|
|
478
|
+
customClass: this.defaultClass
|
|
476
479
|
});
|
|
477
480
|
}
|
|
478
481
|
/** رسالة معلومات */
|
|
479
482
|
info(title, text) {
|
|
480
483
|
return Swal.fire({
|
|
481
484
|
icon: 'info',
|
|
482
|
-
title,
|
|
483
|
-
text,
|
|
485
|
+
title: this.t(title),
|
|
486
|
+
text: text ? this.t(text) : undefined,
|
|
487
|
+
customClass: this.defaultClass
|
|
484
488
|
});
|
|
485
489
|
}
|
|
486
|
-
/**
|
|
490
|
+
/** أي خيارات مخصصة */
|
|
487
491
|
alert(options) {
|
|
488
|
-
|
|
492
|
+
const translated = {
|
|
493
|
+
...options,
|
|
494
|
+
title: options.title ? this.t(options.title) : undefined,
|
|
495
|
+
text: options.text ? this.t(options.text) : undefined,
|
|
496
|
+
footer: options.footer ? this.t(options.footer) : undefined,
|
|
497
|
+
customClass: this.defaultClass
|
|
498
|
+
};
|
|
499
|
+
return Swal.fire(translated);
|
|
489
500
|
}
|
|
490
|
-
/** Toast
|
|
501
|
+
/** Toast */
|
|
491
502
|
toast(title, icon = 'info', position = 'top-end', timer = 3000) {
|
|
492
503
|
const Toast = Swal.mixin({
|
|
493
504
|
toast: true,
|
|
494
505
|
position,
|
|
495
506
|
timer,
|
|
496
507
|
showConfirmButton: false,
|
|
508
|
+
customClass: this.defaultClass
|
|
497
509
|
});
|
|
498
|
-
Toast.fire({ icon, title });
|
|
510
|
+
Toast.fire({ icon, title: this.t(title) });
|
|
499
511
|
}
|
|
500
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: SwalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
512
|
+
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: SwalService, deps: [{ token: i1$1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
501
513
|
static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: SwalService, providedIn: 'root' });
|
|
502
514
|
}
|
|
503
515
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.1.8", ngImport: i0, type: SwalService, decorators: [{
|
|
504
516
|
type: Injectable,
|
|
505
517
|
args: [{ providedIn: 'root' }]
|
|
506
|
-
}] });
|
|
518
|
+
}], ctorParameters: () => [{ type: i1$1.TranslateService }] });
|
|
507
519
|
|
|
508
520
|
class PermissionsService {
|
|
509
521
|
_permissions$ = new BehaviorSubject(new Set());
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"elite.framework-ng.core-services.mjs","sources":["../tmp-esm2022/services/lib/rest.service.js","../tmp-esm2022/services/lib/base.service.js","../tmp-esm2022/services/lib/generic.service.js","../tmp-esm2022/services/lib/ssr-cookie.service.js","../tmp-esm2022/services/lib/SwalService.service.js","../tmp-esm2022/services/lib/permissions.service.js","../tmp-esm2022/services/lib/permissions-guard.service.js","../tmp-esm2022/services/elite.framework-ng.core-services.js"],"sourcesContent":["import { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Injectable, Inject, inject } from \"@angular/core\";\nimport { ENVIRONMENT, CORE_OPTIONS } from \"@elite.framework/ng.core/tokens\";\nimport { throwError, catchError } from \"rxjs\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nexport class RestService {\n options;\n http;\n environment = inject(ENVIRONMENT);\n constructor(options, http) {\n this.options = options;\n this.http = http;\n }\n getApiFromStore(apiName) {\n return this.environment.apiUrl;\n }\n handleError(err) {\n // this.httpErrorReporter.reportError(err);\n return throwError(() => err);\n }\n request(request, config, api) {\n // debugger\n config = config || {};\n api = api || this.getApiFromStore(config.apiName);\n const { method, params, ...options } = request;\n const { observe = \"body\" /* Rest.Observe.Body */, skipHandleError } = config;\n const url = this.removeDuplicateSlashes(api + request.url);\n const httpClient = this.getHttpClient(config.skipAddingHeader ?? false);\n return httpClient\n .request(method, url, {\n observe,\n ...(params && {\n params: this.getParams(params, config.httpParamEncoder),\n }),\n ...options,\n })\n .pipe(catchError(err => (skipHandleError ? throwError(() => err) : this.handleError(err))));\n }\n getHttpClient(isExternal) {\n return /* isExternal ? this.externalHttp : */ this.http;\n }\n getParams(params, encoder) {\n const filteredParams = Object.entries(params).reduce((acc, [key, value]) => {\n if (isUndefinedOrEmptyString(value))\n return acc;\n if (value === null && !this.options.sendNullsAsQueryParam)\n return acc;\n acc[key] = value;\n return acc;\n }, {});\n return encoder\n ? new HttpParams({ encoder, fromObject: filteredParams })\n : new HttpParams({ fromObject: filteredParams });\n }\n removeDuplicateSlashes(url) {\n return url.replace(/([^:]\\/)\\/+/g, '$1');\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: RestService, deps: [{ token: CORE_OPTIONS }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: RestService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: RestService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [CORE_OPTIONS]\n }] }, { type: i1.HttpClient }] });\nexport function isUndefinedOrEmptyString(value) {\n return value === undefined || value === '';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy5jb3JlL3NlcnZpY2VzL3NyYy9saWIvcmVzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQW1DLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBYyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFLMUQsTUFBTSxPQUFPLFdBQVc7SUFHWTtJQUN0QjtJQUhKLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUMsWUFDa0MsT0FBYSxFQUNuQyxJQUFnQjtRQURNLFlBQU8sR0FBUCxPQUFPLENBQU07UUFDbkMsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUd4QixDQUFDO0lBRUssZUFBZSxDQUFDLE9BQTJCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFRO1FBQ2xCLDJDQUEyQztRQUMzQyxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTyxDQUNMLE9BQXlDLEVBQ3pDLE1BQW9CLEVBQ3BCLEdBQVk7UUFFWixXQUFXO1FBQ1gsTUFBTSxHQUFHLE1BQU0sSUFBSyxFQUFrQixDQUFDO1FBQ3ZDLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDL0MsTUFBTSxFQUFFLE9BQU8saUNBQW9CLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ2hFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVELE1BQU0sVUFBVSxHQUFlLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ3BGLE9BQU8sVUFBVTthQUNkLE9BQU8sQ0FBSSxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQ3ZCLE9BQU87WUFDUCxHQUFHLENBQUMsTUFBTSxJQUFJO2dCQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7YUFDeEQsQ0FBQztZQUNGLEdBQUcsT0FBTztTQUNKLENBQUM7YUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBQ08sYUFBYSxDQUFDLFVBQW1CO1FBQ3ZDLE9BQU8sc0NBQXNDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUMxRCxDQUFDO0lBRU8sU0FBUyxDQUFDLE1BQW1CLEVBQUUsT0FBNEI7UUFDakUsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUN6RSxJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUNoRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQjtnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUN0RSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ2pCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQVMsQ0FBQyxDQUFDO1FBQ2QsT0FBTyxPQUFPO1lBQ1osQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsQ0FBQztZQUN6RCxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsR0FBVztRQUN4QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7dUdBM0RVLFdBQVcsa0JBR1osWUFBWTsyR0FIWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUlJLE1BQU07MkJBQUMsWUFBWTs7QUE0RHhCLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFjO0lBQ3JELE9BQU8sS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVxdWVzdCwgSHR0cFBhcmFtZXRlckNvZGVjLCBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBSb290LCBSZXN0IH0gZnJvbSBcIkBlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9tb2RlbHNcIjtcbmltcG9ydCB7IEVOVklST05NRU5ULCBDT1JFX09QVElPTlMgfSBmcm9tIFwiQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3Rva2Vuc1wiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgY2F0Y2hFcnJvciB9IGZyb20gXCJyeGpzXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZXN0U2VydmljZSB7XG4gIHByaXZhdGUgZW52aXJvbm1lbnQgPSBpbmplY3QoRU5WSVJPTk1FTlQpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENPUkVfT1BUSU9OUykgcHJvdGVjdGVkIG9wdGlvbnM6IFJvb3QsXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgLy8gcHJvdGVjdGVkIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFNlcnZpY2UsXG4gICAgLy8gcHJvdGVjdGVkIGh0dHBFcnJvclJlcG9ydGVyOiBIdHRwRXJyb3JSZXBvcnRlclNlcnZpY2UsXG4gICkgeyB9XG5cbiAgcHJvdGVjdGVkIGdldEFwaUZyb21TdG9yZShhcGlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwaVVybDtcbiAgfVxuXG4gIGhhbmRsZUVycm9yKGVycjogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyB0aGlzLmh0dHBFcnJvclJlcG9ydGVyLnJlcG9ydEVycm9yKGVycik7XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcbiAgfVxuXG4gIHJlcXVlc3Q8VCwgUj4oXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8VD4gfCBSZXN0LlJlcXVlc3Q8VD4sXG4gICAgY29uZmlnPzogUmVzdC5Db25maWcsXG4gICAgYXBpPzogc3RyaW5nLFxuICApOiBPYnNlcnZhYmxlPFI+IHtcbiAgICAvLyBkZWJ1Z2dlclxuICAgIGNvbmZpZyA9IGNvbmZpZyB8fCAoe30gYXMgUmVzdC5Db25maWcpO1xuICAgIGFwaSA9IGFwaSB8fCB0aGlzLmdldEFwaUZyb21TdG9yZShjb25maWcuYXBpTmFtZSk7XG4gICAgY29uc3QgeyBtZXRob2QsIHBhcmFtcywgLi4ub3B0aW9ucyB9ID0gcmVxdWVzdDtcbiAgICBjb25zdCB7IG9ic2VydmUgPSBSZXN0Lk9ic2VydmUuQm9keSwgc2tpcEhhbmRsZUVycm9yIH0gPSBjb25maWc7XG4gICAgY29uc3QgdXJsID0gdGhpcy5yZW1vdmVEdXBsaWNhdGVTbGFzaGVzKCBhcGkgKyByZXF1ZXN0LnVybCk7XG5cbiAgICBjb25zdCBodHRwQ2xpZW50OiBIdHRwQ2xpZW50ID0gdGhpcy5nZXRIdHRwQ2xpZW50KGNvbmZpZy5za2lwQWRkaW5nSGVhZGVyID8/IGZhbHNlKTtcbiAgICByZXR1cm4gaHR0cENsaWVudFxuICAgICAgLnJlcXVlc3Q8Uj4obWV0aG9kLCB1cmwsIHtcbiAgICAgICAgb2JzZXJ2ZSxcbiAgICAgICAgLi4uKHBhcmFtcyAmJiB7XG4gICAgICAgICAgcGFyYW1zOiB0aGlzLmdldFBhcmFtcyhwYXJhbXMsIGNvbmZpZy5odHRwUGFyYW1FbmNvZGVyKSxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB9IGFzIGFueSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IoZXJyID0+IChza2lwSGFuZGxlRXJyb3IgPyB0aHJvd0Vycm9yKCgpID0+IGVycikgOiB0aGlzLmhhbmRsZUVycm9yKGVycikpKSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRIdHRwQ2xpZW50KGlzRXh0ZXJuYWw6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gLyogaXNFeHRlcm5hbCA/IHRoaXMuZXh0ZXJuYWxIdHRwIDogKi8gdGhpcy5odHRwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJhbXMocGFyYW1zOiBSZXN0LlBhcmFtcywgZW5jb2Rlcj86IEh0dHBQYXJhbWV0ZXJDb2RlYyk6IEh0dHBQYXJhbXMge1xuICAgIGNvbnN0IGZpbHRlcmVkUGFyYW1zID0gT2JqZWN0LmVudHJpZXMocGFyYW1zKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAoaXNVbmRlZmluZWRPckVtcHR5U3RyaW5nKHZhbHVlKSkgcmV0dXJuIGFjYztcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCAmJiAhdGhpcy5vcHRpb25zLnNlbmROdWxsc0FzUXVlcnlQYXJhbSkgcmV0dXJuIGFjYztcbiAgICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIGFueSk7XG4gICAgcmV0dXJuIGVuY29kZXJcbiAgICAgID8gbmV3IEh0dHBQYXJhbXMoeyBlbmNvZGVyLCBmcm9tT2JqZWN0OiBmaWx0ZXJlZFBhcmFtcyB9KVxuICAgICAgOiBuZXcgSHR0cFBhcmFtcyh7IGZyb21PYmplY3Q6IGZpbHRlcmVkUGFyYW1zIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVEdXBsaWNhdGVTbGFzaGVzKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXJsLnJlcGxhY2UoLyhbXjpdXFwvKVxcLysvZywgJyQxJyk7XG4gIH1cblxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWRPckVtcHR5U3RyaW5nKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJztcbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { map } from 'rxjs';\nimport { RestService } from './rest.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./rest.service\";\nexport class BaseService {\n restService;\n apiName = '';\n moduleName = '';\n constructor(restService) {\n this.restService = restService;\n }\n get = (id) => this.restService.request({\n method: 'GET',\n url: `/${this.moduleName}/${this.apiName}/${id}`,\n }, { apiName: this.apiName });\n getList = (input, endpoint) => {\n const params = Object.keys(input).reduce((acc, key) => {\n acc[key] = input[key];\n return acc;\n }, {});\n const url = endpoint ? endpoint : `/${this.moduleName}/${this.apiName}`;\n return this.restService.request({\n method: 'GET',\n url: url,\n params: params,\n }, { apiName: this.apiName })\n .pipe(map(response => response));\n };\n create = (input) => this.restService.request({\n method: 'POST',\n url: `/${this.moduleName}/${this.apiName}`,\n body: input,\n }, { apiName: this.apiName });\n update = (id, input) => this.restService.request({\n method: 'PUT',\n url: `/${this.moduleName}/${this.apiName}/${id}`,\n body: input,\n }, { apiName: this.apiName });\n delete = (id) => this.restService.request({\n method: 'DELETE',\n url: `/${this.moduleName}/${this.apiName}/${id}`,\n }, { apiName: this.apiName });\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.RestService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy5jb3JlL3NlcnZpY2VzL3NyYy9saWIvYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU03QyxNQUFNLE9BQU8sV0FBVztJQUdIO0lBRm5CLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDYixVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLFlBQW1CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztJQUNoRCxHQUFHLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBVztRQUNqQyxNQUFNLEVBQUUsS0FBSztRQUNiLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUU7S0FDakQsRUFDRCxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUUzQixPQUFPLEdBQUcsQ0FBQyxLQUFTLEVBQUUsUUFBaUIsRUFBRyxFQUFFO1FBRTFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3hELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFTixNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUV6RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUE0QjtZQUN6RCxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxHQUFHO1lBQ1IsTUFBTSxFQUFFLE1BQU07U0FDZixFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUM1QixJQUFJLENBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQzFCLENBQUM7SUFDSixDQUFDLENBQUM7SUFDSixNQUFNLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBVztRQUNqQyxNQUFNLEVBQUUsTUFBTTtRQUNkLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUMxQyxJQUFJLEVBQUUsS0FBSztLQUNaLEVBQ0QsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDOUIsTUFBTSxHQUFHLENBQUMsRUFBVSxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFXO1FBQ2pDLE1BQU0sRUFBRSxLQUFLO1FBQ2IsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRTtRQUNoRCxJQUFJLEVBQUUsS0FBSztLQUNaLEVBQ0QsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFN0IsTUFBTSxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQVk7UUFDbEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRTtLQUNqRCxFQUNELEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO3VHQWpEbEIsV0FBVzsyR0FBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4vcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFBhZ2luYXRlZFJlc3VsdCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQmFzZVNlcnZpY2Uge1xuICBhcGlOYW1lID0gJyc7XG4gIG1vZHVsZU5hbWUgPSAnJztcbiAgY29uc3RydWN0b3IocHVibGljIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSkge31cbiBnZXQgPSAoaWQ6IHN0cmluZykgPT5cbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6IGAvJHt0aGlzLm1vZHVsZU5hbWV9LyR7dGhpcy5hcGlOYW1lfS8ke2lkfWAsXG4gICAgfSxcbiAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KTtcblxuICAgIGdldExpc3QgPSAoaW5wdXQ6YW55LCBlbmRwb2ludD86IHN0cmluZyApID0+IHtcblxuICAgICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmtleXMoaW5wdXQpLnJlZHVjZSgoYWNjOmFueSwga2V5KSA9PiB7XG4gICAgICAgIGFjY1trZXldID0gaW5wdXRba2V5XTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KTtcblxuICAgICAgIGNvbnN0IHVybCA9IGVuZHBvaW50ID8gZW5kcG9pbnQgOiBgLyR7dGhpcy5tb2R1bGVOYW1lfS8ke3RoaXMuYXBpTmFtZX1gO1xuXG4gICAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgUGFnaW5hdGVkUmVzdWx0PGFueT4+KHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgfSwgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UpXG4gICAgICApO1xuICAgIH07XG4gIGNyZWF0ZSA9IChpbnB1dDogYW55KSA9PlxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB1cmw6IGAvJHt0aGlzLm1vZHVsZU5hbWV9LyR7dGhpcy5hcGlOYW1lfWAsXG4gICAgICBib2R5OiBpbnB1dCxcbiAgICB9LFxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pO1xuIHVwZGF0ZSA9IChpZDogc3RyaW5nLCBpbnB1dDogYW55KSA9PlxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIHVybDogYC8ke3RoaXMubW9kdWxlTmFtZX0vJHt0aGlzLmFwaU5hbWV9LyR7aWR9YCxcbiAgICAgIGJvZHk6IGlucHV0LFxuICAgIH0sXG4gICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSk7XG5cbiAgZGVsZXRlID0gKGlkOiBzdHJpbmcpID0+XG4gICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgdm9pZD4oe1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIHVybDogYC8ke3RoaXMubW9kdWxlTmFtZX0vJHt0aGlzLmFwaU5hbWV9LyR7aWR9YCxcbiAgICB9LFxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pO1xuXG5cbn1cbiJdfQ==","// src/app/services/generic.service.ts\nimport { HttpParams } from '@angular/common/http';\n/**\n * GenericService<T, K>:\n * - T = نوع الكائن (Model)\n * - K = نوع المفتاح الأساسي (ID)، افتراضي number\n *\n * يحتوي على جميع دوال الـ CRUD القياسية للتوريث في الخدمات المتخصصة.\n */\nexport class GenericService {\n http;\n constructor(http) {\n this.http = http;\n }\n /**\n * جلب كل السجلات\n */\n getAll() {\n // ملاحظة: يمكن إضافة معالج أخطاء مركزي هنا أو عبر Interceptor\n return this.http.get(this.baseUrl);\n }\n /**\n * جلب سجل واحد بناءً على المعرف\n */\n getById(id) {\n // ملاحظة: تأكد أن الـ endpoint يدعم GET برقم المعرف\n return this.http.get(`${this.baseUrl}/${id}`);\n }\n /**\n * إنشاء سجل جديد\n */\n create(item) {\n // ملاحظة: استخدم Partial<T> للسماح ببعض الحقول الاختيارية\n return this.http.post(this.baseUrl, item);\n }\n /**\n * تحديث سجل موجود\n */\n update(id, item) {\n // ملاحظة: هنا نُعيد Observable<void> لأن API قد لا تُرجع الجسم نفسه\n return this.http.put(`${this.baseUrl}`, item);\n }\n /**\n * حذف سجل\n */\n delete(id) {\n // ملاحظة: يُفضّل استخدام Confirm قبل الحذف في الواجهة\n return this.http.delete(`${this.baseUrl}/${id}`);\n }\n /** endpoint قابل للتخصيص — يمكن للفرع override–ها */\n getPageUrl() {\n return this.baseUrl;\n }\n /**\n * جلب صفحة من البيانات مع دعم الفلاتر والفرز\n * @param pageIndex صفر-based\n * @param pageSize عدد السجلات\n * @param filters كائن Partial<T> أو Record<string,any>\n * @param sort نص الفرز، مثلاً \"eiNa:desc\"\n */\n getPage(pageIndex, pageSize, filters, sort) {\n // debugger\n let params = new HttpParams()\n .set('pageIndex', pageIndex.toString())\n .set('pageSize', pageSize.toString());\n if (filters) {\n Object.entries(filters).forEach(([key, val]) => {\n if (val != null && val !== '') {\n params = params.set(key, val.toString());\n }\n });\n }\n if (sort) {\n params = params.set('sort', sort);\n }\n // return this.http\n // .get<T[]>(this.getPageUrl(), { params, observe: 'response' })\n // .pipe(\n // map((resp: HttpResponse<T[]>) => ({\n // items: resp.body || [],\n // totalCount: Number(resp.headers.get('X-Total-Count')) || resp.body?.length || 0\n // }))\n // );\n return this.http.get(this.getPageUrl(), { params });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy5jb3JlL3NlcnZpY2VzL3NyYy9saWIvZ2VuZXJpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQztBQUN0QyxPQUFPLEVBQWMsVUFBVSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBSzVFOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBZ0IsY0FBYztJQU9aO0lBQXRCLFlBQXNCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFBRyxDQUFDO0lBRTFDOztPQUVHO0lBQ0gsTUFBTTtRQUNKLDhEQUE4RDtRQUM5RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFFSCxPQUFPLENBQUMsRUFBSztRQUNYLG9EQUFvRDtRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxJQUFnQjtRQUVyQiwwREFBMEQ7UUFDMUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUVGLE1BQU0sQ0FBQyxFQUFLLEVBQUUsSUFBZ0I7UUFDN0Isb0VBQW9FO1FBQ25FLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEVBQUs7UUFDVixzREFBc0Q7UUFDdEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBSUYscURBQXFEO0lBQzFDLFVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFQTs7Ozs7O01BTUU7SUFDSCxPQUFPLENBQ0wsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsT0FBNkIsRUFDN0IsSUFBYTtRQUViLFdBQVc7UUFDWCxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRTthQUMxQixHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN0QyxHQUFHLENBQUMsVUFBVSxFQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdDLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELG1CQUFtQjtRQUNuQixrRUFBa0U7UUFDbEUsV0FBVztRQUNYLDBDQUEwQztRQUMxQyxnQ0FBZ0M7UUFDaEMsd0ZBQXdGO1FBQ3hGLFVBQVU7UUFDVixPQUFPO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUNqQixFQUFFLE1BQU0sRUFBRSxDQUNYLENBQUM7SUFDRixDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvYXBwL3NlcnZpY2VzL2dlbmVyaWMuc2VydmljZS50c1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcywgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDcnVkU2VydmljZSB9IGZyb20gJy4vY3J1ZC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYWdpbmF0ZWRSZXN1bHQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcblxuLyoqXG4gKiBHZW5lcmljU2VydmljZTxULCBLPjpcbiAqICAtIFQgPSDZhtmI2Lkg2KfZhNmD2KfYptmGIChNb2RlbClcbiAqICAtIEsgPSDZhtmI2Lkg2KfZhNmF2YHYqtin2K0g2KfZhNij2LPYp9iz2YogKElEKdiMINin2YHYqtix2KfYttmKIG51bWJlclxuICpcbiAqINmK2K3YqtmI2Yog2LnZhNmJINis2YXZiti5INiv2YjYp9mEINin2YTZgCBDUlVEINin2YTZgtmK2KfYs9mK2Kkg2YTZhNiq2YjYsdmK2Ksg2YHZiiDYp9mE2K7Yr9mF2KfYqiDYp9mE2YXYqtiu2LXYtdipLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2VuZXJpY1NlcnZpY2U8VCwgSyA9IG51bWJlcj4gaW1wbGVtZW50cyBDcnVkU2VydmljZTxULCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gIC8qKlxuICAgKiDinI/vuI8g2LnZhNmJINmD2YQg2K7Yr9mF2Kkg2YHYsdi52YrYqSDYo9mGINiq2LnYsdmR2YEg2YfYsNinOlxuICAgKiDZhdir2KfZhDogcHJvdGVjdGVkIGJhc2VVcmwgPSAnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vYXBpL2pvYnR5cHMnO1xuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJhc2VVcmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCkge31cblxuICAvKipcbiAgICog2KzZhNioINmD2YQg2KfZhNiz2KzZhNin2KpcbiAgICovXG4gIGdldEFsbCgpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIC8vINmF2YTYp9it2LjYqTog2YrZhdmD2YYg2KXYttin2YHYqSDZhdi52KfZhNisINij2K7Yt9in2KEg2YXYsdmD2LLZiiDZh9mG2Kcg2KPZiCDYudio2LEgSW50ZXJjZXB0b3JcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUW10+KHRoaXMuYmFzZVVybCk7XG4gIH1cblxuICAvKipcbiAgICog2KzZhNioINiz2KzZhCDZiNin2K3YryDYqNmG2KfYodmLINi52YTZiSDYp9mE2YXYudix2YFcbiAgICovXG5cbiAgZ2V0QnlJZChpZDogSyk6IE9ic2VydmFibGU8VD4ge1xuICAgIC8vINmF2YTYp9it2LjYqTog2KrYo9mD2K8g2KPZhiDYp9mE2YAgZW5kcG9pbnQg2YrYr9i52YUgR0VUINio2LHZgtmFINin2YTZhdi52LHZgVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KGAke3RoaXMuYmFzZVVybH0vJHtpZH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDYpdmG2LTYp9ihINiz2KzZhCDYrNiv2YrYr1xuICAgKi9cbiAgY3JlYXRlKGl0ZW06IFBhcnRpYWw8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcblxuICAgIC8vINmF2YTYp9it2LjYqTog2KfYs9iq2K7Yr9mFIFBhcnRpYWw8VD4g2YTZhNiz2YXYp9itINio2KjYudi2INin2YTYrdmC2YjZhCDYp9mE2KfYrtiq2YrYp9ix2YrYqVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih0aGlzLmJhc2VVcmwsIGl0ZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqINiq2K3Yr9mK2Ksg2LPYrNmEINmF2YjYrNmI2K9cbiAgICovXG5cbiAgIHVwZGF0ZShpZDogSywgaXRlbTogUGFydGlhbDxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgIC8vINmF2YTYp9it2LjYqTog2YfZhtinINmG2Y/YudmK2K8gT2JzZXJ2YWJsZTx2b2lkPiDZhNij2YYgQVBJINmC2K8g2YTYpyDYqtmP2LHYrNi5INin2YTYrNiz2YUg2YbZgdiz2YdcbiAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oYCR7dGhpcy5iYXNlVXJsfWAsIGl0ZW0pO1xuICB9XG4gIC8qKlxuICAgKiDYrdiw2YEg2LPYrNmEXG4gICAqL1xuICBkZWxldGUoaWQ6IEspOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAvLyDZhdmE2KfYrdi42Kk6INmK2Y/Zgdi22ZHZhCDYp9iz2KrYrtiv2KfZhSBDb25maXJtINmC2KjZhCDYp9mE2K3YsNmBINmB2Yog2KfZhNmI2KfYrNmH2KlcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx2b2lkPihgJHt0aGlzLmJhc2VVcmx9LyR7aWR9YCk7XG4gIH1cblxuXG5cbiAvKiogZW5kcG9pbnQg2YLYp9io2YQg2YTZhNiq2K7YtdmK2LUg4oCUINmK2YXZg9mGINmE2YTZgdix2Lkgb3ZlcnJpZGXigJPZh9inICovXG4gIHByb3RlY3RlZCBnZXRQYWdlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZVVybDtcbiAgfVxuXG4gICAvKipcbiAgICog2KzZhNioINi12YHYrdipINmF2YYg2KfZhNio2YrYp9mG2KfYqiDZhdi5INiv2LnZhSDYp9mE2YHZhNin2KrYsSDZiNin2YTZgdix2LJcbiAgICogQHBhcmFtIHBhZ2VJbmRleCDYtdmB2LEtYmFzZWRcbiAgICogQHBhcmFtIHBhZ2VTaXplINi52K/YryDYp9mE2LPYrNmE2KfYqlxuICAgKiBAcGFyYW0gZmlsdGVycyDZg9in2KbZhiBQYXJ0aWFsPFQ+INij2YggUmVjb3JkPHN0cmluZyxhbnk+XG4gICAqIEBwYXJhbSBzb3J0INmG2LUg2KfZhNmB2LHYstiMINmF2KvZhNin2YsgXCJlaU5hOmRlc2NcIlxuICAgKi9cbiAgZ2V0UGFnZShcbiAgICBwYWdlSW5kZXg6IG51bWJlcixcbiAgICBwYWdlU2l6ZTogbnVtYmVyLFxuICAgIGZpbHRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHNvcnQ/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxQYWdpbmF0ZWRSZXN1bHQ8VD4+IHtcbiAgICAvLyBkZWJ1Z2dlclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAuc2V0KCdwYWdlSW5kZXgnLCBwYWdlSW5kZXgudG9TdHJpbmcoKSlcbiAgICAgIC5zZXQoJ3BhZ2VTaXplJywgIHBhZ2VTaXplLnRvU3RyaW5nKCkpO1xuXG4gICAgaWYgKGZpbHRlcnMpIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKGZpbHRlcnMpLmZvckVhY2goKFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgaWYgKHZhbCAhPSBudWxsICYmIHZhbCAhPT0gJycpIHtcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KGtleSwgdmFsLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoc29ydCkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc29ydCcsIHNvcnQpO1xuICAgIH1cblxuICAgIC8vIHJldHVybiB0aGlzLmh0dHBcbiAgICAvLyAgIC5nZXQ8VFtdPih0aGlzLmdldFBhZ2VVcmwoKSwgeyBwYXJhbXMsIG9ic2VydmU6ICdyZXNwb25zZScgfSlcbiAgICAvLyAgIC5waXBlKFxuICAgIC8vICAgICBtYXAoKHJlc3A6IEh0dHBSZXNwb25zZTxUW10+KSA9PiAoe1xuICAgIC8vICAgICAgIGl0ZW1zOiByZXNwLmJvZHkgfHwgW10sXG4gICAgLy8gICAgICAgdG90YWxDb3VudDogTnVtYmVyKHJlc3AuaGVhZGVycy5nZXQoJ1gtVG90YWwtQ291bnQnKSkgfHwgcmVzcC5ib2R5Py5sZW5ndGggfHwgMFxuICAgIC8vICAgICB9KSlcbiAgICAvLyAgICk7XG4gICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UGFnaW5hdGVkUmVzdWx0PFQ+PihcbiAgICB0aGlzLmdldFBhZ2VVcmwoKSxcbiAgICB7IHBhcmFtcyB9XG4gICk7XG4gIH1cblxuXG59XG4iXX0=","import { Inject, Injectable, InjectionToken, Optional, PLATFORM_ID } from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport * as i0 from \"@angular/core\";\n// Define the `Request` token\nexport const REQUEST = new InjectionToken('REQUEST');\nexport class SsrCookieService {\n document;\n platformId;\n request;\n documentIsAccessible;\n static initialUrl = '';\n constructor(document, \n // Get the `PLATFORM_ID` so we can check if we're in a browser.\n platformId, request) {\n this.document = document;\n this.platformId = platformId;\n this.request = request;\n this.documentIsAccessible = isPlatformBrowser(this.platformId);\n SsrCookieService.initialUrl = this.documentIsAccessible ? this.document.location.href : this.request?.url;\n }\n /**\n * Get cookie Regular Expression\n *\n * @param name Cookie name\n * @returns property RegExp\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n static getCookieRegExp(name) {\n const escapedName = name.replace(/([\\[\\]\\{\\}\\(\\)\\|\\=\\;\\+\\?\\,\\.\\*\\^\\$])/gi, '\\\\$1');\n return new RegExp('(?:^' + escapedName + '|;\\\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');\n }\n /**\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n * @param encodedURIComponent A value representing an encoded URI component.\n *\n * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n static safeDecodeURIComponent(encodedURIComponent) {\n try {\n return decodeURIComponent(encodedURIComponent);\n }\n catch {\n // probably it is not uri encoded. return as is\n return encodedURIComponent;\n }\n }\n /**\n * Return `true` if {@link Document} is accessible, otherwise return `false`\n *\n * @param name Cookie name\n * @returns boolean - whether cookie with specified name exists\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n check(name) {\n name = encodeURIComponent(name);\n const regExp = SsrCookieService.getCookieRegExp(name);\n return regExp.test((this.documentIsAccessible ? this.document.cookie : this.request?.headers.cookie) ?? '');\n }\n isDocumentIsAccessible() {\n return this.documentIsAccessible;\n }\n get url() {\n return this.documentIsAccessible ? this.document.location.href : this.request?.url;\n }\n /**\n * Get cookies by name\n *\n * @param name Cookie name\n * @returns property value\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n get(name) {\n if (this.check(name)) {\n name = encodeURIComponent(name);\n const regExp = SsrCookieService.getCookieRegExp(name);\n const result = regExp.exec((this.documentIsAccessible ? this.document.cookie : this.request?.headers.cookie) ?? '');\n return result[1] ? SsrCookieService.safeDecodeURIComponent(result[1]) : '';\n }\n else {\n return '';\n }\n }\n /**\n * Get all cookies in JSON format\n *\n * @returns all the cookies in json\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n getAll() {\n const cookies = {};\n const cookieString = this.documentIsAccessible ? this.document?.cookie : this.request?.headers.cookie;\n if (cookieString && cookieString !== '') {\n cookieString.split(';').forEach((currentCookie) => {\n const [cookieName, cookieValue] = currentCookie.split('=');\n cookies[SsrCookieService.safeDecodeURIComponent(cookieName.replace(/^ /, ''))] = SsrCookieService.safeDecodeURIComponent(cookieValue);\n });\n }\n return cookies;\n }\n set(name, value, expiresOrOptions, path, domain, secure, sameSite, partitioned) {\n if (!this.documentIsAccessible) {\n return;\n }\n if (typeof expiresOrOptions === 'number' || expiresOrOptions instanceof Date || path || domain || secure || sameSite) {\n const optionsBody = {\n expires: expiresOrOptions,\n path,\n domain,\n secure,\n sameSite: sameSite ? sameSite : 'Lax',\n partitioned,\n };\n this.set(name, value, optionsBody);\n return;\n }\n let cookieString = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';\n const options = expiresOrOptions ? expiresOrOptions : {};\n if (options.expires) {\n if (typeof options.expires === 'number') {\n const dateExpires = new Date(new Date().getTime() + options.expires * 1000 * 60 * 60 * 24);\n cookieString += 'expires=' + dateExpires.toUTCString() + ';';\n }\n else {\n cookieString += 'expires=' + options.expires.toUTCString() + ';';\n }\n }\n if (options.path) {\n cookieString += 'path=' + options.path + ';';\n }\n if (options.domain) {\n cookieString += 'domain=' + options.domain + ';';\n }\n if (options.secure === false && options.sameSite === 'None') {\n options.secure = true;\n console.warn(`[ngx-cookie-service] Cookie ${name} was forced with secure flag because sameSite=None.` +\n `More details : https://github.com/stevermeister/ngx-cookie-service/issues/86#issuecomment-597720130`);\n }\n if (options.secure) {\n cookieString += 'secure;';\n }\n if (!options.sameSite) {\n options.sameSite = 'Lax';\n }\n cookieString += 'sameSite=' + options.sameSite + ';';\n if (options.partitioned) {\n cookieString += 'Partitioned;';\n }\n this.document.cookie = cookieString;\n }\n /**\n * Delete cookie by name\n *\n * @param name Cookie name\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Cookie secure flag\n * @param sameSite Cookie sameSite flag - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n delete(name, path, domain, secure, sameSite = 'Lax') {\n if (!this.documentIsAccessible) {\n return;\n }\n const expiresDate = new Date('Thu, 01 Jan 1970 00:00:01 GMT');\n this.set(name, '', { expires: expiresDate, path, domain, secure, sameSite });\n }\n /**\n * Delete all cookies\n *\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Is the Cookie secure\n * @param sameSite Is the cookie same site\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n deleteAll(path, domain, secure, sameSite = 'Lax') {\n if (!this.documentIsAccessible) {\n return;\n }\n const cookies = this.getAll();\n for (const cookieName in cookies) {\n if (cookies.hasOwnProperty(cookieName)) {\n this.delete(cookieName, path, domain, secure, sameSite);\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: SsrCookieService, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: REQUEST, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: SsrCookieService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: SsrCookieService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [REQUEST]\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLWNvb2tpZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy5jb3JlL3NlcnZpY2VzL3NyYy9saWIvc3NyLWNvb2tpZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFOUQsNkJBQTZCO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBVSxTQUFTLENBQUMsQ0FBQztBQUs5RCxNQUFNLE9BQU8sZ0JBQWdCO0lBS0M7SUFFRztJQUNRO0lBUHRCLG9CQUFvQixDQUFVO0lBQy9DLE1BQU0sQ0FBRSxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBRXhCLFlBQzRCLFFBQWtCO0lBQzVDLCtEQUErRDtJQUNsQyxVQUFlLEVBQ1AsT0FBZ0I7UUFIM0IsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVmLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDUCxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBRXJELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0QsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztJQUM1RyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQVk7UUFDakMsTUFBTSxXQUFXLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FBQyx3Q0FBd0MsRUFBRSxNQUFNLENBQUMsQ0FBQztRQUUzRixPQUFPLElBQUksTUFBTSxDQUFDLE1BQU0sR0FBRyxXQUFXLEdBQUcsUUFBUSxHQUFHLFdBQVcsR0FBRyxnQkFBZ0IsRUFBRSxHQUFHLENBQUMsQ0FBQztJQUMzRixDQUFDO0lBRUQ7Ozs7Ozs7OztPQVNHO0lBQ0gsTUFBTSxDQUFDLHNCQUFzQixDQUFDLG1CQUEyQjtRQUN2RCxJQUFJLENBQUM7WUFDSCxPQUFPLGtCQUFrQixDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDakQsQ0FBQztRQUFDLE1BQU0sQ0FBQztZQUNQLCtDQUErQztZQUMvQyxPQUFPLG1CQUFtQixDQUFDO1FBQzdCLENBQUM7SUFDSCxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxLQUFLLENBQUMsSUFBWTtRQUNoQixJQUFJLEdBQUcsa0JBQWtCLENBQUMsSUFBSSxDQUFDLENBQUM7UUFDaEMsTUFBTSxNQUFNLEdBQVcsZ0JBQWdCLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQzlELE9BQU8sTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUUsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO0lBQy9HLENBQUM7SUFDRCxzQkFBc0I7UUFDcEIsT0FBTyxJQUFJLENBQUMsb0JBQW9CLENBQUU7SUFDcEMsQ0FBQztJQUNGLElBQUksR0FBRztRQUNKLE9BQU8sSUFBSSxDQUFDLG9CQUFvQixDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsR0FBRyxDQUFDO0lBQ3JGLENBQUM7SUFFRDs7Ozs7Ozs7T0FRRztJQUNILEdBQUcsQ0FBQyxJQUFZO1FBQ2QsSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUM7WUFDckIsSUFBSSxHQUFHLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDO1lBRWhDLE1BQU0sTUFBTSxHQUFXLGdCQUFnQixDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsQ0FBQztZQUM5RCxNQUFNLE1BQU0sR0FBd0IsTUFBTSxDQUFDLElBQUksQ0FBQyxDQUFDLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxPQUFPLEVBQUUsT0FBTyxDQUFDLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDO1lBRXpJLE9BQU8sTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQzdFLENBQUM7YUFBTSxDQUFDO1lBQ04sT0FBTyxFQUFFLENBQUM7UUFDWixDQUFDO0lBQ0gsQ0FBQztJQUVEOzs7Ozs7O09BT0c7SUFDSCxNQUFNO1FBQ0osTUFBTSxPQUFPLEdBQThCLEVBQUUsQ0FBQztRQUM5QyxNQUFNLFlBQVksR0FBUSxJQUFJLENBQUMsb0JBQW9CLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLE9BQU8sQ0FBQyxNQUFNLENBQUM7UUFFM0csSUFBSSxZQUFZLElBQUksWUFBWSxLQUFLLEVBQUUsRUFBRSxDQUFDO1lBQ3hDLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsT0FBTyxDQUFDLENBQUMsYUFBaUIsRUFBRSxFQUFFO2dCQUNwRCxNQUFNLENBQUMsVUFBVSxFQUFFLFdBQVcsQ0FBQyxHQUFHLGFBQWEsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7Z0JBQzNELE9BQU8sQ0FBQyxnQkFBZ0IsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsT0FBTyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLEdBQUcsZ0JBQWdCLENBQUMsc0JBQXNCLENBQUMsV0FBVyxDQUFDLENBQUM7WUFDeEksQ0FBQyxDQUFDLENBQUM7UUFDTCxDQUFDO1FBRUQsT0FBTyxPQUFPLENBQUM7SUFDakIsQ0FBQztJQTRERCxHQUFHLENBQ0QsSUFBWSxFQUNaLEtBQWEsRUFDYixnQkFBc0MsRUFDdEMsSUFBYSxFQUNiLE1BQWUsRUFDZixNQUFnQixFQUNoQixRQUFvQyxFQUNwQyxXQUFxQjtRQUVyQixJQUFJLENBQUMsSUFBSSxDQUFDLG9CQUFvQixFQUFFLENBQUM7WUFDL0IsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLE9BQU8sZ0JBQWdCLEtBQUssUUFBUSxJQUFJLGdCQUFnQixZQUFZLElBQUksSUFBSSxJQUFJLElBQUksTUFBTSxJQUFJLE1BQU0sSUFBSSxRQUFRLEVBQUUsQ0FBQztZQUNySCxNQUFNLFdBQVcsR0FBRztnQkFDbEIsT0FBTyxFQUFFLGdCQUFnQjtnQkFDekIsSUFBSTtnQkFDSixNQUFNO2dCQUNOLE1BQU07Z0JBQ04sUUFBUSxFQUFFLFFBQVEsQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLO2dCQUNyQyxXQUFXO2FBQ1osQ0FBQztZQUVGLElBQUksQ0FBQyxHQUFHLENBQUMsSUFBSSxFQUFFLEtBQUssRUFBRSxXQUFXLENBQUMsQ0FBQztZQUNuQyxPQUFPO1FBQ1QsQ0FBQztRQUVELElBQUksWUFBWSxHQUFXLGtCQUFrQixDQUFDLElBQUksQ0FBQyxHQUFHLEdBQUcsR0FBRyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsR0FBRyxHQUFHLENBQUM7UUFFNUYsTUFBTSxPQUFPLEdBQUcsZ0JBQWdCLENBQUMsQ0FBQyxDQUFDLGdCQUFnQixDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7UUFFekQsSUFBSSxPQUFPLENBQUMsT0FBTyxFQUFFLENBQUM7WUFDcEIsSUFBSSxPQUFPLE9BQU8sQ0FBQyxPQUFPLEtBQUssUUFBUSxFQUFFLENBQUM7Z0JBQ3hDLE1BQU0sV0FBVyxHQUFTLElBQUksSUFBSSxDQUFDLElBQUksSUFBSSxFQUFFLENBQUMsT0FBTyxFQUFFLEdBQUcsT0FBTyxDQUFDLE9BQU8sR0FBRyxJQUFJLEdBQUcsRUFBRSxHQUFHLEVBQUUsR0FBRyxFQUFFLENBQUMsQ0FBQztnQkFFakcsWUFBWSxJQUFJLFVBQVUsR0FBRyxXQUFXLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQy9ELENBQUM7aUJBQU0sQ0FBQztnQkFDTixZQUFZLElBQUksVUFBVSxHQUFHLE9BQU8sQ0FBQyxPQUFPLENBQUMsV0FBVyxFQUFFLEdBQUcsR0FBRyxDQUFDO1lBQ25FLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDakIsWUFBWSxJQUFJLE9BQU8sR0FBRyxPQUFPLENBQUMsSUFBSSxHQUFHLEdBQUcsQ0FBQztRQUMvQyxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxFQUFFLENBQUM7WUFDbkIsWUFBWSxJQUFJLFNBQVMsR0FBRyxPQUFPLENBQUMsTUFBTSxHQUFHLEdBQUcsQ0FBQztRQUNuRCxDQUFDO1FBRUQsSUFBSSxPQUFPLENBQUMsTUFBTSxLQUFLLEtBQUssSUFBSSxPQUFPLENBQUMsUUFBUSxLQUFLLE1BQU0sRUFBRSxDQUFDO1lBQzVELE9BQU8sQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxJQUFJLENBQ1YsK0JBQStCLElBQUkscURBQXFEO2dCQUN0RixxR0FBcUcsQ0FDeEcsQ0FBQztRQUNKLENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxNQUFNLEVBQUUsQ0FBQztZQUNuQixZQUFZLElBQUksU0FBUyxDQUFDO1FBQzVCLENBQUM7UUFFRCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQ3RCLE9BQU8sQ0FBQyxRQUFRLEdBQUcsS0FBSyxDQUFDO1FBQzNCLENBQUM7UUFFRCxZQUFZLElBQUksV0FBVyxHQUFHLE9BQU8sQ0FBQyxRQUFRLEdBQUcsR0FBRyxDQUFDO1FBRXJELElBQUksT0FBTyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQ3hCLFlBQVksSUFBSSxjQUFjLENBQUM7UUFDakMsQ0FBQztRQUVELElBQUksQ0FBQyxRQUFRLENBQUMsTUFBTSxHQUFHLFlBQVksQ0FBQztJQUN0QyxDQUFDO0lBRUQ7Ozs7Ozs7Ozs7O09BV0c7SUFDSCxNQUFNLENBQUMsSUFBWSxFQUFFLElBQWEsRUFBRSxNQUFlLEVBQUUsTUFBZ0IsRUFBRSxXQUFzQyxLQUFLO1FBQ2hILElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUNELE1BQU0sV0FBVyxHQUFHLElBQUksSUFBSSxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDOUQsSUFBSSxDQUFDLEdBQUcsQ0FBQyxJQUFJLEVBQUUsRUFBRSxFQUFFLEVBQUUsT0FBTyxFQUFFLFdBQVcsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUUsQ0FBQyxDQUFDO0lBQy9FLENBQUM7SUFFRDs7Ozs7Ozs7OztPQVVHO0lBQ0gsU0FBUyxDQUFDLElBQWEsRUFBRSxNQUFlLEVBQUUsTUFBZ0IsRUFBRSxXQUFzQyxLQUFLO1FBQ3JHLElBQUksQ0FBQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztZQUMvQixPQUFPO1FBQ1QsQ0FBQztRQUVELE1BQU0sT0FBTyxHQUFRLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztRQUVuQyxLQUFLLE1BQU0sVUFBVSxJQUFJLE9BQU8sRUFBRSxDQUFDO1lBQ2pDLElBQUksT0FBTyxDQUFDLGNBQWMsQ0FBQyxVQUFVLENBQUMsRUFBRSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsTUFBTSxDQUFDLFVBQVUsRUFBRSxJQUFJLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxRQUFRLENBQUMsQ0FBQztZQUMxRCxDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7dUdBaFNVLGdCQUFnQixrQkFLakIsUUFBUSxhQUVSLFdBQVcsYUFDQyxPQUFPOzJHQVJsQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUVmLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLy8gRGVmaW5lIHRoZSBgUmVxdWVzdGAgdG9rZW5cbmV4cG9ydCBjb25zdCBSRVFVRVNUID0gbmV3IEluamVjdGlvblRva2VuPFJlcXVlc3Q+KCdSRVFVRVNUJyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTc3JDb29raWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudElzQWNjZXNzaWJsZTogYm9vbGVhbjtcbiAgc3RhdGljICBpbml0aWFsVXJsID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgLy8gR2V0IHRoZSBgUExBVEZPUk1fSURgIHNvIHdlIGNhbiBjaGVjayBpZiB3ZSdyZSBpbiBhIGJyb3dzZXIuXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnksXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChSRVFVRVNUKSBwcml2YXRlIHJlcXVlc3Q6IFJlcXVlc3RcbiAgKSB7XG4gICAgdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XG4gICAgU3NyQ29va2llU2VydmljZS5pbml0aWFsVXJsID0gdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA/IHRoaXMuZG9jdW1lbnQubG9jYXRpb24uaHJlZiA6IHRoaXMucmVxdWVzdD8udXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb29raWUgUmVndWxhciBFeHByZXNzaW9uXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIENvb2tpZSBuYW1lXG4gICAqIEByZXR1cm5zIHByb3BlcnR5IFJlZ0V4cFxuICAgKlxuICAgKiBAYXV0aG9yOiBTdGVwYW4gU3V2b3JvdlxuICAgKiBAc2luY2U6IDEuMC4wXG4gICAqL1xuICBzdGF0aWMgZ2V0Q29va2llUmVnRXhwKG5hbWU6IHN0cmluZyk6IFJlZ0V4cCB7XG4gICAgY29uc3QgZXNjYXBlZE5hbWU6IHN0cmluZyA9IG5hbWUucmVwbGFjZSgvKFtcXFtcXF1cXHtcXH1cXChcXClcXHxcXD1cXDtcXCtcXD9cXCxcXC5cXCpcXF5cXCRdKS9naSwgJ1xcXFwkMScpO1xuXG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoJyg/Ol4nICsgZXNjYXBlZE5hbWUgKyAnfDtcXFxccyonICsgZXNjYXBlZE5hbWUgKyAnKT0oLio/KSg/Ojt8JCknLCAnZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHVuZW5jb2RlZCB2ZXJzaW9uIG9mIGFuIGVuY29kZWQgY29tcG9uZW50IG9mIGEgVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVyIChVUkkpLlxuICAgKlxuICAgKiBAcGFyYW0gZW5jb2RlZFVSSUNvbXBvbmVudCBBIHZhbHVlIHJlcHJlc2VudGluZyBhbiBlbmNvZGVkIFVSSSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB1bmVuY29kZWQgdmVyc2lvbiBvZiBhbiBlbmNvZGVkIGNvbXBvbmVudCBvZiBhIFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllciAoVVJJKS5cbiAgICpcbiAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICogQHNpbmNlOiAxLjAuMFxuICAgKi9cbiAgc3RhdGljIHNhZmVEZWNvZGVVUklDb21wb25lbnQoZW5jb2RlZFVSSUNvbXBvbmVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkVVJJQ29tcG9uZW50KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIHByb2JhYmx5IGl0IGlzIG5vdCB1cmkgZW5jb2RlZC4gcmV0dXJuIGFzIGlzXG4gICAgICByZXR1cm4gZW5jb2RlZFVSSUNvbXBvbmVudDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGB0cnVlYCBpZiB7QGxpbmsgRG9jdW1lbnR9IGlzIGFjY2Vzc2libGUsIG90aGVyd2lzZSByZXR1cm4gYGZhbHNlYFxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBDb29raWUgbmFtZVxuICAgKiBAcmV0dXJucyBib29sZWFuIC0gd2hldGhlciBjb29raWUgd2l0aCBzcGVjaWZpZWQgbmFtZSBleGlzdHNcbiAgICpcbiAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICogQHNpbmNlOiAxLjAuMFxuICAgKi9cbiAgY2hlY2sobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTtcbiAgICBjb25zdCByZWdFeHA6IFJlZ0V4cCA9IFNzckNvb2tpZVNlcnZpY2UuZ2V0Q29va2llUmVnRXhwKG5hbWUpO1xuICAgIHJldHVybiByZWdFeHAudGVzdCgodGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA/IHRoaXMuZG9jdW1lbnQuY29va2llICA6IHRoaXMucmVxdWVzdD8uaGVhZGVycy5jb29raWUpID8/ICcnKTtcbiAgfVxuICBpc0RvY3VtZW50SXNBY2Nlc3NpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlIDtcbiAgfVxuIGdldCB1cmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA/IHRoaXMuZG9jdW1lbnQubG9jYXRpb24uaHJlZiA6IHRoaXMucmVxdWVzdD8udXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb29raWVzIGJ5IG5hbWVcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICogQHJldHVybnMgcHJvcGVydHkgdmFsdWVcbiAgICpcbiAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICogQHNpbmNlOiAxLjAuMFxuICAgKi9cbiAgZ2V0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY2hlY2sobmFtZSkpIHtcbiAgICAgIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSk7XG5cbiAgICAgIGNvbnN0IHJlZ0V4cDogUmVnRXhwID0gU3NyQ29va2llU2VydmljZS5nZXRDb29raWVSZWdFeHAobmFtZSk7XG4gICAgICBjb25zdCByZXN1bHQ6IFJlZ0V4cEV4ZWNBcnJheSB8YW55PSByZWdFeHAuZXhlYygodGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA/IHRoaXMuZG9jdW1lbnQuY29va2llIDogdGhpcy5yZXF1ZXN0Py5oZWFkZXJzLmNvb2tpZSkgPz8gJycpO1xuXG4gICAgICByZXR1cm4gcmVzdWx0WzFdID8gU3NyQ29va2llU2VydmljZS5zYWZlRGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdFsxXSkgOiAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGNvb2tpZXMgaW4gSlNPTiBmb3JtYXRcbiAgICpcbiAgICogQHJldHVybnMgYWxsIHRoZSBjb29raWVzIGluIGpzb25cbiAgICpcbiAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICogQHNpbmNlOiAxLjAuMFxuICAgKi9cbiAgZ2V0QWxsKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IGNvb2tpZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBjb25zdCBjb29raWVTdHJpbmc6IGFueSA9IHRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUgPyB0aGlzLmRvY3VtZW50Py5jb29raWUgOiB0aGlzLnJlcXVlc3Q/LmhlYWRlcnMuY29va2llO1xuXG4gICAgaWYgKGNvb2tpZVN0cmluZyAmJiBjb29raWVTdHJpbmcgIT09ICcnKSB7XG4gICAgICBjb29raWVTdHJpbmcuc3BsaXQoJzsnKS5mb3JFYWNoKChjdXJyZW50Q29va2llOmFueSkgPT4ge1xuICAgICAgICBjb25zdCBbY29va2llTmFtZSwgY29va2llVmFsdWVdID0gY3VycmVudENvb2tpZS5zcGxpdCgnPScpO1xuICAgICAgICBjb29raWVzW1NzckNvb2tpZVNlcnZpY2Uuc2FmZURlY29kZVVSSUNvbXBvbmVudChjb29raWVOYW1lLnJlcGxhY2UoL14gLywgJycpKV0gPSBTc3JDb29raWVTZXJ2aWNlLnNhZmVEZWNvZGVVUklDb21wb25lbnQoY29va2llVmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvb2tpZXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvb2tpZSBiYXNlZCBvbiBwcm92aWRlZCBpbmZvcm1hdGlvblxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAgICAgQ29va2llIG5hbWVcbiAgICogQHBhcmFtIHZhbHVlICAgIENvb2tpZSB2YWx1ZVxuICAgKiBAcGFyYW0gZXhwaXJlcyAgTnVtYmVyIG9mIGRheXMgdW50aWwgdGhlIGNvb2tpZXMgZXhwaXJlcyBvciBhbiBhY3R1YWwgYERhdGVgXG4gICAqIEBwYXJhbSBwYXRoICAgICBDb29raWUgcGF0aFxuICAgKiBAcGFyYW0gZG9tYWluICAgQ29va2llIGRvbWFpblxuICAgKiBAcGFyYW0gc2VjdXJlICAgU2VjdXJlIGZsYWdcbiAgICogQHBhcmFtIHNhbWVTaXRlIE9XQVNQIHNhbWUgc2l0ZSB0b2tlbiBgTGF4YCwgYE5vbmVgLCBvciBgU3RyaWN0YC4gRGVmYXVsdHMgdG8gYExheGBcbiAgICogQHBhcmFtIHBhcnRpdGlvbmVkIFBhcnRpdGlvbmVkIGZsYWdcbiAgICpcbiAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICogQHNpbmNlOiAxLjAuMFxuICAgKi9cbiAgc2V0KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIGV4cGlyZXM/OiBudW1iZXIgfCBEYXRlLFxuICAgIHBhdGg/OiBzdHJpbmcsXG4gICAgZG9tYWluPzogc3RyaW5nLFxuICAgIHNlY3VyZT86IGJvb2xlYW4sXG4gICAgc2FtZVNpdGU/OiAnTGF4JyB8ICdOb25lJyB8ICdTdHJpY3QnLFxuICAgIHBhcnRpdGlvbmVkPzogYm9vbGVhblxuICApOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTZXQgY29va2llIGJhc2VkIG9uIHByb3ZpZGVkIGluZm9ybWF0aW9uXG4gICAqXG4gICAqIENvb2tpZSdzIHBhcmFtZXRlcnM6XG4gICAqIDxwcmU+XG4gICAqIGV4cGlyZXMgIE51bWJlciBvZiBkYXlzIHVudGlsIHRoZSBjb29raWVzIGV4cGlyZXMgb3IgYW4gYWN0dWFsIGBEYXRlYFxuICAgKiBwYXRoICAgICBDb29raWUgcGF0aFxuICAgKiBkb21haW4gICBDb29raWUgZG9tYWluXG4gICAqIHNlY3VyZSBDb29raWUgc2VjdXJlIGZsYWdcbiAgICogc2FtZVNpdGUgT1dBU1Agc2FtZSBzaXRlIHRva2VuIGBMYXhgLCBgTm9uZWAsIG9yIGBTdHJpY3RgLiBEZWZhdWx0cyB0byBgTGF4YFxuICAgKiA8L3ByZT5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgICAgIENvb2tpZSBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSAgICBDb29raWUgdmFsdWVcbiAgICogQHBhcmFtIG9wdGlvbnMgIEJvZHkgd2l0aCBjb29raWUncyBwYXJhbXNcbiAgICpcbiAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICogQHNpbmNlOiAxLjAuMFxuICAgKi9cbiAgc2V0KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBleHBpcmVzPzogbnVtYmVyIHwgRGF0ZTtcbiAgICAgIHBhdGg/OiBzdHJpbmc7XG4gICAgICBkb21haW4/OiBzdHJpbmc7XG4gICAgICBzZWN1cmU/OiBib29sZWFuO1xuICAgICAgc2FtZVNpdGU/OiAnTGF4JyB8ICdOb25lJyB8ICdTdHJpY3QnO1xuICAgICAgcGFydGl0aW9uZWQ/OiBib29sZWFuO1xuICAgIH1cbiAgKTogdm9pZDtcblxuICBzZXQoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgZXhwaXJlc09yT3B0aW9ucz86IG51bWJlciB8IERhdGUgfCBhbnksXG4gICAgcGF0aD86IHN0cmluZyxcbiAgICBkb21haW4/OiBzdHJpbmcsXG4gICAgc2VjdXJlPzogYm9vbGVhbixcbiAgICBzYW1lU2l0ZT86ICdMYXgnIHwgJ05vbmUnIHwgJ1N0cmljdCcsXG4gICAgcGFydGl0aW9uZWQ/OiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZXhwaXJlc09yT3B0aW9ucyA9PT0gJ251bWJlcicgfHwgZXhwaXJlc09yT3B0aW9ucyBpbnN0YW5jZW9mIERhdGUgfHwgcGF0aCB8fCBkb21haW4gfHwgc2VjdXJlIHx8IHNhbWVTaXRlKSB7XG4gICAgICBjb25zdCBvcHRpb25zQm9keSA9IHtcbiAgICAgICAgZXhwaXJlczogZXhwaXJlc09yT3B0aW9ucyxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgZG9tYWluLFxuICAgICAgICBzZWN1cmUsXG4gICAgICAgIHNhbWVTaXRlOiBzYW1lU2l0ZSA/IHNhbWVTaXRlIDogJ0xheCcsXG4gICAgICAgIHBhcnRpdGlvbmVkLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5zZXQobmFtZSwgdmFsdWUsIG9wdGlvbnNCb2R5KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY29va2llU3RyaW5nOiBzdHJpbmcgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpICsgJzsnO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IGV4cGlyZXNPck9wdGlvbnMgPyBleHBpcmVzT3JPcHRpb25zIDoge307XG5cbiAgICBpZiAob3B0aW9ucy5leHBpcmVzKSB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuZXhwaXJlcyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3QgZGF0ZUV4cGlyZXM6IERhdGUgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWUoKSArIG9wdGlvbnMuZXhwaXJlcyAqIDEwMDAgKiA2MCAqIDYwICogMjQpO1xuXG4gICAgICAgIGNvb2tpZVN0cmluZyArPSAnZXhwaXJlcz0nICsgZGF0ZUV4cGlyZXMudG9VVENTdHJpbmcoKSArICc7JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvb2tpZVN0cmluZyArPSAnZXhwaXJlcz0nICsgb3B0aW9ucy5leHBpcmVzLnRvVVRDU3RyaW5nKCkgKyAnOyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMucGF0aCkge1xuICAgICAgY29va2llU3RyaW5nICs9ICdwYXRoPScgKyBvcHRpb25zLnBhdGggKyAnOyc7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZG9tYWluKSB7XG4gICAgICBjb29raWVTdHJpbmcgKz0gJ2RvbWFpbj0nICsgb3B0aW9ucy5kb21haW4gKyAnOyc7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuc2VjdXJlID09PSBmYWxzZSAmJiBvcHRpb25zLnNhbWVTaXRlID09PSAnTm9uZScpIHtcbiAgICAgIG9wdGlvbnMuc2VjdXJlID0gdHJ1ZTtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFtuZ3gtY29va2llLXNlcnZpY2VdIENvb2tpZSAke25hbWV9IHdhcyBmb3JjZWQgd2l0aCBzZWN1cmUgZmxhZyBiZWNhdXNlIHNhbWVTaXRlPU5vbmUuYCArXG4gICAgICAgICAgYE1vcmUgZGV0YWlscyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdGV2ZXJtZWlzdGVyL25neC1jb29raWUtc2VydmljZS9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTU5NzcyMDEzMGBcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnNlY3VyZSkge1xuICAgICAgY29va2llU3RyaW5nICs9ICdzZWN1cmU7JztcbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMuc2FtZVNpdGUpIHtcbiAgICAgIG9wdGlvbnMuc2FtZVNpdGUgPSAnTGF4JztcbiAgICB9XG5cbiAgICBjb29raWVTdHJpbmcgKz0gJ3NhbWVTaXRlPScgKyBvcHRpb25zLnNhbWVTaXRlICsgJzsnO1xuXG4gICAgaWYgKG9wdGlvbnMucGFydGl0aW9uZWQpIHtcbiAgICAgIGNvb2tpZVN0cmluZyArPSAnUGFydGl0aW9uZWQ7JztcbiAgICB9XG5cbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZVN0cmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgY29va2llIGJ5IG5hbWVcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgICBDb29raWUgbmFtZVxuICAgKiBAcGFyYW0gcGF0aCAgIENvb2tpZSBwYXRoXG4gICAqIEBwYXJhbSBkb21haW4gQ29va2llIGRvbWFpblxuICAgKiBAcGFyYW0gc2VjdXJlIENvb2tpZSBzZWN1cmUgZmxhZ1xuICAgKiBAcGFyYW0gc2FtZVNpdGUgQ29va2llIHNhbWVTaXRlIGZsYWcgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0hlYWRlcnMvU2V0LUNvb2tpZS9TYW1lU2l0ZVxuICAgKlxuICAgKiBAYXV0aG9yOiBTdGVwYW4gU3V2b3JvdlxuICAgKiBAc2luY2U6IDEuMC4wXG4gICAqL1xuICBkZWxldGUobmFtZTogc3RyaW5nLCBwYXRoPzogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcsIHNlY3VyZT86IGJvb2xlYW4sIHNhbWVTaXRlOiAnTGF4JyB8ICdOb25lJyB8ICdTdHJpY3QnID0gJ0xheCcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZSgnVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQnKTtcbiAgICB0aGlzLnNldChuYW1lLCAnJywgeyBleHBpcmVzOiBleHBpcmVzRGF0ZSwgcGF0aCwgZG9tYWluLCBzZWN1cmUsIHNhbWVTaXRlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbGwgY29va2llc1xuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAgIENvb2tpZSBwYXRoXG4gICAqIEBwYXJhbSBkb21haW4gQ29va2llIGRvbWFpblxuICAgKiBAcGFyYW0gc2VjdXJlIElzIHRoZSBDb29raWUgc2VjdXJlXG4gICAqIEBwYXJhbSBzYW1lU2l0ZSBJcyB0aGUgY29va2llIHNhbWUgc2l0ZVxuICAgKlxuICAgKiBAYXV0aG9yOiBTdGVwYW4gU3V2b3JvdlxuICAgKiBAc2luY2U6IDEuMC4wXG4gICAqL1xuICBkZWxldGVBbGwocGF0aD86IHN0cmluZywgZG9tYWluPzogc3RyaW5nLCBzZWN1cmU/OiBib29sZWFuLCBzYW1lU2l0ZTogJ0xheCcgfCAnTm9uZScgfCAnU3RyaWN0JyA9ICdMYXgnKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29va2llczogYW55ID0gdGhpcy5nZXRBbGwoKTtcblxuICAgIGZvciAoY29uc3QgY29va2llTmFtZSBpbiBjb29raWVzKSB7XG4gICAgICBpZiAoY29va2llcy5oYXNPd25Qcm9wZXJ0eShjb29raWVOYW1lKSkge1xuICAgICAgICB0aGlzLmRlbGV0ZShjb29raWVOYW1lLCBwYXRoLCBkb21haW4sIHNlY3VyZSwgc2FtZVNpdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19","// app/shared/services/swal.service.ts\nimport { Injectable } from '@angular/core';\nimport Swal from 'sweetalert2';\nimport * as i0 from \"@angular/core\";\nexport class SwalService {\n /** رسالة تأكيد قبل تنفيذ إجراء */\n confirm(title = 'هل أنت متأكد؟', text = 'لن يمكنك التراجع عن هذا الإجراء', confirmButtonText = 'نعم', cancelButtonText = 'إلغاء') {\n return Swal.fire({\n icon: 'warning',\n title,\n text,\n showCancelButton: true,\n confirmButtonText,\n cancelButtonText,\n // reverseButtons: true,\n customClass: {\n container: 'swal2-container' // ✅ أضف هذه الفئة\n }\n });\n }\n /** رسالة نجاح */\n success(title, text, timer = 2000) {\n return Swal.fire({\n icon: 'success',\n title,\n text,\n timer,\n showConfirmButton: false,\n customClass: {\n container: 'swal2-container' // ✅ أضف هذه الفئة\n }\n });\n }\n /** رسالة خطأ */\n error(title, text, footer) {\n return Swal.fire({\n icon: 'error',\n title,\n text,\n footer,\n customClass: {\n container: 'swal2-container' // ✅ أضف هذه الفئة\n }\n });\n }\n /** رسالة معلومات */\n info(title, text) {\n return Swal.fire({\n icon: 'info',\n title,\n text,\n });\n }\n /** عرض نافذة SweetAlert2 بأي خيارات تريد */\n alert(options) {\n return Swal.fire(options);\n }\n /** Toast بسيط قابل لإعادة الاستخدام */\n toast(title, icon = 'info', position = 'top-end', timer = 3000) {\n const Toast = Swal.mixin({\n toast: true,\n position,\n timer,\n showConfirmButton: false,\n });\n Toast.fire({ icon, title });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: SwalService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: SwalService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: SwalService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dhbFNlcnZpY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcuY29yZS9zZXJ2aWNlcy9zcmMvbGliL1N3YWxTZXJ2aWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsc0NBQXNDO0FBQ3RDLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxJQUlOLE1BQU0sYUFBYSxDQUFDOztBQUdyQixNQUFNLE9BQU8sV0FBVztJQUN0QixrQ0FBa0M7SUFDbEMsT0FBTyxDQUNMLEtBQUssR0FBRyxlQUFlLEVBQ3ZCLElBQUksR0FBRyxpQ0FBaUMsRUFDeEMsaUJBQWlCLEdBQUcsS0FBSyxFQUN6QixnQkFBZ0IsR0FBRyxPQUFPO1FBRTFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQztZQUNmLElBQUksRUFBRSxTQUFTO1lBQ2YsS0FBSztZQUNMLElBQUk7WUFDSixnQkFBZ0IsRUFBRSxJQUFJO1lBQ3RCLGlCQUFpQjtZQUNqQixnQkFBZ0I7WUFDaEIsd0JBQXdCO1lBQ2xCLFdBQVcsRUFBRTtnQkFDakIsU0FBUyxFQUFFLGlCQUFpQixDQUFDLGtCQUFrQjthQUNoRDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxpQkFBaUI7SUFDakIsT0FBTyxDQUNMLEtBQWEsRUFDYixJQUFhLEVBQ2IsS0FBSyxHQUFHLElBQUk7UUFFWixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDZixJQUFJLEVBQUUsU0FBUztZQUNmLEtBQUs7WUFDTCxJQUFJO1lBQ0osS0FBSztZQUNMLGlCQUFpQixFQUFFLEtBQUs7WUFDbEIsV0FBVyxFQUFFO2dCQUNqQixTQUFTLEVBQUUsaUJBQWlCLENBQUMsa0JBQWtCO2FBQ2hEO1NBQ0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGdCQUFnQjtJQUNoQixLQUFLLENBQ0gsS0FBYSxFQUNiLElBQWEsRUFDYixNQUFlO1FBRWYsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2YsSUFBSSxFQUFFLE9BQU87WUFDYixLQUFLO1lBQ0wsSUFBSTtZQUNKLE1BQU07WUFDTixXQUFXLEVBQUU7Z0JBQ1gsU0FBUyxFQUFFLGlCQUFpQixDQUFDLGtCQUFrQjthQUNoRDtTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCxvQkFBb0I7SUFDcEIsSUFBSSxDQUNGLEtBQWEsRUFDYixJQUFhO1FBRWIsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDO1lBQ2YsSUFBSSxFQUFFLE1BQU07WUFDWixLQUFLO1lBQ0wsSUFBSTtTQUNMLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFRCw0Q0FBNEM7SUFDNUMsS0FBSyxDQUNILE9BQTBCO1FBRTFCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsdUNBQXVDO0lBQ3ZDLEtBQUssQ0FDSCxLQUFhLEVBQ2IsT0FBdUIsTUFBTSxFQUM3QixXQUEwQyxTQUFTLEVBQ25ELEtBQUssR0FBRyxJQUFJO1FBRVosTUFBTSxLQUFLLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQztZQUN2QixLQUFLLEVBQUUsSUFBSTtZQUNYLFFBQVE7WUFDUixLQUFLO1lBQ0wsaUJBQWlCLEVBQUUsS0FBSztTQUN6QixDQUFDLENBQUM7UUFDSCxLQUFLLENBQUMsSUFBSSxDQUFDLEVBQUUsSUFBSSxFQUFFLEtBQUssRUFBRSxDQUFDLENBQUM7SUFDOUIsQ0FBQzt1R0ExRlUsV0FBVzsyR0FBWCxXQUFXLGNBREUsTUFBTTs7MkZBQ25CLFdBQVc7a0JBRHZCLFVBQVU7bUJBQUMsRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFIiwic291cmNlc0NvbnRlbnQiOlsiLy8gYXBwL3NoYXJlZC9zZXJ2aWNlcy9zd2FsLnNlcnZpY2UudHNcbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCBTd2FsLCB7XG4gIFN3ZWV0QWxlcnRPcHRpb25zLFxuICBTd2VldEFsZXJ0UmVzdWx0LFxuICBTd2VldEFsZXJ0SWNvblxufSBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3dhbFNlcnZpY2Uge1xuICAvKiog2LHYs9in2YTYqSDYqtij2YPZitivINmC2KjZhCDYqtmG2YHZitiwINil2KzYsdin2KEgKi9cbiAgY29uZmlybShcbiAgICB0aXRsZSA9ICfZh9mEINij2YbYqiDZhdiq2KPZg9iv2J8nLFxuICAgIHRleHQgPSAn2YTZhiDZitmF2YPZhtmDINin2YTYqtix2KfYrNi5INi52YYg2YfYsNinINin2YTYpdis2LHYp9ihJyxcbiAgICBjb25maXJtQnV0dG9uVGV4dCA9ICfZhti52YUnLFxuICAgIGNhbmNlbEJ1dHRvblRleHQgPSAn2KXZhNi62KfYoSdcbiAgKTogUHJvbWlzZTxTd2VldEFsZXJ0UmVzdWx0PiB7XG4gICAgcmV0dXJuIFN3YWwuZmlyZSh7XG4gICAgICBpY29uOiAnd2FybmluZycsXG4gICAgICB0aXRsZSxcbiAgICAgIHRleHQsXG4gICAgICBzaG93Q2FuY2VsQnV0dG9uOiB0cnVlLFxuICAgICAgY29uZmlybUJ1dHRvblRleHQsXG4gICAgICBjYW5jZWxCdXR0b25UZXh0LFxuICAgICAgLy8gcmV2ZXJzZUJ1dHRvbnM6IHRydWUsXG4gICAgICAgICAgICBjdXN0b21DbGFzczoge1xuICAgICAgICBjb250YWluZXI6ICdzd2FsMi1jb250YWluZXInIC8vIOKchSDYo9i22YEg2YfYsNmHINin2YTZgdim2KlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDYsdiz2KfZhNipINmG2KzYp9itICovXG4gIHN1Y2Nlc3MoXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICB0ZXh0Pzogc3RyaW5nLFxuICAgIHRpbWVyID0gMjAwMFxuICApOiBQcm9taXNlPFN3ZWV0QWxlcnRSZXN1bHQ+IHtcbiAgICByZXR1cm4gU3dhbC5maXJlKHtcbiAgICAgIGljb246ICdzdWNjZXNzJyxcbiAgICAgIHRpdGxlLFxuICAgICAgdGV4dCxcbiAgICAgIHRpbWVyLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgICAgICAgY3VzdG9tQ2xhc3M6IHtcbiAgICAgICAgY29udGFpbmVyOiAnc3dhbDItY29udGFpbmVyJyAvLyDinIUg2KPYttmBINmH2LDZhyDYp9mE2YHYptipXG4gICAgICB9XG4gICAgfSk7XG4gIH1cblxuICAvKiog2LHYs9in2YTYqSDYrti32KMgKi9cbiAgZXJyb3IoXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICB0ZXh0Pzogc3RyaW5nLFxuICAgIGZvb3Rlcj86IHN0cmluZ1xuICApOiBQcm9taXNlPFN3ZWV0QWxlcnRSZXN1bHQ+IHtcbiAgICByZXR1cm4gU3dhbC5maXJlKHtcbiAgICAgIGljb246ICdlcnJvcicsXG4gICAgICB0aXRsZSxcbiAgICAgIHRleHQsXG4gICAgICBmb290ZXIsXG4gICAgICBjdXN0b21DbGFzczoge1xuICAgICAgICBjb250YWluZXI6ICdzd2FsMi1jb250YWluZXInIC8vIOKchSDYo9i22YEg2YfYsNmHINin2YTZgdim2KlcbiAgICAgIH1cbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDYsdiz2KfZhNipINmF2LnZhNmI2YXYp9iqICovXG4gIGluZm8oXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICB0ZXh0Pzogc3RyaW5nXG4gICk6IFByb21pc2U8U3dlZXRBbGVydFJlc3VsdD4ge1xuICAgIHJldHVybiBTd2FsLmZpcmUoe1xuICAgICAgaWNvbjogJ2luZm8nLFxuICAgICAgdGl0bGUsXG4gICAgICB0ZXh0LFxuICAgIH0pO1xuICB9XG5cbiAgLyoqINi52LHYtiDZhtin2YHYsNipIFN3ZWV0QWxlcnQyINio2KPZiiDYrtmK2KfYsdin2Kog2KrYsdmK2K8gKi9cbiAgYWxlcnQoXG4gICAgb3B0aW9uczogU3dlZXRBbGVydE9wdGlvbnNcbiAgKTogUHJvbWlzZTxTd2VldEFsZXJ0UmVzdWx0PiB7XG4gICAgcmV0dXJuIFN3YWwuZmlyZShvcHRpb25zKTtcbiAgfVxuXG4gIC8qKiBUb2FzdCDYqNiz2YrYtyDZgtin2KjZhCDZhNil2LnYp9iv2Kkg2KfZhNin2LPYqtiu2K/Yp9mFICovXG4gIHRvYXN0KFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgaWNvbjogU3dlZXRBbGVydEljb24gPSAnaW5mbycsXG4gICAgcG9zaXRpb246IFN3ZWV0QWxlcnRPcHRpb25zWydwb3NpdGlvbiddID0gJ3RvcC1lbmQnLFxuICAgIHRpbWVyID0gMzAwMFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBUb2FzdCA9IFN3YWwubWl4aW4oe1xuICAgICAgdG9hc3Q6IHRydWUsXG4gICAgICBwb3NpdGlvbixcbiAgICAgIHRpbWVyLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgIH0pO1xuICAgIFRvYXN0LmZpcmUoeyBpY29uLCB0aXRsZSB9KTtcbiAgfVxuXG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class PermissionsService {\n _permissions$ = new BehaviorSubject(new Set());\n // Load permissions (e.g., from API or token claims)\n setPermissions(permissions) {\n this._permissions$.next(new Set(permissions));\n }\n getPermissions() {\n return Array.from(this._permissions$.value);\n }\n // Synchronous check\n isGranted(permissionName) {\n return this._permissions$.value.has(permissionName);\n }\n // Async check (optional if needed for guards or effects)\n isGrantedAsync(permissionName) {\n return new Promise(resolve => {\n resolve(this.isGranted(permissionName));\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: PermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: PermissionsService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: PermissionsService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcuY29yZS9zZXJ2aWNlcy9zcmMvbGliL3Blcm1pc3Npb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUd2QyxNQUFNLE9BQU8sa0JBQWtCO0lBQ3JCLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBYyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFFcEUsb0RBQW9EO0lBQ3BELGNBQWMsQ0FBQyxXQUFxQjtRQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixTQUFTLENBQUMsY0FBc0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELHlEQUF5RDtJQUN6RCxjQUFjLENBQUMsY0FBc0I7UUFDbkMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0F0QlUsa0JBQWtCOzJHQUFsQixrQkFBa0IsY0FETCxNQUFNOzsyRkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9wZXJtaXNzaW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNldDxzdHJpbmc+PihuZXcgU2V0KCkpO1xyXG5cclxuICAvLyBMb2FkIHBlcm1pc3Npb25zIChlLmcuLCBmcm9tIEFQSSBvciB0b2tlbiBjbGFpbXMpXHJcbiAgc2V0UGVybWlzc2lvbnMocGVybWlzc2lvbnM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLl9wZXJtaXNzaW9ucyQubmV4dChuZXcgU2V0KHBlcm1pc3Npb25zKSk7XHJcbiAgfVxyXG5cclxuICBnZXRQZXJtaXNzaW9ucygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9wZXJtaXNzaW9ucyQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gU3luY2hyb25vdXMgY2hlY2tcclxuICBpc0dyYW50ZWQocGVybWlzc2lvbk5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zJC52YWx1ZS5oYXMocGVybWlzc2lvbk5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gQXN5bmMgY2hlY2sgKG9wdGlvbmFsIGlmIG5lZWRlZCBmb3IgZ3VhcmRzIG9yIGVmZmVjdHMpXHJcbiAgaXNHcmFudGVkQXN5bmMocGVybWlzc2lvbk5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICByZXNvbHZlKHRoaXMuaXNHcmFudGVkKHBlcm1pc3Npb25OYW1lKSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19","import { inject, Injectable } from '@angular/core';\nimport { Router, RouterStateSnapshot } from '@angular/router';\nimport { PermissionsService } from './permissions.service';\nimport { DEFAULT_REDIRECT_KEY } from '@elite.framework/ng.core/models';\nimport { isFunction, isPlainObject, transformStringToArray } from '@elite.framework/ng.core/utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./permissions.service\";\nimport * as i2 from \"@angular/router\";\nexport const ngxPermissionsGuard = (route, state) => {\n const guard = inject(NgxPermissionsGuard);\n if (state instanceof RouterStateSnapshot) {\n return guard.hasPermissions(route, state);\n }\n return guard.hasPermissions(route);\n};\nexport class NgxPermissionsGuard {\n permissions;\n router;\n constructor(permissions, router) {\n this.permissions = permissions;\n this.router = router;\n }\n canActivate(route, state) {\n return this.hasPermissions(route, state);\n }\n canActivateChild(route, state) {\n return this.hasPermissions(route, state);\n }\n canLoad(route) {\n return this.hasPermissions(route);\n }\n canMatch(route) {\n return this.hasPermissions(route);\n }\n async hasPermissions(route, state) {\n const data = route.data?.['permissions'];\n const only = [];\n const except = [];\n if (data?.only) {\n if (isFunction(data.only)) {\n const result = data.only(route, state);\n only.push(...transformStringToArray(result));\n }\n else {\n only.push(...transformStringToArray(data.only));\n }\n }\n if (data?.except) {\n if (isFunction(data.except)) {\n const result = data.except(route, state);\n except.push(...transformStringToArray(result));\n }\n else {\n except.push(...transformStringToArray(data.except));\n }\n }\n const permissions = {\n only,\n except,\n redirectTo: data?.redirectTo\n };\n // --- rest of the guard logic ---\n // EXCEPT check\n if (permissions.except?.length) {\n for (const perm of permissions.except) {\n if (await this.permissions.isGrantedAsync(perm)) {\n this.handleRedirect(permissions, perm, route, state);\n return false;\n }\n }\n }\n // ONLY check\n if (permissions.only?.length) {\n for (const perm of permissions.only) {\n if (await this.permissions.isGrantedAsync(perm)) {\n return true;\n }\n }\n this.handleRedirect(permissions, permissions.only[0], route, state);\n return false;\n }\n return true;\n }\n handleRedirect(permissions, failedPermission, route, state) {\n const redirectTo = permissions.redirectTo;\n if (!redirectTo)\n return;\n // If redirectTo is a function\n const resolvedRedirect = isFunction(redirectTo)\n ? redirectTo(failedPermission, route, state)\n : redirectTo;\n if (typeof resolvedRedirect === 'string') {\n this.router.navigate([resolvedRedirect]); // wrap string in array\n }\n else if (Array.isArray(resolvedRedirect)) {\n this.router.navigate(resolvedRedirect); // array is fine\n }\n else if (isPlainObject(resolvedRedirect)) {\n // Object: check for failedPermission key first\n const target = resolvedRedirect[failedPermission] ?? resolvedRedirect[DEFAULT_REDIRECT_KEY];\n if (target) {\n if (typeof target === 'string') {\n this.router.navigate([target]);\n }\n else if (Array.isArray(target)) {\n this.router.navigate(target);\n }\n else if (isFunction(target)) {\n this.router.navigate([target(failedPermission, route, state)]);\n }\n }\n }\n else {\n console.warn('Unknown redirect type', resolvedRedirect);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: NgxPermissionsGuard, deps: [{ token: i1.PermissionsService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: NgxPermissionsGuard, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: NgxPermissionsGuard, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.PermissionsService }, { type: i2.Router }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtZ3VhcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcuY29yZS9zZXJ2aWNlcy9zcmMvbGliL3Blcm1pc3Npb25zLWd1YXJkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQU1MLE1BQU0sRUFDTixtQkFBbUIsRUFFcEIsTUFBTSxpQkFBaUIsQ0FBQztBQUl6QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQXdFLE1BQU0saUNBQWlDLENBQUM7QUFDN0ksT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQVFuRyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBb0QsQ0FDbEYsS0FBcUMsRUFDckMsS0FBeUMsRUFDekMsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzFDLElBQUksS0FBSyxZQUFZLG1CQUFtQixFQUFFLENBQUM7UUFDekMsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUdGLE1BQU0sT0FBTyxtQkFBbUI7SUFFcEI7SUFDQTtJQUZWLFlBQ1UsV0FBK0IsRUFDL0IsTUFBYztRQURkLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNuRSxPQUFPLElBQUks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akMsQ0FBQztxQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQy9CLENBQUM7cUJBQU0sSUFBSSxVQUFVLENBQWUsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakUsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQ0ksQ0FBQztZQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0gsQ0FBQzt1R0FySFksbUJBQW1COzJHQUFuQixtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgQ2FuQWN0aXZhdGVDaGlsZEZuLFxyXG4gIENhbkFjdGl2YXRlRm4sXHJcbiAgQ2FuTWF0Y2hGbixcclxuICBSb3V0ZSxcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICBVcmxTZWdtZW50XHJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuXHJcbmltcG9ydCB7IFBlcm1pc3Npb25zU2VydmljZSB9IGZyb20gJy4vcGVybWlzc2lvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IERFRkFVTFRfUkVESVJFQ1RfS0VZLCBFeGNlcHRGbiwgTmd4UGVybWlzc2lvbnNSb3V0ZXJEYXRhLCBPbmx5Rm4sIFJlZGlyZWN0VG8sIFJlZGlyZWN0VG9GbiB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc1BsYWluT2JqZWN0LCB0cmFuc2Zvcm1TdHJpbmdUb0FycmF5IH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3V0aWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmd4UGVybWlzc2lvbnNEYXRhIHtcclxuICBvbmx5Pzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgZXhjZXB0Pzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgcmVkaXJlY3RUbz86IFJlZGlyZWN0VG8gfCBSZWRpcmVjdFRvRm4gfCBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBuZ3hQZXJtaXNzaW9uc0d1YXJkOiBDYW5BY3RpdmF0ZUZuIHwgQ2FuQWN0aXZhdGVDaGlsZEZuIHwgQ2FuTWF0Y2hGbiA9IChcclxuICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IFJvdXRlLFxyXG4gIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90IHwgVXJsU2VnbWVudFtdXHJcbikgPT4ge1xyXG4gIGNvbnN0IGd1YXJkID0gaW5qZWN0KE5neFBlcm1pc3Npb25zR3VhcmQpO1xyXG4gIGlmIChzdGF0ZSBpbnN0YW5jZW9mIFJvdXRlclN0YXRlU25hcHNob3QpIHtcclxuICAgIHJldHVybiBndWFyZC5oYXNQZXJtaXNzaW9ucyhyb3V0ZSwgc3RhdGUpO1xyXG4gIH1cclxuICByZXR1cm4gZ3VhcmQuaGFzUGVybWlzc2lvbnMocm91dGUpO1xyXG59O1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIE5neFBlcm1pc3Npb25zR3VhcmQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge31cclxuXHJcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNQZXJtaXNzaW9ucyhyb3V0ZSwgc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgY2FuQWN0aXZhdGVDaGlsZChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpIHtcclxuICAgIHJldHVybiB0aGlzLmhhc1Blcm1pc3Npb25zKHJvdXRlLCBzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBjYW5Mb2FkKHJvdXRlOiBSb3V0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFzUGVybWlzc2lvbnMocm91dGUpO1xyXG4gIH1cclxuXHJcbiAgY2FuTWF0Y2gocm91dGU6IFJvdXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNQZXJtaXNzaW9ucyhyb3V0ZSk7XHJcbiAgfVxyXG5cclxuYXN5bmMgaGFzUGVybWlzc2lvbnMocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBSb3V0ZSwgc3RhdGU/OiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgY29uc3QgZGF0YSA9IHJvdXRlLmRhdGE/LlsncGVybWlzc2lvbnMnXSBhcyBOZ3hQZXJtaXNzaW9uc1JvdXRlckRhdGEgfCB1bmRlZmluZWQ7XHJcbiAgY29uc3Qgb25seTogc3RyaW5nW10gPSBbXTtcclxuICBjb25zdCBleGNlcHQ6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIGlmIChkYXRhPy5vbmx5KSB7XHJcbiAgICBpZiAoaXNGdW5jdGlvbjxPbmx5Rm4+KGRhdGEub25seSkpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gZGF0YS5vbmx5KHJvdXRlLCBzdGF0ZSk7XHJcbiAgICAgIG9ubHkucHVzaCguLi50cmFuc2Zvcm1TdHJpbmdUb0FycmF5KHJlc3VsdCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgb25seS5wdXNoKC4uLnRyYW5zZm9ybVN0cmluZ1RvQXJyYXkoZGF0YS5vbmx5KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAoZGF0YT8uZXhjZXB0KSB7XHJcbiAgICBpZiAoaXNGdW5jdGlvbjxFeGNlcHRGbj4oZGF0YS5leGNlcHQpKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGRhdGEuZXhjZXB0KHJvdXRlLCBzdGF0ZSk7XHJcbiAgICAgIGV4Y2VwdC5wdXNoKC4uLnRyYW5zZm9ybVN0cmluZ1RvQXJyYXkocmVzdWx0KSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBleGNlcHQucHVzaCguLi50cmFuc2Zvcm1TdHJpbmdUb0FycmF5KGRhdGEuZXhjZXB0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBwZXJtaXNzaW9uczogTmd4UGVybWlzc2lvbnNEYXRhID0ge1xyXG4gICAgb25seSxcclxuICAgIGV4Y2VwdCxcclxuICAgIHJlZGlyZWN0VG86IGRhdGE/LnJlZGlyZWN0VG9cclxuICB9O1xyXG5cclxuICAvLyAtLS0gcmVzdCBvZiB0aGUgZ3VhcmQgbG9naWMgLS0tXHJcbiAgLy8gRVhDRVBUIGNoZWNrXHJcbiAgaWYgKHBlcm1pc3Npb25zLmV4Y2VwdD8ubGVuZ3RoKSB7XHJcbiAgICBmb3IgKGNvbnN0IHBlcm0gb2YgcGVybWlzc2lvbnMuZXhjZXB0KSB7XHJcbiAgICAgIGlmIChhd2FpdCB0aGlzLnBlcm1pc3Npb25zLmlzR3JhbnRlZEFzeW5jKHBlcm0pKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVSZWRpcmVjdChwZXJtaXNzaW9ucywgcGVybSwgcm91dGUsIHN0YXRlKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIE9OTFkgY2hlY2tcclxuICBpZiAocGVybWlzc2lvbnMub25seT8ubGVuZ3RoKSB7XHJcbiAgICBmb3IgKGNvbnN0IHBlcm0gb2YgcGVybWlzc2lvbnMub25seSkge1xyXG4gICAgICBpZiAoYXdhaXQgdGhpcy5wZXJtaXNzaW9ucy5pc0dyYW50ZWRBc3luYyhwZXJtKSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmhhbmRsZVJlZGlyZWN0KHBlcm1pc3Npb25zLCBwZXJtaXNzaW9ucy5vbmx5WzBdLCByb3V0ZSwgc3RhdGUpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcblxyXG5wcml2YXRlIGhhbmRsZVJlZGlyZWN0KFxyXG4gIHBlcm1pc3Npb25zOiBOZ3hQZXJtaXNzaW9uc0RhdGEsXHJcbiAgZmFpbGVkUGVybWlzc2lvbjogc3RyaW5nLFxyXG4gIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgUm91dGUsXHJcbiAgc3RhdGU/OiBSb3V0ZXJTdGF0ZVNuYXBzaG90XHJcbikge1xyXG4gIGNvbnN0IHJlZGlyZWN0VG8gPSBwZXJtaXNzaW9ucy5yZWRpcmVjdFRvO1xyXG5cclxuICBpZiAoIXJlZGlyZWN0VG8pIHJldHVybjtcclxuXHJcbiAgLy8gSWYgcmVkaXJlY3RUbyBpcyBhIGZ1bmN0aW9uXHJcbiAgY29uc3QgcmVzb2x2ZWRSZWRpcmVjdCA9XHJcbiAgICBpc0Z1bmN0aW9uPFJlZGlyZWN0VG9Gbj4ocmVkaXJlY3RUbylcclxuICAgICAgPyByZWRpcmVjdFRvKGZhaWxlZFBlcm1pc3Npb24sIHJvdXRlLCBzdGF0ZSlcclxuICAgICAgOiByZWRpcmVjdFRvO1xyXG5cclxuICBpZiAodHlwZW9mIHJlc29sdmVkUmVkaXJlY3QgPT09ICdzdHJpbmcnKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcmVzb2x2ZWRSZWRpcmVjdF0pOyAvLyB3cmFwIHN0cmluZyBpbiBhcnJheVxyXG4gIH1cclxuICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlc29sdmVkUmVkaXJlY3QpKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShyZXNvbHZlZFJlZGlyZWN0KTsgLy8gYXJyYXkgaXMgZmluZVxyXG4gIH1cclxuICBlbHNlIGlmIChpc1BsYWluT2JqZWN0KHJlc29sdmVkUmVkaXJlY3QpKSB7XHJcbiAgICAvLyBPYmplY3Q6IGNoZWNrIGZvciBmYWlsZWRQZXJtaXNzaW9uIGtleSBmaXJzdFxyXG4gICAgY29uc3QgdGFyZ2V0ID1cclxuICAgICAgcmVzb2x2ZWRSZWRpcmVjdFtmYWlsZWRQZXJtaXNzaW9uXSA/PyByZXNvbHZlZFJlZGlyZWN0W0RFRkFVTFRfUkVESVJFQ1RfS0VZXTtcclxuXHJcbiAgICBpZiAodGFyZ2V0KSB7XHJcbiAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0YXJnZXRdKTtcclxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRhcmdldCkpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0YXJnZXQpO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzRnVuY3Rpb248UmVkaXJlY3RUb0ZuPih0YXJnZXQpKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RhcmdldChmYWlsZWRQZXJtaXNzaW9uLCByb3V0ZSwgc3RhdGUpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZWxzZSB7XHJcbiAgICBjb25zb2xlLndhcm4oJ1Vua25vd24gcmVkaXJlY3QgdHlwZScsIHJlc29sdmVkUmVkaXJlY3QpO1xyXG4gIH1cclxufVxyXG5cclxufVxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLmNvcmUtc2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLmNvcmUvc2VydmljZXMvc3JjL2VsaXRlLmZyYW1ld29yay1uZy5jb3JlLXNlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.RestService","i1.PermissionsService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"elite.framework-ng.core-services.mjs","sources":["../tmp-esm2022/services/lib/rest.service.js","../tmp-esm2022/services/lib/base.service.js","../tmp-esm2022/services/lib/generic.service.js","../tmp-esm2022/services/lib/ssr-cookie.service.js","../tmp-esm2022/services/lib/SwalService.service.js","../tmp-esm2022/services/lib/permissions.service.js","../tmp-esm2022/services/lib/permissions-guard.service.js","../tmp-esm2022/services/elite.framework-ng.core-services.js"],"sourcesContent":["import { HttpClient, HttpParams } from \"@angular/common/http\";\nimport { Injectable, Inject, inject } from \"@angular/core\";\nimport { ENVIRONMENT, CORE_OPTIONS } from \"@elite.framework/ng.core/tokens\";\nimport { throwError, catchError } from \"rxjs\";\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@angular/common/http\";\nexport class RestService {\n options;\n http;\n environment = inject(ENVIRONMENT);\n constructor(options, http) {\n this.options = options;\n this.http = http;\n }\n getApiFromStore(apiName) {\n return this.environment.apiUrl;\n }\n handleError(err) {\n // this.httpErrorReporter.reportError(err);\n return throwError(() => err);\n }\n request(request, config, api) {\n // debugger\n config = config || {};\n api = api || this.getApiFromStore(config.apiName);\n const { method, params, ...options } = request;\n const { observe = \"body\" /* Rest.Observe.Body */, skipHandleError } = config;\n const url = this.removeDuplicateSlashes(api + request.url);\n const httpClient = this.getHttpClient(config.skipAddingHeader ?? false);\n return httpClient\n .request(method, url, {\n observe,\n ...(params && {\n params: this.getParams(params, config.httpParamEncoder),\n }),\n ...options,\n })\n .pipe(catchError(err => (skipHandleError ? throwError(() => err) : this.handleError(err))));\n }\n getHttpClient(isExternal) {\n return /* isExternal ? this.externalHttp : */ this.http;\n }\n getParams(params, encoder) {\n const filteredParams = Object.entries(params).reduce((acc, [key, value]) => {\n if (isUndefinedOrEmptyString(value))\n return acc;\n if (value === null && !this.options.sendNullsAsQueryParam)\n return acc;\n acc[key] = value;\n return acc;\n }, {});\n return encoder\n ? new HttpParams({ encoder, fromObject: filteredParams })\n : new HttpParams({ fromObject: filteredParams });\n }\n removeDuplicateSlashes(url) {\n return url.replace(/([^:]\\/)\\/+/g, '$1');\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: RestService, deps: [{ token: CORE_OPTIONS }, { token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: RestService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: RestService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: undefined, decorators: [{\n type: Inject,\n args: [CORE_OPTIONS]\n }] }, { type: i1.HttpClient }] });\nexport function isUndefinedOrEmptyString(value) {\n return value === undefined || value === '';\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVzdC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy5jb3JlL3NlcnZpY2VzL3NyYy9saWIvcmVzdC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQW1DLFVBQVUsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQy9GLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUzRCxPQUFPLEVBQUUsV0FBVyxFQUFFLFlBQVksRUFBRSxNQUFNLGlDQUFpQyxDQUFDO0FBQzVFLE9BQU8sRUFBYyxVQUFVLEVBQUUsVUFBVSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7QUFLMUQsTUFBTSxPQUFPLFdBQVc7SUFHWTtJQUN0QjtJQUhKLFdBQVcsR0FBRyxNQUFNLENBQUMsV0FBVyxDQUFDLENBQUM7SUFDMUMsWUFDa0MsT0FBYSxFQUNuQyxJQUFnQjtRQURNLFlBQU8sR0FBUCxPQUFPLENBQU07UUFDbkMsU0FBSSxHQUFKLElBQUksQ0FBWTtJQUd4QixDQUFDO0lBRUssZUFBZSxDQUFDLE9BQTJCO1FBQ25ELE9BQU8sSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLENBQUM7SUFDakMsQ0FBQztJQUVELFdBQVcsQ0FBQyxHQUFRO1FBQ2xCLDJDQUEyQztRQUMzQyxPQUFPLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQztJQUMvQixDQUFDO0lBRUQsT0FBTyxDQUNMLE9BQXlDLEVBQ3pDLE1BQW9CLEVBQ3BCLEdBQVk7UUFFWixXQUFXO1FBQ1gsTUFBTSxHQUFHLE1BQU0sSUFBSyxFQUFrQixDQUFDO1FBQ3ZDLEdBQUcsR0FBRyxHQUFHLElBQUksSUFBSSxDQUFDLGVBQWUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDbEQsTUFBTSxFQUFFLE1BQU0sRUFBRSxNQUFNLEVBQUUsR0FBRyxPQUFPLEVBQUUsR0FBRyxPQUFPLENBQUM7UUFDL0MsTUFBTSxFQUFFLE9BQU8saUNBQW9CLEVBQUUsZUFBZSxFQUFFLEdBQUcsTUFBTSxDQUFDO1FBQ2hFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBRSxHQUFHLEdBQUcsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBRTVELE1BQU0sVUFBVSxHQUFlLElBQUksQ0FBQyxhQUFhLENBQUMsTUFBTSxDQUFDLGdCQUFnQixJQUFJLEtBQUssQ0FBQyxDQUFDO1FBQ3BGLE9BQU8sVUFBVTthQUNkLE9BQU8sQ0FBSSxNQUFNLEVBQUUsR0FBRyxFQUFFO1lBQ3ZCLE9BQU87WUFDUCxHQUFHLENBQUMsTUFBTSxJQUFJO2dCQUNaLE1BQU0sRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxNQUFNLENBQUMsZ0JBQWdCLENBQUM7YUFDeEQsQ0FBQztZQUNGLEdBQUcsT0FBTztTQUNKLENBQUM7YUFDUixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztJQUNoRyxDQUFDO0lBQ08sYUFBYSxDQUFDLFVBQW1CO1FBQ3ZDLE9BQU8sc0NBQXNDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQztJQUMxRCxDQUFDO0lBRU8sU0FBUyxDQUFDLE1BQW1CLEVBQUUsT0FBNEI7UUFDakUsTUFBTSxjQUFjLEdBQUcsTUFBTSxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLENBQUMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxHQUFHLEVBQUUsS0FBSyxDQUFDLEVBQUUsRUFBRTtZQUN6RSxJQUFJLHdCQUF3QixDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUNoRCxJQUFJLEtBQUssS0FBSyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUMsT0FBTyxDQUFDLHFCQUFxQjtnQkFBRSxPQUFPLEdBQUcsQ0FBQztZQUN0RSxHQUFHLENBQUMsR0FBRyxDQUFDLEdBQUcsS0FBSyxDQUFDO1lBQ2pCLE9BQU8sR0FBRyxDQUFDO1FBQ2IsQ0FBQyxFQUFFLEVBQVMsQ0FBQyxDQUFDO1FBQ2QsT0FBTyxPQUFPO1lBQ1osQ0FBQyxDQUFDLElBQUksVUFBVSxDQUFDLEVBQUUsT0FBTyxFQUFFLFVBQVUsRUFBRSxjQUFjLEVBQUUsQ0FBQztZQUN6RCxDQUFDLENBQUMsSUFBSSxVQUFVLENBQUMsRUFBRSxVQUFVLEVBQUUsY0FBYyxFQUFFLENBQUMsQ0FBQztJQUNyRCxDQUFDO0lBRU8sc0JBQXNCLENBQUMsR0FBVztRQUN4QyxPQUFPLEdBQUcsQ0FBQyxPQUFPLENBQUMsY0FBYyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQzNDLENBQUM7dUdBM0RVLFdBQVcsa0JBR1osWUFBWTsyR0FIWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQUlJLE1BQU07MkJBQUMsWUFBWTs7QUE0RHhCLE1BQU0sVUFBVSx3QkFBd0IsQ0FBQyxLQUFjO0lBQ3JELE9BQU8sS0FBSyxLQUFLLFNBQVMsSUFBSSxLQUFLLEtBQUssRUFBRSxDQUFDO0FBQzdDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwUmVxdWVzdCwgSHR0cFBhcmFtZXRlckNvZGVjLCBIdHRwUGFyYW1zIH0gZnJvbSBcIkBhbmd1bGFyL2NvbW1vbi9odHRwXCI7XG5pbXBvcnQgeyBJbmplY3RhYmxlLCBJbmplY3QsIGluamVjdCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBSb290LCBSZXN0IH0gZnJvbSBcIkBlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9tb2RlbHNcIjtcbmltcG9ydCB7IEVOVklST05NRU5ULCBDT1JFX09QVElPTlMgfSBmcm9tIFwiQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3Rva2Vuc1wiO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgdGhyb3dFcnJvciwgY2F0Y2hFcnJvciB9IGZyb20gXCJyeGpzXCI7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBSZXN0U2VydmljZSB7XG4gIHByaXZhdGUgZW52aXJvbm1lbnQgPSBpbmplY3QoRU5WSVJPTk1FTlQpO1xuICBjb25zdHJ1Y3RvcihcbiAgICBASW5qZWN0KENPUkVfT1BUSU9OUykgcHJvdGVjdGVkIG9wdGlvbnM6IFJvb3QsXG4gICAgcHJvdGVjdGVkIGh0dHA6IEh0dHBDbGllbnQsXG4gICAgLy8gcHJvdGVjdGVkIGVudmlyb25tZW50OiBFbnZpcm9ubWVudFNlcnZpY2UsXG4gICAgLy8gcHJvdGVjdGVkIGh0dHBFcnJvclJlcG9ydGVyOiBIdHRwRXJyb3JSZXBvcnRlclNlcnZpY2UsXG4gICkgeyB9XG5cbiAgcHJvdGVjdGVkIGdldEFwaUZyb21TdG9yZShhcGlOYW1lOiBzdHJpbmcgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLmVudmlyb25tZW50LmFwaVVybDtcbiAgfVxuXG4gIGhhbmRsZUVycm9yKGVycjogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICAvLyB0aGlzLmh0dHBFcnJvclJlcG9ydGVyLnJlcG9ydEVycm9yKGVycik7XG4gICAgcmV0dXJuIHRocm93RXJyb3IoKCkgPT4gZXJyKTtcbiAgfVxuXG4gIHJlcXVlc3Q8VCwgUj4oXG4gICAgcmVxdWVzdDogSHR0cFJlcXVlc3Q8VD4gfCBSZXN0LlJlcXVlc3Q8VD4sXG4gICAgY29uZmlnPzogUmVzdC5Db25maWcsXG4gICAgYXBpPzogc3RyaW5nLFxuICApOiBPYnNlcnZhYmxlPFI+IHtcbiAgICAvLyBkZWJ1Z2dlclxuICAgIGNvbmZpZyA9IGNvbmZpZyB8fCAoe30gYXMgUmVzdC5Db25maWcpO1xuICAgIGFwaSA9IGFwaSB8fCB0aGlzLmdldEFwaUZyb21TdG9yZShjb25maWcuYXBpTmFtZSk7XG4gICAgY29uc3QgeyBtZXRob2QsIHBhcmFtcywgLi4ub3B0aW9ucyB9ID0gcmVxdWVzdDtcbiAgICBjb25zdCB7IG9ic2VydmUgPSBSZXN0Lk9ic2VydmUuQm9keSwgc2tpcEhhbmRsZUVycm9yIH0gPSBjb25maWc7XG4gICAgY29uc3QgdXJsID0gdGhpcy5yZW1vdmVEdXBsaWNhdGVTbGFzaGVzKCBhcGkgKyByZXF1ZXN0LnVybCk7XG5cbiAgICBjb25zdCBodHRwQ2xpZW50OiBIdHRwQ2xpZW50ID0gdGhpcy5nZXRIdHRwQ2xpZW50KGNvbmZpZy5za2lwQWRkaW5nSGVhZGVyID8/IGZhbHNlKTtcbiAgICByZXR1cm4gaHR0cENsaWVudFxuICAgICAgLnJlcXVlc3Q8Uj4obWV0aG9kLCB1cmwsIHtcbiAgICAgICAgb2JzZXJ2ZSxcbiAgICAgICAgLi4uKHBhcmFtcyAmJiB7XG4gICAgICAgICAgcGFyYW1zOiB0aGlzLmdldFBhcmFtcyhwYXJhbXMsIGNvbmZpZy5odHRwUGFyYW1FbmNvZGVyKSxcbiAgICAgICAgfSksXG4gICAgICAgIC4uLm9wdGlvbnMsXG4gICAgICB9IGFzIGFueSlcbiAgICAgIC5waXBlKGNhdGNoRXJyb3IoZXJyID0+IChza2lwSGFuZGxlRXJyb3IgPyB0aHJvd0Vycm9yKCgpID0+IGVycikgOiB0aGlzLmhhbmRsZUVycm9yKGVycikpKSk7XG4gIH1cbiAgcHJpdmF0ZSBnZXRIdHRwQ2xpZW50KGlzRXh0ZXJuYWw6IGJvb2xlYW4pIHtcbiAgICByZXR1cm4gLyogaXNFeHRlcm5hbCA/IHRoaXMuZXh0ZXJuYWxIdHRwIDogKi8gdGhpcy5odHRwO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJhbXMocGFyYW1zOiBSZXN0LlBhcmFtcywgZW5jb2Rlcj86IEh0dHBQYXJhbWV0ZXJDb2RlYyk6IEh0dHBQYXJhbXMge1xuICAgIGNvbnN0IGZpbHRlcmVkUGFyYW1zID0gT2JqZWN0LmVudHJpZXMocGFyYW1zKS5yZWR1Y2UoKGFjYywgW2tleSwgdmFsdWVdKSA9PiB7XG4gICAgICBpZiAoaXNVbmRlZmluZWRPckVtcHR5U3RyaW5nKHZhbHVlKSkgcmV0dXJuIGFjYztcbiAgICAgIGlmICh2YWx1ZSA9PT0gbnVsbCAmJiAhdGhpcy5vcHRpb25zLnNlbmROdWxsc0FzUXVlcnlQYXJhbSkgcmV0dXJuIGFjYztcbiAgICAgIGFjY1trZXldID0gdmFsdWU7XG4gICAgICByZXR1cm4gYWNjO1xuICAgIH0sIHt9IGFzIGFueSk7XG4gICAgcmV0dXJuIGVuY29kZXJcbiAgICAgID8gbmV3IEh0dHBQYXJhbXMoeyBlbmNvZGVyLCBmcm9tT2JqZWN0OiBmaWx0ZXJlZFBhcmFtcyB9KVxuICAgICAgOiBuZXcgSHR0cFBhcmFtcyh7IGZyb21PYmplY3Q6IGZpbHRlcmVkUGFyYW1zIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSByZW1vdmVEdXBsaWNhdGVTbGFzaGVzKHVybDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdXJsLnJlcGxhY2UoLyhbXjpdXFwvKVxcLysvZywgJyQxJyk7XG4gIH1cblxufVxuXG5leHBvcnQgZnVuY3Rpb24gaXNVbmRlZmluZWRPckVtcHR5U3RyaW5nKHZhbHVlOiB1bmtub3duKTogYm9vbGVhbiB7XG4gIHJldHVybiB2YWx1ZSA9PT0gdW5kZWZpbmVkIHx8IHZhbHVlID09PSAnJztcbn1cbiJdfQ==","import { Injectable } from '@angular/core';\nimport { map } from 'rxjs';\nimport { RestService } from './rest.service';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./rest.service\";\nexport class BaseService {\n restService;\n apiName = '';\n moduleName = '';\n constructor(restService) {\n this.restService = restService;\n }\n get = (id) => this.restService.request({\n method: 'GET',\n url: `/${this.moduleName}/${this.apiName}/${id}`,\n }, { apiName: this.apiName });\n getList = (input, endpoint) => {\n const params = Object.keys(input).reduce((acc, key) => {\n acc[key] = input[key];\n return acc;\n }, {});\n const url = endpoint ? endpoint : `/${this.moduleName}/${this.apiName}`;\n return this.restService.request({\n method: 'GET',\n url: url,\n params: params,\n }, { apiName: this.apiName })\n .pipe(map(response => response));\n };\n create = (input) => this.restService.request({\n method: 'POST',\n url: `/${this.moduleName}/${this.apiName}`,\n body: input,\n }, { apiName: this.apiName });\n update = (id, input) => this.restService.request({\n method: 'PUT',\n url: `/${this.moduleName}/${this.apiName}/${id}`,\n body: input,\n }, { apiName: this.apiName });\n delete = (id) => this.restService.request({\n method: 'DELETE',\n url: `/${this.moduleName}/${this.apiName}/${id}`,\n }, { apiName: this.apiName });\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseService, deps: [{ token: i1.RestService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: BaseService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: i1.RestService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYmFzZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy5jb3JlL3NlcnZpY2VzL3NyYy9saWIvYmFzZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUVBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUMzQixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7OztBQU03QyxNQUFNLE9BQU8sV0FBVztJQUdIO0lBRm5CLE9BQU8sR0FBRyxFQUFFLENBQUM7SUFDYixVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ2hCLFlBQW1CLFdBQXdCO1FBQXhCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO0lBQUcsQ0FBQztJQUNoRCxHQUFHLEdBQUcsQ0FBQyxFQUFVLEVBQUUsRUFBRSxDQUNsQixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBVztRQUNqQyxNQUFNLEVBQUUsS0FBSztRQUNiLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUU7S0FDakQsRUFDRCxFQUFFLE9BQU8sRUFBRSxJQUFJLENBQUMsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUUzQixPQUFPLEdBQUcsQ0FBQyxLQUFTLEVBQUUsUUFBaUIsRUFBRyxFQUFFO1FBRTFDLE1BQU0sTUFBTSxHQUFHLE1BQU0sQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsTUFBTSxDQUFDLENBQUMsR0FBTyxFQUFFLEdBQUcsRUFBRSxFQUFFO1lBQ3hELEdBQUcsQ0FBQyxHQUFHLENBQUMsR0FBRyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7WUFDdEIsT0FBTyxHQUFHLENBQUM7UUFDYixDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7UUFFTixNQUFNLEdBQUcsR0FBRyxRQUFRLENBQUMsQ0FBQyxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUV6RSxPQUFPLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUE0QjtZQUN6RCxNQUFNLEVBQUUsS0FBSztZQUNiLEdBQUcsRUFBRSxHQUFHO1lBQ1IsTUFBTSxFQUFFLE1BQU07U0FDZixFQUFFLEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQzthQUM1QixJQUFJLENBQ0gsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLENBQzFCLENBQUM7SUFDSixDQUFDLENBQUM7SUFDSixNQUFNLEdBQUcsQ0FBQyxLQUFVLEVBQUUsRUFBRSxDQUN0QixJQUFJLENBQUMsV0FBVyxDQUFDLE9BQU8sQ0FBVztRQUNqQyxNQUFNLEVBQUUsTUFBTTtRQUNkLEdBQUcsRUFBRSxJQUFJLElBQUksQ0FBQyxVQUFVLElBQUksSUFBSSxDQUFDLE9BQU8sRUFBRTtRQUMxQyxJQUFJLEVBQUUsS0FBSztLQUNaLEVBQ0QsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFDOUIsTUFBTSxHQUFHLENBQUMsRUFBVSxFQUFFLEtBQVUsRUFBRSxFQUFFLENBQ2pDLElBQUksQ0FBQyxXQUFXLENBQUMsT0FBTyxDQUFXO1FBQ2pDLE1BQU0sRUFBRSxLQUFLO1FBQ2IsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRTtRQUNoRCxJQUFJLEVBQUUsS0FBSztLQUNaLEVBQ0QsRUFBRSxPQUFPLEVBQUUsSUFBSSxDQUFDLE9BQU8sRUFBRSxDQUFDLENBQUM7SUFFN0IsTUFBTSxHQUFHLENBQUMsRUFBVSxFQUFFLEVBQUUsQ0FDdEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxPQUFPLENBQVk7UUFDbEMsTUFBTSxFQUFFLFFBQVE7UUFDaEIsR0FBRyxFQUFFLElBQUksSUFBSSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUMsT0FBTyxJQUFJLEVBQUUsRUFBRTtLQUNqRCxFQUNELEVBQUUsT0FBTyxFQUFFLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQyxDQUFDO3VHQWpEbEIsV0FBVzsyR0FBWCxXQUFXLGNBRlYsTUFBTTs7MkZBRVAsV0FBVztrQkFIdkIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJcblxuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgbWFwIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBSZXN0U2VydmljZSB9IGZyb20gJy4vcmVzdC5zZXJ2aWNlJztcbmltcG9ydCB7IFBhZ2luYXRlZFJlc3VsdCB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9tb2RlbHMnO1xuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgQmFzZVNlcnZpY2Uge1xuICBhcGlOYW1lID0gJyc7XG4gIG1vZHVsZU5hbWUgPSAnJztcbiAgY29uc3RydWN0b3IocHVibGljIHJlc3RTZXJ2aWNlOiBSZXN0U2VydmljZSkge31cbiBnZXQgPSAoaWQ6IHN0cmluZykgPT5cbiAgICB0aGlzLnJlc3RTZXJ2aWNlLnJlcXVlc3Q8YW55LCBhbnk+KHtcbiAgICAgIG1ldGhvZDogJ0dFVCcsXG4gICAgICB1cmw6IGAvJHt0aGlzLm1vZHVsZU5hbWV9LyR7dGhpcy5hcGlOYW1lfS8ke2lkfWAsXG4gICAgfSxcbiAgICB7IGFwaU5hbWU6IHRoaXMuYXBpTmFtZSB9KTtcblxuICAgIGdldExpc3QgPSAoaW5wdXQ6YW55LCBlbmRwb2ludD86IHN0cmluZyApID0+IHtcblxuICAgICAgY29uc3QgcGFyYW1zID0gT2JqZWN0LmtleXMoaW5wdXQpLnJlZHVjZSgoYWNjOmFueSwga2V5KSA9PiB7XG4gICAgICAgIGFjY1trZXldID0gaW5wdXRba2V5XTtcbiAgICAgICAgcmV0dXJuIGFjYztcbiAgICAgIH0sIHt9KTtcblxuICAgICAgIGNvbnN0IHVybCA9IGVuZHBvaW50ID8gZW5kcG9pbnQgOiBgLyR7dGhpcy5tb2R1bGVOYW1lfS8ke3RoaXMuYXBpTmFtZX1gO1xuXG4gICAgICByZXR1cm4gdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgUGFnaW5hdGVkUmVzdWx0PGFueT4+KHtcbiAgICAgICAgbWV0aG9kOiAnR0VUJyxcbiAgICAgICAgdXJsOiB1cmwsXG4gICAgICAgIHBhcmFtczogcGFyYW1zLFxuICAgICAgfSwgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSlcbiAgICAgIC5waXBlKFxuICAgICAgICBtYXAocmVzcG9uc2UgPT4gcmVzcG9uc2UpXG4gICAgICApO1xuICAgIH07XG4gIGNyZWF0ZSA9IChpbnB1dDogYW55KSA9PlxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xuICAgICAgbWV0aG9kOiAnUE9TVCcsXG4gICAgICB1cmw6IGAvJHt0aGlzLm1vZHVsZU5hbWV9LyR7dGhpcy5hcGlOYW1lfWAsXG4gICAgICBib2R5OiBpbnB1dCxcbiAgICB9LFxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pO1xuIHVwZGF0ZSA9IChpZDogc3RyaW5nLCBpbnB1dDogYW55KSA9PlxuICAgIHRoaXMucmVzdFNlcnZpY2UucmVxdWVzdDxhbnksIGFueT4oe1xuICAgICAgbWV0aG9kOiAnUFVUJyxcbiAgICAgIHVybDogYC8ke3RoaXMubW9kdWxlTmFtZX0vJHt0aGlzLmFwaU5hbWV9LyR7aWR9YCxcbiAgICAgIGJvZHk6IGlucHV0LFxuICAgIH0sXG4gICAgeyBhcGlOYW1lOiB0aGlzLmFwaU5hbWUgfSk7XG5cbiAgZGVsZXRlID0gKGlkOiBzdHJpbmcpID0+XG4gICAgdGhpcy5yZXN0U2VydmljZS5yZXF1ZXN0PGFueSwgdm9pZD4oe1xuICAgICAgbWV0aG9kOiAnREVMRVRFJyxcbiAgICAgIHVybDogYC8ke3RoaXMubW9kdWxlTmFtZX0vJHt0aGlzLmFwaU5hbWV9LyR7aWR9YCxcbiAgICB9LFxuICAgIHsgYXBpTmFtZTogdGhpcy5hcGlOYW1lIH0pO1xuXG5cbn1cbiJdfQ==","// src/app/services/generic.service.ts\nimport { HttpParams } from '@angular/common/http';\n/**\n * GenericService<T, K>:\n * - T = نوع الكائن (Model)\n * - K = نوع المفتاح الأساسي (ID)، افتراضي number\n *\n * يحتوي على جميع دوال الـ CRUD القياسية للتوريث في الخدمات المتخصصة.\n */\nexport class GenericService {\n http;\n constructor(http) {\n this.http = http;\n }\n /**\n * جلب كل السجلات\n */\n getAll() {\n // ملاحظة: يمكن إضافة معالج أخطاء مركزي هنا أو عبر Interceptor\n return this.http.get(this.baseUrl);\n }\n /**\n * جلب سجل واحد بناءً على المعرف\n */\n getById(id) {\n // ملاحظة: تأكد أن الـ endpoint يدعم GET برقم المعرف\n return this.http.get(`${this.baseUrl}/${id}`);\n }\n /**\n * إنشاء سجل جديد\n */\n create(item) {\n // ملاحظة: استخدم Partial<T> للسماح ببعض الحقول الاختيارية\n return this.http.post(this.baseUrl, item);\n }\n /**\n * تحديث سجل موجود\n */\n update(id, item) {\n // ملاحظة: هنا نُعيد Observable<void> لأن API قد لا تُرجع الجسم نفسه\n return this.http.put(`${this.baseUrl}`, item);\n }\n /**\n * حذف سجل\n */\n delete(id) {\n // ملاحظة: يُفضّل استخدام Confirm قبل الحذف في الواجهة\n return this.http.delete(`${this.baseUrl}/${id}`);\n }\n /** endpoint قابل للتخصيص — يمكن للفرع override–ها */\n getPageUrl() {\n return this.baseUrl;\n }\n /**\n * جلب صفحة من البيانات مع دعم الفلاتر والفرز\n * @param pageIndex صفر-based\n * @param pageSize عدد السجلات\n * @param filters كائن Partial<T> أو Record<string,any>\n * @param sort نص الفرز، مثلاً \"eiNa:desc\"\n */\n getPage(pageIndex, pageSize, filters, sort) {\n // debugger\n let params = new HttpParams()\n .set('pageIndex', pageIndex.toString())\n .set('pageSize', pageSize.toString());\n if (filters) {\n Object.entries(filters).forEach(([key, val]) => {\n if (val != null && val !== '') {\n params = params.set(key, val.toString());\n }\n });\n }\n if (sort) {\n params = params.set('sort', sort);\n }\n // return this.http\n // .get<T[]>(this.getPageUrl(), { params, observe: 'response' })\n // .pipe(\n // map((resp: HttpResponse<T[]>) => ({\n // items: resp.body || [],\n // totalCount: Number(resp.headers.get('X-Total-Count')) || resp.body?.length || 0\n // }))\n // );\n return this.http.get(this.getPageUrl(), { params });\n }\n}\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2VuZXJpYy5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy5jb3JlL3NlcnZpY2VzL3NyYy9saWIvZ2VuZXJpYy5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLHNDQUFzQztBQUN0QyxPQUFPLEVBQWMsVUFBVSxFQUFnQixNQUFNLHNCQUFzQixDQUFDO0FBSzVFOzs7Ozs7R0FNRztBQUNILE1BQU0sT0FBZ0IsY0FBYztJQU9aO0lBQXRCLFlBQXNCLElBQWdCO1FBQWhCLFNBQUksR0FBSixJQUFJLENBQVk7SUFBRyxDQUFDO0lBRTFDOztPQUVHO0lBQ0gsTUFBTTtRQUNKLDhEQUE4RDtRQUM5RCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFNLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQ7O09BRUc7SUFFSCxPQUFPLENBQUMsRUFBSztRQUNYLG9EQUFvRDtRQUNwRCxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFJLEdBQUcsSUFBSSxDQUFDLE9BQU8sSUFBSSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRDs7T0FFRztJQUNILE1BQU0sQ0FBQyxJQUFnQjtRQUVyQiwwREFBMEQ7UUFDMUQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBSSxJQUFJLENBQUMsT0FBTyxFQUFFLElBQUksQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFRDs7T0FFRztJQUVGLE1BQU0sQ0FBQyxFQUFLLEVBQUUsSUFBZ0I7UUFDN0Isb0VBQW9FO1FBQ25FLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUksR0FBRyxJQUFJLENBQUMsT0FBTyxFQUFFLEVBQUUsSUFBSSxDQUFDLENBQUM7SUFDcEQsQ0FBQztJQUNEOztPQUVHO0lBQ0gsTUFBTSxDQUFDLEVBQUs7UUFDVixzREFBc0Q7UUFDdEQsT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBTyxHQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxDQUFDO0lBSUYscURBQXFEO0lBQzFDLFVBQVU7UUFDbEIsT0FBTyxJQUFJLENBQUMsT0FBTyxDQUFDO0lBQ3RCLENBQUM7SUFFQTs7Ozs7O01BTUU7SUFDSCxPQUFPLENBQ0wsU0FBaUIsRUFDakIsUUFBZ0IsRUFDaEIsT0FBNkIsRUFDN0IsSUFBYTtRQUViLFdBQVc7UUFDWCxJQUFJLE1BQU0sR0FBRyxJQUFJLFVBQVUsRUFBRTthQUMxQixHQUFHLENBQUMsV0FBVyxFQUFFLFNBQVMsQ0FBQyxRQUFRLEVBQUUsQ0FBQzthQUN0QyxHQUFHLENBQUMsVUFBVSxFQUFHLFFBQVEsQ0FBQyxRQUFRLEVBQUUsQ0FBQyxDQUFDO1FBRXpDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixNQUFNLENBQUMsT0FBTyxDQUFDLE9BQU8sQ0FBQyxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUMsR0FBRyxFQUFFLEdBQUcsQ0FBQyxFQUFFLEVBQUU7Z0JBQzdDLElBQUksR0FBRyxJQUFJLElBQUksSUFBSSxHQUFHLEtBQUssRUFBRSxFQUFFLENBQUM7b0JBQzlCLE1BQU0sR0FBRyxNQUFNLENBQUMsR0FBRyxDQUFDLEdBQUcsRUFBRSxHQUFHLENBQUMsUUFBUSxFQUFFLENBQUMsQ0FBQztnQkFDM0MsQ0FBQztZQUNILENBQUMsQ0FBQyxDQUFDO1FBQ0wsQ0FBQztRQUVELElBQUksSUFBSSxFQUFFLENBQUM7WUFDVCxNQUFNLEdBQUcsTUFBTSxDQUFDLEdBQUcsQ0FBQyxNQUFNLEVBQUUsSUFBSSxDQUFDLENBQUM7UUFDcEMsQ0FBQztRQUVELG1CQUFtQjtRQUNuQixrRUFBa0U7UUFDbEUsV0FBVztRQUNYLDBDQUEwQztRQUMxQyxnQ0FBZ0M7UUFDaEMsd0ZBQXdGO1FBQ3hGLFVBQVU7UUFDVixPQUFPO1FBQ0osT0FBTyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FDdkIsSUFBSSxDQUFDLFVBQVUsRUFBRSxFQUNqQixFQUFFLE1BQU0sRUFBRSxDQUNYLENBQUM7SUFDRixDQUFDO0NBR0YiLCJzb3VyY2VzQ29udGVudCI6WyIvLyBzcmMvYXBwL3NlcnZpY2VzL2dlbmVyaWMuc2VydmljZS50c1xuaW1wb3J0IHsgSHR0cENsaWVudCwgSHR0cFBhcmFtcywgSHR0cFJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgbWFwLCBPYnNlcnZhYmxlIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDcnVkU2VydmljZSB9IGZyb20gJy4vY3J1ZC1zZXJ2aWNlLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQYWdpbmF0ZWRSZXN1bHQgfSBmcm9tICdAZWxpdGUuZnJhbWV3b3JrL25nLmNvcmUvbW9kZWxzJztcblxuLyoqXG4gKiBHZW5lcmljU2VydmljZTxULCBLPjpcbiAqICAtIFQgPSDZhtmI2Lkg2KfZhNmD2KfYptmGIChNb2RlbClcbiAqICAtIEsgPSDZhtmI2Lkg2KfZhNmF2YHYqtin2K0g2KfZhNij2LPYp9iz2YogKElEKdiMINin2YHYqtix2KfYttmKIG51bWJlclxuICpcbiAqINmK2K3YqtmI2Yog2LnZhNmJINis2YXZiti5INiv2YjYp9mEINin2YTZgCBDUlVEINin2YTZgtmK2KfYs9mK2Kkg2YTZhNiq2YjYsdmK2Ksg2YHZiiDYp9mE2K7Yr9mF2KfYqiDYp9mE2YXYqtiu2LXYtdipLlxuICovXG5leHBvcnQgYWJzdHJhY3QgY2xhc3MgR2VuZXJpY1NlcnZpY2U8VCwgSyA9IG51bWJlcj4gaW1wbGVtZW50cyBDcnVkU2VydmljZTxULCBSZWNvcmQ8c3RyaW5nLCBhbnk+PiB7XG4gIC8qKlxuICAgKiDinI/vuI8g2LnZhNmJINmD2YQg2K7Yr9mF2Kkg2YHYsdi52YrYqSDYo9mGINiq2LnYsdmR2YEg2YfYsNinOlxuICAgKiDZhdir2KfZhDogcHJvdGVjdGVkIGJhc2VVcmwgPSAnaHR0cHM6Ly9hcGkuZXhhbXBsZS5jb20vYXBpL2pvYnR5cHMnO1xuICAgKi9cbiAgcHJvdGVjdGVkIGFic3RyYWN0IGJhc2VVcmw6IHN0cmluZztcblxuICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgaHR0cDogSHR0cENsaWVudCkge31cblxuICAvKipcbiAgICog2KzZhNioINmD2YQg2KfZhNiz2KzZhNin2KpcbiAgICovXG4gIGdldEFsbCgpOiBPYnNlcnZhYmxlPFRbXT4ge1xuICAgIC8vINmF2YTYp9it2LjYqTog2YrZhdmD2YYg2KXYttin2YHYqSDZhdi52KfZhNisINij2K7Yt9in2KEg2YXYsdmD2LLZiiDZh9mG2Kcg2KPZiCDYudio2LEgSW50ZXJjZXB0b3JcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldDxUW10+KHRoaXMuYmFzZVVybCk7XG4gIH1cblxuICAvKipcbiAgICog2KzZhNioINiz2KzZhCDZiNin2K3YryDYqNmG2KfYodmLINi52YTZiSDYp9mE2YXYudix2YFcbiAgICovXG5cbiAgZ2V0QnlJZChpZDogSyk6IE9ic2VydmFibGU8VD4ge1xuICAgIC8vINmF2YTYp9it2LjYqTog2KrYo9mD2K8g2KPZhiDYp9mE2YAgZW5kcG9pbnQg2YrYr9i52YUgR0VUINio2LHZgtmFINin2YTZhdi52LHZgVxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0PFQ+KGAke3RoaXMuYmFzZVVybH0vJHtpZH1gKTtcbiAgfVxuXG4gIC8qKlxuICAgKiDYpdmG2LTYp9ihINiz2KzZhCDYrNiv2YrYr1xuICAgKi9cbiAgY3JlYXRlKGl0ZW06IFBhcnRpYWw8VD4pOiBPYnNlcnZhYmxlPFQ+IHtcblxuICAgIC8vINmF2YTYp9it2LjYqTog2KfYs9iq2K7Yr9mFIFBhcnRpYWw8VD4g2YTZhNiz2YXYp9itINio2KjYudi2INin2YTYrdmC2YjZhCDYp9mE2KfYrtiq2YrYp9ix2YrYqVxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxUPih0aGlzLmJhc2VVcmwsIGl0ZW0pO1xuICB9XG5cbiAgLyoqXG4gICAqINiq2K3Yr9mK2Ksg2LPYrNmEINmF2YjYrNmI2K9cbiAgICovXG5cbiAgIHVwZGF0ZShpZDogSywgaXRlbTogUGFydGlhbDxUPik6IE9ic2VydmFibGU8VD4ge1xuICAgIC8vINmF2YTYp9it2LjYqTog2YfZhtinINmG2Y/YudmK2K8gT2JzZXJ2YWJsZTx2b2lkPiDZhNij2YYgQVBJINmC2K8g2YTYpyDYqtmP2LHYrNi5INin2YTYrNiz2YUg2YbZgdiz2YdcbiAgICAgcmV0dXJuIHRoaXMuaHR0cC5wdXQ8VD4oYCR7dGhpcy5iYXNlVXJsfWAsIGl0ZW0pO1xuICB9XG4gIC8qKlxuICAgKiDYrdiw2YEg2LPYrNmEXG4gICAqL1xuICBkZWxldGUoaWQ6IEspOiBPYnNlcnZhYmxlPHZvaWQ+IHtcbiAgICAvLyDZhdmE2KfYrdi42Kk6INmK2Y/Zgdi22ZHZhCDYp9iz2KrYrtiv2KfZhSBDb25maXJtINmC2KjZhCDYp9mE2K3YsNmBINmB2Yog2KfZhNmI2KfYrNmH2KlcbiAgICByZXR1cm4gdGhpcy5odHRwLmRlbGV0ZTx2b2lkPihgJHt0aGlzLmJhc2VVcmx9LyR7aWR9YCk7XG4gIH1cblxuXG5cbiAvKiogZW5kcG9pbnQg2YLYp9io2YQg2YTZhNiq2K7YtdmK2LUg4oCUINmK2YXZg9mGINmE2YTZgdix2Lkgb3ZlcnJpZGXigJPZh9inICovXG4gIHByb3RlY3RlZCBnZXRQYWdlVXJsKCk6IHN0cmluZyB7XG4gICAgcmV0dXJuIHRoaXMuYmFzZVVybDtcbiAgfVxuXG4gICAvKipcbiAgICog2KzZhNioINi12YHYrdipINmF2YYg2KfZhNio2YrYp9mG2KfYqiDZhdi5INiv2LnZhSDYp9mE2YHZhNin2KrYsSDZiNin2YTZgdix2LJcbiAgICogQHBhcmFtIHBhZ2VJbmRleCDYtdmB2LEtYmFzZWRcbiAgICogQHBhcmFtIHBhZ2VTaXplINi52K/YryDYp9mE2LPYrNmE2KfYqlxuICAgKiBAcGFyYW0gZmlsdGVycyDZg9in2KbZhiBQYXJ0aWFsPFQ+INij2YggUmVjb3JkPHN0cmluZyxhbnk+XG4gICAqIEBwYXJhbSBzb3J0INmG2LUg2KfZhNmB2LHYstiMINmF2KvZhNin2YsgXCJlaU5hOmRlc2NcIlxuICAgKi9cbiAgZ2V0UGFnZShcbiAgICBwYWdlSW5kZXg6IG51bWJlcixcbiAgICBwYWdlU2l6ZTogbnVtYmVyLFxuICAgIGZpbHRlcnM/OiBSZWNvcmQ8c3RyaW5nLCBhbnk+LFxuICAgIHNvcnQ/OiBzdHJpbmdcbiAgKTogT2JzZXJ2YWJsZTxQYWdpbmF0ZWRSZXN1bHQ8VD4+IHtcbiAgICAvLyBkZWJ1Z2dlclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXG4gICAgICAuc2V0KCdwYWdlSW5kZXgnLCBwYWdlSW5kZXgudG9TdHJpbmcoKSlcbiAgICAgIC5zZXQoJ3BhZ2VTaXplJywgIHBhZ2VTaXplLnRvU3RyaW5nKCkpO1xuXG4gICAgaWYgKGZpbHRlcnMpIHtcbiAgICAgIE9iamVjdC5lbnRyaWVzKGZpbHRlcnMpLmZvckVhY2goKFtrZXksIHZhbF0pID0+IHtcbiAgICAgICAgaWYgKHZhbCAhPSBudWxsICYmIHZhbCAhPT0gJycpIHtcbiAgICAgICAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KGtleSwgdmFsLnRvU3RyaW5nKCkpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG5cbiAgICBpZiAoc29ydCkge1xuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldCgnc29ydCcsIHNvcnQpO1xuICAgIH1cblxuICAgIC8vIHJldHVybiB0aGlzLmh0dHBcbiAgICAvLyAgIC5nZXQ8VFtdPih0aGlzLmdldFBhZ2VVcmwoKSwgeyBwYXJhbXMsIG9ic2VydmU6ICdyZXNwb25zZScgfSlcbiAgICAvLyAgIC5waXBlKFxuICAgIC8vICAgICBtYXAoKHJlc3A6IEh0dHBSZXNwb25zZTxUW10+KSA9PiAoe1xuICAgIC8vICAgICAgIGl0ZW1zOiByZXNwLmJvZHkgfHwgW10sXG4gICAgLy8gICAgICAgdG90YWxDb3VudDogTnVtYmVyKHJlc3AuaGVhZGVycy5nZXQoJ1gtVG90YWwtQ291bnQnKSkgfHwgcmVzcC5ib2R5Py5sZW5ndGggfHwgMFxuICAgIC8vICAgICB9KSlcbiAgICAvLyAgICk7XG4gICAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQ8UGFnaW5hdGVkUmVzdWx0PFQ+PihcbiAgICB0aGlzLmdldFBhZ2VVcmwoKSxcbiAgICB7IHBhcmFtcyB9XG4gICk7XG4gIH1cblxuXG59XG4iXX0=","import { Inject, Injectable, InjectionToken, Optional, PLATFORM_ID } from '@angular/core';\nimport { DOCUMENT, isPlatformBrowser } from '@angular/common';\nimport * as i0 from \"@angular/core\";\n// Define the `Request` token\nexport const REQUEST = new InjectionToken('REQUEST');\nexport class SsrCookieService {\n document;\n platformId;\n request;\n documentIsAccessible;\n static initialUrl = '';\n constructor(document, \n // Get the `PLATFORM_ID` so we can check if we're in a browser.\n platformId, request) {\n this.document = document;\n this.platformId = platformId;\n this.request = request;\n this.documentIsAccessible = isPlatformBrowser(this.platformId);\n SsrCookieService.initialUrl = this.documentIsAccessible ? this.document.location.href : this.request?.url;\n }\n /**\n * Get cookie Regular Expression\n *\n * @param name Cookie name\n * @returns property RegExp\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n static getCookieRegExp(name) {\n const escapedName = name.replace(/([\\[\\]\\{\\}\\(\\)\\|\\=\\;\\+\\?\\,\\.\\*\\^\\$])/gi, '\\\\$1');\n return new RegExp('(?:^' + escapedName + '|;\\\\s*' + escapedName + ')=(.*?)(?:;|$)', 'g');\n }\n /**\n * Gets the unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n * @param encodedURIComponent A value representing an encoded URI component.\n *\n * @returns The unencoded version of an encoded component of a Uniform Resource Identifier (URI).\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n static safeDecodeURIComponent(encodedURIComponent) {\n try {\n return decodeURIComponent(encodedURIComponent);\n }\n catch {\n // probably it is not uri encoded. return as is\n return encodedURIComponent;\n }\n }\n /**\n * Return `true` if {@link Document} is accessible, otherwise return `false`\n *\n * @param name Cookie name\n * @returns boolean - whether cookie with specified name exists\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n check(name) {\n name = encodeURIComponent(name);\n const regExp = SsrCookieService.getCookieRegExp(name);\n return regExp.test((this.documentIsAccessible ? this.document.cookie : this.request?.headers.cookie) ?? '');\n }\n isDocumentIsAccessible() {\n return this.documentIsAccessible;\n }\n get url() {\n return this.documentIsAccessible ? this.document.location.href : this.request?.url;\n }\n /**\n * Get cookies by name\n *\n * @param name Cookie name\n * @returns property value\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n get(name) {\n if (this.check(name)) {\n name = encodeURIComponent(name);\n const regExp = SsrCookieService.getCookieRegExp(name);\n const result = regExp.exec((this.documentIsAccessible ? this.document.cookie : this.request?.headers.cookie) ?? '');\n return result[1] ? SsrCookieService.safeDecodeURIComponent(result[1]) : '';\n }\n else {\n return '';\n }\n }\n /**\n * Get all cookies in JSON format\n *\n * @returns all the cookies in json\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n getAll() {\n const cookies = {};\n const cookieString = this.documentIsAccessible ? this.document?.cookie : this.request?.headers.cookie;\n if (cookieString && cookieString !== '') {\n cookieString.split(';').forEach((currentCookie) => {\n const [cookieName, cookieValue] = currentCookie.split('=');\n cookies[SsrCookieService.safeDecodeURIComponent(cookieName.replace(/^ /, ''))] = SsrCookieService.safeDecodeURIComponent(cookieValue);\n });\n }\n return cookies;\n }\n set(name, value, expiresOrOptions, path, domain, secure, sameSite, partitioned) {\n if (!this.documentIsAccessible) {\n return;\n }\n if (typeof expiresOrOptions === 'number' || expiresOrOptions instanceof Date || path || domain || secure || sameSite) {\n const optionsBody = {\n expires: expiresOrOptions,\n path,\n domain,\n secure,\n sameSite: sameSite ? sameSite : 'Lax',\n partitioned,\n };\n this.set(name, value, optionsBody);\n return;\n }\n let cookieString = encodeURIComponent(name) + '=' + encodeURIComponent(value) + ';';\n const options = expiresOrOptions ? expiresOrOptions : {};\n if (options.expires) {\n if (typeof options.expires === 'number') {\n const dateExpires = new Date(new Date().getTime() + options.expires * 1000 * 60 * 60 * 24);\n cookieString += 'expires=' + dateExpires.toUTCString() + ';';\n }\n else {\n cookieString += 'expires=' + options.expires.toUTCString() + ';';\n }\n }\n if (options.path) {\n cookieString += 'path=' + options.path + ';';\n }\n if (options.domain) {\n cookieString += 'domain=' + options.domain + ';';\n }\n if (options.secure === false && options.sameSite === 'None') {\n options.secure = true;\n console.warn(`[ngx-cookie-service] Cookie ${name} was forced with secure flag because sameSite=None.` +\n `More details : https://github.com/stevermeister/ngx-cookie-service/issues/86#issuecomment-597720130`);\n }\n if (options.secure) {\n cookieString += 'secure;';\n }\n if (!options.sameSite) {\n options.sameSite = 'Lax';\n }\n cookieString += 'sameSite=' + options.sameSite + ';';\n if (options.partitioned) {\n cookieString += 'Partitioned;';\n }\n this.document.cookie = cookieString;\n }\n /**\n * Delete cookie by name\n *\n * @param name Cookie name\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Cookie secure flag\n * @param sameSite Cookie sameSite flag - https://developer.mozilla.org/en-US/docs/Web/HTTP/Headers/Set-Cookie/SameSite\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n delete(name, path, domain, secure, sameSite = 'Lax') {\n if (!this.documentIsAccessible) {\n return;\n }\n const expiresDate = new Date('Thu, 01 Jan 1970 00:00:01 GMT');\n this.set(name, '', { expires: expiresDate, path, domain, secure, sameSite });\n }\n /**\n * Delete all cookies\n *\n * @param path Cookie path\n * @param domain Cookie domain\n * @param secure Is the Cookie secure\n * @param sameSite Is the cookie same site\n *\n * @author: Stepan Suvorov\n * @since: 1.0.0\n */\n deleteAll(path, domain, secure, sameSite = 'Lax') {\n if (!this.documentIsAccessible) {\n return;\n }\n const cookies = this.getAll();\n for (const cookieName in cookies) {\n if (cookies.hasOwnProperty(cookieName)) {\n this.delete(cookieName, path, domain, secure, sameSite);\n }\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: SsrCookieService, deps: [{ token: DOCUMENT }, { token: PLATFORM_ID }, { token: REQUEST, optional: true }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: SsrCookieService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: SsrCookieService, decorators: [{\n type: Injectable,\n args: [{\n providedIn: 'root',\n }]\n }], ctorParameters: () => [{ type: Document, decorators: [{\n type: Inject,\n args: [DOCUMENT]\n }] }, { type: undefined, decorators: [{\n type: Inject,\n args: [PLATFORM_ID]\n }] }, { type: undefined, decorators: [{\n type: Optional\n }, {\n type: Inject,\n args: [REQUEST]\n }] }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3NyLWNvb2tpZS5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9uZy5jb3JlL3NlcnZpY2VzL3NyYy9saWIvc3NyLWNvb2tpZS5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLGNBQWMsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzFGLE9BQU8sRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQzs7QUFFOUQsNkJBQTZCO0FBQzdCLE1BQU0sQ0FBQyxNQUFNLE9BQU8sR0FBRyxJQUFJLGNBQWMsQ0FBVSxTQUFTLENBQUMsQ0FBQztBQUs5RCxNQUFNLE9BQU8sZ0JBQWdCO0lBS0M7SUFFRztJQUNRO0lBUHRCLG9CQUFvQixDQUFVO0lBQy9DLE1BQU0sQ0FBRSxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBRXhCLFlBQzRCLFFBQWtCO0lBQzVDLCtEQUErRDtJQUNsQyxVQUFlLEVBQ1AsT0FBZ0I7UUFIM0IsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQUVmLGVBQVUsR0FBVixVQUFVLENBQUs7UUFDUCxZQUFPLEdBQVAsT0FBTyxDQUFTO1FBRXJELElBQUksQ0FBQyxvQkFBb0IsR0FBRyxpQkFBaUIsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7UUFDL0QsZ0JBQWdCLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsT0FBTyxFQUFFLEdBQUcsQ0FBQztJQUM1RyxDQUFDO0lBRUQ7Ozs7Ozs7O09BUUc7SUFDSCxNQUFNLENBQUMsZUFBZSxDQUFDLElBQVk7UUFDakMsTUFBTSxXQUFXLEdBQVcsSUFBSSxDQUFDLE9BQU8sQ0FB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Q0FBQztJQUNILENBQUM7dUdBaFNVLGdCQUFnQixrQkFLakIsUUFBUSxhQUVSLFdBQVcsYUFDQyxPQUFPOzJHQVJsQixnQkFBZ0IsY0FGZixNQUFNOzsyRkFFUCxnQkFBZ0I7a0JBSDVCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxNQUFNOzJCQUFDLFFBQVE7OzBCQUVmLE1BQU07MkJBQUMsV0FBVzs7MEJBQ2xCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsT0FBTyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFJlcXVlc3QgfSBmcm9tICdleHByZXNzJztcbmltcG9ydCB7IEluamVjdCwgSW5qZWN0YWJsZSwgSW5qZWN0aW9uVG9rZW4sIE9wdGlvbmFsLCBQTEFURk9STV9JRCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRE9DVU1FTlQsIGlzUGxhdGZvcm1Ccm93c2VyIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcblxuLy8gRGVmaW5lIHRoZSBgUmVxdWVzdGAgdG9rZW5cbmV4cG9ydCBjb25zdCBSRVFVRVNUID0gbmV3IEluamVjdGlvblRva2VuPFJlcXVlc3Q+KCdSRVFVRVNUJyk7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBTc3JDb29raWVTZXJ2aWNlIHtcbiAgcHJpdmF0ZSByZWFkb25seSBkb2N1bWVudElzQWNjZXNzaWJsZTogYm9vbGVhbjtcbiAgc3RhdGljICBpbml0aWFsVXJsID0gJyc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgQEluamVjdChET0NVTUVOVCkgcHJpdmF0ZSBkb2N1bWVudDogRG9jdW1lbnQsXG4gICAgLy8gR2V0IHRoZSBgUExBVEZPUk1fSURgIHNvIHdlIGNhbiBjaGVjayBpZiB3ZSdyZSBpbiBhIGJyb3dzZXIuXG4gICAgQEluamVjdChQTEFURk9STV9JRCkgcHJpdmF0ZSBwbGF0Zm9ybUlkOiBhbnksXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChSRVFVRVNUKSBwcml2YXRlIHJlcXVlc3Q6IFJlcXVlc3RcbiAgKSB7XG4gICAgdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA9IGlzUGxhdGZvcm1Ccm93c2VyKHRoaXMucGxhdGZvcm1JZCk7XG4gICAgU3NyQ29va2llU2VydmljZS5pbml0aWFsVXJsID0gdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA/IHRoaXMuZG9jdW1lbnQubG9jYXRpb24uaHJlZiA6IHRoaXMucmVxdWVzdD8udXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb29raWUgUmVndWxhciBFeHByZXNzaW9uXG4gICAqXG4gICAqIEBwYXJhbSBuYW1lIENvb2tpZSBuYW1lXG4gICAqIEByZXR1cm5zIHByb3BlcnR5IFJlZ0V4cFxuICAgKlxuICAgKiBAYXV0aG9yOiBTdGVwYW4gU3V2b3JvdlxuICAgKiBAc2luY2U6IDEuMC4wXG4gICAqL1xuICBzdGF0aWMgZ2V0Q29va2llUmVnRXhwKG5hbWU6IHN0cmluZyk6IFJlZ0V4cCB7XG4gICAgY29uc3QgZXNjYXBlZE5hbWU6IHN0cmluZyA9IG5hbWUucmVwbGFjZSgvKFtcXFtcXF1cXHtcXH1cXChcXClcXHxcXD1cXDtcXCtcXD9cXCxcXC5cXCpcXF5cXCRdKS9naSwgJ1xcXFwkMScpO1xuXG4gICAgcmV0dXJuIG5ldyBSZWdFeHAoJyg/Ol4nICsgZXNjYXBlZE5hbWUgKyAnfDtcXFxccyonICsgZXNjYXBlZE5hbWUgKyAnKT0oLio/KSg/Ojt8JCknLCAnZycpO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldHMgdGhlIHVuZW5jb2RlZCB2ZXJzaW9uIG9mIGFuIGVuY29kZWQgY29tcG9uZW50IG9mIGEgVW5pZm9ybSBSZXNvdXJjZSBJZGVudGlmaWVyIChVUkkpLlxuICAgKlxuICAgKiBAcGFyYW0gZW5jb2RlZFVSSUNvbXBvbmVudCBBIHZhbHVlIHJlcHJlc2VudGluZyBhbiBlbmNvZGVkIFVSSSBjb21wb25lbnQuXG4gICAqXG4gICAqIEByZXR1cm5zIFRoZSB1bmVuY29kZWQgdmVyc2lvbiBvZiBhbiBlbmNvZGVkIGNvbXBvbmVudCBvZiBhIFVuaWZvcm0gUmVzb3VyY2UgSWRlbnRpZmllciAoVVJJKS5cbiAgICpcbiAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICogQHNpbmNlOiAxLjAuMFxuICAgKi9cbiAgc3RhdGljIHNhZmVEZWNvZGVVUklDb21wb25lbnQoZW5jb2RlZFVSSUNvbXBvbmVudDogc3RyaW5nKTogc3RyaW5nIHtcbiAgICB0cnkge1xuICAgICAgcmV0dXJuIGRlY29kZVVSSUNvbXBvbmVudChlbmNvZGVkVVJJQ29tcG9uZW50KTtcbiAgICB9IGNhdGNoIHtcbiAgICAgIC8vIHByb2JhYmx5IGl0IGlzIG5vdCB1cmkgZW5jb2RlZC4gcmV0dXJuIGFzIGlzXG4gICAgICByZXR1cm4gZW5jb2RlZFVSSUNvbXBvbmVudDtcbiAgICB9XG4gIH1cblxuICAvKipcbiAgICogUmV0dXJuIGB0cnVlYCBpZiB7QGxpbmsgRG9jdW1lbnR9IGlzIGFjY2Vzc2libGUsIG90aGVyd2lzZSByZXR1cm4gYGZhbHNlYFxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSBDb29raWUgbmFtZVxuICAgKiBAcmV0dXJucyBib29sZWFuIC0gd2hldGhlciBjb29raWUgd2l0aCBzcGVjaWZpZWQgbmFtZSBleGlzdHNcbiAgICpcbiAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICogQHNpbmNlOiAxLjAuMFxuICAgKi9cbiAgY2hlY2sobmFtZTogc3RyaW5nKTogYm9vbGVhbiB7XG4gICAgbmFtZSA9IGVuY29kZVVSSUNvbXBvbmVudChuYW1lKTtcbiAgICBjb25zdCByZWdFeHA6IFJlZ0V4cCA9IFNzckNvb2tpZVNlcnZpY2UuZ2V0Q29va2llUmVnRXhwKG5hbWUpO1xuICAgIHJldHVybiByZWdFeHAudGVzdCgodGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA/IHRoaXMuZG9jdW1lbnQuY29va2llICA6IHRoaXMucmVxdWVzdD8uaGVhZGVycy5jb29raWUpID8/ICcnKTtcbiAgfVxuICBpc0RvY3VtZW50SXNBY2Nlc3NpYmxlKCk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlIDtcbiAgfVxuIGdldCB1cmwoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA/IHRoaXMuZG9jdW1lbnQubG9jYXRpb24uaHJlZiA6IHRoaXMucmVxdWVzdD8udXJsO1xuICB9XG5cbiAgLyoqXG4gICAqIEdldCBjb29raWVzIGJ5IG5hbWVcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgQ29va2llIG5hbWVcbiAgICogQHJldHVybnMgcHJvcGVydHkgdmFsdWVcbiAgICpcbiAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICogQHNpbmNlOiAxLjAuMFxuICAgKi9cbiAgZ2V0KG5hbWU6IHN0cmluZyk6IHN0cmluZyB7XG4gICAgaWYgKHRoaXMuY2hlY2sobmFtZSkpIHtcbiAgICAgIG5hbWUgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSk7XG5cbiAgICAgIGNvbnN0IHJlZ0V4cDogUmVnRXhwID0gU3NyQ29va2llU2VydmljZS5nZXRDb29raWVSZWdFeHAobmFtZSk7XG4gICAgICBjb25zdCByZXN1bHQ6IFJlZ0V4cEV4ZWNBcnJheSB8YW55PSByZWdFeHAuZXhlYygodGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSA/IHRoaXMuZG9jdW1lbnQuY29va2llIDogdGhpcy5yZXF1ZXN0Py5oZWFkZXJzLmNvb2tpZSkgPz8gJycpO1xuXG4gICAgICByZXR1cm4gcmVzdWx0WzFdID8gU3NyQ29va2llU2VydmljZS5zYWZlRGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdFsxXSkgOiAnJztcbiAgICB9IGVsc2Uge1xuICAgICAgcmV0dXJuICcnO1xuICAgIH1cbiAgfVxuXG4gIC8qKlxuICAgKiBHZXQgYWxsIGNvb2tpZXMgaW4gSlNPTiBmb3JtYXRcbiAgICpcbiAgICogQHJldHVybnMgYWxsIHRoZSBjb29raWVzIGluIGpzb25cbiAgICpcbiAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICogQHNpbmNlOiAxLjAuMFxuICAgKi9cbiAgZ2V0QWxsKCk6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0ge1xuICAgIGNvbnN0IGNvb2tpZXM6IHsgW2tleTogc3RyaW5nXTogc3RyaW5nIH0gPSB7fTtcbiAgICBjb25zdCBjb29raWVTdHJpbmc6IGFueSA9IHRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUgPyB0aGlzLmRvY3VtZW50Py5jb29raWUgOiB0aGlzLnJlcXVlc3Q/LmhlYWRlcnMuY29va2llO1xuXG4gICAgaWYgKGNvb2tpZVN0cmluZyAmJiBjb29raWVTdHJpbmcgIT09ICcnKSB7XG4gICAgICBjb29raWVTdHJpbmcuc3BsaXQoJzsnKS5mb3JFYWNoKChjdXJyZW50Q29va2llOmFueSkgPT4ge1xuICAgICAgICBjb25zdCBbY29va2llTmFtZSwgY29va2llVmFsdWVdID0gY3VycmVudENvb2tpZS5zcGxpdCgnPScpO1xuICAgICAgICBjb29raWVzW1NzckNvb2tpZVNlcnZpY2Uuc2FmZURlY29kZVVSSUNvbXBvbmVudChjb29raWVOYW1lLnJlcGxhY2UoL14gLywgJycpKV0gPSBTc3JDb29raWVTZXJ2aWNlLnNhZmVEZWNvZGVVUklDb21wb25lbnQoY29va2llVmFsdWUpO1xuICAgICAgfSk7XG4gICAgfVxuXG4gICAgcmV0dXJuIGNvb2tpZXM7XG4gIH1cblxuICAvKipcbiAgICogU2V0IGNvb2tpZSBiYXNlZCBvbiBwcm92aWRlZCBpbmZvcm1hdGlvblxuICAgKlxuICAgKiBAcGFyYW0gbmFtZSAgICAgQ29va2llIG5hbWVcbiAgICogQHBhcmFtIHZhbHVlICAgIENvb2tpZSB2YWx1ZVxuICAgKiBAcGFyYW0gZXhwaXJlcyAgTnVtYmVyIG9mIGRheXMgdW50aWwgdGhlIGNvb2tpZXMgZXhwaXJlcyBvciBhbiBhY3R1YWwgYERhdGVgXG4gICAqIEBwYXJhbSBwYXRoICAgICBDb29raWUgcGF0aFxuICAgKiBAcGFyYW0gZG9tYWluICAgQ29va2llIGRvbWFpblxuICAgKiBAcGFyYW0gc2VjdXJlICAgU2VjdXJlIGZsYWdcbiAgICogQHBhcmFtIHNhbWVTaXRlIE9XQVNQIHNhbWUgc2l0ZSB0b2tlbiBgTGF4YCwgYE5vbmVgLCBvciBgU3RyaWN0YC4gRGVmYXVsdHMgdG8gYExheGBcbiAgICogQHBhcmFtIHBhcnRpdGlvbmVkIFBhcnRpdGlvbmVkIGZsYWdcbiAgICpcbiAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICogQHNpbmNlOiAxLjAuMFxuICAgKi9cbiAgc2V0KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIGV4cGlyZXM/OiBudW1iZXIgfCBEYXRlLFxuICAgIHBhdGg/OiBzdHJpbmcsXG4gICAgZG9tYWluPzogc3RyaW5nLFxuICAgIHNlY3VyZT86IGJvb2xlYW4sXG4gICAgc2FtZVNpdGU/OiAnTGF4JyB8ICdOb25lJyB8ICdTdHJpY3QnLFxuICAgIHBhcnRpdGlvbmVkPzogYm9vbGVhblxuICApOiB2b2lkO1xuXG4gIC8qKlxuICAgKiBTZXQgY29va2llIGJhc2VkIG9uIHByb3ZpZGVkIGluZm9ybWF0aW9uXG4gICAqXG4gICAqIENvb2tpZSdzIHBhcmFtZXRlcnM6XG4gICAqIDxwcmU+XG4gICAqIGV4cGlyZXMgIE51bWJlciBvZiBkYXlzIHVudGlsIHRoZSBjb29raWVzIGV4cGlyZXMgb3IgYW4gYWN0dWFsIGBEYXRlYFxuICAgKiBwYXRoICAgICBDb29raWUgcGF0aFxuICAgKiBkb21haW4gICBDb29raWUgZG9tYWluXG4gICAqIHNlY3VyZSBDb29raWUgc2VjdXJlIGZsYWdcbiAgICogc2FtZVNpdGUgT1dBU1Agc2FtZSBzaXRlIHRva2VuIGBMYXhgLCBgTm9uZWAsIG9yIGBTdHJpY3RgLiBEZWZhdWx0cyB0byBgTGF4YFxuICAgKiA8L3ByZT5cbiAgICpcbiAgICogQHBhcmFtIG5hbWUgICAgIENvb2tpZSBuYW1lXG4gICAqIEBwYXJhbSB2YWx1ZSAgICBDb29raWUgdmFsdWVcbiAgICogQHBhcmFtIG9wdGlvbnMgIEJvZHkgd2l0aCBjb29raWUncyBwYXJhbXNcbiAgICpcbiAgICogQGF1dGhvcjogU3RlcGFuIFN1dm9yb3ZcbiAgICogQHNpbmNlOiAxLjAuMFxuICAgKi9cbiAgc2V0KFxuICAgIG5hbWU6IHN0cmluZyxcbiAgICB2YWx1ZTogc3RyaW5nLFxuICAgIG9wdGlvbnM/OiB7XG4gICAgICBleHBpcmVzPzogbnVtYmVyIHwgRGF0ZTtcbiAgICAgIHBhdGg/OiBzdHJpbmc7XG4gICAgICBkb21haW4/OiBzdHJpbmc7XG4gICAgICBzZWN1cmU/OiBib29sZWFuO1xuICAgICAgc2FtZVNpdGU/OiAnTGF4JyB8ICdOb25lJyB8ICdTdHJpY3QnO1xuICAgICAgcGFydGl0aW9uZWQ/OiBib29sZWFuO1xuICAgIH1cbiAgKTogdm9pZDtcblxuICBzZXQoXG4gICAgbmFtZTogc3RyaW5nLFxuICAgIHZhbHVlOiBzdHJpbmcsXG4gICAgZXhwaXJlc09yT3B0aW9ucz86IG51bWJlciB8IERhdGUgfCBhbnksXG4gICAgcGF0aD86IHN0cmluZyxcbiAgICBkb21haW4/OiBzdHJpbmcsXG4gICAgc2VjdXJlPzogYm9vbGVhbixcbiAgICBzYW1lU2l0ZT86ICdMYXgnIHwgJ05vbmUnIHwgJ1N0cmljdCcsXG4gICAgcGFydGl0aW9uZWQ/OiBib29sZWFuXG4gICk6IHZvaWQge1xuICAgIGlmICghdGhpcy5kb2N1bWVudElzQWNjZXNzaWJsZSkge1xuICAgICAgcmV0dXJuO1xuICAgIH1cblxuICAgIGlmICh0eXBlb2YgZXhwaXJlc09yT3B0aW9ucyA9PT0gJ251bWJlcicgfHwgZXhwaXJlc09yT3B0aW9ucyBpbnN0YW5jZW9mIERhdGUgfHwgcGF0aCB8fCBkb21haW4gfHwgc2VjdXJlIHx8IHNhbWVTaXRlKSB7XG4gICAgICBjb25zdCBvcHRpb25zQm9keSA9IHtcbiAgICAgICAgZXhwaXJlczogZXhwaXJlc09yT3B0aW9ucyxcbiAgICAgICAgcGF0aCxcbiAgICAgICAgZG9tYWluLFxuICAgICAgICBzZWN1cmUsXG4gICAgICAgIHNhbWVTaXRlOiBzYW1lU2l0ZSA/IHNhbWVTaXRlIDogJ0xheCcsXG4gICAgICAgIHBhcnRpdGlvbmVkLFxuICAgICAgfTtcblxuICAgICAgdGhpcy5zZXQobmFtZSwgdmFsdWUsIG9wdGlvbnNCb2R5KTtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBsZXQgY29va2llU3RyaW5nOiBzdHJpbmcgPSBlbmNvZGVVUklDb21wb25lbnQobmFtZSkgKyAnPScgKyBlbmNvZGVVUklDb21wb25lbnQodmFsdWUpICsgJzsnO1xuXG4gICAgY29uc3Qgb3B0aW9ucyA9IGV4cGlyZXNPck9wdGlvbnMgPyBleHBpcmVzT3JPcHRpb25zIDoge307XG5cbiAgICBpZiAob3B0aW9ucy5leHBpcmVzKSB7XG4gICAgICBpZiAodHlwZW9mIG9wdGlvbnMuZXhwaXJlcyA9PT0gJ251bWJlcicpIHtcbiAgICAgICAgY29uc3QgZGF0ZUV4cGlyZXM6IERhdGUgPSBuZXcgRGF0ZShuZXcgRGF0ZSgpLmdldFRpbWUoKSArIG9wdGlvbnMuZXhwaXJlcyAqIDEwMDAgKiA2MCAqIDYwICogMjQpO1xuXG4gICAgICAgIGNvb2tpZVN0cmluZyArPSAnZXhwaXJlcz0nICsgZGF0ZUV4cGlyZXMudG9VVENTdHJpbmcoKSArICc7JztcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGNvb2tpZVN0cmluZyArPSAnZXhwaXJlcz0nICsgb3B0aW9ucy5leHBpcmVzLnRvVVRDU3RyaW5nKCkgKyAnOyc7XG4gICAgICB9XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMucGF0aCkge1xuICAgICAgY29va2llU3RyaW5nICs9ICdwYXRoPScgKyBvcHRpb25zLnBhdGggKyAnOyc7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuZG9tYWluKSB7XG4gICAgICBjb29raWVTdHJpbmcgKz0gJ2RvbWFpbj0nICsgb3B0aW9ucy5kb21haW4gKyAnOyc7XG4gICAgfVxuXG4gICAgaWYgKG9wdGlvbnMuc2VjdXJlID09PSBmYWxzZSAmJiBvcHRpb25zLnNhbWVTaXRlID09PSAnTm9uZScpIHtcbiAgICAgIG9wdGlvbnMuc2VjdXJlID0gdHJ1ZTtcbiAgICAgIGNvbnNvbGUud2FybihcbiAgICAgICAgYFtuZ3gtY29va2llLXNlcnZpY2VdIENvb2tpZSAke25hbWV9IHdhcyBmb3JjZWQgd2l0aCBzZWN1cmUgZmxhZyBiZWNhdXNlIHNhbWVTaXRlPU5vbmUuYCArXG4gICAgICAgICAgYE1vcmUgZGV0YWlscyA6IGh0dHBzOi8vZ2l0aHViLmNvbS9zdGV2ZXJtZWlzdGVyL25neC1jb29raWUtc2VydmljZS9pc3N1ZXMvODYjaXNzdWVjb21tZW50LTU5NzcyMDEzMGBcbiAgICAgICk7XG4gICAgfVxuICAgIGlmIChvcHRpb25zLnNlY3VyZSkge1xuICAgICAgY29va2llU3RyaW5nICs9ICdzZWN1cmU7JztcbiAgICB9XG5cbiAgICBpZiAoIW9wdGlvbnMuc2FtZVNpdGUpIHtcbiAgICAgIG9wdGlvbnMuc2FtZVNpdGUgPSAnTGF4JztcbiAgICB9XG5cbiAgICBjb29raWVTdHJpbmcgKz0gJ3NhbWVTaXRlPScgKyBvcHRpb25zLnNhbWVTaXRlICsgJzsnO1xuXG4gICAgaWYgKG9wdGlvbnMucGFydGl0aW9uZWQpIHtcbiAgICAgIGNvb2tpZVN0cmluZyArPSAnUGFydGl0aW9uZWQ7JztcbiAgICB9XG5cbiAgICB0aGlzLmRvY3VtZW50LmNvb2tpZSA9IGNvb2tpZVN0cmluZztcbiAgfVxuXG4gIC8qKlxuICAgKiBEZWxldGUgY29va2llIGJ5IG5hbWVcbiAgICpcbiAgICogQHBhcmFtIG5hbWUgICBDb29raWUgbmFtZVxuICAgKiBAcGFyYW0gcGF0aCAgIENvb2tpZSBwYXRoXG4gICAqIEBwYXJhbSBkb21haW4gQ29va2llIGRvbWFpblxuICAgKiBAcGFyYW0gc2VjdXJlIENvb2tpZSBzZWN1cmUgZmxhZ1xuICAgKiBAcGFyYW0gc2FtZVNpdGUgQ29va2llIHNhbWVTaXRlIGZsYWcgLSBodHRwczovL2RldmVsb3Blci5tb3ppbGxhLm9yZy9lbi1VUy9kb2NzL1dlYi9IVFRQL0hlYWRlcnMvU2V0LUNvb2tpZS9TYW1lU2l0ZVxuICAgKlxuICAgKiBAYXV0aG9yOiBTdGVwYW4gU3V2b3JvdlxuICAgKiBAc2luY2U6IDEuMC4wXG4gICAqL1xuICBkZWxldGUobmFtZTogc3RyaW5nLCBwYXRoPzogc3RyaW5nLCBkb21haW4/OiBzdHJpbmcsIHNlY3VyZT86IGJvb2xlYW4sIHNhbWVTaXRlOiAnTGF4JyB8ICdOb25lJyB8ICdTdHJpY3QnID0gJ0xheCcpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuZG9jdW1lbnRJc0FjY2Vzc2libGUpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgY29uc3QgZXhwaXJlc0RhdGUgPSBuZXcgRGF0ZSgnVGh1LCAwMSBKYW4gMTk3MCAwMDowMDowMSBHTVQnKTtcbiAgICB0aGlzLnNldChuYW1lLCAnJywgeyBleHBpcmVzOiBleHBpcmVzRGF0ZSwgcGF0aCwgZG9tYWluLCBzZWN1cmUsIHNhbWVTaXRlIH0pO1xuICB9XG5cbiAgLyoqXG4gICAqIERlbGV0ZSBhbGwgY29va2llc1xuICAgKlxuICAgKiBAcGFyYW0gcGF0aCAgIENvb2tpZSBwYXRoXG4gICAqIEBwYXJhbSBkb21haW4gQ29va2llIGRvbWFpblxuICAgKiBAcGFyYW0gc2VjdXJlIElzIHRoZSBDb29raWUgc2VjdXJlXG4gICAqIEBwYXJhbSBzYW1lU2l0ZSBJcyB0aGUgY29va2llIHNhbWUgc2l0ZVxuICAgKlxuICAgKiBAYXV0aG9yOiBTdGVwYW4gU3V2b3JvdlxuICAgKiBAc2luY2U6IDEuMC4wXG4gICAqL1xuICBkZWxldGVBbGwocGF0aD86IHN0cmluZywgZG9tYWluPzogc3RyaW5nLCBzZWN1cmU/OiBib29sZWFuLCBzYW1lU2l0ZTogJ0xheCcgfCAnTm9uZScgfCAnU3RyaWN0JyA9ICdMYXgnKTogdm9pZCB7XG4gICAgaWYgKCF0aGlzLmRvY3VtZW50SXNBY2Nlc3NpYmxlKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3QgY29va2llczogYW55ID0gdGhpcy5nZXRBbGwoKTtcblxuICAgIGZvciAoY29uc3QgY29va2llTmFtZSBpbiBjb29raWVzKSB7XG4gICAgICBpZiAoY29va2llcy5oYXNPd25Qcm9wZXJ0eShjb29raWVOYW1lKSkge1xuICAgICAgICB0aGlzLmRlbGV0ZShjb29raWVOYW1lLCBwYXRoLCBkb21haW4sIHNlY3VyZSwgc2FtZVNpdGUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxufVxuIl19","import { Injectable } from '@angular/core';\nimport { TranslateService } from '@ngx-translate/core';\nimport Swal from 'sweetalert2';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"@ngx-translate/core\";\nexport class SwalService {\n translate;\n defaultClass = {\n container: 'swal2-container'\n };\n constructor(translate) {\n this.translate = translate;\n }\n t(key) {\n return this.translate.instant(key);\n }\n /** رسالة تأكيد */\n confirm(title = this.t('Confirm.Title'), text = this.t('Confirm.Text'), confirmButtonText = this.t('Confirm.Yes'), cancelButtonText = this.t('Confirm.Cancel')) {\n return Swal.fire({\n icon: 'warning',\n title,\n text,\n showCancelButton: true,\n confirmButtonText,\n cancelButtonText,\n customClass: this.defaultClass\n });\n }\n /** رسالة نجاح */\n success(title, text, timer = 2000) {\n return Swal.fire({\n icon: 'success',\n title: this.t(title),\n text: text ? this.t(text) : undefined,\n timer,\n showConfirmButton: false,\n customClass: this.defaultClass\n });\n }\n /** رسالة خطأ */\n error(title, text, footer) {\n return Swal.fire({\n icon: 'error',\n title: this.t(title),\n text: text ? this.t(text) : undefined,\n footer: footer ? this.t(footer) : undefined,\n customClass: this.defaultClass\n });\n }\n /** رسالة معلومات */\n info(title, text) {\n return Swal.fire({\n icon: 'info',\n title: this.t(title),\n text: text ? this.t(text) : undefined,\n customClass: this.defaultClass\n });\n }\n /** أي خيارات مخصصة */\n alert(options) {\n const translated = {\n ...options,\n title: options.title ? this.t(options.title) : undefined,\n text: options.text ? this.t(options.text) : undefined,\n footer: options.footer ? this.t(options.footer) : undefined,\n customClass: this.defaultClass\n };\n return Swal.fire(translated);\n }\n /** Toast */\n toast(title, icon = 'info', position = 'top-end', timer = 3000) {\n const Toast = Swal.mixin({\n toast: true,\n position,\n timer,\n showConfirmButton: false,\n customClass: this.defaultClass\n });\n Toast.fire({ icon, title: this.t(title) });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: SwalService, deps: [{ token: i1.TranslateService }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: SwalService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: SwalService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.TranslateService }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiU3dhbFNlcnZpY2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcuY29yZS9zZXJ2aWNlcy9zcmMvbGliL1N3YWxTZXJ2aWNlLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQztBQUN2RCxPQUFPLElBSU4sTUFBTSxhQUFhLENBQUM7OztBQUdyQixNQUFNLE9BQU8sV0FBVztJQUtGO0lBSlosWUFBWSxHQUFHO1FBQ3JCLFNBQVMsRUFBRSxpQkFBaUI7S0FDN0IsQ0FBQztJQUVGLFlBQW9CLFNBQTJCO1FBQTNCLGNBQVMsR0FBVCxTQUFTLENBQWtCO0lBQUcsQ0FBQztJQUUzQyxDQUFDLENBQUMsR0FBVztRQUNuQixPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxDQUFDO0lBQ3JDLENBQUM7SUFFRCxrQkFBa0I7SUFDbEIsT0FBTyxDQUNMLEtBQUssR0FBRyxJQUFJLENBQUMsQ0FBQyxDQUFDLGVBQWUsQ0FBQyxFQUMvQixJQUFJLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxjQUFjLENBQUMsRUFDN0IsaUJBQWlCLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsRUFDekMsZ0JBQWdCLEdBQUcsSUFBSSxDQUFDLENBQUMsQ0FBQyxnQkFBZ0IsQ0FBQztRQUUzQyxPQUFPLElBQUksQ0FBQyxJQUFJLENBQUM7WUFDZixJQUFJLEVBQUUsU0FBUztZQUNmLEtBQUs7WUFDTCxJQUFJO1lBQ0osZ0JBQWdCLEVBQUUsSUFBSTtZQUN0QixpQkFBaUI7WUFDakIsZ0JBQWdCO1lBQ2hCLFdBQVcsRUFBRSxJQUFJLENBQUMsWUFBWTtTQUMvQixDQUFDLENBQUM7SUFDTCxDQUFDO0lBRUQsaUJB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O0lBQzdDLENBQUM7dUdBdEdVLFdBQVc7MkdBQVgsV0FBVyxjQURFLE1BQU07OzJGQUNuQixXQUFXO2tCQUR2QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCBTd2FsLCB7XG4gIFN3ZWV0QWxlcnRPcHRpb25zLFxuICBTd2VldEFsZXJ0UmVzdWx0LFxuICBTd2VldEFsZXJ0SWNvblxufSBmcm9tICdzd2VldGFsZXJ0Mic7XG5cbkBJbmplY3RhYmxlKHsgcHJvdmlkZWRJbjogJ3Jvb3QnIH0pXG5leHBvcnQgY2xhc3MgU3dhbFNlcnZpY2Uge1xuICBwcml2YXRlIGRlZmF1bHRDbGFzcyA9IHtcbiAgICBjb250YWluZXI6ICdzd2FsMi1jb250YWluZXInXG4gIH07XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSB0cmFuc2xhdGU6IFRyYW5zbGF0ZVNlcnZpY2UpIHt9XG5cbiAgcHJpdmF0ZSB0KGtleTogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy50cmFuc2xhdGUuaW5zdGFudChrZXkpO1xuICB9XG5cbiAgLyoqINix2LPYp9mE2Kkg2KrYo9mD2YrYryAqL1xuICBjb25maXJtKFxuICAgIHRpdGxlID0gdGhpcy50KCdDb25maXJtLlRpdGxlJyksXG4gICAgdGV4dCA9IHRoaXMudCgnQ29uZmlybS5UZXh0JyksXG4gICAgY29uZmlybUJ1dHRvblRleHQgPSB0aGlzLnQoJ0NvbmZpcm0uWWVzJyksXG4gICAgY2FuY2VsQnV0dG9uVGV4dCA9IHRoaXMudCgnQ29uZmlybS5DYW5jZWwnKVxuICApOiBQcm9taXNlPFN3ZWV0QWxlcnRSZXN1bHQ+IHtcbiAgICByZXR1cm4gU3dhbC5maXJlKHtcbiAgICAgIGljb246ICd3YXJuaW5nJyxcbiAgICAgIHRpdGxlLFxuICAgICAgdGV4dCxcbiAgICAgIHNob3dDYW5jZWxCdXR0b246IHRydWUsXG4gICAgICBjb25maXJtQnV0dG9uVGV4dCxcbiAgICAgIGNhbmNlbEJ1dHRvblRleHQsXG4gICAgICBjdXN0b21DbGFzczogdGhpcy5kZWZhdWx0Q2xhc3NcbiAgICB9KTtcbiAgfVxuXG4gIC8qKiDYsdiz2KfZhNipINmG2KzYp9itICovXG4gIHN1Y2Nlc3MoXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICB0ZXh0Pzogc3RyaW5nLFxuICAgIHRpbWVyID0gMjAwMFxuICApOiBQcm9taXNlPFN3ZWV0QWxlcnRSZXN1bHQ+IHtcbiAgICByZXR1cm4gU3dhbC5maXJlKHtcbiAgICAgIGljb246ICdzdWNjZXNzJyxcbiAgICAgIHRpdGxlOiB0aGlzLnQodGl0bGUpLFxuICAgICAgdGV4dDogdGV4dCA/IHRoaXMudCh0ZXh0KSA6IHVuZGVmaW5lZCxcbiAgICAgIHRpbWVyLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgY3VzdG9tQ2xhc3M6IHRoaXMuZGVmYXVsdENsYXNzXG4gICAgfSk7XG4gIH1cblxuICAvKiog2LHYs9in2YTYqSDYrti32KMgKi9cbiAgZXJyb3IoXG4gICAgdGl0bGU6IHN0cmluZyxcbiAgICB0ZXh0Pzogc3RyaW5nLFxuICAgIGZvb3Rlcj86IHN0cmluZ1xuICApOiBQcm9taXNlPFN3ZWV0QWxlcnRSZXN1bHQ+IHtcbiAgICByZXR1cm4gU3dhbC5maXJlKHtcbiAgICAgIGljb246ICdlcnJvcicsXG4gICAgICB0aXRsZTogdGhpcy50KHRpdGxlKSxcbiAgICAgIHRleHQ6IHRleHQgPyB0aGlzLnQodGV4dCkgOiB1bmRlZmluZWQsXG4gICAgICBmb290ZXI6IGZvb3RlciA/IHRoaXMudChmb290ZXIpIDogdW5kZWZpbmVkLFxuICAgICAgY3VzdG9tQ2xhc3M6IHRoaXMuZGVmYXVsdENsYXNzXG4gICAgfSk7XG4gIH1cblxuICAvKiog2LHYs9in2YTYqSDZhdi52YTZiNmF2KfYqiAqL1xuICBpbmZvKFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgdGV4dD86IHN0cmluZ1xuICApOiBQcm9taXNlPFN3ZWV0QWxlcnRSZXN1bHQ+IHtcbiAgICByZXR1cm4gU3dhbC5maXJlKHtcbiAgICAgIGljb246ICdpbmZvJyxcbiAgICAgIHRpdGxlOiB0aGlzLnQodGl0bGUpLFxuICAgICAgdGV4dDogdGV4dCA/IHRoaXMudCh0ZXh0KSA6IHVuZGVmaW5lZCxcbiAgICAgIGN1c3RvbUNsYXNzOiB0aGlzLmRlZmF1bHRDbGFzc1xuICAgIH0pO1xuICB9XG5cbiAgLyoqINij2Yog2K7Zitin2LHYp9iqINmF2K7Ytdi12KkgKi9cbiAgYWxlcnQoXG4gICAgb3B0aW9uczogU3dlZXRBbGVydE9wdGlvbnNcbiAgKTogUHJvbWlzZTxTd2VldEFsZXJ0UmVzdWx0PiB7XG4gICAgY29uc3QgdHJhbnNsYXRlZDogU3dlZXRBbGVydE9wdGlvbnMgPSB7XG4gICAgICAuLi5vcHRpb25zLFxuICAgICAgdGl0bGU6IG9wdGlvbnMudGl0bGUgPyB0aGlzLnQob3B0aW9ucy50aXRsZSBhcyBzdHJpbmcpIDogdW5kZWZpbmVkLFxuICAgICAgdGV4dDogb3B0aW9ucy50ZXh0ID8gdGhpcy50KG9wdGlvbnMudGV4dCBhcyBzdHJpbmcpIDogdW5kZWZpbmVkLFxuICAgICAgZm9vdGVyOiBvcHRpb25zLmZvb3RlciA/IHRoaXMudChvcHRpb25zLmZvb3RlciBhcyBzdHJpbmcpIDogdW5kZWZpbmVkLFxuICAgICAgY3VzdG9tQ2xhc3M6IHRoaXMuZGVmYXVsdENsYXNzXG4gICAgfTtcbiAgICByZXR1cm4gU3dhbC5maXJlKHRyYW5zbGF0ZWQpO1xuICB9XG5cbiAgLyoqIFRvYXN0ICovXG4gIHRvYXN0KFxuICAgIHRpdGxlOiBzdHJpbmcsXG4gICAgaWNvbjogU3dlZXRBbGVydEljb24gPSAnaW5mbycsXG4gICAgcG9zaXRpb246IFN3ZWV0QWxlcnRPcHRpb25zWydwb3NpdGlvbiddID0gJ3RvcC1lbmQnLFxuICAgIHRpbWVyID0gMzAwMFxuICApOiB2b2lkIHtcbiAgICBjb25zdCBUb2FzdCA9IFN3YWwubWl4aW4oe1xuICAgICAgdG9hc3Q6IHRydWUsXG4gICAgICBwb3NpdGlvbixcbiAgICAgIHRpbWVyLFxuICAgICAgc2hvd0NvbmZpcm1CdXR0b246IGZhbHNlLFxuICAgICAgY3VzdG9tQ2xhc3M6IHRoaXMuZGVmYXVsdENsYXNzXG4gICAgfSk7XG4gICAgVG9hc3QuZmlyZSh7IGljb24sIHRpdGxlOiB0aGlzLnQodGl0bGUpIH0pO1xuICB9XG59XG4iXX0=","import { Injectable } from '@angular/core';\nimport { BehaviorSubject } from 'rxjs';\nimport * as i0 from \"@angular/core\";\nexport class PermissionsService {\n _permissions$ = new BehaviorSubject(new Set());\n // Load permissions (e.g., from API or token claims)\n setPermissions(permissions) {\n this._permissions$.next(new Set(permissions));\n }\n getPermissions() {\n return Array.from(this._permissions$.value);\n }\n // Synchronous check\n isGranted(permissionName) {\n return this._permissions$.value.has(permissionName);\n }\n // Async check (optional if needed for guards or effects)\n isGrantedAsync(permissionName) {\n return new Promise(resolve => {\n resolve(this.isGranted(permissionName));\n });\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: PermissionsService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: PermissionsService, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: PermissionsService, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcuY29yZS9zZXJ2aWNlcy9zcmMvbGliL3Blcm1pc3Npb25zLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sTUFBTSxDQUFDOztBQUd2QyxNQUFNLE9BQU8sa0JBQWtCO0lBQ3JCLGFBQWEsR0FBRyxJQUFJLGVBQWUsQ0FBYyxJQUFJLEdBQUcsRUFBRSxDQUFDLENBQUM7SUFFcEUsb0RBQW9EO0lBQ3BELGNBQWMsQ0FBQyxXQUFxQjtRQUNsQyxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxJQUFJLEdBQUcsQ0FBQyxXQUFXLENBQUMsQ0FBQyxDQUFDO0lBQ2hELENBQUM7SUFFRCxjQUFjO1FBQ1osT0FBTyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDOUMsQ0FBQztJQUVELG9CQUFvQjtJQUNwQixTQUFTLENBQUMsY0FBc0I7UUFDOUIsT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxHQUFHLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdEQsQ0FBQztJQUVELHlEQUF5RDtJQUN6RCxjQUFjLENBQUMsY0FBc0I7UUFDbkMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxPQUFPLENBQUMsRUFBRTtZQUMzQixPQUFPLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsQ0FBQyxDQUFDO1FBQzFDLENBQUMsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzt1R0F0QlUsa0JBQWtCOzJHQUFsQixrQkFBa0IsY0FETCxNQUFNOzsyRkFDbkIsa0JBQWtCO2tCQUQ5QixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcblxyXG5ASW5qZWN0YWJsZSh7IHByb3ZpZGVkSW46ICdyb290JyB9KVxyXG5leHBvcnQgY2xhc3MgUGVybWlzc2lvbnNTZXJ2aWNlIHtcclxuICBwcml2YXRlIF9wZXJtaXNzaW9ucyQgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PFNldDxzdHJpbmc+PihuZXcgU2V0KCkpO1xyXG5cclxuICAvLyBMb2FkIHBlcm1pc3Npb25zIChlLmcuLCBmcm9tIEFQSSBvciB0b2tlbiBjbGFpbXMpXHJcbiAgc2V0UGVybWlzc2lvbnMocGVybWlzc2lvbnM6IHN0cmluZ1tdKSB7XHJcbiAgICB0aGlzLl9wZXJtaXNzaW9ucyQubmV4dChuZXcgU2V0KHBlcm1pc3Npb25zKSk7XHJcbiAgfVxyXG5cclxuICBnZXRQZXJtaXNzaW9ucygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gQXJyYXkuZnJvbSh0aGlzLl9wZXJtaXNzaW9ucyQudmFsdWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gU3luY2hyb25vdXMgY2hlY2tcclxuICBpc0dyYW50ZWQocGVybWlzc2lvbk5hbWU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3Blcm1pc3Npb25zJC52YWx1ZS5oYXMocGVybWlzc2lvbk5hbWUpO1xyXG4gIH1cclxuXHJcbiAgLy8gQXN5bmMgY2hlY2sgKG9wdGlvbmFsIGlmIG5lZWRlZCBmb3IgZ3VhcmRzIG9yIGVmZmVjdHMpXHJcbiAgaXNHcmFudGVkQXN5bmMocGVybWlzc2lvbk5hbWU6IHN0cmluZyk6IFByb21pc2U8Ym9vbGVhbj4ge1xyXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlKHJlc29sdmUgPT4ge1xyXG4gICAgICByZXNvbHZlKHRoaXMuaXNHcmFudGVkKHBlcm1pc3Npb25OYW1lKSk7XHJcbiAgICB9KTtcclxuICB9XHJcbn1cclxuIl19","import { inject, Injectable } from '@angular/core';\nimport { Router, RouterStateSnapshot } from '@angular/router';\nimport { PermissionsService } from './permissions.service';\nimport { DEFAULT_REDIRECT_KEY } from '@elite.framework/ng.core/models';\nimport { isFunction, isPlainObject, transformStringToArray } from '@elite.framework/ng.core/utils';\nimport * as i0 from \"@angular/core\";\nimport * as i1 from \"./permissions.service\";\nimport * as i2 from \"@angular/router\";\nexport const ngxPermissionsGuard = (route, state) => {\n const guard = inject(NgxPermissionsGuard);\n if (state instanceof RouterStateSnapshot) {\n return guard.hasPermissions(route, state);\n }\n return guard.hasPermissions(route);\n};\nexport class NgxPermissionsGuard {\n permissions;\n router;\n constructor(permissions, router) {\n this.permissions = permissions;\n this.router = router;\n }\n canActivate(route, state) {\n return this.hasPermissions(route, state);\n }\n canActivateChild(route, state) {\n return this.hasPermissions(route, state);\n }\n canLoad(route) {\n return this.hasPermissions(route);\n }\n canMatch(route) {\n return this.hasPermissions(route);\n }\n async hasPermissions(route, state) {\n const data = route.data?.['permissions'];\n const only = [];\n const except = [];\n if (data?.only) {\n if (isFunction(data.only)) {\n const result = data.only(route, state);\n only.push(...transformStringToArray(result));\n }\n else {\n only.push(...transformStringToArray(data.only));\n }\n }\n if (data?.except) {\n if (isFunction(data.except)) {\n const result = data.except(route, state);\n except.push(...transformStringToArray(result));\n }\n else {\n except.push(...transformStringToArray(data.except));\n }\n }\n const permissions = {\n only,\n except,\n redirectTo: data?.redirectTo\n };\n // --- rest of the guard logic ---\n // EXCEPT check\n if (permissions.except?.length) {\n for (const perm of permissions.except) {\n if (await this.permissions.isGrantedAsync(perm)) {\n this.handleRedirect(permissions, perm, route, state);\n return false;\n }\n }\n }\n // ONLY check\n if (permissions.only?.length) {\n for (const perm of permissions.only) {\n if (await this.permissions.isGrantedAsync(perm)) {\n return true;\n }\n }\n this.handleRedirect(permissions, permissions.only[0], route, state);\n return false;\n }\n return true;\n }\n handleRedirect(permissions, failedPermission, route, state) {\n const redirectTo = permissions.redirectTo;\n if (!redirectTo)\n return;\n // If redirectTo is a function\n const resolvedRedirect = isFunction(redirectTo)\n ? redirectTo(failedPermission, route, state)\n : redirectTo;\n if (typeof resolvedRedirect === 'string') {\n this.router.navigate([resolvedRedirect]); // wrap string in array\n }\n else if (Array.isArray(resolvedRedirect)) {\n this.router.navigate(resolvedRedirect); // array is fine\n }\n else if (isPlainObject(resolvedRedirect)) {\n // Object: check for failedPermission key first\n const target = resolvedRedirect[failedPermission] ?? resolvedRedirect[DEFAULT_REDIRECT_KEY];\n if (target) {\n if (typeof target === 'string') {\n this.router.navigate([target]);\n }\n else if (Array.isArray(target)) {\n this.router.navigate(target);\n }\n else if (isFunction(target)) {\n this.router.navigate([target(failedPermission, route, state)]);\n }\n }\n }\n else {\n console.warn('Unknown redirect type', resolvedRedirect);\n }\n }\n static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: NgxPermissionsGuard, deps: [{ token: i1.PermissionsService }, { token: i2.Router }], target: i0.ɵɵFactoryTarget.Injectable });\n static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: NgxPermissionsGuard, providedIn: 'root' });\n}\ni0.ɵɵngDeclareClassMetadata({ minVersion: \"12.0.0\", version: \"20.1.8\", ngImport: i0, type: NgxPermissionsGuard, decorators: [{\n type: Injectable,\n args: [{ providedIn: 'root' }]\n }], ctorParameters: () => [{ type: i1.PermissionsService }, { type: i2.Router }] });\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGVybWlzc2lvbnMtZ3VhcmQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvbmcuY29yZS9zZXJ2aWNlcy9zcmMvbGliL3Blcm1pc3Npb25zLWd1YXJkLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQU1MLE1BQU0sRUFDTixtQkFBbUIsRUFFcEIsTUFBTSxpQkFBaUIsQ0FBQztBQUl6QixPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSx1QkFBdUIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsb0JBQW9CLEVBQXdFLE1BQU0saUNBQWlDLENBQUM7QUFDN0ksT0FBTyxFQUFFLFVBQVUsRUFBRSxhQUFhLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQzs7OztBQVFuRyxNQUFNLENBQUMsTUFBTSxtQkFBbUIsR0FBb0QsQ0FDbEYsS0FBcUMsRUFDckMsS0FBeUMsRUFDekMsRUFBRTtJQUNGLE1BQU0sS0FBSyxHQUFHLE1BQU0sQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO0lBQzFDLElBQUksS0FBSyxZQUFZLG1CQUFtQixFQUFFLENBQUM7UUFDekMsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssRUFBRSxLQUFLLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBQ0QsT0FBTyxLQUFLLENBQUMsY0FBYyxDQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ3JDLENBQUMsQ0FBQztBQUdGLE1BQU0sT0FBTyxtQkFBbUI7SUFFcEI7SUFDQTtJQUZWLFlBQ1UsV0FBK0IsRUFDL0IsTUFBYztRQURkLGdCQUFXLEdBQVgsV0FBVyxDQUFvQjtRQUMvQixXQUFNLEdBQU4sTUFBTSxDQUFRO0lBQ3JCLENBQUM7SUFFSixXQUFXLENBQUMsS0FBNkIsRUFBRSxLQUEwQjtRQUNuRSxPQUFPLElBQUks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akMsQ0FBQztxQkFBTSxJQUFJLEtBQUssQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDakMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsTUFBTSxDQUFDLENBQUM7Z0JBQy9CLENBQUM7cUJBQU0sSUFBSSxVQUFVLENBQWUsTUFBTSxDQUFDLEVBQUUsQ0FBQztvQkFDNUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxNQUFNLENBQUMsZ0JBQWdCLEVBQUUsS0FBSyxFQUFFLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztnQkFDakUsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO2FBQ0ksQ0FBQztZQUNKLE9BQU8sQ0FBQyxJQUFJLENBQUMsdUJBQXVCLEVBQUUsZ0JBQWdCLENBQUMsQ0FBQztRQUMxRCxDQUFDO0lBQ0gsQ0FBQzt1R0FySFksbUJBQW1COzJHQUFuQixtQkFBbUIsY0FETixNQUFNOzsyRkFDbkIsbUJBQW1CO2tCQUQvQixVQUFVO21CQUFDLEVBQUUsVUFBVSxFQUFFLE1BQU0sRUFBRSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IGluamVjdCwgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQge1xyXG4gIEFjdGl2YXRlZFJvdXRlU25hcHNob3QsXHJcbiAgQ2FuQWN0aXZhdGVDaGlsZEZuLFxyXG4gIENhbkFjdGl2YXRlRm4sXHJcbiAgQ2FuTWF0Y2hGbixcclxuICBSb3V0ZSxcclxuICBSb3V0ZXIsXHJcbiAgUm91dGVyU3RhdGVTbmFwc2hvdCxcclxuICBVcmxTZWdtZW50XHJcbn0gZnJvbSAnQGFuZ3VsYXIvcm91dGVyJztcclxuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xyXG5cclxuXHJcbmltcG9ydCB7IFBlcm1pc3Npb25zU2VydmljZSB9IGZyb20gJy4vcGVybWlzc2lvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IERFRkFVTFRfUkVESVJFQ1RfS0VZLCBFeGNlcHRGbiwgTmd4UGVybWlzc2lvbnNSb3V0ZXJEYXRhLCBPbmx5Rm4sIFJlZGlyZWN0VG8sIFJlZGlyZWN0VG9GbiB9IGZyb20gJ0BlbGl0ZS5mcmFtZXdvcmsvbmcuY29yZS9tb2RlbHMnO1xyXG5pbXBvcnQgeyBpc0Z1bmN0aW9uLCBpc1BsYWluT2JqZWN0LCB0cmFuc2Zvcm1TdHJpbmdUb0FycmF5IH0gZnJvbSAnQGVsaXRlLmZyYW1ld29yay9uZy5jb3JlL3V0aWxzJztcclxuXHJcbmV4cG9ydCBpbnRlcmZhY2UgTmd4UGVybWlzc2lvbnNEYXRhIHtcclxuICBvbmx5Pzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgZXhjZXB0Pzogc3RyaW5nIHwgc3RyaW5nW107XHJcbiAgcmVkaXJlY3RUbz86IFJlZGlyZWN0VG8gfCBSZWRpcmVjdFRvRm4gfCBhbnk7XHJcbn1cclxuXHJcbmV4cG9ydCBjb25zdCBuZ3hQZXJtaXNzaW9uc0d1YXJkOiBDYW5BY3RpdmF0ZUZuIHwgQ2FuQWN0aXZhdGVDaGlsZEZuIHwgQ2FuTWF0Y2hGbiA9IChcclxuICByb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCB8IFJvdXRlLFxyXG4gIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90IHwgVXJsU2VnbWVudFtdXHJcbikgPT4ge1xyXG4gIGNvbnN0IGd1YXJkID0gaW5qZWN0KE5neFBlcm1pc3Npb25zR3VhcmQpO1xyXG4gIGlmIChzdGF0ZSBpbnN0YW5jZW9mIFJvdXRlclN0YXRlU25hcHNob3QpIHtcclxuICAgIHJldHVybiBndWFyZC5oYXNQZXJtaXNzaW9ucyhyb3V0ZSwgc3RhdGUpO1xyXG4gIH1cclxuICByZXR1cm4gZ3VhcmQuaGFzUGVybWlzc2lvbnMocm91dGUpO1xyXG59O1xyXG5cclxuQEluamVjdGFibGUoeyBwcm92aWRlZEluOiAncm9vdCcgfSlcclxuZXhwb3J0IGNsYXNzIE5neFBlcm1pc3Npb25zR3VhcmQge1xyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBwZXJtaXNzaW9uczogUGVybWlzc2lvbnNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSByb3V0ZXI6IFJvdXRlclxyXG4gICkge31cclxuXHJcbiAgY2FuQWN0aXZhdGUocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QsIHN0YXRlOiBSb3V0ZXJTdGF0ZVNuYXBzaG90KSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNQZXJtaXNzaW9ucyhyb3V0ZSwgc3RhdGUpO1xyXG4gIH1cclxuXHJcbiAgY2FuQWN0aXZhdGVDaGlsZChyb3V0ZTogQWN0aXZhdGVkUm91dGVTbmFwc2hvdCwgc3RhdGU6IFJvdXRlclN0YXRlU25hcHNob3QpIHtcclxuICAgIHJldHVybiB0aGlzLmhhc1Blcm1pc3Npb25zKHJvdXRlLCBzdGF0ZSk7XHJcbiAgfVxyXG5cclxuICBjYW5Mb2FkKHJvdXRlOiBSb3V0ZSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaGFzUGVybWlzc2lvbnMocm91dGUpO1xyXG4gIH1cclxuXHJcbiAgY2FuTWF0Y2gocm91dGU6IFJvdXRlKSB7XHJcbiAgICByZXR1cm4gdGhpcy5oYXNQZXJtaXNzaW9ucyhyb3V0ZSk7XHJcbiAgfVxyXG5cclxuYXN5bmMgaGFzUGVybWlzc2lvbnMocm91dGU6IEFjdGl2YXRlZFJvdXRlU25hcHNob3QgfCBSb3V0ZSwgc3RhdGU/OiBSb3V0ZXJTdGF0ZVNuYXBzaG90KTogUHJvbWlzZTxib29sZWFuPiB7XHJcbiAgY29uc3QgZGF0YSA9IHJvdXRlLmRhdGE/LlsncGVybWlzc2lvbnMnXSBhcyBOZ3hQZXJtaXNzaW9uc1JvdXRlckRhdGEgfCB1bmRlZmluZWQ7XHJcbiAgY29uc3Qgb25seTogc3RyaW5nW10gPSBbXTtcclxuICBjb25zdCBleGNlcHQ6IHN0cmluZ1tdID0gW107XHJcblxyXG4gIGlmIChkYXRhPy5vbmx5KSB7XHJcbiAgICBpZiAoaXNGdW5jdGlvbjxPbmx5Rm4+KGRhdGEub25seSkpIHtcclxuICAgICAgY29uc3QgcmVzdWx0ID0gZGF0YS5vbmx5KHJvdXRlLCBzdGF0ZSk7XHJcbiAgICAgIG9ubHkucHVzaCguLi50cmFuc2Zvcm1TdHJpbmdUb0FycmF5KHJlc3VsdCkpO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgb25seS5wdXNoKC4uLnRyYW5zZm9ybVN0cmluZ1RvQXJyYXkoZGF0YS5vbmx5KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBpZiAoZGF0YT8uZXhjZXB0KSB7XHJcbiAgICBpZiAoaXNGdW5jdGlvbjxFeGNlcHRGbj4oZGF0YS5leGNlcHQpKSB7XHJcbiAgICAgIGNvbnN0IHJlc3VsdCA9IGRhdGEuZXhjZXB0KHJvdXRlLCBzdGF0ZSk7XHJcbiAgICAgIGV4Y2VwdC5wdXNoKC4uLnRyYW5zZm9ybVN0cmluZ1RvQXJyYXkocmVzdWx0KSk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICBleGNlcHQucHVzaCguLi50cmFuc2Zvcm1TdHJpbmdUb0FycmF5KGRhdGEuZXhjZXB0KSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdCBwZXJtaXNzaW9uczogTmd4UGVybWlzc2lvbnNEYXRhID0ge1xyXG4gICAgb25seSxcclxuICAgIGV4Y2VwdCxcclxuICAgIHJlZGlyZWN0VG86IGRhdGE/LnJlZGlyZWN0VG9cclxuICB9O1xyXG5cclxuICAvLyAtLS0gcmVzdCBvZiB0aGUgZ3VhcmQgbG9naWMgLS0tXHJcbiAgLy8gRVhDRVBUIGNoZWNrXHJcbiAgaWYgKHBlcm1pc3Npb25zLmV4Y2VwdD8ubGVuZ3RoKSB7XHJcbiAgICBmb3IgKGNvbnN0IHBlcm0gb2YgcGVybWlzc2lvbnMuZXhjZXB0KSB7XHJcbiAgICAgIGlmIChhd2FpdCB0aGlzLnBlcm1pc3Npb25zLmlzR3JhbnRlZEFzeW5jKHBlcm0pKSB7XHJcbiAgICAgICAgdGhpcy5oYW5kbGVSZWRpcmVjdChwZXJtaXNzaW9ucywgcGVybSwgcm91dGUsIHN0YXRlKTtcclxuICAgICAgICByZXR1cm4gZmFsc2U7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcblxyXG4gIC8vIE9OTFkgY2hlY2tcclxuICBpZiAocGVybWlzc2lvbnMub25seT8ubGVuZ3RoKSB7XHJcbiAgICBmb3IgKGNvbnN0IHBlcm0gb2YgcGVybWlzc2lvbnMub25seSkge1xyXG4gICAgICBpZiAoYXdhaXQgdGhpcy5wZXJtaXNzaW9ucy5pc0dyYW50ZWRBc3luYyhwZXJtKSkge1xyXG4gICAgICAgIHJldHVybiB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgICB0aGlzLmhhbmRsZVJlZGlyZWN0KHBlcm1pc3Npb25zLCBwZXJtaXNzaW9ucy5vbmx5WzBdLCByb3V0ZSwgc3RhdGUpO1xyXG4gICAgcmV0dXJuIGZhbHNlO1xyXG4gIH1cclxuXHJcbiAgcmV0dXJuIHRydWU7XHJcbn1cclxuXHJcblxyXG5wcml2YXRlIGhhbmRsZVJlZGlyZWN0KFxyXG4gIHBlcm1pc3Npb25zOiBOZ3hQZXJtaXNzaW9uc0RhdGEsXHJcbiAgZmFpbGVkUGVybWlzc2lvbjogc3RyaW5nLFxyXG4gIHJvdXRlOiBBY3RpdmF0ZWRSb3V0ZVNuYXBzaG90IHwgUm91dGUsXHJcbiAgc3RhdGU/OiBSb3V0ZXJTdGF0ZVNuYXBzaG90XHJcbikge1xyXG4gIGNvbnN0IHJlZGlyZWN0VG8gPSBwZXJtaXNzaW9ucy5yZWRpcmVjdFRvO1xyXG5cclxuICBpZiAoIXJlZGlyZWN0VG8pIHJldHVybjtcclxuXHJcbiAgLy8gSWYgcmVkaXJlY3RUbyBpcyBhIGZ1bmN0aW9uXHJcbiAgY29uc3QgcmVzb2x2ZWRSZWRpcmVjdCA9XHJcbiAgICBpc0Z1bmN0aW9uPFJlZGlyZWN0VG9Gbj4ocmVkaXJlY3RUbylcclxuICAgICAgPyByZWRpcmVjdFRvKGZhaWxlZFBlcm1pc3Npb24sIHJvdXRlLCBzdGF0ZSlcclxuICAgICAgOiByZWRpcmVjdFRvO1xyXG5cclxuICBpZiAodHlwZW9mIHJlc29sdmVkUmVkaXJlY3QgPT09ICdzdHJpbmcnKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShbcmVzb2x2ZWRSZWRpcmVjdF0pOyAvLyB3cmFwIHN0cmluZyBpbiBhcnJheVxyXG4gIH1cclxuICBlbHNlIGlmIChBcnJheS5pc0FycmF5KHJlc29sdmVkUmVkaXJlY3QpKSB7XHJcbiAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZShyZXNvbHZlZFJlZGlyZWN0KTsgLy8gYXJyYXkgaXMgZmluZVxyXG4gIH1cclxuICBlbHNlIGlmIChpc1BsYWluT2JqZWN0KHJlc29sdmVkUmVkaXJlY3QpKSB7XHJcbiAgICAvLyBPYmplY3Q6IGNoZWNrIGZvciBmYWlsZWRQZXJtaXNzaW9uIGtleSBmaXJzdFxyXG4gICAgY29uc3QgdGFyZ2V0ID1cclxuICAgICAgcmVzb2x2ZWRSZWRpcmVjdFtmYWlsZWRQZXJtaXNzaW9uXSA/PyByZXNvbHZlZFJlZGlyZWN0W0RFRkFVTFRfUkVESVJFQ1RfS0VZXTtcclxuXHJcbiAgICBpZiAodGFyZ2V0KSB7XHJcbiAgICAgIGlmICh0eXBlb2YgdGFyZ2V0ID09PSAnc3RyaW5nJykge1xyXG4gICAgICAgIHRoaXMucm91dGVyLm5hdmlnYXRlKFt0YXJnZXRdKTtcclxuICAgICAgfSBlbHNlIGlmIChBcnJheS5pc0FycmF5KHRhcmdldCkpIHtcclxuICAgICAgICB0aGlzLnJvdXRlci5uYXZpZ2F0ZSh0YXJnZXQpO1xyXG4gICAgICB9IGVsc2UgaWYgKGlzRnVuY3Rpb248UmVkaXJlY3RUb0ZuPih0YXJnZXQpKSB7XHJcbiAgICAgICAgdGhpcy5yb3V0ZXIubmF2aWdhdGUoW3RhcmdldChmYWlsZWRQZXJtaXNzaW9uLCByb3V0ZSwgc3RhdGUpXSk7XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgZWxzZSB7XHJcbiAgICBjb25zb2xlLndhcm4oJ1Vua25vd24gcmVkaXJlY3QgdHlwZScsIHJlc29sdmVkUmVkaXJlY3QpO1xyXG4gIH1cclxufVxyXG5cclxufVxyXG4iXX0=","/**\n * Generated bundle index. Do not edit.\n */\nexport * from './index';\n//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWxpdGUuZnJhbWV3b3JrLW5nLmNvcmUtc2VydmljZXMuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9saWJzL25nLmNvcmUvc2VydmljZXMvc3JjL2VsaXRlLmZyYW1ld29yay1uZy5jb3JlLXNlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOztHQUVHO0FBRUgsY0FBYyxTQUFTLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEdlbmVyYXRlZCBidW5kbGUgaW5kZXguIERvIG5vdCBlZGl0LlxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vaW5kZXgnO1xuIl19"],"names":["i1.RestService","i1","i1.PermissionsService"],"mappings":"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"}
|
package/models/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ interface ActionDef<T> {
|
|
|
11
11
|
permissions?: string[];
|
|
12
12
|
action?: (item: T) => void | Promise<void>;
|
|
13
13
|
visible?: boolean;
|
|
14
|
+
splitActions?: MenuItem[];
|
|
14
15
|
}
|
|
15
16
|
|
|
16
17
|
declare class AttachmentDto {
|
|
@@ -24,12 +25,16 @@ declare class AttachmentDto {
|
|
|
24
25
|
link?: string;
|
|
25
26
|
}
|
|
26
27
|
|
|
28
|
+
type ButtonVariant = 'text' | 'outlined' | 'raised' | 'rounded';
|
|
29
|
+
type ButtonSeverity = 'primary' | 'secondary' | 'success' | 'info' | 'warn' | 'danger' | 'help' | 'contrast';
|
|
30
|
+
type ButtonSize = 'small' | 'normal' | 'large';
|
|
31
|
+
type IconPosition = 'left' | 'right';
|
|
27
32
|
interface ButtonConfig {
|
|
28
33
|
icon: string;
|
|
29
34
|
label: string;
|
|
30
35
|
position?: 'top' | 'bottom';
|
|
31
36
|
variant: 'text' | 'outlined' | 'raised' | 'rounded';
|
|
32
|
-
severity:
|
|
37
|
+
severity: ButtonSeverity;
|
|
33
38
|
size: 'small' | 'normal' | 'large';
|
|
34
39
|
permission?: string;
|
|
35
40
|
visible?: boolean;
|
|
@@ -165,4 +170,4 @@ interface NgxPermission {
|
|
|
165
170
|
}
|
|
166
171
|
|
|
167
172
|
export { AttachmentDto, DEFAULT_REDIRECT_KEY, GeneralResponse, ListResultDto, PagedResultDto, Rest, checkHasProp };
|
|
168
|
-
export type { ActionDef, ButtonConfig, ColumnDef, ExceptFn, FilterDef, FilterType, NavigationCommandsFn, NavigationExtrasFn, NgxPermission, NgxPermissionsRouterData, NgxRedirectToNavigationParameters, OnlyFn, PaginatedResult, RedirectTo, RedirectToFn, Root, ValidationFn };
|
|
173
|
+
export type { ActionDef, ButtonConfig, ButtonSeverity, ButtonSize, ButtonVariant, ColumnDef, ExceptFn, FilterDef, FilterType, IconPosition, NavigationCommandsFn, NavigationExtrasFn, NgxPermission, NgxPermissionsRouterData, NgxRedirectToNavigationParameters, OnlyFn, PaginatedResult, RedirectTo, RedirectToFn, Root, ValidationFn };
|
package/package.json
CHANGED
package/services/index.d.ts
CHANGED
|
@@ -7,6 +7,7 @@ import { InjectionToken } from '@angular/core';
|
|
|
7
7
|
import * as qs from 'qs';
|
|
8
8
|
import * as express_serve_static_core from 'express-serve-static-core';
|
|
9
9
|
import { Request } from 'express';
|
|
10
|
+
import { TranslateService } from '@ngx-translate/core';
|
|
10
11
|
import { SweetAlertResult, SweetAlertOptions, SweetAlertIcon } from 'sweetalert2';
|
|
11
12
|
import { CanActivateFn, CanActivateChildFn, CanMatchFn, Router, ActivatedRouteSnapshot, RouterStateSnapshot, Route } from '@angular/router';
|
|
12
13
|
|
|
@@ -231,7 +232,11 @@ declare class SsrCookieService {
|
|
|
231
232
|
}
|
|
232
233
|
|
|
233
234
|
declare class SwalService {
|
|
234
|
-
|
|
235
|
+
private translate;
|
|
236
|
+
private defaultClass;
|
|
237
|
+
constructor(translate: TranslateService);
|
|
238
|
+
private t;
|
|
239
|
+
/** رسالة تأكيد */
|
|
235
240
|
confirm(title?: string, text?: string, confirmButtonText?: string, cancelButtonText?: string): Promise<SweetAlertResult>;
|
|
236
241
|
/** رسالة نجاح */
|
|
237
242
|
success(title: string, text?: string, timer?: number): Promise<SweetAlertResult>;
|
|
@@ -239,9 +244,9 @@ declare class SwalService {
|
|
|
239
244
|
error(title: string, text?: string, footer?: string): Promise<SweetAlertResult>;
|
|
240
245
|
/** رسالة معلومات */
|
|
241
246
|
info(title: string, text?: string): Promise<SweetAlertResult>;
|
|
242
|
-
/**
|
|
247
|
+
/** أي خيارات مخصصة */
|
|
243
248
|
alert(options: SweetAlertOptions): Promise<SweetAlertResult>;
|
|
244
|
-
/** Toast
|
|
249
|
+
/** Toast */
|
|
245
250
|
toast(title: string, icon?: SweetAlertIcon, position?: SweetAlertOptions['position'], timer?: number): void;
|
|
246
251
|
static ɵfac: i0.ɵɵFactoryDeclaration<SwalService, never>;
|
|
247
252
|
static ɵprov: i0.ɵɵInjectableDeclaration<SwalService>;
|